This commit was manufactured by cvs2svn to create tag 'I20040323'.

Sprout from master 2004-03-23 20:52:08 UTC Jean Michel-Lemieux <jlemieux> 'Type in message.'
Cherrypick from master 2004-03-24 03:10:53 UTC Michael Valenta <mvalenta> 'Fixed deadlock in tests':
    bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java
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/ICompareNavigator.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/IEncodedStreamContentAccessor.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/BaseCompareAction.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/CompareFilter.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/CompareOutlinePage.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/ICompareNavigator.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/IEncodedStreamContentAccessor.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/BaseCompareAction.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/CompareFilter.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/CompareOutlinePage.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.xml/.classpath
    examples/org.eclipse.compare.examples.xml/.cvsignore
    examples/org.eclipse.compare.examples.xml/.project
    examples/org.eclipse.compare.examples.xml/IdMaps/ant_test.xml
    examples/org.eclipse.compare.examples.xml/IdMaps/idmap.dtd
    examples/org.eclipse.compare.examples.xml/about.html
    examples/org.eclipse.compare.examples.xml/build.properties
    examples/org.eclipse.compare.examples.xml/doc-html/CreateNewIDMapButton.gif
    examples/org.eclipse.compare.examples.xml/doc-html/EditCopy.gif
    examples/org.eclipse.compare.examples.xml/doc-html/IDMapContextMenu.gif
    examples/org.eclipse.compare.examples.xml/doc-html/IDMap_GeneralMatching.gif
    examples/org.eclipse.compare.examples.xml/doc-html/IDMap_MyPlugin.gif
    examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewIDMapScheme.gif
    examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewMapping_ContextMenu.gif
    examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewMapping_PreferencePage.gif
    examples/org.eclipse.compare.examples.xml/doc-html/IDMap_SelectMyPlugin.gif
    examples/org.eclipse.compare.examples.xml/doc-html/Ordered_MyANT.gif
    examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewIDMapScheme.gif
    examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewOrderedEntry_ContextMenu.gif
    examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewOrderedEntry_PreferencePage.gif
    examples/org.eclipse.compare.examples.xml/doc-html/Ordered_UnorderedScheme.gif
    examples/org.eclipse.compare.examples.xml/doc-html/PreferencePage.gif
    examples/org.eclipse.compare.examples.xml/doc-html/addidmap.gif
    examples/org.eclipse.compare.examples.xml/doc-html/hglegal.htm
    examples/org.eclipse.compare.examples.xml/doc-html/idMapping.html
    examples/org.eclipse.compare.examples.xml/doc-html/ngibmcpy.gif
    examples/org.eclipse.compare.examples.xml/doc-html/smartmode_co.gif
    examples/org.eclipse.compare.examples.xml/doc-html/tutorial_and_examples.html
    examples/org.eclipse.compare.examples.xml/doc-html/ui_xmlcompare_ex.html
    examples/org.eclipse.compare.examples.xml/icons/full/obj16/addidmap.gif
    examples/org.eclipse.compare.examples.xml/icons/full/obj16/attribute_obj.gif
    examples/org.eclipse.compare.examples.xml/icons/full/obj16/element_obj.gif
    examples/org.eclipse.compare.examples.xml/icons/full/obj16/element_ordered_obj.gif
    examples/org.eclipse.compare.examples.xml/icons/full/obj16/smartmode_co.gif
    examples/org.eclipse.compare.examples.xml/icons/full/obj16/text_obj.gif
    examples/org.eclipse.compare.examples.xml/plugin.properties
    examples/org.eclipse.compare.examples.xml/plugin.xml
    examples/org.eclipse.compare.examples.xml/schema/idMapping.exsd
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/AbstractMatching.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/AttributesImpl.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ChooseMatcherDropDownAction.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/CreateNewIdMapAction.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/IdMap.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/Mapping.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/OrderedMatching.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/SWTUtil.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/SelectMatcherAction.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLChildren.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareAddIdMapDialog.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditCopyIdMapDialog.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditMappingDialog.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditOrderedDialog.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareMessages.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLComparePreferencePage.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLNode.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLPlugin.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureCreator.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureViewer.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureViewerCreator.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/MessageLine.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusDialog.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusInfo.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusUtil.java
    examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/xmlcompare.properties
    examples/org.eclipse.compare.examples.xml/tests/org/eclipse/compare/examples/xml/AllXMLCompareTests.java
    examples/org.eclipse.compare.examples.xml/tests/org/eclipse/compare/examples/xml/TestXMLStructureCreator.java
    examples/org.eclipse.compare.examples/.classpath
    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/FileSystemOperations.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/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/subscriber/FileSystemRemoteTree.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemResourceVariant.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemSubscriber.java
    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/JUnit Tests/org/eclipse/compare/tests/FilterTest.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/plugin.xml
    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/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/TeamTest.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/AllTeamSynchronizeTests.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/SyncInfoSetContentProviderTest.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestDiffNodePresentationModel.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/ContentProviderTestView.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/TestTreeViewer.java
    tests/org.eclipse.team.tests.core/test.xml
    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/book.css
    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/html/00000.html
    tests/org.eclipse.team.tests.cvs.core/html/00001.html
    tests/org.eclipse.team.tests.cvs.core/html/00002.html
    tests/org.eclipse.team.tests.cvs.core/html/00003.html
    tests/org.eclipse.team.tests.cvs.core/html/00004.html
    tests/org.eclipse.team.tests.cvs.core/html/00005.html
    tests/org.eclipse.team.tests.cvs.core/html/00006.html
    tests/org.eclipse.team.tests.cvs.core/html/00007.html
    tests/org.eclipse.team.tests.cvs.core/html/00008.html
    tests/org.eclipse.team.tests.cvs.core/html/00009.html
    tests/org.eclipse.team.tests.cvs.core/html/00010.html
    tests/org.eclipse.team.tests.cvs.core/html/00011.html
    tests/org.eclipse.team.tests.cvs.core/html/00012.html
    tests/org.eclipse.team.tests.cvs.core/html/00013.html
    tests/org.eclipse.team.tests.cvs.core/html/00014.html
    tests/org.eclipse.team.tests.cvs.core/html/00015.html
    tests/org.eclipse.team.tests.cvs.core/html/00016.html
    tests/org.eclipse.team.tests.cvs.core/html/00017.html
    tests/org.eclipse.team.tests.cvs.core/html/00018.html
    tests/org.eclipse.team.tests.cvs.core/html/00019.html
    tests/org.eclipse.team.tests.cvs.core/html/00020.html
    tests/org.eclipse.team.tests.cvs.core/html/00021.html
    tests/org.eclipse.team.tests.cvs.core/html/00022.html
    tests/org.eclipse.team.tests.cvs.core/html/00023.html
    tests/org.eclipse.team.tests.cvs.core/html/00024.html
    tests/org.eclipse.team.tests.cvs.core/html/00025.html
    tests/org.eclipse.team.tests.cvs.core/html/00026.html
    tests/org.eclipse.team.tests.cvs.core/html/00027.html
    tests/org.eclipse.team.tests.cvs.core/html/00028.html
    tests/org.eclipse.team.tests.cvs.core/html/00028a.html
    tests/org.eclipse.team.tests.cvs.core/html/00029.html
    tests/org.eclipse.team.tests.cvs.core/html/00029a.html
    tests/org.eclipse.team.tests.cvs.core/html/00030.html
    tests/org.eclipse.team.tests.cvs.core/html/00030a.html
    tests/org.eclipse.team.tests.cvs.core/html/00031.html
    tests/org.eclipse.team.tests.cvs.core/html/00032.html
    tests/org.eclipse.team.tests.cvs.core/html/00033.html
    tests/org.eclipse.team.tests.cvs.core/html/00034.html
    tests/org.eclipse.team.tests.cvs.core/html/00035.html
    tests/org.eclipse.team.tests.cvs.core/html/00036.html
    tests/org.eclipse.team.tests.cvs.core/html/00037.html
    tests/org.eclipse.team.tests.cvs.core/html/00038.html
    tests/org.eclipse.team.tests.cvs.core/html/00039.html
    tests/org.eclipse.team.tests.cvs.core/html/00040.html
    tests/org.eclipse.team.tests.cvs.core/html/00041.html
    tests/org.eclipse.team.tests.cvs.core/html/00042.html
    tests/org.eclipse.team.tests.cvs.core/html/00043.html
    tests/org.eclipse.team.tests.cvs.core/html/00044.html
    tests/org.eclipse.team.tests.cvs.core/html/00045.html
    tests/org.eclipse.team.tests.cvs.core/html/00046.html
    tests/org.eclipse.team.tests.cvs.core/html/00047.html
    tests/org.eclipse.team.tests.cvs.core/html/00048.html
    tests/org.eclipse.team.tests.cvs.core/html/00049.html
    tests/org.eclipse.team.tests.cvs.core/html/00050.html
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Core Tests.launch
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS UI Tests.launch
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/One CVS Test.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/AllCoreTests.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/CVSTestLogListener.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/CVSUITestSetup.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/TestsUserAuthenticator.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/ConcurrencyTests.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/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/CVSCompareSubscriberTest.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/core/subscriber/SyncInfoSource.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncSetTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestCommitOperation.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMergeUpdateOperation.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndUpdateOperation.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestUpdateOperation.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/AllUITests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSOperationTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CheckoutOperationTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MenuEnablementTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MiscOperationsTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java
    tests/org.eclipse.team.tests.cvs.core/test.xml
    tests/org.eclipse.team.tests.cvs.core/toc.xml
diff --git a/bundles/org.eclipse.compare/.classpath b/bundles/org.eclipse.compare/.classpath
deleted file mode 100644
index 3e86ace..0000000
--- a/bundles/org.eclipse.compare/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="compare"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<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 f0d1e74..0000000
--- a/bundles/org.eclipse.compare/.project
+++ /dev/null
@@ -1,37 +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.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.jface.text</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.ui.ide</project>
-		<project>org.eclipse.ui.views</project>
-		<project>org.eclipse.ui.workbench.texteditor</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 22bed07..0000000
--- a/bundles/org.eclipse.compare/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 5ed81e3..0000000
--- a/bundles/org.eclipse.compare/buildnotes_compare.html
+++ /dev/null
@@ -1,1472 +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 March 23rd 2004 (M8)
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20914">#20914</a>: Colorized Diff/compare output<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=55348">#55348</a>: NPE in TextMergeViewer.interpolate<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 9th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=53754">#53754</a>: Provide a resize affordance in the side by side compare part<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 2th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=42731">#42731</a>: Synchronize horizontal scrolling in compare editor<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2278">#2278</a>: DCR: Would like coupled horizontal scrolling in compare browser (1GEJNHO)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=53368">#53368</a>: Layout problem with focus ring<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 17th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=51593">#51593</a>: ArrayIndexOutOfBoundsException at org.eclipse.compare.internal.patch.PatchWizard.setTargets<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=52055">#52055</a>: Method compare is broken<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 10th 2004 (M7)
-
-<h2>
-API Additions</h2>
-Added new interface IEncodedStreamContentAccessor; deprecated IStreamContentAccessorExtension2<br>
-Added first cut of outline view support.
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 27th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=50565">#50565</a>: [Preferences] Pref page Workbench/Compare/Patch; no mnemonic for "Filtered Members"<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 13th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=49695">#49695</a>: Apply Patch wizard is leaking 7 Images<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=49803">#49803</a>: Replace with local history leaks 2 images<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 6th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32329">#32329</a>: Support filters for compare<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 18th (M6) 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=47866">#47866</a>: Internal error in synchronize perspective<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=45239">#45239</a>: Show ancestor for incoming and outgoing changes<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=41815">#41815</a>: Internal error comparing with repository<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=46709">#46709</a>: PatchWizard should use scheduling rule on project<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input November 25th 2003
-
-<h2>
-Problem reports fixed</h2>
-removed use of deprecated symbols
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input November 19th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=46805">#46805</a>: prepare Compare for encoding support<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=46877">#46877</a>: Remove dependancies on Xerces<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=46977">#46977</a>: Comparing/merging two local files screws up the content<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input August 26th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=40727">#40727</a>: Allow navigation workflow control from other view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38770">#38770</a>: CompareEditor should implement IReusableEditor<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=39757">#39757</a>: Some compare operations fail on resources that do not exist<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=35380">#35380</a>: Replace with Local History and read-only resources<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input July 15th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38836">#38836</a>: CompareEditorInput clears dirty state too quickly<br>
-<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 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 2c1f7b7..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-				// NeedWork
-			}
-		}
-		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 4894d83..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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$
-	/**
-	 * Name of the use outline view property (value <code>"USE_OUTLINE_VIEW"</code>).
-	 * @since 3.0
-	 */
-	public static final String USE_OUTLINE_VIEW= "USE_OUTLINE_VIEW"; //$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 180fbb8..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
+++ /dev/null
@@ -1,791 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 class 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;
-	boolean fUseOutlineView= false;
-
-	/**
-	 * 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);
-		
-		Object object= fCompareConfiguration.getProperty(CompareConfiguration.USE_OUTLINE_VIEW);
-		if (object instanceof Boolean)
-			fUseOutlineView= ((Boolean) object).booleanValue();
-
-		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 (ICompareNavigator.class.equals(adapter) || 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);
-				
-		Control outline= null;
-		if (!fUseOutlineView)
-			outline= createOutlineContents(fComposite, SWT.HORIZONTAL);
-					
-		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;
-			}
-		};
-		if (fFocusPane == null)
-			fFocusPane= fContentInputPane;
-		if (outline != null)
-			fComposite.setVisible(outline, false);
-		fComposite.setVisible(fContentInputPane, true);
-		
-		if (fStructureInputPane != null)
-			fComposite.setWeights(new int[] { 30, 70 });
-		
-		fComposite.layout();
-
-		if (fStructureInputPane != null && fInput instanceof ICompareInput) {
-			fStructureInputPane.setInput(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;
-	}
-	
-	/**
-	 * @param parent the parent control under which the control must be created
-	 * @return the SWT control hierarchy for the outline part of the compare editor
-	 * @since 3.0
-	 */
-	public Control createOutlineContents(Composite parent, int direction) {
-		final Splitter h= new Splitter(parent, direction);
-
-		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);
-		
-		// 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 (fUseOutlineView) {
-			if (fInput instanceof ICompareInput) {
-				fStructureInputPane.setInput(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 h;
-	}
-
-	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) {
-		if (listener != null)
-			fListenerList.add(listener);
-	}
-
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.removeListener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		if (listener != null)
-			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 fab9362..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.IReusableEditor;
-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, null);
-	}
-	
-	/**
-	 * Performs the comparison described by the given input and
-	 * shows the result in the given editor.
-	 *
-	 * @param input the input on which to open the compare editor
-	 * @param editor the compare editor to reuse or null to create a new one
-	 * @since 3.0
-	 */
-	public static void reuseCompareEditor(CompareEditorInput input, IReusableEditor editor) {
-		CompareUIPlugin plugin= CompareUIPlugin.getDefault();
-		if (plugin != null)
-			plugin.openCompareEditor(input, null, editor);
-	}
-			
-	/**
-	 * 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 43033a2..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 0011f2e..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 2eb990a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
+++ /dev/null
@@ -1,1142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.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 {
-							fContent= Utilities.readString(sca);
-						} catch (CoreException ex) {
-							// NeedWork
-						}
-					}
-				}
-				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);
-	}
-	
-	private CompareConfiguration getCompareConfiguration() {
-		if (fCompareConfiguration == null) {
-			fCompareConfiguration= new CompareConfiguration();
-			fCompareConfiguration.setLeftEditable(false);
-			fCompareConfiguration.setRightEditable(false);
-		}
-		return fCompareConfiguration;
-	}
-		
-	/**
-	 * 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)
-				getCompareConfiguration().setRightLabel(targetLabel);
-			else
-				getCompareConfiguration().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) {
-			if (fTimeImage == null) {
-				String iconName= Utilities.getString(fBundle, "timeIcon", "obj16/resource_obj.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-				ImageDescriptor id= CompareUIPlugin.getImageDescriptor(iconName);
-				if (id != null)
-					fTimeImage= id.createImage();
-			}
-			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 (fCompareConfiguration != null) {
-						fCompareConfiguration.dispose();
-						fCompareConfiguration= null;
-					}
-					if (fDateImage != null) {
-						fDateImage.dispose();
-						fDateImage= null;
-					}
-					if (fTimeImage != null) {
-						fTimeImage.dispose();						
-						fTimeImage= null;
-					}
-				}
-			}
-		);
-		
-		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, getCompareConfiguration());
-						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, getCompareConfiguration());	
-			}
-		};
-		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= 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);
-			if (fDateImage == null) {
-				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();
-			}
-			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 {
-				getCompareConfiguration();
-				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 8a348e1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 IEncodedStreamContentAccessor, 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());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.compare.IEncodedStreamContentAccessor#getCharset()
-	 */
-	public String getCharset() throws CoreException {
-		return fFileState.getCharset();
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ICompareNavigator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/ICompareNavigator.java
deleted file mode 100644
index d0d3e06..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ICompareNavigator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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;
-
-/**
- * A <code>ICompareNavigator</code> is used to navigate through the individual
- * differences of a <code>CompareEditorInput</code>.
- * <p>
- * Please note: the following might change before the final release of Eclipse 3.0.
- * You can retrieve an object implementing the <code>ICompareNavigator</code> from a
- * <code>CompareEditorInput</code> by calling <code>getAdapter(ICompareNavigator)</code>
- * on the <code>CompareEditorInput</code>.
- * </p>
- * @since 3.0
- */
-public interface ICompareNavigator {
-	
-	/**
-	 * Starting from the current selection <code>selectChange</code> selects and reveals the next (previous) change.
-	 * If the end (or beginning) is reached, the method returns <code>true</code>.
-	 * 
-	 * @param next if <code>true</code> the next change is selected, otherwise the previous change
-	 * @return returns <code>true</code> if end (beginning) is reached, <code>false</code> otherwise
-	 */
-	public boolean selectChange(boolean next);
-}
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 16aa27c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 55641c9..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 a972a0a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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/IEncodedStreamContentAccessor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/IEncodedStreamContentAccessor.java
deleted file mode 100644
index 1d0f3e2..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IEncodedStreamContentAccessor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.runtime.CoreException;
-
-/**
- * Extension for <code>IStreamContentAccessor</code>. Extends the original
- * concept of a <code>IStreamContentAccessor</code> to answer the Charset (encoding) used for the stream.
- * <p>
- * <b>Note</b>: This interface is part of early access API that may well 
- * change in incompatible ways until reach their finished form. 
- * </p>
- * @since 3.0
- */
-public interface IEncodedStreamContentAccessor extends IStreamContentAccessor {
-	
-	/**
-	 * Returns the name of a charset encoding to be used when decoding this 
-	 * stream accessor's contents into characters. Returns <code>null</code> if a proper 
-	 * encoding cannot be determined.
-	 *
-	 * @return the name of a charset, or <code>null</code>
-	 * @exception CoreException if an error happens while determining 
-	 * the charset. See any refinements for more information.
-	 * @see IStreamContentAccessor#getContents
-	 * @since 3.0
-	 */
-	String getCharset() throws CoreException;
-}
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 1ddeb2b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 f4ed521..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 453bc6a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 6717c8d..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 91433c8..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 c3bf524..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.compare.internal.CompareMessages;
-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(ICompareNavigator.class);
-			if (adapter instanceof ICompareNavigator) {
-				boolean atEnd= ((ICompareNavigator)adapter).selectChange(fNext);
-				Shell shell= CompareUIPlugin.getShell();
-				if (atEnd && shell != null) {
-					
-					Display display= shell.getDisplay();
-					if (display != null)
-						display.beep();
-
-					String title;
-					String message;
-					if (fNext) {
-						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(shell, title, message);
-				}
-			}
-		}
-	}
-	
-	/**
-	 * 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 39a88a9..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.internal.Utilities;
-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 IEncodedStreamContentAccessor, 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) {
-					// NeedWork
-				}
-			}
-		}
-		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) {
-			InputStream is= null;
-			IStorage storage= (IStorage) fResource;
-			try {
-				is= storage.getContents();
-			} catch (CoreException e) {
-				if (e.getStatus().getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
-					fResource.refreshLocal(IResource.DEPTH_INFINITE, null);
-					is= storage.getContents();
-				} else
-					throw e;
-			}
-			if (is != null)
-				return new BufferedInputStream(is);
-		}
-		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;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.compare.IEncodedStreamContentAccessor#getCharset()
-	 */
-	public String getCharset() {
-		return Utilities.getCharset(fResource);
-	}
-}
-
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 d6c60c7..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 8f06ebc..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-import java.util.zip.*;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * 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) {
-				if (CompareUIPlugin.filter(path, false, true))
-					return null;
-				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) {
-				if (path.length() > 0 && CompareUIPlugin.filter(path, true, true))
-					return 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) {
-				// NeedWork
-			}
-		}
-
-		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) {
-				// silently ignored
-			}
-		}
-
-		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 48b1591..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
+++ /dev/null
@@ -1,1038 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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);
-			updateCursor(c, dir);
-			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;
-	Cursor fNormalCursor;
-	private Cursor fHSashCursor;
-	private Cursor fVSashCursor;
-	private Cursor fHVSashCursor;
-
-	//---- 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);
-			
-			updateCursor(fLeftLabel, VERTICAL);
-			updateCursor(fDirectionLabel, HORIZONTAL | VERTICAL);
-			updateCursor(fRightLabel, VERTICAL);
-			
-			return;
-		}
-	}
-	
-	void updateCursor(Control c, int dir) {
-		if (!(c instanceof Sash)) {
-			Cursor cursor= null;
-			switch (dir) {
-			case VERTICAL:
-				if (fAncestorEnabled) {
-					if (fVSashCursor == null) fVSashCursor= new Cursor(c.getDisplay(), SWT.CURSOR_SIZENS);
-					cursor= fVSashCursor;
-				} else {
-					if (fNormalCursor == null) fNormalCursor= new Cursor(c.getDisplay(), SWT.CURSOR_ARROW);
-					cursor= fNormalCursor;
-				}
-				break;
-			case HORIZONTAL:
-				if (fHSashCursor == null) fHSashCursor= new Cursor(c.getDisplay(), SWT.CURSOR_SIZEWE);
-				cursor= fHSashCursor;
-				break;
-			case VERTICAL + HORIZONTAL:
-				if (fAncestorEnabled) {
-					if (fHVSashCursor == null) fHVSashCursor= new Cursor(c.getDisplay(), SWT.CURSOR_SIZEALL);
-					cursor= fHVSashCursor;
-				} else {
-					if (fHSashCursor == null) fHSashCursor= new Cursor(c.getDisplay(), SWT.CURSOR_SIZEWE);
-					cursor= fHSashCursor;
-				}
-				break;
-			}
-			if (cursor != null)
-				c.setCursor(cursor);
-		}
-	}
-
-	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= CompareViewerPane.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= CompareViewerPane.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;
-		}
-
-		if (fNormalCursor != null) {
-			fNormalCursor.dispose();
-			fNormalCursor= null;
-		}
-		if (fHSashCursor != null) {
-			fHSashCursor.dispose();
-			fHSashCursor= null;
-		}
-		if (fVSashCursor != null) {
-			fVSashCursor.dispose();
-			fVSashCursor= null;
-		}
-		if (fHVSashCursor != null) {
-			fHVSashCursor.dispose();
-			fHVSashCursor= 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 7918ba5..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 fedb531..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 90e1f01..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 43f03f1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 ebff2b8..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ /dev/null
@@ -1,4202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.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.text.MessageFormat;
-
-import java.io.UnsupportedEncodingException;
-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.ColorRegistry;
-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.IWorkbenchPartSite;
-import org.eclipse.ui.actions.ActionFactory;
-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= {
-		ActionFactory.UNDO.getId(),
-		ActionFactory.REDO.getId(),
-		ActionFactory.CUT.getId(),
-		ActionFactory.COPY.getId(),
-		ActionFactory.PASTE.getId(),
-		ActionFactory.DELETE.getId(),
-		ActionFactory.SELECT_ALL.getId(),
-		ActionFactory.SAVE.getId()
-	};
-	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$
-	
-	// the following symbolic constants must match the IDs in Compare's plugin.xml
-	private static final String INCOMING_COLOR= "INCOMING_COLOR"; //$NON-NLS-1$
-	private static final String OUTGOING_COLOR= "OUTGOING_COLOR"; //$NON-NLS-1$
-	private static final String CONFLICTING_COLOR= "CONFLICTING_COLOR"; //$NON-NLS-1$
-	private static final String RESOLVED_COLOR= "RESOLVED_COLOR"; //$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 String fLeftEncoding;
-	private String fRightEncoding;
-	
-	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) {
-					// silently ignored
-				}
-				
-				try {
-					doc.addPosition(IDocumentRange.RANGE_CATEGORY, p);
-				} catch (BadPositionCategoryException ex) {
-					// silently ignored
-				}
-				return p;
-			} catch (BadLocationException ee) {
-				// silently ignored
-			}
-			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);
-		JFaceResources.getColorRegistry().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);
-						
-		ColorRegistry registry= JFaceResources.getColorRegistry();
-		
-		RGB bg= getBackground(display);
-		SELECTED_INCOMING= registry.getRGB(INCOMING_COLOR);
-		if (SELECTED_INCOMING == null)
-			SELECTED_INCOMING= new RGB(0, 0, 255);	// BLUE
-		INCOMING= interpolate(SELECTED_INCOMING, bg, 0.6);
-		INCOMING_FILL= interpolate(SELECTED_INCOMING, bg, 0.97);
-
-		SELECTED_OUTGOING= registry.getRGB(OUTGOING_COLOR);
-		if (SELECTED_OUTGOING == null)
-			SELECTED_OUTGOING= new RGB(0, 0, 0);	// BLACK
-		OUTGOING= interpolate(SELECTED_OUTGOING, bg, 0.6);
-		OUTGOING_FILL= interpolate(SELECTED_OUTGOING, bg, 0.97);
-		
-		SELECTED_CONFLICT= registry.getRGB(CONFLICTING_COLOR);
-		if (SELECTED_CONFLICT == null)
-			SELECTED_CONFLICT= new RGB(255, 0, 0);	// RED
-		CONFLICT= interpolate(SELECTED_CONFLICT, bg, 0.6);
-		CONFLICT_FILL= interpolate(SELECTED_CONFLICT, bg, 0.97);
-	
-		RESOLVED= registry.getRGB(RESOLVED_COLOR);
-		if (RESOLVED == null)
-			RESOLVED= new RGB(0, 255, 0);	// GREEN
-				
-		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);
-			JFaceResources.getColorRegistry().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);
-		
-		hsynchViewport(fAncestor, fLeft, fRight);
-		hsynchViewport(fLeft, fAncestor, fRight);
-		hsynchViewport(fRight, fAncestor, fLeft);
-
-		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= 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.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 hsynchViewport(final TextViewer tv1, final TextViewer tv2, final TextViewer tv3) {
-		final StyledText st1= tv1.getTextWidget();
-		final StyledText st2= tv2.getTextWidget();
-		final StyledText st3= tv3.getTextWidget();
-		final ScrollBar sb1= st1.getHorizontalBar();
-		sb1.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				int max= sb1.getMaximum()-sb1.getThumb();
-				double v= 0.0;
-				if (max > 0)
-					v= (float)sb1.getSelection() / (float)max;
-				if (st2.isVisible()) {
-					ScrollBar sb2= st2.getHorizontalBar();
-					st2.setHorizontalPixel((int)((sb2.getMaximum()-sb2.getThumb()) * v));
-				}
-				if (st3.isVisible()) {
-					ScrollBar sb3= st3.getHorizontalBar();
-					st3.setHorizontalPixel((int)((sb3.getMaximum()-sb3.getThumb()) * v));
-				}
-			}
-		});
-	}
-
-	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) {
-						int SIZE= fIsCarbon ? 30 : 20;
-						r.x= cx+(RESOLVE_SIZE-SIZE)/2;
-						r.y= cy+(RESOLVE_SIZE-SIZE)/2;
-						r.width= SIZE;
-						r.height= SIZE;
-					}
-					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, fIsCarbon ? SWT.FLAT : SWT.PUSH);
-				if (fNormalCursor == null) fNormalCursor= new Cursor(canvas.getDisplay(), SWT.CURSOR_ARROW);
-				fCenterButton.setCursor(fNormalCursor);
-				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();
-		fLeftEncoding= getEncoding(left);
-
-		setDocument(fRight, 'R', right);
-		fRightLineCount= fRight.getLineCount();
-		fRightEncoding= getEncoding(right);
-		
-		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 static String getEncoding(Object o) {
-		String encoding= null;
-		if (o instanceof IEncodedStreamContentAccessor) {
-			try {
-				encoding= ((IEncodedStreamContentAccessor)o).getCharset();
-			} catch (CoreException e) {
-				// ignored
-			}
-		}
-		if (encoding == null)
-			encoding= ResourcesPlugin.getEncoding();
-		return encoding;
-	}
-	
-	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);
-				} catch (CoreException ex) {
-					// NeedWork
-				}
-	
-				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) {
-						// silently ignored
-						if (DEBUG) System.out.println("BadPositionCategoryException: " + ex);	//$NON-NLS-1$
-					} catch (BadLocationException ex) {
-						// silently ignored
-						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) {
-				// NeedWork
-			}
-			
-			oldDoc.removeDocumentListener(fDocumentListener);
-		}
-	}
-	
-	/**
-	 * Returns the contents of the underlying document as an array of bytes using the current workbench encoding.
-	 * 
-	 * @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(left ? fLeftEncoding : fRightEncoding);
-					} 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 + trim.x;
-
-		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) {
-			trim= fLeft.getTextWidget().computeTrim(0, 0, 0, 0);
-			scrollbarWidth= trim.width + 2*trim.x;
-		}
-		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) {
-				// silently ignored
-			}
-
-		}
-		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) {
-				// silently ignored
-			}
-			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) {
-					// silently ignored
-				}
-			}
-			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) {
-					// silently ignored
-				}
-			}
-		}
-		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(INCOMING_COLOR) || key.equals(OUTGOING_COLOR) || key.equals(CONFLICTING_COLOR) || key.equals(RESOLVED_COLOR)) {
-			updateColors(null);
-			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= 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) {
-					// silently ignored
-				}
-			}
-		
-			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 4916579..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties
+++ /dev/null
@@ -1,98 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 51892e4..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.viewers.ISelection;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-
-public class AddFromHistoryAction extends BaseCompareAction {
-	
-	private static final String BUNDLE_NAME= "org.eclipse.compare.internal.AddFromHistoryAction"; //$NON-NLS-1$
-
-	public AddFromHistoryAction() {
-	}
-	
-	protected boolean isEnabled(ISelection selection) {
-		return Utilities.getResources(selection).length == 1;
-	}
-
-	protected void run(ISelection selection) {
-			
-		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(selection);
-		
-		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(IResource.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 3d323f5..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java
+++ /dev/null
@@ -1,475 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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, IEncodedStreamContentAccessor, 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 getCharset() {
-			String charset= null;
-			try {
-				charset= fFileState.getCharset();
-			} catch (CoreException e) {
-				// fall through
-			}
-			if (charset == null)
-				charset= Utilities.getCharset(fFile);
-			return charset;
-		}
-		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) {
-					// NeedWork
-				}
-			}
-			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]= 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/BaseCompareAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BaseCompareAction.java
deleted file mode 100644
index 7771b93..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BaseCompareAction.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.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IActionDelegate;
-
-
-public abstract class BaseCompareAction implements IActionDelegate {
-
-	private ISelection fSelection;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	final public void run(IAction action) {
-		run(fSelection);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	final public void selectionChanged(IAction action, ISelection selection) {
-		fSelection= selection;
-		if (action != null)
-			action.setEnabled(isEnabled(fSelection));
-	}
-	
-	protected boolean isEnabled(ISelection selection) {
-		return false;
-	}
-	
-	abstract protected void run(ISelection selection);
-}
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 9a0f33a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.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.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 {
-				Utilities.close(left);
-				Utilities.close(right);			
-			}
-			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 80d36bf..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.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.*;
-
-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) {
-
-				byte[] bytes= getContent();
-				/*
-				String enc1= getEncoding();
-				String enc2= Utilities.getCharset((IFile)resource);
-				if (! enc1.equals(enc2)) {
-					try {
-						String content= new String(bytes, enc1);
-						bytes= content.getBytes(enc2);
-					} catch (UnsupportedEncodingException e) {
-						// ignore
-					}
-				}
-				*/
-				ByteArrayInputStream is= new ByteArrayInputStream(bytes);
-				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) {
-							// Silently ignored
-						}
-				}
-			}
-		}
-	}
-	
-	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) {
-				// NeedWork
-			}
-		}
-		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 d0f4d80..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 extends BaseCompareAction implements IObjectActionDelegate {
-
-	private ResourceCompareInput fInput;
-	private IWorkbenchPage fWorkbenchPage;
-
-
-	public void run(ISelection selection) {
-		if (fInput != null) {
-			fInput.setSelection(selection);
-			fInput.initializeCompareConfiguration();
-			CompareUI.openCompareEditorOnPage(fInput, fWorkbenchPage);
-			fInput= null;	// don't reuse this input!
-		}
-	}
-
-	protected boolean isEnabled(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));
-			
-			// uncomment following line to have separate outline view
-			//cc.setProperty(CompareConfiguration.USE_OUTLINE_VIEW, new Boolean(true));
-						
-			fInput= new ResourceCompareInput(cc);
-		}
-		return 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 3116aca..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.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.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) {
-				// NeedWork
-			} catch (OperationCanceledException x) {
-				// NeedWork
-			} 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 d7caece..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.views.contentoutline.IContentOutlinePage;
-
-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;
-	/** the outline page */
-	private CompareOutlinePage fOutlinePage;
-	/** enable outline */
-	
-	
-	public CompareEditor() {
-	}
-	
-	/** (non-Javadoc)
-	 * Method declared on IAdaptable
-	 */
-	public Object getAdapter(Class key) {
-		
-		if (key.equals(IContentOutlinePage.class)) {
-			Object object= getCompareConfiguration().getProperty(CompareConfiguration.USE_OUTLINE_VIEW);
-			if (object instanceof Boolean && ((Boolean)object).booleanValue()) {
-				IEditorInput input= getEditorInput();
-				if (input instanceof CompareEditorInput) {
-					fOutlinePage= new CompareOutlinePage((CompareEditorInput) input);
-					return fOutlinePage;
-				}
-			}
-		}
-		return super.getAdapter(key);
-	}
-	
-	/* 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) {
-			// NeedWork
-		} catch (OperationCanceledException x) {
-			// NeedWork
-		} 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) {
-		Object old_value= event.getOldValue();
-		Object new_value= event.getNewValue();
-		if (old_value == null || new_value == null || !old_value.equals(new_value))
-			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 254d0d3..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.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.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.*;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.actions.ActionFactory;
-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(ActionFactory.NEXT.getId(), fNext);
-			actionBars.setGlobalActionHandler(ActionFactory.PREVIOUS.getId(), fPrevious);
-
-			CompareConfiguration cc= editor.getCompareConfiguration();
-			fIgnoreWhitespace.setCompareConfiguration(cc);
-		}		
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareFilter.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareFilter.java
deleted file mode 100644
index 5d1b1ae..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareFilter.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.util.StringTokenizer;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.IStatus;
-
-
-public class CompareFilter {
-	private static final char[][] NO_CHAR_CHAR= new char[0][];
-	
-	private char[][] fExtraResourceFileFilters;
-	private String[] fExtraResourceFolderFilters;
-
-	
-	public CompareFilter() {
-	}
-
-	public boolean filter(String path0, boolean folder, boolean isArchive) {
-		if (!folder && fExtraResourceFileFilters != null) {
-			char[] name= path0.toCharArray();
-			for (int i= 0, l= fExtraResourceFileFilters.length; i < l; i++)
-				if (match(fExtraResourceFileFilters[i], name, true))
-					return true;
-		}
-		if (folder && fExtraResourceFolderFilters != null) {
-			for (int i= 0, l= fExtraResourceFolderFilters.length; i < l; i++)
-				if (fExtraResourceFolderFilters[0].equals(path0))
-					return true;
-		}
-		return false;
-	}
-
-	public static String validateResourceFilters(String text) {
-		IWorkspace workspace= ResourcesPlugin.getWorkspace();
-		String[] filters= getTokens(text, ","); //$NON-NLS-1$
-		for (int i= 0; i < filters.length; i++) {
-			String fileName= filters[i].replace('*', 'x');
-			int resourceType= IResource.FILE;
-			int lastCharacter= fileName.length() - 1;
-			if (lastCharacter >= 0 && fileName.charAt(lastCharacter) == '/') {
-				fileName= fileName.substring(0, lastCharacter);
-				resourceType= IResource.FOLDER;
-			}
-			IStatus status= workspace.validateName(fileName, resourceType);
-			if (status.matches(IStatus.ERROR)) {		
-				String format= Utilities.getString("ComparePreferencePage.filter.invalidsegment.error"); //$NON-NLS-1$
-				return MessageFormat.format(format, new String[] { status.getMessage() } );
-			}
-		}
-		return null;
-	}
-	
-	public void setFilters(String filterSequence) {
-		char[][] filters= filterSequence != null && filterSequence.length() > 0
-		? splitAndTrimOn(',', filterSequence.toCharArray())
-		: null;
-		if (filters == null) {
-			fExtraResourceFileFilters= null;
-			fExtraResourceFolderFilters= null;
-		} else {
-			int fileCount= 0, folderCount= 0;
-			for (int i= 0, l= filters.length; i < l; i++) {
-				char[] f= filters[i];
-				if (f.length == 0)
-					continue;
-				if (f[f.length - 1] == '/')
-					folderCount++;
-				else
-					fileCount++;
-			}
-			fExtraResourceFileFilters= new char[fileCount][];
-			fExtraResourceFolderFilters= new String[folderCount];
-			for (int i= 0, l= filters.length; i < l; i++) {
-				char[] f= filters[i];
-				if (f.length == 0)
-					continue;
-				if (f[f.length - 1] == '/')
-					fExtraResourceFolderFilters[--folderCount]= new String(subarray(f, 0, f.length - 1));
-				else
-					fExtraResourceFileFilters[--fileCount]= f;
-			}
-		}
-	}
-
-	/////////
-	
-	private static String[] getTokens(String text, String separator) {
-		StringTokenizer tok= new StringTokenizer(text, separator); //$NON-NLS-1$
-		int nTokens= tok.countTokens();
-		String[] res= new String[nTokens];
-		for (int i= 0; i < res.length; i++)
-			res[i]= tok.nextToken().trim();
-		return res;
-	}	
-	
-	/**
-	 * Answers true if the pattern matches the given name, false otherwise.
-	 * This char[] pattern matching accepts wild-cards '*' and '?'.
-	 * 
-	 * When not case sensitive, the pattern is assumed to already be
-	 * lowercased, the name will be lowercased character per character as
-	 * comparing. If name is null, the answer is false. If pattern is null, the
-	 * answer is true if name is not null. <br><br>For example:
-	 * <ol>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { '?', 'b', '*' } name = { 'a', 'b', 'c' , 'd' } isCaseSensitive = true result => true
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { '?', 'b', '?' } name = { 'a', 'b', 'c' , 'd' } isCaseSensitive = true result => false
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { 'b', '*' } name = { 'a', 'b', 'c' , 'd' } isCaseSensitive = true result => false
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * </ol>
-	 * 
-	 * @param pattern
-	 *            the given pattern
-	 * @param name
-	 *            the given name
-	 * @param isCaseSensitive
-	 *            flag to know whether or not the matching should be case
-	 *            sensitive
-	 * @return true if the pattern matches the given name, false otherwise
-	 */
-	private boolean match(char[] pattern, char[] name, boolean isCaseSensitive) {
-		if (name == null)
-			return false; // null name cannot match
-		if (pattern == null)
-			return true; // null pattern is equivalent to '*'
-		return match(pattern, 0, pattern.length, name, 0, name.length, isCaseSensitive);
-	}
-
-	/**
-	 * Answers true if the a sub-pattern matches the subpart of the given name,
-	 * false otherwise. char[] pattern matching, accepting wild-cards '*' and
-	 * '?'. Can match only subset of name/pattern. end positions are
-	 * non-inclusive. The subpattern is defined by the patternStart and
-	 * pattternEnd positions. When not case sensitive, the pattern is assumed
-	 * to already be lowercased, the name will be lowercased character per
-	 * character as comparing. <br><br>For example:
-	 * <ol>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { '?', 'b', '*' } patternStart = 1 patternEnd = 3 name = { 'a', 'b', 'c' , 'd' } nameStart = 1 nameEnd = 4 isCaseSensitive = true result => true
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { '?', 'b', '*' } patternStart = 1 patternEnd = 2 name = { 'a', 'b', 'c' , 'd' } nameStart = 1 nameEnd = 2 isCaseSensitive = true result => false
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * </ol>
-	 * 
-	 * @param pattern
-	 *            the given pattern
-	 * @param patternStart
-	 *            the given pattern start
-	 * @param patternEnd
-	 *            the given pattern end
-	 * @param name
-	 *            the given name
-	 * @param nameStart
-	 *            the given name start
-	 * @param nameEnd
-	 *            the given name end
-	 * @param isCaseSensitive
-	 *            flag to know if the matching should be case sensitive
-	 * @return true if the a sub-pattern matches the subpart of the given name,
-	 *         false otherwise
-	 */
-	private boolean match(char[] pattern, int patternStart, int patternEnd, char[] name, int nameStart, int nameEnd,
-			boolean isCaseSensitive) {
-		if (name == null)
-			return false; // null name cannot match
-		if (pattern == null)
-			return true; // null pattern is equivalent to '*'
-		int iPattern= patternStart;
-		int iName= nameStart;
-		if (patternEnd < 0)
-			patternEnd= pattern.length;
-		if (nameEnd < 0)
-			nameEnd= name.length;
-		/* check first segment */
-		char patternChar= 0;
-		while ((iPattern < patternEnd) && (patternChar= pattern[iPattern]) != '*') {
-			if (iName == nameEnd)
-				return false;
-			if (patternChar != (isCaseSensitive ? name[iName] : Character.toLowerCase(name[iName])) && patternChar != '?') {
-				return false;
-			}
-			iName++;
-			iPattern++;
-		}
-		/* check sequence of star+segment */
-		int segmentStart;
-		if (patternChar == '*') {
-			segmentStart= ++iPattern; // skip star
-		} else {
-			segmentStart= 0; // force iName check
-		}
-		int prefixStart= iName;
-		checkSegment : while (iName < nameEnd) {
-			if (iPattern == patternEnd) {
-				iPattern= segmentStart; // mismatch - restart current segment
-				iName= ++prefixStart;
-				continue checkSegment;
-			}
-			/* segment is ending */
-			if ((patternChar= pattern[iPattern]) == '*') {
-				segmentStart= ++iPattern; // skip start
-				if (segmentStart == patternEnd) {
-					return true;
-				}
-				prefixStart= iName;
-				continue checkSegment;
-			}
-			/* check current name character */
-			if ((isCaseSensitive ? name[iName] : Character.toLowerCase(name[iName])) != patternChar && patternChar != '?') {
-				iPattern= segmentStart; // mismatch - restart current segment
-				iName= ++prefixStart;
-				continue checkSegment;
-			}
-			iName++;
-			iPattern++;
-		}
-		return (segmentStart == patternEnd) || (iName == nameEnd && iPattern == patternEnd)
-				|| (iPattern == patternEnd - 1 && pattern[iPattern] == '*');
-	}
-
-	/**
-	 * Return a new array which is the split of the given array using the given
-	 * divider and triming each subarray to remove whitespaces equals to ' '.
-	 * <br><br>For example:
-	 * <ol>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  divider = 'b' array = { 'a' , 'b', 'b', 'a', 'b', 'a' } result => { { 'a' }, { }, { 'a' }, { 'a' } }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  divider = 'c' array = { 'a' , 'b', 'b', 'a', 'b', 'a' } result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  divider = 'b' array = { 'a' , ' ', 'b', 'b', 'a', 'b', 'a' } result => { { 'a' }, { }, { 'a' }, { 'a' } }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  divider = 'c' array = { ' ', ' ', 'a' , 'b', 'b', 'a', 'b', 'a', ' ' } result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * </ol>
-	 * 
-	 * @param divider
-	 *            the given divider
-	 * @param array
-	 *            the given array
-	 * @return a new array which is the split of the given array using the
-	 *         given divider and triming each subarray to remove whitespaces
-	 *         equals to ' '
-	 */
-	private char[][] splitAndTrimOn(char divider, char[] array) {
-		int length= array == null ? 0 : array.length;
-		if (length == 0)
-			return NO_CHAR_CHAR;
-		int wordCount= 1;
-		for (int i= 0; i < length; i++)
-			if (array[i] == divider)
-				wordCount++;
-		char[][] split= new char[wordCount][];
-		int last= 0, currentWord= 0;
-		for (int i= 0; i < length; i++) {
-			if (array[i] == divider) {
-				int start= last, end= i - 1;
-				while (start < i && array[start] == ' ')
-					start++;
-				while (end > start && array[end] == ' ')
-					end--;
-				split[currentWord]= new char[end - start + 1];
-				System.arraycopy(array, start, split[currentWord++], 0, end - start + 1);
-				last= i + 1;
-			}
-		}
-		int start= last, end= length - 1;
-		while (start < length && array[start] == ' ')
-			start++;
-		while (end > start && array[end] == ' ')
-			end--;
-		split[currentWord]= new char[end - start + 1];
-		System.arraycopy(array, start, split[currentWord++], 0, end - start + 1);
-		return split;
-	}
-
-	/**
-	 * Answers a new array which is a copy of the given array starting at the
-	 * given start and ending at the given end. The given start is inclusive
-	 * and the given end is exclusive. Answers null if start is greater than
-	 * end, if start is lower than 0 or if end is greater than the length of
-	 * the given array. If end equals -1, it is converted to the array length.
-	 * <br><br>For example:
-	 * <ol>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  array = { 'a' , 'b' } start = 0 end = 1 result => { 'a' }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  array = { 'a', 'b' } start = 0 end = -1 result => { 'a' , 'b' }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * </ol>
-	 * 
-	 * @param array
-	 *            the given array
-	 * @param start
-	 *            the given starting index
-	 * @param end
-	 *            the given ending index
-	 * @return a new array which is a copy of the given array starting at the
-	 *         given start and ending at the given end
-	 * @exception NullPointerException
-	 *                if the given array is null
-	 */
-	private char[] subarray(char[] array, int start, int end) {
-		if (end == -1)
-			end= array.length;
-		if (start > end)
-			return null;
-		if (start < 0)
-			return null;
-		if (end > array.length)
-			return null;
-		char[] result= new char[end - start];
-		System.arraycopy(array, start, result, 0, end - start);
-		return result;
-	}
-}
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 a5f2849..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.jface.viewers.Viewer;
-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 implements ICompareNavigator {
-	
-	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 boolean 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 false;
-		}
-		
-		return true;
-	}
-	
-	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/CompareOutlinePage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareOutlinePage.java
deleted file mode 100644
index bc59907..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareOutlinePage.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.IActionBars;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.compare.CompareEditorInput;
-
-/**
- */
-public class CompareOutlinePage implements IContentOutlinePage {
-
-	private Control fControl;
-	private ListenerList fListeners= new ListenerList();
-	private ISelection fSelection;
-	//private IActionBars fActionBars;
-	private CompareEditorInput fCompareEditorInput;
-	
-	CompareOutlinePage(CompareEditorInput input) {
-		fCompareEditorInput= input;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		if (fCompareEditorInput != null) {
-			fControl= fCompareEditorInput.createOutlineContents(parent, SWT.VERTICAL);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#dispose()
-	 */
-	public void dispose() {
-		if (fControl != null)
-			fControl.dispose();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#getControl()
-	 */
-	public Control getControl() {
-		return fControl;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void setActionBars(IActionBars actionBars) {
-		//fActionBars= actionBars;
-		//if (fControl != null)
-		//	fControl.setData("actionBars", actionBars);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#setFocus()
-	 */
-	public void setFocus() {
-		if (fControl != null)
-			fControl.setFocus();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		fListeners.add(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-	 */
-	public ISelection getSelection() {
-		return fSelection;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		fListeners.remove(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setSelection(ISelection selection) {
-		fSelection= selection;
-	}
-}
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 1168749..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.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.io.*;
-import java.util.*;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
-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.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.*;
-import org.eclipse.jface.util.*;
-
-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, IEncodedStreamContentAccessor {
-		static final String UTF_16= "UTF-16"; //$NON-NLS-1$
-		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(Utilities.getBytes(fContent, UTF_16));
-		}
-		public String getCharset() {
-			return UTF_16;
-		}
-	}
-
-	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$
-	public static final String PATH_FILTER= PREFIX + "PathFilter"; //$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),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PATH_FILTER),
-	};
-	
-	
-	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(PATH_FILTER, ""); //$NON-NLS-1$
-		
-		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$
-
-		// a spacer
-		new Label(composite, SWT.NONE);
-		
-		Label l= new Label(composite, SWT.WRAP);
-		l.setText(Utilities.getString("ComparePreferencePage.filter.description")); //$NON-NLS-1$
-		
-		Composite c2= new Composite(composite, SWT.NONE);
-		c2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		layout= new GridLayout(2, false);
-		layout.marginWidth= 0;
-		c2.setLayout(layout);
-		
-		l= new Label(c2, SWT.NONE);
-		l.setText(Utilities.getString("ComparePreferencePage.filter.label")); //$NON-NLS-1$
-		
-		final Text t= new Text(c2, SWT.BORDER);
-		t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		t.setText(fOverlayStore.getString(PATH_FILTER));
-		t.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					String filters= t.getText();
-					String message= CompareFilter.validateResourceFilters(filters);
-					setValid(message == null);
-					setMessage(null);
-					setErrorMessage(message);
-					fOverlayStore.setValue(PATH_FILTER, filters);
-				}
-			}
-		);
-		
-		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 54c5440..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
+++ /dev/null
@@ -1,913 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.lang.reflect.InvocationTargetException;
-import java.net.*;
-import java.util.*;
-import java.util.List;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * 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;
-	
-	private CompareFilter fFilter;
-	private IPropertyChangeListener fPropertyChangeListener;
-	
-	/**
-	 * 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) {
-							// NeedWork
-						}
-						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());
-			
-			if (fPropertyChangeListener != null) {
-				ps.removePropertyChangeListener(fPropertyChangeListener);
-				fPropertyChangeListener= null;
-			}
-		}
-		
-		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
-	 * @param page the workbench page on which to create a new compare editor
-	 * @param editor if not null the input is opened in this editor
-	 * @see CompareEditorInput
-	 */
-	public void openCompareEditor(CompareEditorInput input, IWorkbenchPage page, IReusableEditor editor) {
-		
-		if (compareResultOK(input)) {
-			
-			if (editor != null) {	// reuse the given editor
-				editor.setInput(input);
-				return;
-			}
-			
-			if (page == null)
-				page= getActivePage();
-			if (page != null) {
-				// open new CompareEditor on page
-				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) {
-							// NeedWork
-						}
-						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) {
-						// silently ignored
-					}
-				}
-			}
-			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");
-		final 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 + ">");
-					}
-				}
-			}
-			fFilter= new CompareFilter();
-			fFilter.setFilters(ps.getString(ComparePreferencePage.PATH_FILTER));
-			fPropertyChangeListener= new IPropertyChangeListener() {
-				public void propertyChange(PropertyChangeEvent event) {
-					if (ComparePreferencePage.PATH_FILTER.equals(event.getProperty()))
-						fFilter.setFilters(ps.getString(ComparePreferencePage.PATH_FILTER));
-				}
-			};
-			ps.addPropertyChangeListener(fPropertyChangeListener);
-		}
-	}
-	
-	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();
-	}
-
-	public static boolean filter(String name, boolean isFolder, boolean isArchive) {
-		CompareFilter f= getDefault().fFilter;
-		return f.filter(name, isFolder, isArchive);
-	}
-}
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 20dc15a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-				// silently ignored
-			}
-
-			if (fLength == 0)
-				fLineCount= 0;
-			else {
-				int endLine= fDocument.getNumberOfLines();
-				try {
-					endLine= fDocument.getLineOfOffset(start + fLength);
-				} catch (BadLocationException ex) {
-					// silently ignored
-				}
-				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) {
-				// silently ignored
-			}
-		}
-		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 da39a34..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.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.compare.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-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.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 extends BaseCompareAction {
-
-	/**
-	 * Implements the IStreamContentAccessor and ITypedElement protocols
-	 * for a Document.
-	 */
-	class DocumentBufferNode implements ITypedElement, IEncodedStreamContentAccessor {
-		private static final String UTF_16= "UTF-16"; //$NON-NLS-1$
-		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(Utilities.getBytes(fDocument.get(), UTF_16));
-		}
-
-		public String getCharset() {
-			return UTF_16;
-		}
-	}
-
-	private String fBundleName;
-	private boolean fReplaceMode;
-	protected boolean fPrevious= false;
-	protected String fHelpContextId;
-	
-	EditionAction(boolean replaceMode, String bundleName) {
-		fReplaceMode= replaceMode;
-		fBundleName= bundleName;
-	}
-
-	protected boolean isEnabled(ISelection selection) {
-		return Utilities.getFiles(selection).length == 1;		// we don't support multiple selection for now
-	}
-
-	protected void run(ISelection selection) {
-		IFile[] files= Utilities.getFiles(selection);
-		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;
-				
-				if (Utilities.validateResource(file, parentShell, title)) {
-					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 {
-			String text= Utilities.readString(sa);
-			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;
-	}
-}
-
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 d205e2f..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-						// NeedWork
-					}
-				}
-			}
-			
-			Image image= null;			
-			Display display= canvas.getDisplay();
-			if (stream != null) {
-				try {
-					image= new Image(display, stream);
-				} catch (SWTException ex) {
-					// silently ignored
-				}
-			}
-
-			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) {
-					// silently ignored
-				}
-			}
-		}
-	}
-	
-	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 707b2f1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-				// silently ignored
-			}
-		}
-	}
-	
-	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) {
-			// silently ignored
-		}
-		try {
-			endLine= doc.getLineOfOffset(start+length);
-		} catch(BadLocationException ex) {
-			// silently ignored
-		}
-		
-		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) {
-				// silently ignored
-			}
-		}
-		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) {
-			// silently ignored
-		}
-		
-		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) {
-				// silently ignored
-			}
-			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 a21e6a4..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 true;	// fix for #45239: Show ancestor for incoming and outgoing changes
-			//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 495a8cf..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.CompareViewerPane;
-
-/**
- * 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);
-
-		CompareViewerPane.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 9fd741d..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 fc76172..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 java.text.MessageFormat;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-
-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;
-		}
-	}
-	
-	static class FilteredBufferedResourceNode extends BufferedResourceNode {
-		FilteredBufferedResourceNode(IResource resource) {
-			super(resource);
-		}
-		protected IStructureComparator createChild(IResource child) {
-			String name= child.getName();
-			if (CompareUIPlugin.filter(name, child instanceof IContainer, false))
-				return null;
-			return new FilteredBufferedResourceNode(child);
-		}
-	}
-	
-	/**
-	 * 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 FilteredBufferedResourceNode(input);
-			
-		if (input instanceof IFile) {
-			IStructureComparator rn= new FilteredBufferedResourceNode(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 a28339b..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= fInput.getLeft();
-			fSourceViewer.setDocument(new Document(getString(left)));
-		}
-	}
-	
-	public Object getInput() {
-		return fInput;
-	}
-	
-	private String getString(Object input) {
-		
-		if (input instanceof IStreamContentAccessor) {
-			try {
-				return Utilities.readString((IStreamContentAccessor) input);
-			} catch (CoreException ex) {
-				// NeedWork
-			}
-		}
-		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 e8e70af..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-			// silently ignored
-		}
-		
-		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 183c566..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java
+++ /dev/null
@@ -1,585 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 java.util.List;
-
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.core.resources.IEncodedStorage;
-import org.eclipse.core.resources.IFile;
-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.jface.dialogs.ErrorDialog;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.ui.*;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.IEncodedStreamContentAccessor;
-import org.eclipse.compare.IStreamContentAccessor;
-
-/**
- * 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();
-	}
-	
-	private static ArrayList internalGetResources(ISelection selection, Class type) {
-		
-		ArrayList tmp= new ArrayList();
-
-		if (selection instanceof IStructuredSelection) {
-		
-			Object[] s= ((IStructuredSelection)selection).toArray();
-				
-			for (int i= 0; i < s.length; i++) {
-				
-				IResource resource= null;
-				
-				Object o= s[i];
-				if (type.isInstance(o)) {
-					resource= (IResource) o;
-						
-				} else if (o instanceof IAdaptable) {
-					IAdaptable a= (IAdaptable) o;
-					Object adapter= a.getAdapter(IResource.class);
-					if (type.isInstance(adapter))
-						resource= (IResource) adapter;
-				}
-				
-				if (resource != null && resource.isAccessible())
-					tmp.add(resource);
-			}
-		}
-		
-		return tmp;
-	}
-	
-	/**
-	 * Convenience method: extract all accessible <code>IResources</code> from given selection.
-	 * Never returns null.
-	 */
-	public static IResource[] getResources(ISelection selection) {
-		ArrayList tmp= internalGetResources(selection, IResource.class);
-		return (IResource[]) tmp.toArray(new IResource[tmp.size()]);
-	}
-	
-	/**
-	 * Convenience method: extract all accessible <code>IFiles</code> from given selection.
-	 * Never returns null.
-	 */
-	public static IFile[] getFiles(ISelection selection) {
-		ArrayList tmp= internalGetResources(selection, IFile.class);
-		return (IFile[]) tmp.toArray(new IFile[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 {
-			Utilities.close(in);
-			try {
-				bos.close();
-			} catch (IOException x) {
-				// silently ignored
-			}
-		}
-		
-		return bos.toByteArray();
-	}
-
-	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) {
-				// NeedWork
-			}
-		}
-		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) {
-				// NeedWork
-			}
-		}
-		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) {
-				// NeedWork
-			} catch (MissingResourceException x) {
-				// NeedWork
-			}
-		}
-		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;
-	}
-	*/
-	
-	/* validate edit utilities */
-	
-	/**
-	 * Status constant indicating that an validateEdit call has changed the
-	 * content of a file on disk.
-	 */
-	private static final int VALIDATE_EDIT_PROBLEM= 10004;	
-	
-	/**
-	 * Makes the given resources committable. Committable means that all
-	 * resources are writeable and that the content of the resources hasn't
-	 * changed by calling <code>validateEdit</code> for a given file on
-	 * <tt>IWorkspace</tt>.
-	 * 
-	 * @param resources the resources to be checked
-	 * @param shell the Shell passed to <code>validateEdit</code> as a context
-	 * @return returns <code>true</code> if all resources are committable, <code>false</code> otherwise
-	 * 
-	 * @see org.eclipse.core.resources.IWorkspace#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)
-	 */
-	public static boolean validateResource(IResource resource, Shell shell, String title) {
-		return validateResources(new IResource[] { resource }, shell, title);
-	}
-	
-	/**
-	 * Makes the given resources committable. Committable means that all
-	 * resources are writeable and that the content of the resources hasn't
-	 * changed by calling <code>validateEdit</code> for a given file on
-	 * <tt>IWorkspace</tt>.
-	 * 
-	 * @param resources the resources to be checked
-	 * @param shell the Shell passed to <code>validateEdit</code> as a context
-	 * @return returns <code>true</code> if all resources are committable, <code>false</code> otherwise
-	 * 
-	 * @see org.eclipse.core.resources.IWorkspace#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)
-	 */
-	public static boolean validateResources(List resources, Shell shell, String title) {
-		IResource r[]= (IResource[]) resources.toArray(new IResource[resources.size()]);
-		return validateResources(r, shell, title);
-	}
-	
-	/**
-	 * Makes the given resources committable. Committable means that all
-	 * resources are writeable and that the content of the resources hasn't
-	 * changed by calling <code>validateEdit</code> for a given file on
-	 * <tt>IWorkspace</tt>.
-	 * 
-	 * @param resources the resources to be checked
-	 * @param shell the Shell passed to <code>validateEdit</code> as a context
-	 * @return returns <code>true</code> if all resources are committable, <code>false</code> otherwise
-	 * 
-	 * @see org.eclipse.core.resources.IWorkspace#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)
-	 */
-	public static boolean validateResources(IResource[] resources, Shell shell, String title) {
-		
-		// get all readonly files
-		List readOnlyFiles= getReadonlyFiles(resources);
-		if (readOnlyFiles.size() == 0)
-			return true;
-		
-		// get timestamps of readonly files before validateEdit
-		Map oldTimeStamps= createModificationStampMap(readOnlyFiles);
-		
-		IFile[] files= (IFile[]) readOnlyFiles.toArray(new IFile[readOnlyFiles.size()]);
-		IStatus status= ResourcesPlugin.getWorkspace().validateEdit(files, shell);
-		if (! status.isOK()) {
-			String message= getString("ValidateEdit.error.unable_to_perform"); //$NON-NLS-1$
-			ErrorDialog.openError(shell, title, message, status); //$NON-NLS-1$
-			return false;
-		}
-			
-		IStatus modified= null;
-		Map newTimeStamps= createModificationStampMap(readOnlyFiles);
-		for (Iterator iter= oldTimeStamps.keySet().iterator(); iter.hasNext();) {
-			IFile file= (IFile) iter.next();
-			if (file.isReadOnly()) {
-				IStatus entry= new Status(IStatus.ERROR,
-								CompareUIPlugin.getPluginId(),
-								VALIDATE_EDIT_PROBLEM,
-								getFormattedString("ValidateEdit.error.stillReadonly", file.getFullPath().toString()), //$NON-NLS-1$
-								null);
-				modified= addStatus(modified, entry);
-			} else if (! oldTimeStamps.get(file).equals(newTimeStamps.get(file))) {
-				IStatus entry= new Status(IStatus.ERROR,
-								CompareUIPlugin.getPluginId(),
-								VALIDATE_EDIT_PROBLEM,
-								getFormattedString("ValidateEdit.error.fileModified", file.getFullPath().toString()), //$NON-NLS-1$
-								null);
-				modified= addStatus(modified, entry);
-			}
-		}
-		if (modified != null) {
-			String message= getString("ValidateEdit.error.unable_to_perform"); //$NON-NLS-1$
-			ErrorDialog.openError(shell, title, message, modified);
-			return false;
-		}
-		return true;
-	}
-	
-	private static List getReadonlyFiles(IResource[] resources) {
-		List readOnlyFiles= new ArrayList();
-		for (int i= 0; i < resources.length; i++) {
-			IResource resource= resources[i];
-			if (resource.getType() == IResource.FILE && resource.isReadOnly())	
-				readOnlyFiles.add(resource);
-		}
-		return readOnlyFiles;
-	}
-
-	private static Map createModificationStampMap(List files) {
-		Map map= new HashMap();
-		for (Iterator iter= files.iterator(); iter.hasNext(); ) {
-			IFile file= (IFile)iter.next();
-			map.put(file, new Long(file.getModificationStamp()));
-		}
-		return map;
-	}
-	
-	private static IStatus addStatus(IStatus status, IStatus entry) {
-		
-		if (status == null)
-			return entry;
-			
-		if (status.isMultiStatus()) {
-			((MultiStatus)status).add(entry);
-			return status;
-		}
-
-		MultiStatus result= new MultiStatus(CompareUIPlugin.getPluginId(),
-			VALIDATE_EDIT_PROBLEM,
-			getString("ValidateEdit.error.unable_to_perform"), null); //$NON-NLS-1$ 
-		result.add(status);
-		result.add(entry);
-		return result;
-	}
-	
-	// encoding
-	
-	/**
-	 * Returns null if an error occurred.
-	 */
-	public static String readString(InputStream is, String encoding) {
-		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, encoding));
-
-			while ((read= reader.read(part)) != -1)
-				buffer.append(part, 0, read);
-			
-			return buffer.toString();
-			
-		} catch (IOException ex) {
-			// NeedWork
-		} finally {
-			if (reader != null) {
-				try {
-					reader.close();
-				} catch (IOException ex) {
-					// silently ignored
-				}
-			}
-		}
-		return null;
-	}
-	
-	public static String getCharset(IResource resource) {
-		if (resource instanceof IEncodedStorage) {
-			try {
-				return ((IEncodedStorage)resource).getCharset();
-			} catch (CoreException ex) {
-				// fall  through
-			}
-		}
-		return ResourcesPlugin.getEncoding();
-	}
-	
-	public static byte[] getBytes(String s, String encoding) {
-		byte[] bytes= null;
-		if (s != null) {
-			try {
-				bytes= s.getBytes(encoding); //$NON-NLS-1$
-			} catch (UnsupportedEncodingException e) {
-				bytes= s.getBytes();
-			}
-		}
-		return bytes;
-	}
-
-	public static String readString(IStreamContentAccessor sa) throws CoreException {
-		InputStream is= sa.getContents();
-		String encoding= null;
-		if (sa instanceof IEncodedStreamContentAccessor)
-			encoding= ((IEncodedStreamContentAccessor)sa).getCharset();
-		if (encoding == null)
-			encoding= ResourcesPlugin.getEncoding();
-		return Utilities.readString(is, encoding);
-	}
-
-	public static void close(InputStream is) {
-		if (is != null) {
-			try {
-				is.close();
-			} catch (IOException ex) {
-				// silently ignored
-			}
-		}
-	}
-}
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 3d5dbcc..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.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.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) {
-				// NeedWork
-			}
-		}
-
-		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 08b7b95..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.window.Window;
-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.IEditorPart;
-
-import org.eclipse.compare.internal.*;
-
-
-public class CompareWithPatchAction extends BaseCompareAction {
-
-	static class PatchWizardDialog extends WizardDialog {
-	
-		PatchWizardDialog(Shell parent, IWizard wizard) {
-			super(parent, wizard);
-			
-			setShellStyle(getShellStyle() | SWT.RESIZE);
-			setMinimumPageSize(700, 500);
-		}
-	}
-	
-	protected boolean isEnabled(ISelection selection) {
-		return Utilities.getResources(selection).length == 1;
-	}
-		
-	/* (non-Javadoc)
-	 * @see org.eclipse.compare.internal.BaseCompareAction#run(org.eclipse.jface.viewers.ISelection)
-	 */
-	protected void run(ISelection selection) {
-		PatchWizard wizard= new PatchWizard(selection);
-		
-		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() == Window.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 ad5899b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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(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 9efd347..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 1aaaf2a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java
+++ /dev/null
@@ -1,524 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.compare.internal.Utilities;
-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) {
-				// silently ignored
-			}
-		}
-		
-		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(Utilities.getResources(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 d529298..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-			// silently ignored
-		}
-	}
-	
-	/* package */ List readLines() {
-		try {
-			List lines= new ArrayList();
-			String line;
-			while ((line= readLine()) != null)
-				lines.add(line);
-			return lines;
-		} catch (IOException ex) {
-			// NeedWork
-			//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 7b1b0a7..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 fc7520b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 14f0bf2..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 1ad13ef..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 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(Utilities.getResources(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);
-		}	
-	}
-	
-	Patcher getPatcher() {
-		return fPatcher;
-	}
-	
-	IResource getTarget() {
-		return fTarget;
-	}
-	
-	void setTargets(IResource[] targets) {
-		if (targets != null && targets.length > 0)
-			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(fTarget.getProject()) {
-				protected void execute(IProgressMonitor monitor) throws InvocationTargetException {
-					try {
-						fPatcher.applyAll(getTarget(), monitor, getShell(), PatchMessages.getString("PatchWizard.title")); //$NON-NLS-1$
-					} 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
-			// NeedWork: use assert!
-		}
-		
-		// 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 721db08..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
+++ /dev/null
@@ -1,1080 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.swt.widgets.Shell;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.resources.*;
-
-import org.eclipse.compare.internal.Utilities;
-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(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) {
-					// silently ignored
-				}
-			}
-			// 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, Shell shell, String title) throws CoreException {
-		
-		final int WORK_UNIT= 10;
-		
-		int i;
-		
-		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);
-		}
-		
-		// get all files to be modified in order to call validateEdit
-		List list= new ArrayList();
-		if (singleFile != null)
-			list.add(singleFile);
-		else {
-			for (i= 0; i < fDiffs.length; i++) {
-				Diff diff= fDiffs[i];
-				if (diff.isEnabled()) {
-					switch (diff.getType()) {
-					case Differencer.CHANGE:
-						list.add(createPath(container, getPath(diff)));
-						break;
-					}
-				}
-			}
-		}
-		if (! Utilities.validateResources(list, shell, title))
-			return;
-		
-		if (pm != null) {
-			String message= PatchMessages.getString("Patcher.Task.message");	//$NON-NLS-1$
-			pm.beginTask(message, fDiffs.length*WORK_UNIT);
-		}
-		
-		for (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) {
-							// NeedWork
-						}
-					}
-				}
-			}
-			
-			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, Utilities.getCharset(file));
-				} 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) {
-				// NeedWork
-			} finally {
-				if (is != null)
-					try {
-						is.close();
-					} catch(IOException ex) {
-						// silently ignored
-					}
-			}
-		}
-		
-		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(Utilities.getCharset(file));
-		} 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) {
-					// silently ignored
-				}
-		}
-	}
-
-	/**
-	 * 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 b2b0fdd..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java
+++ /dev/null
@@ -1,742 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.internal.Utilities;
-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, IEncodedStreamContentAccessor {
-		static final String UTF_16= "UTF-16"; //$NON-NLS-1$
-		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(Utilities.getBytes(fContent, UTF_16));
-		}
-		public String getCharset() {
-			return UTF_16;
-		}
-	}
-		
-	private PatchWizard fPatchWizard;
-	
-	private Tree fTree;
-	private Combo fStripPrefixSegments;
-	private CompareViewerSwitchingPane fHunkViewer;
-	private Button fIgnoreWhitespaceButton;
-	private Button fReversePatchButton;
-	private Text fFuzzField;
-	
-	private Image[] fImages= new Image[6];	
-	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();
-		
-		fImages[0]= new DiffImage(null, null, w).createImage();
-		fImages[1]= new DiffImage(null, addId, w).createImage();
-		fImages[2]= new DiffImage(null, delId, w).createImage();
-
-		fImages[3]= new DiffImage(errIm, null, w).createImage();
-		fImages[4]= new DiffImage(errIm, addId, w).createImage();
-		fImages[5]= 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 fImages[1];
-			case Differencer.DELETION:
-				return fImages[2];
-			}
-			return fImages[0];
-		}
-		switch (diff.getType()) {
-		case Differencer.ADDITION:
-			return fImages[4];
-		case Differencer.DELETION:
-			return fImages[5];
-		}
-		return fImages[3];
-	}
-	
-	Image getImage(Hunk hunk) {
-		if (hunk.fMatches)
-			return fImages[0];
-		return fImages[3];
-	}
-	
-	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);
-					}
-				}
-			}
-		);
-		fTree.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				if (fImages != null) {
-					for (int i= 0; i < fImages.length; i++) {
-						if (fImages[i] == null)
-							fImages[i].dispose();
-					}
-					fImages= 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) {
-						result[0]= guess(patcher, monitor, strip);
-					}
-				}
-			);
-			return result[0];
-		} catch (InvocationTargetException ex) {
-			// NeedWork
-		} catch (InterruptedException ex) {
-			// NeedWork
-		}
-		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) {
-				// silently ignored
-			}
-		}
-		return stripPrefixSegments;
-	}
-	
-	private int getFuzzFactor() {
-		int fuzzFactor= 0;
-		if (fFuzzField != null) {
-			String s= fFuzzField.getText();
-			try {
-				fuzzFactor= Integer.parseInt(s);
-			} catch(NumberFormatException ex) {
-				// silently ignored
-			}
-		}
-		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 3c4be7f..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 70bd1d5..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 cd9ef08..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 9a8b15d..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 5c0b051..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java
+++ /dev/null
@@ -1,542 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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= 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 4a3d44c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 82472ff..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 7c73a6c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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(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 9cccaa4..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
+++ /dev/null
@@ -1,719 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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= CompareViewerPane.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 fd835c4..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 047bb2c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
+++ /dev/null
@@ -1,526 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-			// NeedWork
-		} finally {
-			if (is1 != null) {
-				try {
-					is1.close();
-				} catch(IOException ex) {
-					// silently ignored
-				}
-			}
-			if (is2 != null) {
-				try {
-					is2.close();
-				} catch(IOException ex) {
-					// silently ignored
-				}
-			}
-		}
-		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) {
-				// NeedWork
-			}
-		}
-		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 de2c54f..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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, IEncodedStreamContentAccessor {
-
-	private static final boolean POS_UPDATE= true;
-	private static final String UTF_16= "UTF-16"; //$NON-NLS-1$
-		
-	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) {
-				// silently ignored
-			} catch (BadLocationException ex) {
-				// silently ignored
-			}
-		}
-	}
-
-	/* (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) {
-				// silently ignored
-			} catch (BadLocationException ex) {
-				// silently ignored
-			}
-		} 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) {
-					// silently ignored
-				} catch (BadLocationException ex) {
-					// silently ignored
-				}
-			} 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) {
-				// silently ignored
-			}
-		}
-	}
-	
-	/* (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, UTF_16));
-	}
-
-	/* (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 {
-					srcContents= Utilities.readString((IStreamContentAccessor)other);
-				} catch(CoreException ex) {
-					// NeedWork
-				}
-			}
-		}
-
-		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) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.compare.IStreamContentAccessor#getEncoding()
-	 */
-	public String getCharset() {
-		return UTF_16;
-	}
-}
-
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 4d93793..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 461a94a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 598996b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 f09742a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 b4bb8e0..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 2f2c391..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 9b91942..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 694484a..0000000
--- a/bundles/org.eclipse.compare/plugin.properties
+++ /dev/null
@@ -1,210 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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.filter.description= Enter member names that should be excluded from 'Compare With Each Other'.\nList is comma separated (e.g. '*.class, .project, bin/')
-ComparePreferencePage.filter.label= &Filtered Members:
-ComparePreferencePage.filter.invalidsegment.error= Filter is invalid: {0}
-
-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
-
-textCompareAppearance.label=Text Compare Appearance
-
-compareIncomingColor.label= Incoming change color
-compareIncomingColor.description= The color used to indicate an incoming change in compare and merge tools.
-compareOutgoingColor.label= Outgoing change color
-compareOutgoingColor.description= The color used to indicate an outgoing change in compare and merge tools.
-compareConflictColor.label= Conflicting change color
-compareConflictColor.description= The color used to indicate a conflicting change in compare and merge tools.
-compareResolvedColor.label= Resolved change color
-compareResolvedColor.description= The color used to indicate a resolved change in merge tools.
-
-compareFontDefiniton.label= Compare text font
-compareFontDefiniton.description= The compare text font is used by textual compare/merge tools.
-
-# 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
-
-#
-# ValidateEdit
-#
-ValidateEdit.error.unable_to_perform= Operation can\'t be performed.
-ValidateEdit.error.fileModified= File ''{0}'' has been modified since the beginning of the operation.
-ValidateEdit.error.stillReadonly= File ''{0}'' is readonly.
diff --git a/bundles/org.eclipse.compare/plugin.xml b/bundles/org.eclipse.compare/plugin.xml
deleted file mode 100644
index fb3f518..0000000
--- a/bundles/org.eclipse.compare/plugin.xml
+++ /dev/null
@@ -1,344 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.compare"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName"
-   class="org.eclipse.compare.internal.CompareUIPlugin">
-
-   <runtime>
-      <library name="compare.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.compare"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.ui.views"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
-   </requires>
-
-
-<!-- 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.themes">
-      <themeElementCategory
-            label="%textCompareAppearance.label"
-            id="org.eclipse.compare.contentmergeviewer.TextMergeViewer">
-      </themeElementCategory>
-      <colorDefinition
-            label="%compareIncomingColor.label"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            value="COLOR_BLUE"
-            id="INCOMING_COLOR">
-         <description>
-            %compareIncomingColor.description
-         </description>
-      </colorDefinition>
-      <colorDefinition
-            label="%compareOutgoingColor.label"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            value="COLOR_BLACK"
-            id="OUTGOING_COLOR">
-         <description>
-            %compareOutgoingColor.description
-         </description>
-      </colorDefinition>
-      <colorDefinition
-            label="%compareConflictColor.label"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            value="COLOR_RED"
-            id="CONFLICTING_COLOR">
-         <description>
-            %compareConflictColor.description
-         </description>
-      </colorDefinition>
-      <colorDefinition
-            label="%compareResolvedColor.label"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            value="COLOR_GREEN"
-            id="RESOLVED_COLOR">
-         <description>
-            %compareResolvedColor.description
-         </description>
-      </colorDefinition>
-      <fontDefinition
-            label="%compareFontDefiniton.label"
-            defaultsTo="org.eclipse.jface.textfont"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            id="org.eclipse.compare.contentmergeviewer.TextMergeViewer">
-          <description>
-            %compareFontDefiniton.description
-         </description>
-      </fontDefinition>
-   </extension>
-   
-   <extension
-         id="rejectedPatchMarker"
-         name="%rejectedPatchMarker.name"
-         point="org.eclipse.core.resources.markers">
-      <super
-            type="org.eclipse.core.resources.taskmarker">
-      </super>
-      <persistent
-            value="true">
-      </persistent>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%defaultCompareEditor.name"
-            icon="icons/full/cview16/compare_view.gif"
-            contributorClass="org.eclipse.compare.internal.CompareEditorContributor"
-            class="org.eclipse.compare.internal.CompareEditor"
-            id="org.eclipse.compare.CompareEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%ComparePreferencePage.name"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.compare.internal.ComparePreferencePage"
-            id="org.eclipse.compare.internal.ComparePreferencePage">
-      </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">
-      </category>
-      <command
-            name="%Command.copyRightToLeft.name"
-            description="%Command.copyRightToLeft.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.copyRightToLeft">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.copyRightToLeft"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.copyLeftToRight.name"
-            description="%Command.copyLeftToRight.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.copyLeftToRight">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.copyLeftToRight"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.copyAllRightToLeft.name"
-            description="%Command.copyAllRightToLeft.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.copyAllRightToLeft">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.copyAllRightToLeft"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.copyAllLeftToRight.name"
-            description="%Command.copyAllLeftToRight.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.copyAllLeftToRight">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.copyAllLeftToRight"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.selectNextChange.name"
-            description="%Command.selectNextChange.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.selectNextChange">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.selectNextChange"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.selectPreviousChange.name"
-            description="%Command.selectPreviousChange.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.selectPreviousChange">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.selectPreviousChange"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-   </extension>
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IResource"
-            adaptable="true"
-            id="org.eclipse.compare.CompareAction">
-         <menu
-               label="%ReplaceWithMenu.label"
-               path="additions"
-               id="replaceWithMenu">
-            <separator
-                  name="replaceWithGroup">
-            </separator>
-         </menu>
-         <menu
-               label="%CompareWithMenu.label"
-               path="additions"
-               id="compareWithMenu">
-            <separator
-                  name="compareWithGroup">
-            </separator>
-         </menu>
-         <menu
-               label="%TeamMenu.label"
-               path="additions"
-               id="team.main">
-            <separator
-                  name="group1">
-            </separator>
-         </menu>
-         <action
-               label="%CompareWithEachOtherAction.label"
-               tooltip="%CompareWithEachOtherAction.tooltip"
-               class="org.eclipse.compare.internal.CompareAction"
-               menubarPath="compareWithMenu/compareWithGroup"
-               enablesFor="2+"
-               id="compareWithEachOther">
-         </action>
-         <action
-               label="%CompareWithPatchAction.label"
-               tooltip="%CompareWithPatchAction.tooltip"
-               class="org.eclipse.compare.internal.patch.CompareWithPatchAction"
-               menubarPath="team.main/group1"
-               enablesFor="1"
-               id="compareWithPatch">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IFile"
-            adaptable="true"
-            id="org.eclipse.compare.ReplaceWithEditionAction">
-         <menu
-               label="%ReplaceWithMenu.label"
-               path="additions"
-               id="replaceWithMenu">
-            <separator
-                  name="replaceWithGroup">
-            </separator>
-         </menu>
-         <action
-               label="%ReplaceFromHistoryAction.label"
-               tooltip="%ReplaceFromHistoryAction.tooltip"
-               class="org.eclipse.compare.internal.ReplaceWithEditionAction"
-               menubarPath="replaceWithMenu/replaceWithGroup"
-               enablesFor="1"
-               id="replaceFromHistory">
-         </action>
-         <action
-               label="%ReplaceWithPreviousFromHistoryAction.label"
-               tooltip="%ReplaceWithPreviousFromHistoryAction.tooltip"
-               class="org.eclipse.compare.internal.ReplaceWithPreviousEditionAction"
-               menubarPath="replaceWithMenu/replaceWithGroup"
-               enablesFor="1"
-               id="replaceWithPreviousFromHistory">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IFile"
-            adaptable="true"
-            id="org.eclipse.compare.CompareWithEditionAction">
-         <menu
-               label="%CompareWithMenu.label"
-               path="additions"
-               id="compareWithMenu">
-            <separator
-                  name="compareWithGroup">
-            </separator>
-         </menu>
-         <action
-               label="%CompareWithHistoryAction.label"
-               tooltip="%CompareWithHistoryAction.tooltip"
-               class="org.eclipse.compare.internal.CompareWithEditionAction"
-               menubarPath="compareWithMenu/compareWithGroup"
-               enablesFor="1"
-               id="compareWithHistory">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IContainer"
-            adaptable="true"
-            id="org.eclipse.compare.AddFromHistoryAction">
-         <action
-               label="%addFromHistoryAction.label"
-               tooltip="%addFromHistoryAction.tooltip"
-               class="org.eclipse.compare.internal.AddFromHistoryAction"
-               menubarPath="replaceWithMenu"
-               enablesFor="1"
-               id="addFromHistoryAction">
-         </action>
-      </objectContribution>
-   </extension>
-   <extension
-         point="org.eclipse.compare.structureCreators">
-      <structureCreator
-            extensions="zip"
-            class="org.eclipse.compare.ZipFileStructureCreator"
-            id="org.eclipse.compare.ZipFileStructureCreator">
-      </structureCreator>
-   </extension>
-   <extension
-         point="org.eclipse.compare.contentMergeViewers">
-      <viewer
-            extensions="class,exe,dll,binary,zip,jar"
-            class="org.eclipse.compare.internal.BinaryCompareViewerCreator"
-            id="org.eclipse.compare.BinaryCompareViewerCreator">
-      </viewer>
-      <viewer
-            extensions="txt"
-            class="org.eclipse.compare.internal.TextMergeViewerCreator"
-            id="org.eclipse.compare.TextMergeViewerCreator">
-      </viewer>
-      <viewer
-            extensions="gif,jpg"
-            class="org.eclipse.compare.internal.ImageMergeViewerCreator"
-            id="org.eclipse.compare.ImageMergeViewerCreator">
-      </viewer>
-   </extension>
-   <extension
-         point="org.eclipse.compare.contentViewers">
-      <viewer
-            extensions="txt"
-            class="org.eclipse.compare.internal.TextViewerCreator"
-            id="org.eclipse.compare.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 3e86ace..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="compare"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<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 f0d1e74..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.project
+++ /dev/null
@@ -1,37 +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.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.jface.text</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.ui.ide</project>
-		<project>org.eclipse.ui.views</project>
-		<project>org.eclipse.ui.workbench.texteditor</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 22bed07..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 5ed81e3..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
+++ /dev/null
@@ -1,1472 +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 March 23rd 2004 (M8)
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20914">#20914</a>: Colorized Diff/compare output<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=55348">#55348</a>: NPE in TextMergeViewer.interpolate<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 9th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=53754">#53754</a>: Provide a resize affordance in the side by side compare part<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 2th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=42731">#42731</a>: Synchronize horizontal scrolling in compare editor<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2278">#2278</a>: DCR: Would like coupled horizontal scrolling in compare browser (1GEJNHO)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=53368">#53368</a>: Layout problem with focus ring<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 17th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=51593">#51593</a>: ArrayIndexOutOfBoundsException at org.eclipse.compare.internal.patch.PatchWizard.setTargets<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=52055">#52055</a>: Method compare is broken<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 10th 2004 (M7)
-
-<h2>
-API Additions</h2>
-Added new interface IEncodedStreamContentAccessor; deprecated IStreamContentAccessorExtension2<br>
-Added first cut of outline view support.
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 27th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=50565">#50565</a>: [Preferences] Pref page Workbench/Compare/Patch; no mnemonic for "Filtered Members"<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 13th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=49695">#49695</a>: Apply Patch wizard is leaking 7 Images<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=49803">#49803</a>: Replace with local history leaks 2 images<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 6th 2004
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32329">#32329</a>: Support filters for compare<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 18th (M6) 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=47866">#47866</a>: Internal error in synchronize perspective<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=45239">#45239</a>: Show ancestor for incoming and outgoing changes<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=41815">#41815</a>: Internal error comparing with repository<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=46709">#46709</a>: PatchWizard should use scheduling rule on project<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input November 25th 2003
-
-<h2>
-Problem reports fixed</h2>
-removed use of deprecated symbols
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input November 19th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=46805">#46805</a>: prepare Compare for encoding support<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=46877">#46877</a>: Remove dependancies on Xerces<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=46977">#46977</a>: Comparing/merging two local files screws up the content<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input August 26th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=40727">#40727</a>: Allow navigation workflow control from other view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38770">#38770</a>: CompareEditor should implement IReusableEditor<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=39757">#39757</a>: Some compare operations fail on resources that do not exist<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=35380">#35380</a>: Replace with Local History and read-only resources<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input July 15th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38836">#38836</a>: CompareEditorInput clears dirty state too quickly<br>
-<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 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 2c1f7b7..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-				// NeedWork
-			}
-		}
-		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 4894d83..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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$
-	/**
-	 * Name of the use outline view property (value <code>"USE_OUTLINE_VIEW"</code>).
-	 * @since 3.0
-	 */
-	public static final String USE_OUTLINE_VIEW= "USE_OUTLINE_VIEW"; //$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 180fbb8..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
+++ /dev/null
@@ -1,791 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 class 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;
-	boolean fUseOutlineView= false;
-
-	/**
-	 * 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);
-		
-		Object object= fCompareConfiguration.getProperty(CompareConfiguration.USE_OUTLINE_VIEW);
-		if (object instanceof Boolean)
-			fUseOutlineView= ((Boolean) object).booleanValue();
-
-		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 (ICompareNavigator.class.equals(adapter) || 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);
-				
-		Control outline= null;
-		if (!fUseOutlineView)
-			outline= createOutlineContents(fComposite, SWT.HORIZONTAL);
-					
-		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;
-			}
-		};
-		if (fFocusPane == null)
-			fFocusPane= fContentInputPane;
-		if (outline != null)
-			fComposite.setVisible(outline, false);
-		fComposite.setVisible(fContentInputPane, true);
-		
-		if (fStructureInputPane != null)
-			fComposite.setWeights(new int[] { 30, 70 });
-		
-		fComposite.layout();
-
-		if (fStructureInputPane != null && fInput instanceof ICompareInput) {
-			fStructureInputPane.setInput(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;
-	}
-	
-	/**
-	 * @param parent the parent control under which the control must be created
-	 * @return the SWT control hierarchy for the outline part of the compare editor
-	 * @since 3.0
-	 */
-	public Control createOutlineContents(Composite parent, int direction) {
-		final Splitter h= new Splitter(parent, direction);
-
-		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);
-		
-		// 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 (fUseOutlineView) {
-			if (fInput instanceof ICompareInput) {
-				fStructureInputPane.setInput(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 h;
-	}
-
-	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) {
-		if (listener != null)
-			fListenerList.add(listener);
-	}
-
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.removeListener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		if (listener != null)
-			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 fab9362..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.IReusableEditor;
-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, null);
-	}
-	
-	/**
-	 * Performs the comparison described by the given input and
-	 * shows the result in the given editor.
-	 *
-	 * @param input the input on which to open the compare editor
-	 * @param editor the compare editor to reuse or null to create a new one
-	 * @since 3.0
-	 */
-	public static void reuseCompareEditor(CompareEditorInput input, IReusableEditor editor) {
-		CompareUIPlugin plugin= CompareUIPlugin.getDefault();
-		if (plugin != null)
-			plugin.openCompareEditor(input, null, editor);
-	}
-			
-	/**
-	 * 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 43033a2..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 0011f2e..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 2eb990a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
+++ /dev/null
@@ -1,1142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.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 {
-							fContent= Utilities.readString(sca);
-						} catch (CoreException ex) {
-							// NeedWork
-						}
-					}
-				}
-				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);
-	}
-	
-	private CompareConfiguration getCompareConfiguration() {
-		if (fCompareConfiguration == null) {
-			fCompareConfiguration= new CompareConfiguration();
-			fCompareConfiguration.setLeftEditable(false);
-			fCompareConfiguration.setRightEditable(false);
-		}
-		return fCompareConfiguration;
-	}
-		
-	/**
-	 * 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)
-				getCompareConfiguration().setRightLabel(targetLabel);
-			else
-				getCompareConfiguration().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) {
-			if (fTimeImage == null) {
-				String iconName= Utilities.getString(fBundle, "timeIcon", "obj16/resource_obj.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-				ImageDescriptor id= CompareUIPlugin.getImageDescriptor(iconName);
-				if (id != null)
-					fTimeImage= id.createImage();
-			}
-			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 (fCompareConfiguration != null) {
-						fCompareConfiguration.dispose();
-						fCompareConfiguration= null;
-					}
-					if (fDateImage != null) {
-						fDateImage.dispose();
-						fDateImage= null;
-					}
-					if (fTimeImage != null) {
-						fTimeImage.dispose();						
-						fTimeImage= null;
-					}
-				}
-			}
-		);
-		
-		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, getCompareConfiguration());
-						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, getCompareConfiguration());	
-			}
-		};
-		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= 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);
-			if (fDateImage == null) {
-				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();
-			}
-			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 {
-				getCompareConfiguration();
-				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 8a348e1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 IEncodedStreamContentAccessor, 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());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.compare.IEncodedStreamContentAccessor#getCharset()
-	 */
-	public String getCharset() throws CoreException {
-		return fFileState.getCharset();
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ICompareNavigator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ICompareNavigator.java
deleted file mode 100644
index d0d3e06..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ICompareNavigator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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;
-
-/**
- * A <code>ICompareNavigator</code> is used to navigate through the individual
- * differences of a <code>CompareEditorInput</code>.
- * <p>
- * Please note: the following might change before the final release of Eclipse 3.0.
- * You can retrieve an object implementing the <code>ICompareNavigator</code> from a
- * <code>CompareEditorInput</code> by calling <code>getAdapter(ICompareNavigator)</code>
- * on the <code>CompareEditorInput</code>.
- * </p>
- * @since 3.0
- */
-public interface ICompareNavigator {
-	
-	/**
-	 * Starting from the current selection <code>selectChange</code> selects and reveals the next (previous) change.
-	 * If the end (or beginning) is reached, the method returns <code>true</code>.
-	 * 
-	 * @param next if <code>true</code> the next change is selected, otherwise the previous change
-	 * @return returns <code>true</code> if end (beginning) is reached, <code>false</code> otherwise
-	 */
-	public boolean selectChange(boolean next);
-}
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 16aa27c..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 55641c9..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 a972a0a..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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/IEncodedStreamContentAccessor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IEncodedStreamContentAccessor.java
deleted file mode 100644
index 1d0f3e2..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IEncodedStreamContentAccessor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.runtime.CoreException;
-
-/**
- * Extension for <code>IStreamContentAccessor</code>. Extends the original
- * concept of a <code>IStreamContentAccessor</code> to answer the Charset (encoding) used for the stream.
- * <p>
- * <b>Note</b>: This interface is part of early access API that may well 
- * change in incompatible ways until reach their finished form. 
- * </p>
- * @since 3.0
- */
-public interface IEncodedStreamContentAccessor extends IStreamContentAccessor {
-	
-	/**
-	 * Returns the name of a charset encoding to be used when decoding this 
-	 * stream accessor's contents into characters. Returns <code>null</code> if a proper 
-	 * encoding cannot be determined.
-	 *
-	 * @return the name of a charset, or <code>null</code>
-	 * @exception CoreException if an error happens while determining 
-	 * the charset. See any refinements for more information.
-	 * @see IStreamContentAccessor#getContents
-	 * @since 3.0
-	 */
-	String getCharset() throws CoreException;
-}
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 1ddeb2b..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 f4ed521..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 453bc6a..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 6717c8d..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 91433c8..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 c3bf524..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.compare.internal.CompareMessages;
-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(ICompareNavigator.class);
-			if (adapter instanceof ICompareNavigator) {
-				boolean atEnd= ((ICompareNavigator)adapter).selectChange(fNext);
-				Shell shell= CompareUIPlugin.getShell();
-				if (atEnd && shell != null) {
-					
-					Display display= shell.getDisplay();
-					if (display != null)
-						display.beep();
-
-					String title;
-					String message;
-					if (fNext) {
-						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(shell, title, message);
-				}
-			}
-		}
-	}
-	
-	/**
-	 * 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 39a88a9..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.internal.Utilities;
-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 IEncodedStreamContentAccessor, 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) {
-					// NeedWork
-				}
-			}
-		}
-		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) {
-			InputStream is= null;
-			IStorage storage= (IStorage) fResource;
-			try {
-				is= storage.getContents();
-			} catch (CoreException e) {
-				if (e.getStatus().getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
-					fResource.refreshLocal(IResource.DEPTH_INFINITE, null);
-					is= storage.getContents();
-				} else
-					throw e;
-			}
-			if (is != null)
-				return new BufferedInputStream(is);
-		}
-		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;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.compare.IEncodedStreamContentAccessor#getCharset()
-	 */
-	public String getCharset() {
-		return Utilities.getCharset(fResource);
-	}
-}
-
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 d6c60c7..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 8f06ebc..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-import java.util.zip.*;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * 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) {
-				if (CompareUIPlugin.filter(path, false, true))
-					return null;
-				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) {
-				if (path.length() > 0 && CompareUIPlugin.filter(path, true, true))
-					return 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) {
-				// NeedWork
-			}
-		}
-
-		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) {
-				// silently ignored
-			}
-		}
-
-		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 48b1591..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
+++ /dev/null
@@ -1,1038 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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);
-			updateCursor(c, dir);
-			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;
-	Cursor fNormalCursor;
-	private Cursor fHSashCursor;
-	private Cursor fVSashCursor;
-	private Cursor fHVSashCursor;
-
-	//---- 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);
-			
-			updateCursor(fLeftLabel, VERTICAL);
-			updateCursor(fDirectionLabel, HORIZONTAL | VERTICAL);
-			updateCursor(fRightLabel, VERTICAL);
-			
-			return;
-		}
-	}
-	
-	void updateCursor(Control c, int dir) {
-		if (!(c instanceof Sash)) {
-			Cursor cursor= null;
-			switch (dir) {
-			case VERTICAL:
-				if (fAncestorEnabled) {
-					if (fVSashCursor == null) fVSashCursor= new Cursor(c.getDisplay(), SWT.CURSOR_SIZENS);
-					cursor= fVSashCursor;
-				} else {
-					if (fNormalCursor == null) fNormalCursor= new Cursor(c.getDisplay(), SWT.CURSOR_ARROW);
-					cursor= fNormalCursor;
-				}
-				break;
-			case HORIZONTAL:
-				if (fHSashCursor == null) fHSashCursor= new Cursor(c.getDisplay(), SWT.CURSOR_SIZEWE);
-				cursor= fHSashCursor;
-				break;
-			case VERTICAL + HORIZONTAL:
-				if (fAncestorEnabled) {
-					if (fHVSashCursor == null) fHVSashCursor= new Cursor(c.getDisplay(), SWT.CURSOR_SIZEALL);
-					cursor= fHVSashCursor;
-				} else {
-					if (fHSashCursor == null) fHSashCursor= new Cursor(c.getDisplay(), SWT.CURSOR_SIZEWE);
-					cursor= fHSashCursor;
-				}
-				break;
-			}
-			if (cursor != null)
-				c.setCursor(cursor);
-		}
-	}
-
-	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= CompareViewerPane.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= CompareViewerPane.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;
-		}
-
-		if (fNormalCursor != null) {
-			fNormalCursor.dispose();
-			fNormalCursor= null;
-		}
-		if (fHSashCursor != null) {
-			fHSashCursor.dispose();
-			fHSashCursor= null;
-		}
-		if (fVSashCursor != null) {
-			fVSashCursor.dispose();
-			fVSashCursor= null;
-		}
-		if (fHVSashCursor != null) {
-			fHVSashCursor.dispose();
-			fHVSashCursor= 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 7918ba5..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 fedb531..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 90e1f01..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 43f03f1..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 ebff2b8..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ /dev/null
@@ -1,4202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.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.text.MessageFormat;
-
-import java.io.UnsupportedEncodingException;
-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.ColorRegistry;
-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.IWorkbenchPartSite;
-import org.eclipse.ui.actions.ActionFactory;
-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= {
-		ActionFactory.UNDO.getId(),
-		ActionFactory.REDO.getId(),
-		ActionFactory.CUT.getId(),
-		ActionFactory.COPY.getId(),
-		ActionFactory.PASTE.getId(),
-		ActionFactory.DELETE.getId(),
-		ActionFactory.SELECT_ALL.getId(),
-		ActionFactory.SAVE.getId()
-	};
-	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$
-	
-	// the following symbolic constants must match the IDs in Compare's plugin.xml
-	private static final String INCOMING_COLOR= "INCOMING_COLOR"; //$NON-NLS-1$
-	private static final String OUTGOING_COLOR= "OUTGOING_COLOR"; //$NON-NLS-1$
-	private static final String CONFLICTING_COLOR= "CONFLICTING_COLOR"; //$NON-NLS-1$
-	private static final String RESOLVED_COLOR= "RESOLVED_COLOR"; //$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 String fLeftEncoding;
-	private String fRightEncoding;
-	
-	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) {
-					// silently ignored
-				}
-				
-				try {
-					doc.addPosition(IDocumentRange.RANGE_CATEGORY, p);
-				} catch (BadPositionCategoryException ex) {
-					// silently ignored
-				}
-				return p;
-			} catch (BadLocationException ee) {
-				// silently ignored
-			}
-			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);
-		JFaceResources.getColorRegistry().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);
-						
-		ColorRegistry registry= JFaceResources.getColorRegistry();
-		
-		RGB bg= getBackground(display);
-		SELECTED_INCOMING= registry.getRGB(INCOMING_COLOR);
-		if (SELECTED_INCOMING == null)
-			SELECTED_INCOMING= new RGB(0, 0, 255);	// BLUE
-		INCOMING= interpolate(SELECTED_INCOMING, bg, 0.6);
-		INCOMING_FILL= interpolate(SELECTED_INCOMING, bg, 0.97);
-
-		SELECTED_OUTGOING= registry.getRGB(OUTGOING_COLOR);
-		if (SELECTED_OUTGOING == null)
-			SELECTED_OUTGOING= new RGB(0, 0, 0);	// BLACK
-		OUTGOING= interpolate(SELECTED_OUTGOING, bg, 0.6);
-		OUTGOING_FILL= interpolate(SELECTED_OUTGOING, bg, 0.97);
-		
-		SELECTED_CONFLICT= registry.getRGB(CONFLICTING_COLOR);
-		if (SELECTED_CONFLICT == null)
-			SELECTED_CONFLICT= new RGB(255, 0, 0);	// RED
-		CONFLICT= interpolate(SELECTED_CONFLICT, bg, 0.6);
-		CONFLICT_FILL= interpolate(SELECTED_CONFLICT, bg, 0.97);
-	
-		RESOLVED= registry.getRGB(RESOLVED_COLOR);
-		if (RESOLVED == null)
-			RESOLVED= new RGB(0, 255, 0);	// GREEN
-				
-		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);
-			JFaceResources.getColorRegistry().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);
-		
-		hsynchViewport(fAncestor, fLeft, fRight);
-		hsynchViewport(fLeft, fAncestor, fRight);
-		hsynchViewport(fRight, fAncestor, fLeft);
-
-		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= 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.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 hsynchViewport(final TextViewer tv1, final TextViewer tv2, final TextViewer tv3) {
-		final StyledText st1= tv1.getTextWidget();
-		final StyledText st2= tv2.getTextWidget();
-		final StyledText st3= tv3.getTextWidget();
-		final ScrollBar sb1= st1.getHorizontalBar();
-		sb1.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				int max= sb1.getMaximum()-sb1.getThumb();
-				double v= 0.0;
-				if (max > 0)
-					v= (float)sb1.getSelection() / (float)max;
-				if (st2.isVisible()) {
-					ScrollBar sb2= st2.getHorizontalBar();
-					st2.setHorizontalPixel((int)((sb2.getMaximum()-sb2.getThumb()) * v));
-				}
-				if (st3.isVisible()) {
-					ScrollBar sb3= st3.getHorizontalBar();
-					st3.setHorizontalPixel((int)((sb3.getMaximum()-sb3.getThumb()) * v));
-				}
-			}
-		});
-	}
-
-	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) {
-						int SIZE= fIsCarbon ? 30 : 20;
-						r.x= cx+(RESOLVE_SIZE-SIZE)/2;
-						r.y= cy+(RESOLVE_SIZE-SIZE)/2;
-						r.width= SIZE;
-						r.height= SIZE;
-					}
-					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, fIsCarbon ? SWT.FLAT : SWT.PUSH);
-				if (fNormalCursor == null) fNormalCursor= new Cursor(canvas.getDisplay(), SWT.CURSOR_ARROW);
-				fCenterButton.setCursor(fNormalCursor);
-				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();
-		fLeftEncoding= getEncoding(left);
-
-		setDocument(fRight, 'R', right);
-		fRightLineCount= fRight.getLineCount();
-		fRightEncoding= getEncoding(right);
-		
-		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 static String getEncoding(Object o) {
-		String encoding= null;
-		if (o instanceof IEncodedStreamContentAccessor) {
-			try {
-				encoding= ((IEncodedStreamContentAccessor)o).getCharset();
-			} catch (CoreException e) {
-				// ignored
-			}
-		}
-		if (encoding == null)
-			encoding= ResourcesPlugin.getEncoding();
-		return encoding;
-	}
-	
-	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);
-				} catch (CoreException ex) {
-					// NeedWork
-				}
-	
-				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) {
-						// silently ignored
-						if (DEBUG) System.out.println("BadPositionCategoryException: " + ex);	//$NON-NLS-1$
-					} catch (BadLocationException ex) {
-						// silently ignored
-						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) {
-				// NeedWork
-			}
-			
-			oldDoc.removeDocumentListener(fDocumentListener);
-		}
-	}
-	
-	/**
-	 * Returns the contents of the underlying document as an array of bytes using the current workbench encoding.
-	 * 
-	 * @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(left ? fLeftEncoding : fRightEncoding);
-					} 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 + trim.x;
-
-		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) {
-			trim= fLeft.getTextWidget().computeTrim(0, 0, 0, 0);
-			scrollbarWidth= trim.width + 2*trim.x;
-		}
-		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) {
-				// silently ignored
-			}
-
-		}
-		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) {
-				// silently ignored
-			}
-			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) {
-					// silently ignored
-				}
-			}
-			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) {
-					// silently ignored
-				}
-			}
-		}
-		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(INCOMING_COLOR) || key.equals(OUTGOING_COLOR) || key.equals(CONFLICTING_COLOR) || key.equals(RESOLVED_COLOR)) {
-			updateColors(null);
-			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= 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) {
-					// silently ignored
-				}
-			}
-		
-			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 4916579..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, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 51892e4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.viewers.ISelection;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-
-public class AddFromHistoryAction extends BaseCompareAction {
-	
-	private static final String BUNDLE_NAME= "org.eclipse.compare.internal.AddFromHistoryAction"; //$NON-NLS-1$
-
-	public AddFromHistoryAction() {
-	}
-	
-	protected boolean isEnabled(ISelection selection) {
-		return Utilities.getResources(selection).length == 1;
-	}
-
-	protected void run(ISelection selection) {
-			
-		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(selection);
-		
-		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(IResource.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 3d323f5..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java
+++ /dev/null
@@ -1,475 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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, IEncodedStreamContentAccessor, 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 getCharset() {
-			String charset= null;
-			try {
-				charset= fFileState.getCharset();
-			} catch (CoreException e) {
-				// fall through
-			}
-			if (charset == null)
-				charset= Utilities.getCharset(fFile);
-			return charset;
-		}
-		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) {
-					// NeedWork
-				}
-			}
-			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]= 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/BaseCompareAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BaseCompareAction.java
deleted file mode 100644
index 7771b93..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BaseCompareAction.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.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IActionDelegate;
-
-
-public abstract class BaseCompareAction implements IActionDelegate {
-
-	private ISelection fSelection;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	final public void run(IAction action) {
-		run(fSelection);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	final public void selectionChanged(IAction action, ISelection selection) {
-		fSelection= selection;
-		if (action != null)
-			action.setEnabled(isEnabled(fSelection));
-	}
-	
-	protected boolean isEnabled(ISelection selection) {
-		return false;
-	}
-	
-	abstract protected void run(ISelection selection);
-}
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 9a0f33a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.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.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 {
-				Utilities.close(left);
-				Utilities.close(right);			
-			}
-			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 80d36bf..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.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.*;
-
-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) {
-
-				byte[] bytes= getContent();
-				/*
-				String enc1= getEncoding();
-				String enc2= Utilities.getCharset((IFile)resource);
-				if (! enc1.equals(enc2)) {
-					try {
-						String content= new String(bytes, enc1);
-						bytes= content.getBytes(enc2);
-					} catch (UnsupportedEncodingException e) {
-						// ignore
-					}
-				}
-				*/
-				ByteArrayInputStream is= new ByteArrayInputStream(bytes);
-				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) {
-							// Silently ignored
-						}
-				}
-			}
-		}
-	}
-	
-	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) {
-				// NeedWork
-			}
-		}
-		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 d0f4d80..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 extends BaseCompareAction implements IObjectActionDelegate {
-
-	private ResourceCompareInput fInput;
-	private IWorkbenchPage fWorkbenchPage;
-
-
-	public void run(ISelection selection) {
-		if (fInput != null) {
-			fInput.setSelection(selection);
-			fInput.initializeCompareConfiguration();
-			CompareUI.openCompareEditorOnPage(fInput, fWorkbenchPage);
-			fInput= null;	// don't reuse this input!
-		}
-	}
-
-	protected boolean isEnabled(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));
-			
-			// uncomment following line to have separate outline view
-			//cc.setProperty(CompareConfiguration.USE_OUTLINE_VIEW, new Boolean(true));
-						
-			fInput= new ResourceCompareInput(cc);
-		}
-		return 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 3116aca..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.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.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) {
-				// NeedWork
-			} catch (OperationCanceledException x) {
-				// NeedWork
-			} 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 d7caece..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.views.contentoutline.IContentOutlinePage;
-
-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;
-	/** the outline page */
-	private CompareOutlinePage fOutlinePage;
-	/** enable outline */
-	
-	
-	public CompareEditor() {
-	}
-	
-	/** (non-Javadoc)
-	 * Method declared on IAdaptable
-	 */
-	public Object getAdapter(Class key) {
-		
-		if (key.equals(IContentOutlinePage.class)) {
-			Object object= getCompareConfiguration().getProperty(CompareConfiguration.USE_OUTLINE_VIEW);
-			if (object instanceof Boolean && ((Boolean)object).booleanValue()) {
-				IEditorInput input= getEditorInput();
-				if (input instanceof CompareEditorInput) {
-					fOutlinePage= new CompareOutlinePage((CompareEditorInput) input);
-					return fOutlinePage;
-				}
-			}
-		}
-		return super.getAdapter(key);
-	}
-	
-	/* 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) {
-			// NeedWork
-		} catch (OperationCanceledException x) {
-			// NeedWork
-		} 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) {
-		Object old_value= event.getOldValue();
-		Object new_value= event.getNewValue();
-		if (old_value == null || new_value == null || !old_value.equals(new_value))
-			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 254d0d3..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.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.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.*;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.actions.ActionFactory;
-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(ActionFactory.NEXT.getId(), fNext);
-			actionBars.setGlobalActionHandler(ActionFactory.PREVIOUS.getId(), fPrevious);
-
-			CompareConfiguration cc= editor.getCompareConfiguration();
-			fIgnoreWhitespace.setCompareConfiguration(cc);
-		}		
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareFilter.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareFilter.java
deleted file mode 100644
index 5d1b1ae..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareFilter.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.util.StringTokenizer;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.IStatus;
-
-
-public class CompareFilter {
-	private static final char[][] NO_CHAR_CHAR= new char[0][];
-	
-	private char[][] fExtraResourceFileFilters;
-	private String[] fExtraResourceFolderFilters;
-
-	
-	public CompareFilter() {
-	}
-
-	public boolean filter(String path0, boolean folder, boolean isArchive) {
-		if (!folder && fExtraResourceFileFilters != null) {
-			char[] name= path0.toCharArray();
-			for (int i= 0, l= fExtraResourceFileFilters.length; i < l; i++)
-				if (match(fExtraResourceFileFilters[i], name, true))
-					return true;
-		}
-		if (folder && fExtraResourceFolderFilters != null) {
-			for (int i= 0, l= fExtraResourceFolderFilters.length; i < l; i++)
-				if (fExtraResourceFolderFilters[0].equals(path0))
-					return true;
-		}
-		return false;
-	}
-
-	public static String validateResourceFilters(String text) {
-		IWorkspace workspace= ResourcesPlugin.getWorkspace();
-		String[] filters= getTokens(text, ","); //$NON-NLS-1$
-		for (int i= 0; i < filters.length; i++) {
-			String fileName= filters[i].replace('*', 'x');
-			int resourceType= IResource.FILE;
-			int lastCharacter= fileName.length() - 1;
-			if (lastCharacter >= 0 && fileName.charAt(lastCharacter) == '/') {
-				fileName= fileName.substring(0, lastCharacter);
-				resourceType= IResource.FOLDER;
-			}
-			IStatus status= workspace.validateName(fileName, resourceType);
-			if (status.matches(IStatus.ERROR)) {		
-				String format= Utilities.getString("ComparePreferencePage.filter.invalidsegment.error"); //$NON-NLS-1$
-				return MessageFormat.format(format, new String[] { status.getMessage() } );
-			}
-		}
-		return null;
-	}
-	
-	public void setFilters(String filterSequence) {
-		char[][] filters= filterSequence != null && filterSequence.length() > 0
-		? splitAndTrimOn(',', filterSequence.toCharArray())
-		: null;
-		if (filters == null) {
-			fExtraResourceFileFilters= null;
-			fExtraResourceFolderFilters= null;
-		} else {
-			int fileCount= 0, folderCount= 0;
-			for (int i= 0, l= filters.length; i < l; i++) {
-				char[] f= filters[i];
-				if (f.length == 0)
-					continue;
-				if (f[f.length - 1] == '/')
-					folderCount++;
-				else
-					fileCount++;
-			}
-			fExtraResourceFileFilters= new char[fileCount][];
-			fExtraResourceFolderFilters= new String[folderCount];
-			for (int i= 0, l= filters.length; i < l; i++) {
-				char[] f= filters[i];
-				if (f.length == 0)
-					continue;
-				if (f[f.length - 1] == '/')
-					fExtraResourceFolderFilters[--folderCount]= new String(subarray(f, 0, f.length - 1));
-				else
-					fExtraResourceFileFilters[--fileCount]= f;
-			}
-		}
-	}
-
-	/////////
-	
-	private static String[] getTokens(String text, String separator) {
-		StringTokenizer tok= new StringTokenizer(text, separator); //$NON-NLS-1$
-		int nTokens= tok.countTokens();
-		String[] res= new String[nTokens];
-		for (int i= 0; i < res.length; i++)
-			res[i]= tok.nextToken().trim();
-		return res;
-	}	
-	
-	/**
-	 * Answers true if the pattern matches the given name, false otherwise.
-	 * This char[] pattern matching accepts wild-cards '*' and '?'.
-	 * 
-	 * When not case sensitive, the pattern is assumed to already be
-	 * lowercased, the name will be lowercased character per character as
-	 * comparing. If name is null, the answer is false. If pattern is null, the
-	 * answer is true if name is not null. <br><br>For example:
-	 * <ol>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { '?', 'b', '*' } name = { 'a', 'b', 'c' , 'd' } isCaseSensitive = true result => true
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { '?', 'b', '?' } name = { 'a', 'b', 'c' , 'd' } isCaseSensitive = true result => false
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { 'b', '*' } name = { 'a', 'b', 'c' , 'd' } isCaseSensitive = true result => false
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * </ol>
-	 * 
-	 * @param pattern
-	 *            the given pattern
-	 * @param name
-	 *            the given name
-	 * @param isCaseSensitive
-	 *            flag to know whether or not the matching should be case
-	 *            sensitive
-	 * @return true if the pattern matches the given name, false otherwise
-	 */
-	private boolean match(char[] pattern, char[] name, boolean isCaseSensitive) {
-		if (name == null)
-			return false; // null name cannot match
-		if (pattern == null)
-			return true; // null pattern is equivalent to '*'
-		return match(pattern, 0, pattern.length, name, 0, name.length, isCaseSensitive);
-	}
-
-	/**
-	 * Answers true if the a sub-pattern matches the subpart of the given name,
-	 * false otherwise. char[] pattern matching, accepting wild-cards '*' and
-	 * '?'. Can match only subset of name/pattern. end positions are
-	 * non-inclusive. The subpattern is defined by the patternStart and
-	 * pattternEnd positions. When not case sensitive, the pattern is assumed
-	 * to already be lowercased, the name will be lowercased character per
-	 * character as comparing. <br><br>For example:
-	 * <ol>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { '?', 'b', '*' } patternStart = 1 patternEnd = 3 name = { 'a', 'b', 'c' , 'd' } nameStart = 1 nameEnd = 4 isCaseSensitive = true result => true
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  pattern = { '?', 'b', '*' } patternStart = 1 patternEnd = 2 name = { 'a', 'b', 'c' , 'd' } nameStart = 1 nameEnd = 2 isCaseSensitive = true result => false
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * </ol>
-	 * 
-	 * @param pattern
-	 *            the given pattern
-	 * @param patternStart
-	 *            the given pattern start
-	 * @param patternEnd
-	 *            the given pattern end
-	 * @param name
-	 *            the given name
-	 * @param nameStart
-	 *            the given name start
-	 * @param nameEnd
-	 *            the given name end
-	 * @param isCaseSensitive
-	 *            flag to know if the matching should be case sensitive
-	 * @return true if the a sub-pattern matches the subpart of the given name,
-	 *         false otherwise
-	 */
-	private boolean match(char[] pattern, int patternStart, int patternEnd, char[] name, int nameStart, int nameEnd,
-			boolean isCaseSensitive) {
-		if (name == null)
-			return false; // null name cannot match
-		if (pattern == null)
-			return true; // null pattern is equivalent to '*'
-		int iPattern= patternStart;
-		int iName= nameStart;
-		if (patternEnd < 0)
-			patternEnd= pattern.length;
-		if (nameEnd < 0)
-			nameEnd= name.length;
-		/* check first segment */
-		char patternChar= 0;
-		while ((iPattern < patternEnd) && (patternChar= pattern[iPattern]) != '*') {
-			if (iName == nameEnd)
-				return false;
-			if (patternChar != (isCaseSensitive ? name[iName] : Character.toLowerCase(name[iName])) && patternChar != '?') {
-				return false;
-			}
-			iName++;
-			iPattern++;
-		}
-		/* check sequence of star+segment */
-		int segmentStart;
-		if (patternChar == '*') {
-			segmentStart= ++iPattern; // skip star
-		} else {
-			segmentStart= 0; // force iName check
-		}
-		int prefixStart= iName;
-		checkSegment : while (iName < nameEnd) {
-			if (iPattern == patternEnd) {
-				iPattern= segmentStart; // mismatch - restart current segment
-				iName= ++prefixStart;
-				continue checkSegment;
-			}
-			/* segment is ending */
-			if ((patternChar= pattern[iPattern]) == '*') {
-				segmentStart= ++iPattern; // skip start
-				if (segmentStart == patternEnd) {
-					return true;
-				}
-				prefixStart= iName;
-				continue checkSegment;
-			}
-			/* check current name character */
-			if ((isCaseSensitive ? name[iName] : Character.toLowerCase(name[iName])) != patternChar && patternChar != '?') {
-				iPattern= segmentStart; // mismatch - restart current segment
-				iName= ++prefixStart;
-				continue checkSegment;
-			}
-			iName++;
-			iPattern++;
-		}
-		return (segmentStart == patternEnd) || (iName == nameEnd && iPattern == patternEnd)
-				|| (iPattern == patternEnd - 1 && pattern[iPattern] == '*');
-	}
-
-	/**
-	 * Return a new array which is the split of the given array using the given
-	 * divider and triming each subarray to remove whitespaces equals to ' '.
-	 * <br><br>For example:
-	 * <ol>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  divider = 'b' array = { 'a' , 'b', 'b', 'a', 'b', 'a' } result => { { 'a' }, { }, { 'a' }, { 'a' } }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  divider = 'c' array = { 'a' , 'b', 'b', 'a', 'b', 'a' } result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  divider = 'b' array = { 'a' , ' ', 'b', 'b', 'a', 'b', 'a' } result => { { 'a' }, { }, { 'a' }, { 'a' } }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  divider = 'c' array = { ' ', ' ', 'a' , 'b', 'b', 'a', 'b', 'a', ' ' } result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * </ol>
-	 * 
-	 * @param divider
-	 *            the given divider
-	 * @param array
-	 *            the given array
-	 * @return a new array which is the split of the given array using the
-	 *         given divider and triming each subarray to remove whitespaces
-	 *         equals to ' '
-	 */
-	private char[][] splitAndTrimOn(char divider, char[] array) {
-		int length= array == null ? 0 : array.length;
-		if (length == 0)
-			return NO_CHAR_CHAR;
-		int wordCount= 1;
-		for (int i= 0; i < length; i++)
-			if (array[i] == divider)
-				wordCount++;
-		char[][] split= new char[wordCount][];
-		int last= 0, currentWord= 0;
-		for (int i= 0; i < length; i++) {
-			if (array[i] == divider) {
-				int start= last, end= i - 1;
-				while (start < i && array[start] == ' ')
-					start++;
-				while (end > start && array[end] == ' ')
-					end--;
-				split[currentWord]= new char[end - start + 1];
-				System.arraycopy(array, start, split[currentWord++], 0, end - start + 1);
-				last= i + 1;
-			}
-		}
-		int start= last, end= length - 1;
-		while (start < length && array[start] == ' ')
-			start++;
-		while (end > start && array[end] == ' ')
-			end--;
-		split[currentWord]= new char[end - start + 1];
-		System.arraycopy(array, start, split[currentWord++], 0, end - start + 1);
-		return split;
-	}
-
-	/**
-	 * Answers a new array which is a copy of the given array starting at the
-	 * given start and ending at the given end. The given start is inclusive
-	 * and the given end is exclusive. Answers null if start is greater than
-	 * end, if start is lower than 0 or if end is greater than the length of
-	 * the given array. If end equals -1, it is converted to the array length.
-	 * <br><br>For example:
-	 * <ol>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  array = { 'a' , 'b' } start = 0 end = 1 result => { 'a' }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * <li>
-	 * 
-	 * <pre>
-	 *  array = { 'a', 'b' } start = 0 end = -1 result => { 'a' , 'b' }
-	 * </pre>
-	 * 
-	 * 
-	 * </li>
-	 * </ol>
-	 * 
-	 * @param array
-	 *            the given array
-	 * @param start
-	 *            the given starting index
-	 * @param end
-	 *            the given ending index
-	 * @return a new array which is a copy of the given array starting at the
-	 *         given start and ending at the given end
-	 * @exception NullPointerException
-	 *                if the given array is null
-	 */
-	private char[] subarray(char[] array, int start, int end) {
-		if (end == -1)
-			end= array.length;
-		if (start > end)
-			return null;
-		if (start < 0)
-			return null;
-		if (end > array.length)
-			return null;
-		char[] result= new char[end - start];
-		System.arraycopy(array, start, result, 0, end - start);
-		return result;
-	}
-}
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 a5f2849..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.jface.viewers.Viewer;
-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 implements ICompareNavigator {
-	
-	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 boolean 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 false;
-		}
-		
-		return true;
-	}
-	
-	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/CompareOutlinePage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareOutlinePage.java
deleted file mode 100644
index bc59907..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareOutlinePage.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.IActionBars;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.compare.CompareEditorInput;
-
-/**
- */
-public class CompareOutlinePage implements IContentOutlinePage {
-
-	private Control fControl;
-	private ListenerList fListeners= new ListenerList();
-	private ISelection fSelection;
-	//private IActionBars fActionBars;
-	private CompareEditorInput fCompareEditorInput;
-	
-	CompareOutlinePage(CompareEditorInput input) {
-		fCompareEditorInput= input;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		if (fCompareEditorInput != null) {
-			fControl= fCompareEditorInput.createOutlineContents(parent, SWT.VERTICAL);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#dispose()
-	 */
-	public void dispose() {
-		if (fControl != null)
-			fControl.dispose();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#getControl()
-	 */
-	public Control getControl() {
-		return fControl;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void setActionBars(IActionBars actionBars) {
-		//fActionBars= actionBars;
-		//if (fControl != null)
-		//	fControl.setData("actionBars", actionBars);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.IPage#setFocus()
-	 */
-	public void setFocus() {
-		if (fControl != null)
-			fControl.setFocus();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		fListeners.add(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-	 */
-	public ISelection getSelection() {
-		return fSelection;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		fListeners.remove(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setSelection(ISelection selection) {
-		fSelection= selection;
-	}
-}
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 1168749..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.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.io.*;
-import java.util.*;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
-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.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.*;
-import org.eclipse.jface.util.*;
-
-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, IEncodedStreamContentAccessor {
-		static final String UTF_16= "UTF-16"; //$NON-NLS-1$
-		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(Utilities.getBytes(fContent, UTF_16));
-		}
-		public String getCharset() {
-			return UTF_16;
-		}
-	}
-
-	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$
-	public static final String PATH_FILTER= PREFIX + "PathFilter"; //$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),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PATH_FILTER),
-	};
-	
-	
-	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(PATH_FILTER, ""); //$NON-NLS-1$
-		
-		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$
-
-		// a spacer
-		new Label(composite, SWT.NONE);
-		
-		Label l= new Label(composite, SWT.WRAP);
-		l.setText(Utilities.getString("ComparePreferencePage.filter.description")); //$NON-NLS-1$
-		
-		Composite c2= new Composite(composite, SWT.NONE);
-		c2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		layout= new GridLayout(2, false);
-		layout.marginWidth= 0;
-		c2.setLayout(layout);
-		
-		l= new Label(c2, SWT.NONE);
-		l.setText(Utilities.getString("ComparePreferencePage.filter.label")); //$NON-NLS-1$
-		
-		final Text t= new Text(c2, SWT.BORDER);
-		t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		t.setText(fOverlayStore.getString(PATH_FILTER));
-		t.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					String filters= t.getText();
-					String message= CompareFilter.validateResourceFilters(filters);
-					setValid(message == null);
-					setMessage(null);
-					setErrorMessage(message);
-					fOverlayStore.setValue(PATH_FILTER, filters);
-				}
-			}
-		);
-		
-		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 54c5440..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
+++ /dev/null
@@ -1,913 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.lang.reflect.InvocationTargetException;
-import java.net.*;
-import java.util.*;
-import java.util.List;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * 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;
-	
-	private CompareFilter fFilter;
-	private IPropertyChangeListener fPropertyChangeListener;
-	
-	/**
-	 * 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) {
-							// NeedWork
-						}
-						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());
-			
-			if (fPropertyChangeListener != null) {
-				ps.removePropertyChangeListener(fPropertyChangeListener);
-				fPropertyChangeListener= null;
-			}
-		}
-		
-		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
-	 * @param page the workbench page on which to create a new compare editor
-	 * @param editor if not null the input is opened in this editor
-	 * @see CompareEditorInput
-	 */
-	public void openCompareEditor(CompareEditorInput input, IWorkbenchPage page, IReusableEditor editor) {
-		
-		if (compareResultOK(input)) {
-			
-			if (editor != null) {	// reuse the given editor
-				editor.setInput(input);
-				return;
-			}
-			
-			if (page == null)
-				page= getActivePage();
-			if (page != null) {
-				// open new CompareEditor on page
-				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) {
-							// NeedWork
-						}
-						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) {
-						// silently ignored
-					}
-				}
-			}
-			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");
-		final 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 + ">");
-					}
-				}
-			}
-			fFilter= new CompareFilter();
-			fFilter.setFilters(ps.getString(ComparePreferencePage.PATH_FILTER));
-			fPropertyChangeListener= new IPropertyChangeListener() {
-				public void propertyChange(PropertyChangeEvent event) {
-					if (ComparePreferencePage.PATH_FILTER.equals(event.getProperty()))
-						fFilter.setFilters(ps.getString(ComparePreferencePage.PATH_FILTER));
-				}
-			};
-			ps.addPropertyChangeListener(fPropertyChangeListener);
-		}
-	}
-	
-	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();
-	}
-
-	public static boolean filter(String name, boolean isFolder, boolean isArchive) {
-		CompareFilter f= getDefault().fFilter;
-		return f.filter(name, isFolder, isArchive);
-	}
-}
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 20dc15a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-				// silently ignored
-			}
-
-			if (fLength == 0)
-				fLineCount= 0;
-			else {
-				int endLine= fDocument.getNumberOfLines();
-				try {
-					endLine= fDocument.getLineOfOffset(start + fLength);
-				} catch (BadLocationException ex) {
-					// silently ignored
-				}
-				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) {
-				// silently ignored
-			}
-		}
-		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 da39a34..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.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.compare.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-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.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 extends BaseCompareAction {
-
-	/**
-	 * Implements the IStreamContentAccessor and ITypedElement protocols
-	 * for a Document.
-	 */
-	class DocumentBufferNode implements ITypedElement, IEncodedStreamContentAccessor {
-		private static final String UTF_16= "UTF-16"; //$NON-NLS-1$
-		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(Utilities.getBytes(fDocument.get(), UTF_16));
-		}
-
-		public String getCharset() {
-			return UTF_16;
-		}
-	}
-
-	private String fBundleName;
-	private boolean fReplaceMode;
-	protected boolean fPrevious= false;
-	protected String fHelpContextId;
-	
-	EditionAction(boolean replaceMode, String bundleName) {
-		fReplaceMode= replaceMode;
-		fBundleName= bundleName;
-	}
-
-	protected boolean isEnabled(ISelection selection) {
-		return Utilities.getFiles(selection).length == 1;		// we don't support multiple selection for now
-	}
-
-	protected void run(ISelection selection) {
-		IFile[] files= Utilities.getFiles(selection);
-		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;
-				
-				if (Utilities.validateResource(file, parentShell, title)) {
-					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 {
-			String text= Utilities.readString(sa);
-			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;
-	}
-}
-
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 d205e2f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-						// NeedWork
-					}
-				}
-			}
-			
-			Image image= null;			
-			Display display= canvas.getDisplay();
-			if (stream != null) {
-				try {
-					image= new Image(display, stream);
-				} catch (SWTException ex) {
-					// silently ignored
-				}
-			}
-
-			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) {
-					// silently ignored
-				}
-			}
-		}
-	}
-	
-	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 707b2f1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-				// silently ignored
-			}
-		}
-	}
-	
-	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) {
-			// silently ignored
-		}
-		try {
-			endLine= doc.getLineOfOffset(start+length);
-		} catch(BadLocationException ex) {
-			// silently ignored
-		}
-		
-		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) {
-				// silently ignored
-			}
-		}
-		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) {
-			// silently ignored
-		}
-		
-		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) {
-				// silently ignored
-			}
-			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 a21e6a4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 true;	// fix for #45239: Show ancestor for incoming and outgoing changes
-			//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 495a8cf..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.CompareViewerPane;
-
-/**
- * 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);
-
-		CompareViewerPane.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 9fd741d..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 fc76172..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 java.text.MessageFormat;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-
-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;
-		}
-	}
-	
-	static class FilteredBufferedResourceNode extends BufferedResourceNode {
-		FilteredBufferedResourceNode(IResource resource) {
-			super(resource);
-		}
-		protected IStructureComparator createChild(IResource child) {
-			String name= child.getName();
-			if (CompareUIPlugin.filter(name, child instanceof IContainer, false))
-				return null;
-			return new FilteredBufferedResourceNode(child);
-		}
-	}
-	
-	/**
-	 * 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 FilteredBufferedResourceNode(input);
-			
-		if (input instanceof IFile) {
-			IStructureComparator rn= new FilteredBufferedResourceNode(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 a28339b..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= fInput.getLeft();
-			fSourceViewer.setDocument(new Document(getString(left)));
-		}
-	}
-	
-	public Object getInput() {
-		return fInput;
-	}
-	
-	private String getString(Object input) {
-		
-		if (input instanceof IStreamContentAccessor) {
-			try {
-				return Utilities.readString((IStreamContentAccessor) input);
-			} catch (CoreException ex) {
-				// NeedWork
-			}
-		}
-		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 e8e70af..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-			// silently ignored
-		}
-		
-		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 183c566..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java
+++ /dev/null
@@ -1,585 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 java.util.List;
-
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.core.resources.IEncodedStorage;
-import org.eclipse.core.resources.IFile;
-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.jface.dialogs.ErrorDialog;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.ui.*;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.IEncodedStreamContentAccessor;
-import org.eclipse.compare.IStreamContentAccessor;
-
-/**
- * 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();
-	}
-	
-	private static ArrayList internalGetResources(ISelection selection, Class type) {
-		
-		ArrayList tmp= new ArrayList();
-
-		if (selection instanceof IStructuredSelection) {
-		
-			Object[] s= ((IStructuredSelection)selection).toArray();
-				
-			for (int i= 0; i < s.length; i++) {
-				
-				IResource resource= null;
-				
-				Object o= s[i];
-				if (type.isInstance(o)) {
-					resource= (IResource) o;
-						
-				} else if (o instanceof IAdaptable) {
-					IAdaptable a= (IAdaptable) o;
-					Object adapter= a.getAdapter(IResource.class);
-					if (type.isInstance(adapter))
-						resource= (IResource) adapter;
-				}
-				
-				if (resource != null && resource.isAccessible())
-					tmp.add(resource);
-			}
-		}
-		
-		return tmp;
-	}
-	
-	/**
-	 * Convenience method: extract all accessible <code>IResources</code> from given selection.
-	 * Never returns null.
-	 */
-	public static IResource[] getResources(ISelection selection) {
-		ArrayList tmp= internalGetResources(selection, IResource.class);
-		return (IResource[]) tmp.toArray(new IResource[tmp.size()]);
-	}
-	
-	/**
-	 * Convenience method: extract all accessible <code>IFiles</code> from given selection.
-	 * Never returns null.
-	 */
-	public static IFile[] getFiles(ISelection selection) {
-		ArrayList tmp= internalGetResources(selection, IFile.class);
-		return (IFile[]) tmp.toArray(new IFile[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 {
-			Utilities.close(in);
-			try {
-				bos.close();
-			} catch (IOException x) {
-				// silently ignored
-			}
-		}
-		
-		return bos.toByteArray();
-	}
-
-	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) {
-				// NeedWork
-			}
-		}
-		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) {
-				// NeedWork
-			}
-		}
-		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) {
-				// NeedWork
-			} catch (MissingResourceException x) {
-				// NeedWork
-			}
-		}
-		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;
-	}
-	*/
-	
-	/* validate edit utilities */
-	
-	/**
-	 * Status constant indicating that an validateEdit call has changed the
-	 * content of a file on disk.
-	 */
-	private static final int VALIDATE_EDIT_PROBLEM= 10004;	
-	
-	/**
-	 * Makes the given resources committable. Committable means that all
-	 * resources are writeable and that the content of the resources hasn't
-	 * changed by calling <code>validateEdit</code> for a given file on
-	 * <tt>IWorkspace</tt>.
-	 * 
-	 * @param resources the resources to be checked
-	 * @param shell the Shell passed to <code>validateEdit</code> as a context
-	 * @return returns <code>true</code> if all resources are committable, <code>false</code> otherwise
-	 * 
-	 * @see org.eclipse.core.resources.IWorkspace#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)
-	 */
-	public static boolean validateResource(IResource resource, Shell shell, String title) {
-		return validateResources(new IResource[] { resource }, shell, title);
-	}
-	
-	/**
-	 * Makes the given resources committable. Committable means that all
-	 * resources are writeable and that the content of the resources hasn't
-	 * changed by calling <code>validateEdit</code> for a given file on
-	 * <tt>IWorkspace</tt>.
-	 * 
-	 * @param resources the resources to be checked
-	 * @param shell the Shell passed to <code>validateEdit</code> as a context
-	 * @return returns <code>true</code> if all resources are committable, <code>false</code> otherwise
-	 * 
-	 * @see org.eclipse.core.resources.IWorkspace#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)
-	 */
-	public static boolean validateResources(List resources, Shell shell, String title) {
-		IResource r[]= (IResource[]) resources.toArray(new IResource[resources.size()]);
-		return validateResources(r, shell, title);
-	}
-	
-	/**
-	 * Makes the given resources committable. Committable means that all
-	 * resources are writeable and that the content of the resources hasn't
-	 * changed by calling <code>validateEdit</code> for a given file on
-	 * <tt>IWorkspace</tt>.
-	 * 
-	 * @param resources the resources to be checked
-	 * @param shell the Shell passed to <code>validateEdit</code> as a context
-	 * @return returns <code>true</code> if all resources are committable, <code>false</code> otherwise
-	 * 
-	 * @see org.eclipse.core.resources.IWorkspace#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)
-	 */
-	public static boolean validateResources(IResource[] resources, Shell shell, String title) {
-		
-		// get all readonly files
-		List readOnlyFiles= getReadonlyFiles(resources);
-		if (readOnlyFiles.size() == 0)
-			return true;
-		
-		// get timestamps of readonly files before validateEdit
-		Map oldTimeStamps= createModificationStampMap(readOnlyFiles);
-		
-		IFile[] files= (IFile[]) readOnlyFiles.toArray(new IFile[readOnlyFiles.size()]);
-		IStatus status= ResourcesPlugin.getWorkspace().validateEdit(files, shell);
-		if (! status.isOK()) {
-			String message= getString("ValidateEdit.error.unable_to_perform"); //$NON-NLS-1$
-			ErrorDialog.openError(shell, title, message, status); //$NON-NLS-1$
-			return false;
-		}
-			
-		IStatus modified= null;
-		Map newTimeStamps= createModificationStampMap(readOnlyFiles);
-		for (Iterator iter= oldTimeStamps.keySet().iterator(); iter.hasNext();) {
-			IFile file= (IFile) iter.next();
-			if (file.isReadOnly()) {
-				IStatus entry= new Status(IStatus.ERROR,
-								CompareUIPlugin.getPluginId(),
-								VALIDATE_EDIT_PROBLEM,
-								getFormattedString("ValidateEdit.error.stillReadonly", file.getFullPath().toString()), //$NON-NLS-1$
-								null);
-				modified= addStatus(modified, entry);
-			} else if (! oldTimeStamps.get(file).equals(newTimeStamps.get(file))) {
-				IStatus entry= new Status(IStatus.ERROR,
-								CompareUIPlugin.getPluginId(),
-								VALIDATE_EDIT_PROBLEM,
-								getFormattedString("ValidateEdit.error.fileModified", file.getFullPath().toString()), //$NON-NLS-1$
-								null);
-				modified= addStatus(modified, entry);
-			}
-		}
-		if (modified != null) {
-			String message= getString("ValidateEdit.error.unable_to_perform"); //$NON-NLS-1$
-			ErrorDialog.openError(shell, title, message, modified);
-			return false;
-		}
-		return true;
-	}
-	
-	private static List getReadonlyFiles(IResource[] resources) {
-		List readOnlyFiles= new ArrayList();
-		for (int i= 0; i < resources.length; i++) {
-			IResource resource= resources[i];
-			if (resource.getType() == IResource.FILE && resource.isReadOnly())	
-				readOnlyFiles.add(resource);
-		}
-		return readOnlyFiles;
-	}
-
-	private static Map createModificationStampMap(List files) {
-		Map map= new HashMap();
-		for (Iterator iter= files.iterator(); iter.hasNext(); ) {
-			IFile file= (IFile)iter.next();
-			map.put(file, new Long(file.getModificationStamp()));
-		}
-		return map;
-	}
-	
-	private static IStatus addStatus(IStatus status, IStatus entry) {
-		
-		if (status == null)
-			return entry;
-			
-		if (status.isMultiStatus()) {
-			((MultiStatus)status).add(entry);
-			return status;
-		}
-
-		MultiStatus result= new MultiStatus(CompareUIPlugin.getPluginId(),
-			VALIDATE_EDIT_PROBLEM,
-			getString("ValidateEdit.error.unable_to_perform"), null); //$NON-NLS-1$ 
-		result.add(status);
-		result.add(entry);
-		return result;
-	}
-	
-	// encoding
-	
-	/**
-	 * Returns null if an error occurred.
-	 */
-	public static String readString(InputStream is, String encoding) {
-		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, encoding));
-
-			while ((read= reader.read(part)) != -1)
-				buffer.append(part, 0, read);
-			
-			return buffer.toString();
-			
-		} catch (IOException ex) {
-			// NeedWork
-		} finally {
-			if (reader != null) {
-				try {
-					reader.close();
-				} catch (IOException ex) {
-					// silently ignored
-				}
-			}
-		}
-		return null;
-	}
-	
-	public static String getCharset(IResource resource) {
-		if (resource instanceof IEncodedStorage) {
-			try {
-				return ((IEncodedStorage)resource).getCharset();
-			} catch (CoreException ex) {
-				// fall  through
-			}
-		}
-		return ResourcesPlugin.getEncoding();
-	}
-	
-	public static byte[] getBytes(String s, String encoding) {
-		byte[] bytes= null;
-		if (s != null) {
-			try {
-				bytes= s.getBytes(encoding); //$NON-NLS-1$
-			} catch (UnsupportedEncodingException e) {
-				bytes= s.getBytes();
-			}
-		}
-		return bytes;
-	}
-
-	public static String readString(IStreamContentAccessor sa) throws CoreException {
-		InputStream is= sa.getContents();
-		String encoding= null;
-		if (sa instanceof IEncodedStreamContentAccessor)
-			encoding= ((IEncodedStreamContentAccessor)sa).getCharset();
-		if (encoding == null)
-			encoding= ResourcesPlugin.getEncoding();
-		return Utilities.readString(is, encoding);
-	}
-
-	public static void close(InputStream is) {
-		if (is != null) {
-			try {
-				is.close();
-			} catch (IOException ex) {
-				// silently ignored
-			}
-		}
-	}
-}
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 3d5dbcc..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.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.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) {
-				// NeedWork
-			}
-		}
-
-		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 d529298..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Attic/LineReader.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-			// silently ignored
-		}
-	}
-	
-	/* package */ List readLines() {
-		try {
-			List lines= new ArrayList();
-			String line;
-			while ((line= readLine()) != null)
-				lines.add(line);
-			return lines;
-		} catch (IOException ex) {
-			// NeedWork
-			//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 08b7b95..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.window.Window;
-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.IEditorPart;
-
-import org.eclipse.compare.internal.*;
-
-
-public class CompareWithPatchAction extends BaseCompareAction {
-
-	static class PatchWizardDialog extends WizardDialog {
-	
-		PatchWizardDialog(Shell parent, IWizard wizard) {
-			super(parent, wizard);
-			
-			setShellStyle(getShellStyle() | SWT.RESIZE);
-			setMinimumPageSize(700, 500);
-		}
-	}
-	
-	protected boolean isEnabled(ISelection selection) {
-		return Utilities.getResources(selection).length == 1;
-	}
-		
-	/* (non-Javadoc)
-	 * @see org.eclipse.compare.internal.BaseCompareAction#run(org.eclipse.jface.viewers.ISelection)
-	 */
-	protected void run(ISelection selection) {
-		PatchWizard wizard= new PatchWizard(selection);
-		
-		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() == Window.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 ad5899b..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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(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 9efd347..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 1aaaf2a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java
+++ /dev/null
@@ -1,524 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.compare.internal.Utilities;
-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) {
-				// silently ignored
-			}
-		}
-		
-		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(Utilities.getResources(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 d529298..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-			// silently ignored
-		}
-	}
-	
-	/* package */ List readLines() {
-		try {
-			List lines= new ArrayList();
-			String line;
-			while ((line= readLine()) != null)
-				lines.add(line);
-			return lines;
-		} catch (IOException ex) {
-			// NeedWork
-			//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 7b1b0a7..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 fc7520b..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 14f0bf2..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, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 1ad13ef..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 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(Utilities.getResources(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);
-		}	
-	}
-	
-	Patcher getPatcher() {
-		return fPatcher;
-	}
-	
-	IResource getTarget() {
-		return fTarget;
-	}
-	
-	void setTargets(IResource[] targets) {
-		if (targets != null && targets.length > 0)
-			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(fTarget.getProject()) {
-				protected void execute(IProgressMonitor monitor) throws InvocationTargetException {
-					try {
-						fPatcher.applyAll(getTarget(), monitor, getShell(), PatchMessages.getString("PatchWizard.title")); //$NON-NLS-1$
-					} 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
-			// NeedWork: use assert!
-		}
-		
-		// 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 721db08..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
+++ /dev/null
@@ -1,1080 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.swt.widgets.Shell;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.resources.*;
-
-import org.eclipse.compare.internal.Utilities;
-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(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) {
-					// silently ignored
-				}
-			}
-			// 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, Shell shell, String title) throws CoreException {
-		
-		final int WORK_UNIT= 10;
-		
-		int i;
-		
-		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);
-		}
-		
-		// get all files to be modified in order to call validateEdit
-		List list= new ArrayList();
-		if (singleFile != null)
-			list.add(singleFile);
-		else {
-			for (i= 0; i < fDiffs.length; i++) {
-				Diff diff= fDiffs[i];
-				if (diff.isEnabled()) {
-					switch (diff.getType()) {
-					case Differencer.CHANGE:
-						list.add(createPath(container, getPath(diff)));
-						break;
-					}
-				}
-			}
-		}
-		if (! Utilities.validateResources(list, shell, title))
-			return;
-		
-		if (pm != null) {
-			String message= PatchMessages.getString("Patcher.Task.message");	//$NON-NLS-1$
-			pm.beginTask(message, fDiffs.length*WORK_UNIT);
-		}
-		
-		for (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) {
-							// NeedWork
-						}
-					}
-				}
-			}
-			
-			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, Utilities.getCharset(file));
-				} 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) {
-				// NeedWork
-			} finally {
-				if (is != null)
-					try {
-						is.close();
-					} catch(IOException ex) {
-						// silently ignored
-					}
-			}
-		}
-		
-		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(Utilities.getCharset(file));
-		} 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) {
-					// silently ignored
-				}
-		}
-	}
-
-	/**
-	 * 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 b2b0fdd..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java
+++ /dev/null
@@ -1,742 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.internal.Utilities;
-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, IEncodedStreamContentAccessor {
-		static final String UTF_16= "UTF-16"; //$NON-NLS-1$
-		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(Utilities.getBytes(fContent, UTF_16));
-		}
-		public String getCharset() {
-			return UTF_16;
-		}
-	}
-		
-	private PatchWizard fPatchWizard;
-	
-	private Tree fTree;
-	private Combo fStripPrefixSegments;
-	private CompareViewerSwitchingPane fHunkViewer;
-	private Button fIgnoreWhitespaceButton;
-	private Button fReversePatchButton;
-	private Text fFuzzField;
-	
-	private Image[] fImages= new Image[6];	
-	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();
-		
-		fImages[0]= new DiffImage(null, null, w).createImage();
-		fImages[1]= new DiffImage(null, addId, w).createImage();
-		fImages[2]= new DiffImage(null, delId, w).createImage();
-
-		fImages[3]= new DiffImage(errIm, null, w).createImage();
-		fImages[4]= new DiffImage(errIm, addId, w).createImage();
-		fImages[5]= 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 fImages[1];
-			case Differencer.DELETION:
-				return fImages[2];
-			}
-			return fImages[0];
-		}
-		switch (diff.getType()) {
-		case Differencer.ADDITION:
-			return fImages[4];
-		case Differencer.DELETION:
-			return fImages[5];
-		}
-		return fImages[3];
-	}
-	
-	Image getImage(Hunk hunk) {
-		if (hunk.fMatches)
-			return fImages[0];
-		return fImages[3];
-	}
-	
-	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);
-					}
-				}
-			}
-		);
-		fTree.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				if (fImages != null) {
-					for (int i= 0; i < fImages.length; i++) {
-						if (fImages[i] == null)
-							fImages[i].dispose();
-					}
-					fImages= 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) {
-						result[0]= guess(patcher, monitor, strip);
-					}
-				}
-			);
-			return result[0];
-		} catch (InvocationTargetException ex) {
-			// NeedWork
-		} catch (InterruptedException ex) {
-			// NeedWork
-		}
-		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) {
-				// silently ignored
-			}
-		}
-		return stripPrefixSegments;
-	}
-	
-	private int getFuzzFactor() {
-		int fuzzFactor= 0;
-		if (fFuzzField != null) {
-			String s= fFuzzField.getText();
-			try {
-				fuzzFactor= Integer.parseInt(s);
-			} catch(NumberFormatException ex) {
-				// silently ignored
-			}
-		}
-		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 3c4be7f..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 70bd1d5..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 cd9ef08..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 9a8b15d..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 5c0b051..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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= 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 4a3d44c..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 82472ff..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 7c73a6c..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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(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 9cccaa4..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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= CompareViewerPane.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 fd835c4..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, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 047bb2c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
+++ /dev/null
@@ -1,526 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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) {
-			// NeedWork
-		} finally {
-			if (is1 != null) {
-				try {
-					is1.close();
-				} catch(IOException ex) {
-					// silently ignored
-				}
-			}
-			if (is2 != null) {
-				try {
-					is2.close();
-				} catch(IOException ex) {
-					// silently ignored
-				}
-			}
-		}
-		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) {
-				// NeedWork
-			}
-		}
-		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 de2c54f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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, IEncodedStreamContentAccessor {
-
-	private static final boolean POS_UPDATE= true;
-	private static final String UTF_16= "UTF-16"; //$NON-NLS-1$
-		
-	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) {
-				// silently ignored
-			} catch (BadLocationException ex) {
-				// silently ignored
-			}
-		}
-	}
-
-	/* (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) {
-				// silently ignored
-			} catch (BadLocationException ex) {
-				// silently ignored
-			}
-		} 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) {
-					// silently ignored
-				} catch (BadLocationException ex) {
-					// silently ignored
-				}
-			} 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) {
-				// silently ignored
-			}
-		}
-	}
-	
-	/* (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, UTF_16));
-	}
-
-	/* (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 {
-					srcContents= Utilities.readString((IStreamContentAccessor)other);
-				} catch(CoreException ex) {
-					// NeedWork
-				}
-			}
-		}
-
-		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) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.compare.IStreamContentAccessor#getEncoding()
-	 */
-	public String getCharset() {
-		return UTF_16;
-	}
-}
-
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 4d93793..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 461a94a..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 598996b..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 f09742a..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 b4bb8e0..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 2f2c391..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 9b91942..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 694484a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.properties
+++ /dev/null
@@ -1,210 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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.filter.description= Enter member names that should be excluded from 'Compare With Each Other'.\nList is comma separated (e.g. '*.class, .project, bin/')
-ComparePreferencePage.filter.label= &Filtered Members:
-ComparePreferencePage.filter.invalidsegment.error= Filter is invalid: {0}
-
-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
-
-textCompareAppearance.label=Text Compare Appearance
-
-compareIncomingColor.label= Incoming change color
-compareIncomingColor.description= The color used to indicate an incoming change in compare and merge tools.
-compareOutgoingColor.label= Outgoing change color
-compareOutgoingColor.description= The color used to indicate an outgoing change in compare and merge tools.
-compareConflictColor.label= Conflicting change color
-compareConflictColor.description= The color used to indicate a conflicting change in compare and merge tools.
-compareResolvedColor.label= Resolved change color
-compareResolvedColor.description= The color used to indicate a resolved change in merge tools.
-
-compareFontDefiniton.label= Compare text font
-compareFontDefiniton.description= The compare text font is used by textual compare/merge tools.
-
-# 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
-
-#
-# ValidateEdit
-#
-ValidateEdit.error.unable_to_perform= Operation can\'t be performed.
-ValidateEdit.error.fileModified= File ''{0}'' has been modified since the beginning of the operation.
-ValidateEdit.error.stillReadonly= File ''{0}'' is readonly.
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 fb3f518..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml
+++ /dev/null
@@ -1,344 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.compare"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName"
-   class="org.eclipse.compare.internal.CompareUIPlugin">
-
-   <runtime>
-      <library name="compare.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.compare"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.ui.views"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
-   </requires>
-
-
-<!-- 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.themes">
-      <themeElementCategory
-            label="%textCompareAppearance.label"
-            id="org.eclipse.compare.contentmergeviewer.TextMergeViewer">
-      </themeElementCategory>
-      <colorDefinition
-            label="%compareIncomingColor.label"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            value="COLOR_BLUE"
-            id="INCOMING_COLOR">
-         <description>
-            %compareIncomingColor.description
-         </description>
-      </colorDefinition>
-      <colorDefinition
-            label="%compareOutgoingColor.label"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            value="COLOR_BLACK"
-            id="OUTGOING_COLOR">
-         <description>
-            %compareOutgoingColor.description
-         </description>
-      </colorDefinition>
-      <colorDefinition
-            label="%compareConflictColor.label"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            value="COLOR_RED"
-            id="CONFLICTING_COLOR">
-         <description>
-            %compareConflictColor.description
-         </description>
-      </colorDefinition>
-      <colorDefinition
-            label="%compareResolvedColor.label"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            value="COLOR_GREEN"
-            id="RESOLVED_COLOR">
-         <description>
-            %compareResolvedColor.description
-         </description>
-      </colorDefinition>
-      <fontDefinition
-            label="%compareFontDefiniton.label"
-            defaultsTo="org.eclipse.jface.textfont"
-            categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-            id="org.eclipse.compare.contentmergeviewer.TextMergeViewer">
-          <description>
-            %compareFontDefiniton.description
-         </description>
-      </fontDefinition>
-   </extension>
-   
-   <extension
-         id="rejectedPatchMarker"
-         name="%rejectedPatchMarker.name"
-         point="org.eclipse.core.resources.markers">
-      <super
-            type="org.eclipse.core.resources.taskmarker">
-      </super>
-      <persistent
-            value="true">
-      </persistent>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%defaultCompareEditor.name"
-            icon="icons/full/cview16/compare_view.gif"
-            contributorClass="org.eclipse.compare.internal.CompareEditorContributor"
-            class="org.eclipse.compare.internal.CompareEditor"
-            id="org.eclipse.compare.CompareEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%ComparePreferencePage.name"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.compare.internal.ComparePreferencePage"
-            id="org.eclipse.compare.internal.ComparePreferencePage">
-      </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">
-      </category>
-      <command
-            name="%Command.copyRightToLeft.name"
-            description="%Command.copyRightToLeft.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.copyRightToLeft">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.copyRightToLeft"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.copyLeftToRight.name"
-            description="%Command.copyLeftToRight.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.copyLeftToRight">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.copyLeftToRight"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.copyAllRightToLeft.name"
-            description="%Command.copyAllRightToLeft.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.copyAllRightToLeft">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.copyAllRightToLeft"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.copyAllLeftToRight.name"
-            description="%Command.copyAllLeftToRight.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.copyAllLeftToRight">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.copyAllLeftToRight"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.selectNextChange.name"
-            description="%Command.selectNextChange.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.selectNextChange">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.selectNextChange"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <command
-            name="%Command.selectPreviousChange.name"
-            description="%Command.selectPreviousChange.description"
-            category="org.eclipse.compare.ui.category.compare"
-            id="org.eclipse.compare.selectPreviousChange">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.compare.selectPreviousChange"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-   </extension>
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IResource"
-            adaptable="true"
-            id="org.eclipse.compare.CompareAction">
-         <menu
-               label="%ReplaceWithMenu.label"
-               path="additions"
-               id="replaceWithMenu">
-            <separator
-                  name="replaceWithGroup">
-            </separator>
-         </menu>
-         <menu
-               label="%CompareWithMenu.label"
-               path="additions"
-               id="compareWithMenu">
-            <separator
-                  name="compareWithGroup">
-            </separator>
-         </menu>
-         <menu
-               label="%TeamMenu.label"
-               path="additions"
-               id="team.main">
-            <separator
-                  name="group1">
-            </separator>
-         </menu>
-         <action
-               label="%CompareWithEachOtherAction.label"
-               tooltip="%CompareWithEachOtherAction.tooltip"
-               class="org.eclipse.compare.internal.CompareAction"
-               menubarPath="compareWithMenu/compareWithGroup"
-               enablesFor="2+"
-               id="compareWithEachOther">
-         </action>
-         <action
-               label="%CompareWithPatchAction.label"
-               tooltip="%CompareWithPatchAction.tooltip"
-               class="org.eclipse.compare.internal.patch.CompareWithPatchAction"
-               menubarPath="team.main/group1"
-               enablesFor="1"
-               id="compareWithPatch">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IFile"
-            adaptable="true"
-            id="org.eclipse.compare.ReplaceWithEditionAction">
-         <menu
-               label="%ReplaceWithMenu.label"
-               path="additions"
-               id="replaceWithMenu">
-            <separator
-                  name="replaceWithGroup">
-            </separator>
-         </menu>
-         <action
-               label="%ReplaceFromHistoryAction.label"
-               tooltip="%ReplaceFromHistoryAction.tooltip"
-               class="org.eclipse.compare.internal.ReplaceWithEditionAction"
-               menubarPath="replaceWithMenu/replaceWithGroup"
-               enablesFor="1"
-               id="replaceFromHistory">
-         </action>
-         <action
-               label="%ReplaceWithPreviousFromHistoryAction.label"
-               tooltip="%ReplaceWithPreviousFromHistoryAction.tooltip"
-               class="org.eclipse.compare.internal.ReplaceWithPreviousEditionAction"
-               menubarPath="replaceWithMenu/replaceWithGroup"
-               enablesFor="1"
-               id="replaceWithPreviousFromHistory">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IFile"
-            adaptable="true"
-            id="org.eclipse.compare.CompareWithEditionAction">
-         <menu
-               label="%CompareWithMenu.label"
-               path="additions"
-               id="compareWithMenu">
-            <separator
-                  name="compareWithGroup">
-            </separator>
-         </menu>
-         <action
-               label="%CompareWithHistoryAction.label"
-               tooltip="%CompareWithHistoryAction.tooltip"
-               class="org.eclipse.compare.internal.CompareWithEditionAction"
-               menubarPath="compareWithMenu/compareWithGroup"
-               enablesFor="1"
-               id="compareWithHistory">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IContainer"
-            adaptable="true"
-            id="org.eclipse.compare.AddFromHistoryAction">
-         <action
-               label="%addFromHistoryAction.label"
-               tooltip="%addFromHistoryAction.tooltip"
-               class="org.eclipse.compare.internal.AddFromHistoryAction"
-               menubarPath="replaceWithMenu"
-               enablesFor="1"
-               id="addFromHistoryAction">
-         </action>
-      </objectContribution>
-   </extension>
-   <extension
-         point="org.eclipse.compare.structureCreators">
-      <structureCreator
-            extensions="zip"
-            class="org.eclipse.compare.ZipFileStructureCreator"
-            id="org.eclipse.compare.ZipFileStructureCreator">
-      </structureCreator>
-   </extension>
-   <extension
-         point="org.eclipse.compare.contentMergeViewers">
-      <viewer
-            extensions="class,exe,dll,binary,zip,jar"
-            class="org.eclipse.compare.internal.BinaryCompareViewerCreator"
-            id="org.eclipse.compare.BinaryCompareViewerCreator">
-      </viewer>
-      <viewer
-            extensions="txt"
-            class="org.eclipse.compare.internal.TextMergeViewerCreator"
-            id="org.eclipse.compare.TextMergeViewerCreator">
-      </viewer>
-      <viewer
-            extensions="gif,jpg"
-            class="org.eclipse.compare.internal.ImageMergeViewerCreator"
-            id="org.eclipse.compare.ImageMergeViewerCreator">
-      </viewer>
-   </extension>
-   <extension
-         point="org.eclipse.compare.contentViewers">
-      <viewer
-            extensions="txt"
-            class="org.eclipse.compare.internal.TextViewerCreator"
-            id="org.eclipse.compare.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 1b479d4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/scripts/exportplugin.xml
+++ /dev/null
@@ -1,30 +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="dest"  value="${destdir}/${plugin}_3.0.0" />
-	</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 1b479d4..0000000
--- a/bundles/org.eclipse.compare/scripts/exportplugin.xml
+++ /dev/null
@@ -1,30 +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="dest"  value="${destdir}/${plugin}_3.0.0" />
-	</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 065ac06..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<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 942f4d4..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/.project
+++ /dev/null
@@ -1,23 +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.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</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 cc5d16f..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/plugin.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.team.cvs.ssh"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName"
-   class="org.eclipse.team.internal.ccvs.ssh.SSHPlugin">
-
-   <runtime>
-      <library name="teamcvsssh.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.team.internal.ccvs.ssh"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.core.boot"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/> 
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.team.cvs.core"/>
-      <import plugin="org.eclipse.team.core"/>
-   </requires>
-
-<!--
-   <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">
-            </parameter>
-         </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 cd2e602..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java
+++ /dev/null
@@ -1,724 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 PollingOutputStream 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(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 {
-		PollingInputStream pollingInputStream = null;
-		// 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);
-			}
-			pollingInputStream = new PollingInputStream(socket.getInputStream(),
-				timeout > 0 ? timeout : 1, monitor);
-			socketIn = new BufferedInputStream(pollingInputStream);
-			
-			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.
-		// Don't allow cancellation during the initial handshake and login since this
-		// can potentially cause the SSH server to think that it is being hacked and
-		// disable the account.
-		socketOut.setIsCancellable(false /* don't allow cancellation */);
-		pollingInputStream.setIsCancellable(false);
-		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();
-
-		socketOut.setIsCancellable(true /* allow cancellation */);
-		pollingInputStream.setIsCancellable(true);
-		
-		// 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;
-		try {
-			send(SSH_MSG_DISCONNECT, null);
-		} finally {
-			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"), CVSAuthenticationException.RETRY);//$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"), CVSAuthenticationException.NO_RETRY); //$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 4897988..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 98e1d19..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;
-
-	public 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 7cc4673..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/messages.properties
+++ /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
-###############################################################################
-
-# 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}
-
-KnownHosts.8=Error reading host key file
-KnownHosts.9=Error writing host key file
-KnownHosts.10=Error creating host key file
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java
index 0b58113..808dfb7 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java
@@ -441,7 +441,7 @@
 	}
 
 	protected void calculateProperties(ISynchronizeModelElement element, boolean clear) {
-		element.setPropertyToRoot(ISynchronizeModelElement.PROPAGATED_CONFLICT_PROPERTY, isConflicting(element));
+		element.setPropertyToRoot(ISynchronizeModelElement.PROPAGATED_CONFLICT_PROPERTY, clear ? false : isConflicting(element));
 		propagateProblemMarkers(element, clear);
 		updateParentLabels(element);
 	}
@@ -616,7 +616,7 @@
 	private void asyncExec(final Runnable r) {
 		final Control ctrl = getViewer().getControl();
 		if (ctrl != null && !ctrl.isDisposed()) {
-			ctrl.getDisplay().syncExec(new Runnable() {
+			ctrl.getDisplay().asyncExec(new Runnable() {
 				public void run() {
 					if (!ctrl.isDisposed()) {
 						BusyIndicator.showWhile(ctrl.getDisplay(), r);
diff --git a/examples/org.eclipse.compare.examples.xml/.classpath b/examples/org.eclipse.compare.examples.xml/.classpath
deleted file mode 100644
index ef70f95..0000000
--- a/examples/org.eclipse.compare.examples.xml/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="tests"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.compare.examples.xml/.cvsignore b/examples/org.eclipse.compare.examples.xml/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.compare.examples.xml/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.compare.examples.xml/.project b/examples/org.eclipse.compare.examples.xml/.project
deleted file mode 100644
index 37bcfbd..0000000
--- a/examples/org.eclipse.compare.examples.xml/.project
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.compare.examples.xml</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.compare</project>
-		<project>org.eclipse.compare.xml</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.jface.text</project>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.ui</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/examples/org.eclipse.compare.examples.xml/IdMaps/ant_test.xml b/examples/org.eclipse.compare.examples.xml/IdMaps/ant_test.xml
deleted file mode 100644
index 5587170..0000000
--- a/examples/org.eclipse.compare.examples.xml/IdMaps/ant_test.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE idmap SYSTEM "idmap.dtd">
-
-<idmap name="ANT">
-	<element signature="root.project." id="name"/>
-	<element signature="root.project.target." id="name"/>
-</idmap>
diff --git a/examples/org.eclipse.compare.examples.xml/IdMaps/idmap.dtd b/examples/org.eclipse.compare.examples.xml/IdMaps/idmap.dtd
deleted file mode 100644
index b60a2fa..0000000
--- a/examples/org.eclipse.compare.examples.xml/IdMaps/idmap.dtd
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!ELEMENT idmap (element)*>

-<!ATTLIST idmat

-          name      CDATA #REQUIRED>

-<!ELEMENT element EMPTY>

-<!ATTLIST element

-          signature ID #REQUIRED

-          id_attr   CDATA #REQUIRED>

diff --git a/examples/org.eclipse.compare.examples.xml/about.html b/examples/org.eclipse.compare.examples.xml/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.compare.examples.xml/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.xml/build.properties b/examples/org.eclipse.compare.examples.xml/build.properties
deleted file mode 100644
index 3418d7c..0000000
--- a/examples/org.eclipse.compare.examples.xml/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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.xmlcompareexamples.jar = src/
-
-bin.includes = doc-html/,\
-				about.html,\
-				plugin.properties,\
-				plugin.xml,\
-				xmlcompareexamples.jar
-
-src.includes = about.html
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/CreateNewIDMapButton.gif b/examples/org.eclipse.compare.examples.xml/doc-html/CreateNewIDMapButton.gif
deleted file mode 100644
index 907a80b..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/CreateNewIDMapButton.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/EditCopy.gif b/examples/org.eclipse.compare.examples.xml/doc-html/EditCopy.gif
deleted file mode 100644
index 6e7eb1d..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/EditCopy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/IDMapContextMenu.gif b/examples/org.eclipse.compare.examples.xml/doc-html/IDMapContextMenu.gif
deleted file mode 100644
index e7f2052..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/IDMapContextMenu.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_GeneralMatching.gif b/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_GeneralMatching.gif
deleted file mode 100644
index 9ff7062..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_GeneralMatching.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_MyPlugin.gif b/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_MyPlugin.gif
deleted file mode 100644
index 1ddf171..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_MyPlugin.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewIDMapScheme.gif b/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewIDMapScheme.gif
deleted file mode 100644
index 7c1d274..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewIDMapScheme.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewMapping_ContextMenu.gif b/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewMapping_ContextMenu.gif
deleted file mode 100644
index 93d1dc8..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewMapping_ContextMenu.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewMapping_PreferencePage.gif b/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewMapping_PreferencePage.gif
deleted file mode 100644
index 6d6e02b..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_NewMapping_PreferencePage.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_SelectMyPlugin.gif b/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_SelectMyPlugin.gif
deleted file mode 100644
index 3b16c75..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/IDMap_SelectMyPlugin.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_MyANT.gif b/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_MyANT.gif
deleted file mode 100644
index d4278fe..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_MyANT.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewIDMapScheme.gif b/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewIDMapScheme.gif
deleted file mode 100644
index b9ac0da..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewIDMapScheme.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewOrderedEntry_ContextMenu.gif b/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewOrderedEntry_ContextMenu.gif
deleted file mode 100644
index 8c88298..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewOrderedEntry_ContextMenu.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewOrderedEntry_PreferencePage.gif b/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewOrderedEntry_PreferencePage.gif
deleted file mode 100644
index 0485d3c..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_NewOrderedEntry_PreferencePage.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_UnorderedScheme.gif b/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_UnorderedScheme.gif
deleted file mode 100644
index c58e567..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/Ordered_UnorderedScheme.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/PreferencePage.gif b/examples/org.eclipse.compare.examples.xml/doc-html/PreferencePage.gif
deleted file mode 100644
index ba7912b..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/PreferencePage.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/addidmap.gif b/examples/org.eclipse.compare.examples.xml/doc-html/addidmap.gif
deleted file mode 100644
index dad7260..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/addidmap.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/hglegal.htm b/examples/org.eclipse.compare.examples.xml/doc-html/hglegal.htm
deleted file mode 100644
index f5871b7..0000000
--- a/examples/org.eclipse.compare.examples.xml/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.xml/doc-html/idMapping.html b/examples/org.eclipse.compare.examples.xml/doc-html/idMapping.html
deleted file mode 100644
index 38de553..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/idMapping.html
+++ /dev/null
@@ -1,103 +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>XML Compare Extension Points: idMapping</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<center>
-<h1>
-idMapping</h1></center>
-<b><i>Identifier: </i></b>org.eclipse.compare.examples.xml.idMapping
-<p><b><i>Description: </i></b>This extension point allows to define internal XML ID Mapping
-schemes using the <i>mapping</i> element. These schemes can then be used when performing an XML compare to uniquely identify XML elements by the value of an
-attribute or the text in a child element.
-<br>Additionally, <i>ordered</i> elements can be used to specify that the direct children of an element should be compared in ordered fashion instead of the
-default unordered way.
-<p><b><i>Configuration Markup:</i></b>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT idmap (mapping*)></tt>
-<br><tt>&nbsp;&nbsp; &lt;!ATTLIST idmap</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extension&nbsp;
-CDATA</tt>
-<br><tt>&nbsp;&nbsp; ></tt>
-<ul>
-<li>
-<b>name</b> - the name of the ID Mapping scheme. Should be unique.</li>
-<li>
-<b>extension</b> - (optional) a file extension associated with this ID Mapping Scheme.
-When comparing files with this extension, the current ID Mapping Scheme will automatically be used.
-<br>If an extension is specified, then the extension should also be added in the plugin.xml file of the XML Compare Plugin.
-For example, if we create an ID Mapping Scheme with extension cd, the plugin.xml of the XML Compare Plugin is updated as follows
-(update shown in bold):
-<tt>
-<p>&lt;extension
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;point="org.eclipse.compare.structureMergeViewers">
-<br>&nbsp;&nbsp;&nbsp;&lt;structureMergeViewer
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extensions="xml,classpath,<b>cd</b>"
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class="org.eclipse.compare.xml.XMLStructureViewerCreator">
-<br>&nbsp;&nbsp;&nbsp;&lt;/structureMergeViewer>
-</tt>
-<p><b>Warning: </b>If an extension is associated more than once, only the first association will be considered.
-Also, internal ID Mapping schemes have priority over user ID Mapping schemes when duplicate extensions are defined.
-<p><b>Warning: </b>When an internal ID Mapping scheme with extension association is removed (from a <tt>plugin.xml</tt>), the XML Compare plugin has to be reloaded to disassociate itself from the extension.
-If not, on the first compare of files with this extension, the XML Compare plugin will be used with the default <em>Unordered</em> algorithm.
-(However, at this point the extension will have been disassociated from the XML Plugin, as the plugin has been loaded.)
-</ul>
-<br>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT mapping EMPTY></tt>
-<br><tt>&nbsp;&nbsp; &lt;!ATTLIST mapping</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; signature&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id-source &nbsp;CDATA</tt>
-<br><tt>&nbsp;&nbsp; ></tt>
-<ul>
-<li>
-<b>signature</b> - the XML path from the root to the current element (see examples below).</li>
-
-<li>
-<b>id</b> - the attribute that identifies this element or the name of the child element
-whose text identifies this element.</li>
-
-<li>
-<b>id-source</b> - (optional) if <em>id</em> is the name of a child element, then this attribute must have
-the value <em>body</em>. If <em>id-source</em> is left out, it is assumed that <em>id</em> is an attribute.</li>
-</ul>
-<br>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT ordered EMPTY></tt>
-<br><tt>&nbsp;&nbsp; &lt;!ATTLIST ordered</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; signature&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp; ></tt>
-<ul>
-<li>
-<b>signature</b> - the XML path from the root to the element whose direct children will be compared in ordered fashion instead of the default unordered way.</li>
-</li>
-</ul>
-<b><i>Examples:</i></b>
-<br>The following is an example ID Mappings Scheme for ANT files.
-<br><i>project</i> elements are identified by an attribute <i>name</i>. <i>target</i> elements (which are children of <i>project</i>) are also identified by an attribute <i>name</i>.
-Also, the children of <i>target</i> will be compared in the order in which they appear in the document.
-<tt>
-<p>&lt;idmap name="ANT">
-<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;mapping signature="project" id="name"/>
-<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;mapping signature="project>target" id="name"/>
-<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;ordered signature="project>target"/>
-<br>&lt;idmap>
-</tt>
-<p>The following example illustrates a case where the text of a child element is used as id:
-<tt>
-<p>&lt;idmap name="Book Catalog" extension="book">
-<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;mapping signature="catalog>book" id="isbn" id-source="body"/>
-<br>&lt;idmap>
-</tt>
-<p><b><i>Supplied Implementation:</i></b>
-<br>The XML Compare plugin defines an ID Mapping scheme for Eclipse <tt>plugin.xml</tt> files, one for <tt>.classpath</tt> files and one for ANT files.
-
-<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.xml/doc-html/ngibmcpy.gif b/examples/org.eclipse.compare.examples.xml/doc-html/ngibmcpy.gif
deleted file mode 100644
index c786e43..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/smartmode_co.gif b/examples/org.eclipse.compare.examples.xml/doc-html/smartmode_co.gif
deleted file mode 100644
index c2a47b6..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/doc-html/tutorial_and_examples.html b/examples/org.eclipse.compare.examples.xml/doc-html/tutorial_and_examples.html
deleted file mode 100644
index ae1baff..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/tutorial_and_examples.html
+++ /dev/null
@@ -1,244 +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>Tutorial and Examples</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-<h1>Tutorial and Examples</h1>
-<h2><a id="id_mapping" name="id_mapping">
-General Matching vs. ID Mapping Schemes:<br>How to create an ID Mapping Scheme to improve compare results
-</a></h2>
-Consider an example XML file in two slightly different versions, left and right. Assume that the element <tt>extension-point</tt> is uniquely identified by the attribute <tt>id</tt>.
-The textual differences are shown in bold.
-<table>
-<tr>
-<td><tt>
-<br>
-<p>&lt;?xml version="1.0" encoding="UTF-8"?>
-<p>&lt;plugin
-<br>
-&nbsp;&nbsp;&nbsp;name="%Plugin.name"
-<br>
-&nbsp;&nbsp;&nbsp;id="org.eclipse.ui"
-<br>
-&nbsp;&nbsp;&nbsp;version="1.0"
-<br>
-&nbsp;&nbsp;&nbsp;provider-name="Object Technology International, Inc."
-<br>
-&nbsp;&nbsp;&nbsp;class="org.eclipse.ui.internal.WorkbenchPlugin">
-<br>
-<br>&lt;extension-point name="%ExtPoint.editorMenus " id="editorActions"/>
-<br>&lt;extension-point name="%ExtPoint.popupMenus " id="popupMenus"/>
-<br>&lt;extension-point name="%ExtPoint.<b>importWizards</b>" id="<b>importWizards</b>"/>
-<br>
-<p>&lt;/plugin>
-</tt>
-</td>
-<td>
-&nbsp;&nbsp;
-</td>
-<td><tt>
-<p>&lt;?xml version="1.0" encoding="UTF-8"?>
-<p>&lt;plugin
-<br>
-&nbsp;&nbsp;&nbsp;name="%Plugin.name"
-<br>
-&nbsp;&nbsp;&nbsp;id="org.eclipse.ui"
-<br>
-&nbsp;&nbsp;&nbsp;version="1.0"
-<br>
-&nbsp;&nbsp;&nbsp;provider-name="Object Technology International, Inc."
-<br>
-&nbsp;&nbsp;&nbsp;class="org.eclipse.ui.internal.WorkbenchPlugin">
-<br>
-<br>&lt;extension-point name="%ExtPoint.editorMenus " id="editorActions"/>
-<br>&lt;extension-point name="%ExtPoint.popupMenus " id="popupMenus"/>
-<br>&lt;extension-point name="%ExtPoint.<b>exportWizards</b>" id="<b>exportWizards</b>"/>
-<br>
-<p>&lt;/plugin>
-</tt>
-</td>
-</tr>
-</table>
-<br>
-Assume that the order of the elements should be ignored. The structural difference between the two documents consists in the <tt>extension-point</tt> element on the left with <tt>id="importWizards"</tt> being replaced on the right with a new <tt>extension-point</tt> with <tt>id="exportWizards"</tt>.
-Using the general matching algorithm called <em>Unordered</em>, because it ignores the order in which the XML elements appear in the document, we obtain the following tree of differences.
-<br>
-<br>
-<img src="IDMap_GeneralMatching.gif" alt="Difference Tree using General Matching Algorithm">
-<br>
-<br>
-The first two <tt>extension-point</tt> elements are identical and are therefore matched and are not shown in the difference tree. There remains the third <tt>extension-point</tt> element on both sides which, having the same element name, are also matched.
-The difference tree then shows the differences between the third <tt>extension-point</tt> element left and the third <tt>extension-point</tt> element right.
-These differences consist in the values of the attributes <tt>id</tt> and <tt>name</tt>.
-<br>
-However, this is not what we would like to see. We would like the difference tree to show us that an <tt>extension-point</tt> element was removed from the left side and a new <tt>extension-point</tt> element was added on the right side.
-<br>
-To achieve this, we create a new ID Mapping Scheme. We can do this by using the appropriate button on toolbar.
-<br><br>
-<img src="IDMap_NewIDMapScheme.gif" alt="Creating a new ID Mapping Scheme">
-<br><br>
-Assume we call the ID Mapping Scheme <em>MyPlugin</em>. We now select the ID Mapping Scheme MyPlugin from the drop-down list in the Toolbar
-<br><br>
-<img src="IDMap_SelectMyPlugin.gif" alt="Select MyPlugin ID Map Scheme">
-<br><br>
-and add to it the following Mapping:
-<br><br>
-<table>
-<tr>
-<td>
-<img src="IDMap_NewMapping_PreferencePage.gif" alt="Creating a new mapping from the preference page">
-</td>
-<td>
-&nbsp;&nbsp;&nbsp;
-</td>
-<td>
-<img src="IDMap_NewMapping_ContextMenu.gif" alt="Creating a new mapping using the context menu">
-</td>
-</tr>
-</table>
-<br>
-This can be done from the preference page (left) or from the context menu in the structure view (right).
-<br>
-The difference tree now becomes:
-<br>
-(To refresh the structure view, click on the <img src="smartmode_co.gif" alt="Button for updating view"> button of the drop-down list in the toolbar.)
-<br><br>
-<img src="IDMap_MyPlugin.gif" alt="Difference Tree using MyPlugin ID Mapping Scheme">
-<br><br>
-This is the compare result that we wanted and that we achieved by created an ID Mapping Scheme.
-<br>
-<br>
-The XML Compare Plugin already comes with a ID Mapping Scheme for Plugin files, which can be customized for particular Plugin files.
-<br><br>
-<b>Warning:</b>
-<br>
-If an ID Mapping is created, it is assumed that the id is unique, i.e. there are no two XML elements with the same name and path that have the same id.
-Should this not be the case, the ID Mapping Scheme may not deliver a sensible difference tree.
-<br>
-When an id can appear more than once, one should rely on the general algorithm.
-<br>
-<br>
-Also, when an ID Mapping Scheme is used and there are elements with no id mapping specified, the <em>Unordered</em> compare method will be used, i.e. elements are matched by their similarity and not by the order in which they appear in the document.
-To specify that the children of an element should be compared in order of appearance. See the next section on Ordered entries.
-
-<h2>Adding Ordered entries</h2>
-Ordered entries are used to specify that the direct children (excluding attributes) of an xml element - identified by its path - should be compared in ordered way instead of the default unordered method.
-<br> As an example consider the following ANT file in two slightly different versions:
-<table>
-<tr>
-<td>
-<tt>
-<p>&lt;?xml version="1.0" encoding="UTF-8"?>
-<p>&lt;project name="org.junit.wizards" default="export" basedir="..">
-<br>
-&nbsp;&nbsp;&nbsp;&lt;target name="export" depends="build">
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mkdir dir="${destdir}" />
-<br>
-<b>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;delete dir="${dest}" />
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mkdir dir="${dest}" />
-<br>
-</b>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jarfile="${dest}/JUnitWizard.jar"
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;basedir="bin"
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/>
-<br>&lt;/project>
-</tt>
-</td>
-<td>
-&nbsp;&nbsp;
-</td>
-<td>
-<tt>
-<p>&lt;?xml version="1.0" encoding="UTF-8"?>
-<p>&lt;project name="org.junit.wizards" default="export" basedir="..">
-<br>
-&nbsp;&nbsp;&nbsp;&lt;target name="export" depends="build">
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mkdir dir="${destdir}"/>
-<br>
-<b>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mkdir dir="${dest}"/>
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;delete dir="${dest}"/>
-<br>
-</b>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jarfile="${dest}/JUnitWizard.jar"
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;basedir="bin"
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/>
-<br>
-<b>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;copy file="plugin.xml" todir="${dest}"/>
-</b>
-<br>&lt;/project>
-</tt>
-</td>
-</tr>
-</table>
-<br>
-The differences between the two documents are shown in bold. Two elements have been swapped (<tt>&lt;mkdir dir="${dest}"/></tt> and <tt>&lt;delete dir="${dest}"/></tt>) and a new element (<tt>&lt;copy .../></tt>) has been appended to the target element.
-<br>
-Performing an unordered compare will result in the following tree of differences:
-<br>
-<br>
-<img src="Ordered_UnorderedScheme.gif" alt="Difference Tree using Unordered Matching">
-<br>
-<br>
-The fact that two elements have been swapped is not shown since the order of elements is ignored.
-<br>
-However, from an ANT point of view, the two documents cause very different behaviour, because the order of the elements inside a <tt>target</tt> is important.
-We therefore want to create an <i>ordered entry</i> for target to instruct the compare engine to compare the direct children of target in ordered fashion.
-<br>
-We do so by first creating a new ID Mapping Scheme. This can be done using the appropriate button in the toolbar.
-<br><br>
-<img src="Ordered_NewIDMapScheme.gif" alt="Creating a new ID Mapping Scheme">
-<br><br>
-Assume we call the ID Mapping Scheme <em>MyANT</em>.
-<br>We now select the ID Mapping Scheme MyANT from the drop-down list in the Toolbar and add to it the following Ordered Entry:
-<br><br>
-<table>
-<tr>
-<td>
-<img src="Ordered_NewOrderedEntry_PreferencePage.gif" alt="Creating a new orderered entry from the preference page">
-</td>
-<td>
-&nbsp;&nbsp;&nbsp;
-</td>
-<td>
-<img src="Ordered_NewOrderedEntry_ContextMenu.gif" alt="Creating a new ordered entry using the context menu">
-</td>
-</tr>
-</table>
-<br>
-This can be done from the preference page (left) or from the context menu in the structure view (right).
-<br>
-The difference tree now becomes:
-<br>
-(To refresh the structure view, click on the <img src="smartmode_co.gif" alt="Button for updating view"> button of the drop-down list in the toolbar.)
-<br><br>
-<img src="Ordered_MyANT.gif" alt="Difference Tree using MyANT ID Mapping Scheme">
-<br><br>
-This is the compare result that we wanted and that we achieved by creating an Ordered Entry.
-<br>
-<br>
-Additionally, Id Mappings (see <a href="#id_mapping">previous section</a>) can be used to uniquely identify ordered children. Especially when there are many changes, this will improve compare results.
-<br>
-<br>
-The XML Compare Plugin already comes with a ID Mapping Scheme for ANT files, which can be customized for particular ANT files.
-<br><br>
-
-<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.xml/doc-html/ui_xmlcompare_ex.html b/examples/org.eclipse.compare.examples.xml/doc-html/ui_xmlcompare_ex.html
deleted file mode 100644
index d69a80f..0000000
--- a/examples/org.eclipse.compare.examples.xml/doc-html/ui_xmlcompare_ex.html
+++ /dev/null
@@ -1,85 +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>XML Compare Plugin</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<center><h1>IBM Eclipse Platform XML Compare</h1></center>
-The XML Compare plugin allows you to perform a structural compare of two XML documents. It returns
-a difference tree which indicates which XML elements have been added or removed and - for modified XML elements -
-what differences there are with respect to attributes or body text.
-<h2>Installing the plugin</h2>
-<ul>
-<li>Copy the folder <tt>org.eclipse.compare.examples.xml</tt> to the <tt>plugins</tt> subfolder of Eclipse.
-</ul>
-<h2>Using the plugin</h2>
-The plugin is automatically used when comparing files with the extension .xml.
-<br>
-By default, the XML compare uses the <em>Unordered</em> compare method, which ignores the order in which the XML elements appear in the document and matches them so that elements which are most similar are matched.
-There is also an <em>Ordered</em> compare method, which simply compares the XML elements exactly in the order in which they appear in the document. In most cases, this compare method will not be of much use.
-<br>
-The compare method can be changed from a drop-down list in the toolbar of the structure view.
-<br>
-<br>
-When an XML document
-contains elements that can uniquely be identified by an attribute or the text of a child element,
-it is recommended that an ID Mapping Scheme be created for this type of XML document.
-<br>
-<br>
-See <a href="tutorial_and_examples.html">Tutorial and Examples</a> for more information on using the plugin.
-<br>
-<h3>ID Mapping Schemes</h3>
-An ID Mapping Scheme specifies for XML elements an attribute or the text of a child element that
-uniquely identifies this element. This assures that - in the compare process - the right elements will be 
-matched and therefore compared with each other. If for an XML element no ID Mapping is specified, a general matching algorithm
-is be used. However, this general matching algorithm does not always return the desired result.
-The reason for this is that the general matching algorithm looks for a matching of the nodes of the two parsed trees
-to compare that minimizes the differences. The effect is that often two XML elements are matched with are
-structurally similar but represent two completely different entities of information.
-<br>
-<h3>Ordered entries</h3>
-When using the default Unordered compare (with or without id mappings) it is sometimes desired to specify that the children of certain elements be compared in ordered fashion intead of the usual unordered method.
-For example, when comparing ANT files the order of appearance of the children of <tt>target</tt> elements is important.
-<br>In such cases one can create an <i>Ordered entry</i>. An Ordered entry specifies that the direct children of an xml element, identified by its path, will be compared in ordered fashion (attributes however are still compared in unordered way).
-The children of these children will continue to be compared in unordered way, unless otherwise specified.
-<h3>Defining ID Mapping Schemes and Ordered entries</h3>
-ID Mapping Schemes can be created in three different ways:
-<ol>
-<li>By extending the extension point <a href="idMapping.html"><em>idMapping</em></a></li>
-<li>Using the <a href="PreferencePage.gif">XML Compare Preference page</a>.</li>
-<li>Using the <a href="CreateNewIDMapButton.gif">Create new Id Map Scheme button</a> in the toolbar and the <a href="IDMapContextMenu.gif">context menu</a>
-</ol>
-Method 1 creates a so-called <em>internal</em> mapping scheme. An internal ID Mapping Scheme
-cannot be edited at runtime. However, using the <a href="EditCopy.gif"><em>Edit Copy</em></a> button in the Preference Page, an editable copy of the
-internal ID Mapping Scheme can be created.
-<br>
-Methods 2 and 3 create so-called <em>user</em> mapping schemes. These are created by the user at runtime and
-can be modified anytime in the Preference Page.
-<p>Internal and user mapping schemes can be associated with a file extension. As a result, when comparing two XML files with this file extension, the particular ID Mapping scheme with this extension
-is automatically used.
-<br>
-<br>
-When creating or editing the ID mapping for a particular XML element, four items must be specified (see <a href="IDMap_NewMapping_PreferencePage.gif">example</a>):
-<ol>
-<li>The element name.</li>
-<li>The element path. This is the path of the element from the root of the XML document to the element's parent.</li>
-<li>The name of the id which will identify the element</li>
-<li>Whether the id name in point 3 is the name of an attribute of the element or the name of one of its children (in which case the text of this child element
-will be used as id).</li>
-</ol>
-<br>
-<hr WIDTH="100%">
-<h1>
-Extension Points</h1>
-Only one extension point is available in the XML Compare plugin. It is used to create
-internal ID Mapping Schemes:
-<ul>
-<li>
-<a href="idMapping.html">org.eclipse.compare.examples.xml.idMapping</a></li>
-</ul>
-
-<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.xml/icons/full/obj16/addidmap.gif b/examples/org.eclipse.compare.examples.xml/icons/full/obj16/addidmap.gif
deleted file mode 100644
index dad7260..0000000
--- a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/addidmap.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/attribute_obj.gif b/examples/org.eclipse.compare.examples.xml/icons/full/obj16/attribute_obj.gif
deleted file mode 100644
index d81ce48..0000000
--- a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/attribute_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/element_obj.gif b/examples/org.eclipse.compare.examples.xml/icons/full/obj16/element_obj.gif
deleted file mode 100644
index c663550..0000000
--- a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/element_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/element_ordered_obj.gif b/examples/org.eclipse.compare.examples.xml/icons/full/obj16/element_ordered_obj.gif
deleted file mode 100644
index 0b2775e..0000000
--- a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/element_ordered_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/smartmode_co.gif b/examples/org.eclipse.compare.examples.xml/icons/full/obj16/smartmode_co.gif
deleted file mode 100644
index c2a47b6..0000000
--- a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/text_obj.gif b/examples/org.eclipse.compare.examples.xml/icons/full/obj16/text_obj.gif
deleted file mode 100644
index 72a802e..0000000
--- a/examples/org.eclipse.compare.examples.xml/icons/full/obj16/text_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/plugin.properties b/examples/org.eclipse.compare.examples.xml/plugin.properties
deleted file mode 100644
index 7955699..0000000
--- a/examples/org.eclipse.compare.examples.xml/plugin.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 XML Compare Examples plugin.xml file
-#
-pluginName= XML Compare Support
-providerName= Eclipse.org
-pluginNamePreferencePage= XML Compare
-idMapping= ID Mapping
-
-antMap=ANT
-eclipsePluginMap=Eclipse Plugin
-classpathMap=Eclipse ClassPath
diff --git a/examples/org.eclipse.compare.examples.xml/plugin.xml b/examples/org.eclipse.compare.examples.xml/plugin.xml
deleted file mode 100644
index 0b13204..0000000
--- a/examples/org.eclipse.compare.examples.xml/plugin.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.compare.examples.xml"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName"
-   class="org.eclipse.compare.examples.xml.XMLPlugin">
-
-   <runtime>
-      <library name="xmlcompareexamples.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.compare"/>
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.junit"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
-   </requires>
-
-
-   <extension-point id="idMapping" name="%idMapping" schema="schema/idMapping.exsd"/>
-
-   <extension
-         point="org.eclipse.compare.examples.xml.idMapping">
-      <idmap
-            name="%antMap"
-            id="antMap">
-         <mapping
-               signature="project"
-               id="name">
-         </mapping>
-         <mapping
-               signature="project&gt;target"
-               id="name">
-         </mapping>
-         <ordered
-               signature="project&gt;target">
-         </ordered>
-      </idmap>
-      <idmap
-            name="%eclipsePluginMap"
-            id="eclipsePluginMap">
-         <mapping
-               signature="plugin"
-               id="id">
-         </mapping>
-         <mapping
-               signature="plugin&gt;requires&gt;import"
-               id="plugin">
-         </mapping>
-         <mapping
-               signature="plugin&gt;runtime&gt;library"
-               id="name">
-         </mapping>
-         <mapping
-               signature="plugin&gt;runtime&gt;library&gt;export"
-               id="name">
-         </mapping>
-         <mapping
-               signature="plugin&gt;extension-point"
-               id="id">
-         </mapping>
-         <mapping
-               signature="plugin&gt;extension"
-               id="point">
-         </mapping>
-      </idmap>
-      <idmap
-            name="%classpathMap"
-            extension="CLASSPATH"
-            id="classpathMap">
-         <mapping
-               signature="classpath&gt;classpathentry"
-               id="path">
-         </mapping>
-      </idmap>
-   </extension>
-   <extension
-         point="org.eclipse.compare.structureMergeViewers">
-      <structureMergeViewer
-            extensions="xml,classpath"
-            class="org.eclipse.compare.examples.xml.XMLStructureViewerCreator">
-      </structureMergeViewer>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%pluginNamePreferencePage"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.compare.examples.xml.XMLComparePreferencePage"
-            id="org.eclipse.compare.examples.xml.XMLComparePreferencePage">
-      </page>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.compare.examples.xml/schema/idMapping.exsd b/examples/org.eclipse.compare.examples.xml/schema/idMapping.exsd
deleted file mode 100644
index 9632e16..0000000
--- a/examples/org.eclipse.compare.examples.xml/schema/idMapping.exsd
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare.examples.xml">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare.examples.xml" id="idMapping" name="XML Id Mapping"/>
-      </appInfo>
-      <documentation>
-         This extension point allows to define internal XML ID Mapping schemes using the &lt;i&gt;mapping&lt;/i&gt; element.
-These schemes can then be used when performing an XML compare to uniquely identify XML elements by the
-value of an attribute or the text in a child element.
-Additionally, &lt;i&gt;ordered&lt;/i&gt; elements can be used to specify that the direct children of an element
-should be compared in an ordered fashion instead of the default unordered way.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="idMap" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="idMap">
-      <complexType>
-         <sequence>
-            <element ref="mapping"/>
-            <element ref="ordered"/>
-         </sequence>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the ID Mapping scheme. Should be unique.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="extension" type="string">
-            <annotation>
-               <documentation>
-                  a file extension associated with this ID Mapping Scheme.
-When comparing files with this extension, the current ID Mapping
-Scheme will automatically be used. 
-If an extension is specified, then the extension should also be added
-in the plugin.xml file of the XML Compare Plugin. For example, if we
-create an ID Mapping Scheme with extension cd, the plugin.xml of the
-XML Compare Plugin is updated as follows (update shown in bold): 
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension 
-      point=&quot;org.eclipse.compare.structureMergeViewers&quot;&gt; 
- &lt;structureMergeViewer 
-         extensions=&quot;xml,classpath,cd&quot;
-         class=&quot;org.eclipse.compare.xml.XMLStructureViewerCreator&quot;
- /&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-&lt;p&gt;
-Warning: If an extension is associated more than once, only the first
-association will be considered. Also, internal ID Mapping schemes have
-priority over user ID Mapping schemes when duplicate extensions are defined. 
-&lt;/p&gt;
-&lt;p&gt;
-Warning: When an internal ID Mapping scheme with extension association is
-removed (from a plugin.xml ), the XML Compare plugin has to be reloaded
-to disassociate itself from the extension. If not, on the first compare
-of files with this extension, the XML Compare plugin will be used with
-the default Unordered algorithm. (However, at this point the extension
-will have been disassociated from the XML Plugin, as the plugin has been loaded.)
-&lt;/p&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="mapping">
-      <complexType>
-         <attribute name="signature" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the XML path from the root to the current element (see examples below).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the attribute that identifies this element or the name of the child element whose text identifies this element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id-source" type="string">
-            <annotation>
-               <documentation>
-                  if id is the name of a child element, then this attribute must have the value body.
-If id-source is left out, it is assumed that id is an attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="ordered">
-      <complexType>
-         <attribute name="signature" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the XML path from the root to the element whose direct children will be
-compared in ordered fashion instead of the default unordered way.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.0.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example ID Mappings Scheme for ANT files. 
-&lt;i&gt;project&lt;/i&gt; elements are identified by an &lt;i&gt;attribute name&lt;/i&gt;. &lt;i&gt;target&lt;/i&gt; elements (which are children of &lt;i&gt;project&lt;/i&gt;) are also identified by an attribute &lt;i&gt;name&lt;/i&gt;. Also, the children of &lt;i&gt;target&lt;/i&gt; will be compared in the order in which they appear in the document.
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point = &quot;org.eclipse.compare.examples.xml.idMapping&quot;&gt; 
- &lt;idmap name=&quot;ANT&quot;&gt;
-  &lt;mapping signature=&quot;project&quot; id=&quot;name&quot;/&gt;
-  &lt;mapping signature=&quot;project&gt;target&quot; id=&quot;name&quot;/&gt;
-  &lt;ordered signature=&quot;project&gt;target&quot;/&gt;
- &lt;idmap&gt;
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-The following example illustrates a case where the text of a child element is used as the id:
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point = &quot;org.eclipse.compare.examples.xml.idMapping&quot;&gt; 
- &lt;idmap name=&quot;Book Catalog&quot; extension=&quot;book&quot;&gt;
-  &lt;mapping signature=&quot;catalog&gt;book&quot; id=&quot;isbn&quot; id-source=&quot;body&quot;/&gt;
- &lt;idmap&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The XML Compare plugin defines an ID Mapping scheme for Eclipse &lt;samp&gt;plugin.xml&lt;/samp&gt; files, one for &lt;samp&gt;.classpath&lt;/samp&gt; files and one for Ant files.
-      </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/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/AbstractMatching.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/AbstractMatching.java
deleted file mode 100644
index 43fbe1d..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/AbstractMatching.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.ArrayList;
-import java.util.Vector;
-
-import org.eclipse.compare.rangedifferencer.IRangeComparator;
-import org.eclipse.compare.rangedifferencer.RangeDifference;
-import org.eclipse.compare.rangedifferencer.RangeDifferencer;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * @version 	1.0
- * @author
- */
-public abstract class AbstractMatching {
-
-	protected static final int NO_ENTRY = -1;//value with which fDT elements are initialized
-	protected static final String SIGN_ELEMENT= XMLStructureCreator.SIGN_ELEMENT;
-	int[][] fDT;//Distance Table; 1st index from fNLeft, 2nd index from fNRight
-	ArrayList[][] fDT_Matchings;//Mathing entries of children for a match. 1st index from fNLeft, 2nd index from fNRight
-	Vector fNLeft;
-	Vector fNRight;
-	Vector fMatches;
-	
-	/* methods used for match */
-
-	/* finds all the leaves of a tree and puts them in a vector */
-	protected void findLeaves(XMLNode root, ArrayList leaves) {
-		if (isLeaf(root)) {
-			leaves.add(root);			
-		} else {
-			Object[] children = root.getChildren();
-			for (int i=0; i<children.length; i++)
-				findLeaves((XMLNode) children[i], leaves);
-		}
-	}
-
-	/* true if x is a leaf */
-	protected boolean isLeaf(XMLNode x) {
-		if (x == null) return true;
-		return x.getChildren() == null || x.getChildren().length <= 0;
-	}
-
-	/* Numbers all nodes of tree. The number of x is its index in the vector numbering */
-	protected void numberNodes(XMLNode root, Vector numbering) {
-		if (root != null) {
-			numbering.add(root);
-			Object[] children = root.getChildren();
-			if (children != null) {
-				for (int i=0; i<children.length; i++)
-					numberNodes((XMLNode) children[i], numbering);
-			}
-		}
-	}
-	
-	/* counts # of nodes in tree including root */
-	protected int countNodes(XMLNode root) {
-		if (root == null) return 0;
-		int count = 1;
-		if (isLeaf(root)) return count;
-		Object[] children = root.getChildren();
-		for (int i=0; i<children.length; i++)
-			count+=countNodes((XMLNode) children[i]);
-		return count;
-	}
-
-	/* returns index of node x in fNLeft */
-	protected int indexOfLN (XMLNode x) {
-		int i;
-		for (i=0; (i<fNLeft.size()) && (fNLeft.elementAt(i) != x); i++);
-		return i;
-	}
-	
-	/* returns index of node y in fNRight */
-	protected int indexOfRN (XMLNode y) {
-		int j;
-		for (j=0; (j<fNRight.size()) && (fNRight.elementAt(j) != y); j++);
-		return j;
-	}
-
-/* for testing */
- 	public Vector getMatches() {
-  		return fMatches;
-   	}
-
-	protected class XMLComparator implements IRangeComparator {
-	
-		private Object[] fXML_elements;
-	
-		public XMLComparator(Object[] xml_elements) {
-			fXML_elements= xml_elements;
-		}
-	
-		/*
-		 * @see IRangeComparator#getRangeCount()
-		 */
-		public int getRangeCount() {
-			return fXML_elements.length;
-		}
-	
-		/*
-		 * @see IRangeComparator#rangesEqual(int, IRangeComparator, int)
-		 */
-		public boolean rangesEqual(
-			int thisIndex,
-			IRangeComparator other_irc,
-			int otherIndex) {
-			
-			if (other_irc instanceof XMLComparator) {
-				XMLComparator other= (XMLComparator) other_irc;
-				//return ((XMLNode)fXML_elements[thisIndex]).subtreeEquals(other.getXML_elements()[otherIndex]);
-				
-				//ordered compare of subtrees
-				//boolean result= ((XMLNode)fXML_elements[thisIndex]).subtreeEquals(other.getXML_elements()[otherIndex]);
-				
-				//taking ids into account
-				boolean sameId= false;
-				XMLNode thisNode= (XMLNode)fXML_elements[thisIndex];
-				XMLNode otherNode= (XMLNode)other.getXML_elements()[otherIndex]; 
-				if ( thisNode.usesIDMAP() && otherNode.usesIDMAP() ) {
-					if ( otherNode.getOrigId().equals(thisNode.getOrigId()) ) {
-						sameId= true;
-					}
-				}
-				
-				//unordered compare of subtrees
-				int distance= dist((XMLNode)other.getXML_elements()[otherIndex] , (XMLNode)fXML_elements[thisIndex]);
-				return sameId || distance == 0;
-			}
-			return false;
-		}
-	
-		/*
-		 * @see IRangeComparator#skipRangeComparison(int, int, IRangeComparator)
-		 */
-		public boolean skipRangeComparison(
-			int length,
-			int maxLength,
-			IRangeComparator other) {
-			return false;
-		}
-	
-		public Object[] getXML_elements() {
-			return fXML_elements;
-		}
-	
-	}
-
-	/* represents a matching between a node in the Left tree and a node in the Right tree */
-	class Match {
-		public XMLNode fx;
-		public XMLNode fy;
-		
-		Match(XMLNode x, XMLNode y) {
-			fx = x;
-			fy = y;	
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof Match) {
-				Match m = (Match) obj;
-				if (m != null)
-					return fx == m.fx && fy == m.fy;
-			}
-			return false;
-		}
-	}
-	
-	protected int handleRangeDifferencer(Object[] xc_elements, Object[] yc_elements, ArrayList DTMatching, int distance) {
-		RangeDifference[] differences= RangeDifferencer.findDifferences(new XMLComparator(xc_elements), new XMLComparator(yc_elements));
-		
-		int cur_pos_left= 0;
-		int cur_pos_right= 0;
-		for (int i= 0; i < differences.length; i++) {
-			RangeDifference rd= differences[i];
-			int equal_length= rd.leftStart();
-			//handle elements before current range which are unchanged
-			while (cur_pos_left < equal_length) {
-				//assuming XMLComparator has already filled fDT and fDT_Matchings for subtrees
-				//rooted at xc_elements[cur_pos_left] and yc_elements[cur_pos_right]
-//				if ( fDT[indexOfLN( (XMLNode)xc_elements[cur_pos_left])][indexOfRN( (XMLNode)yc_elements[cur_pos_right])] != 0)
-//					System.out.println("distance not 0");
-//				distance += fDT[indexOfLN( (XMLNode)xc_elements[cur_pos_left])][indexOfRN( (XMLNode)yc_elements[cur_pos_right])];
-				//DTMatching.addAll(fDT_Matchings[index_left][index_right]);
-				DTMatching.add(new Match( (XMLNode)xc_elements[cur_pos_left], (XMLNode)yc_elements[cur_pos_right]));
-				cur_pos_left++;
-				cur_pos_right++;
-			}
-			//now handle RangeDifference rd[i]
-			int smaller_length, greater_length;
-			boolean leftGreater= rd.leftLength() > rd.rightLength();
-			if (leftGreater) {
-				smaller_length= rd.rightLength();
-				greater_length= rd.leftLength();
-			} else {
-				smaller_length= rd.leftLength();
-				greater_length= rd.rightLength();
-			}
-			
-			//handle elements elements in range
-			for (int j=0; j < smaller_length; j++) {
-				distance += dist((XMLNode) xc_elements[cur_pos_left], (XMLNode) yc_elements[cur_pos_right]);
-				DTMatching.add(new Match( (XMLNode)xc_elements[cur_pos_left], (XMLNode)yc_elements[cur_pos_right]));
-				cur_pos_left++;
-				cur_pos_right++;
-			}
-			//int cur_pos_greater= (leftGreater)?cur_pos_left:cur_pos_right;
-			if (leftGreater) {
-				for (int j=smaller_length; j < greater_length; j++) {
-					distance += countNodes((XMLNode) xc_elements[cur_pos_left]);
-					DTMatching.add(new Match( (XMLNode)xc_elements[cur_pos_left], null));
-					cur_pos_left++;
-				}
-			} else {
-				for (int j=smaller_length; j < greater_length; j++) {
-					distance += countNodes((XMLNode) yc_elements[cur_pos_right]);
-				DTMatching.add(new Match( null, (XMLNode)yc_elements[cur_pos_right]));
-					cur_pos_right++;
-				}
-			}
-//			for (int j=smaller_length; j < greater_length; j++) {
-//				distance += countNodes((XMLNode) xc_elements[cur_pos_greater]);
-//				cur_pos_greater++;
-//			}
-//			if (leftGreater)
-//				cur_pos_left= cur_pos_greater;
-//			else
-//				cur_pos_right= cur_pos_greater;
-		}
-		
-		for (int i= cur_pos_left; i < xc_elements.length; i++) {
-			//distance += fDT[indexOfLN( (XMLNode)xc_elements[cur_pos_left])][indexOfRN( (XMLNode)yc_elements[cur_pos_right])];
-			//DTMatching.addAll(fDT_Matchings[index_left][index_right]);
-			DTMatching.add(new Match( (XMLNode)xc_elements[cur_pos_left], (XMLNode)yc_elements[cur_pos_right]));
-			cur_pos_left++;
-			cur_pos_right++;
-		}
-		
-		return distance;
-	}
-
-	abstract public void match(XMLNode LeftTree, XMLNode RightTree, boolean rightTreeIsAncestor, IProgressMonitor monitor) throws InterruptedException;
-
-	protected int dist(XMLNode x, XMLNode y) {
-		//System.out.println("dist( "+x.getSignature()+" , "+y.getSignature()+")");
-		int ret= NO_ENTRY;
-
-		int index_x= indexOfLN(x);
-		int index_y= indexOfRN(y);
-		if (fDT[index_x][index_y] != NO_ENTRY) return fDT[index_x][index_y];
-		
-		if (isLeaf(x) && isLeaf(y)) {
-			if (x.getXMLType() == XMLStructureCreator.TYPE_ELEMENT) {
-				if ( x.getSignature().equals(y.getSignature()) ) {
-					ret= 0;
-					fDT[index_x][index_y] = ret;
-					return ret;
-				} else {
-					ret= 2;
-					fDT[index_x][index_y] = ret;
-					return ret;
-				}
-			} else if (x.getXMLType() == XMLStructureCreator.TYPE_ATTRIBUTE || x.getXMLType() == XMLStructureCreator.TYPE_TEXT) {
-				if ( x.getSignature().equals(y.getSignature()) ) {
-					if (x.getValue().equals(y.getValue())) {
-						ret= 0;
-						fDT[index_x][index_y] = ret;
-						return ret;
-					} else {
-						ret= 1;
-						fDT[index_x][index_y] = ret;
-						return ret;
-					}
-				}
-				else {
-					ret= 2;
-					fDT[index_x][index_y] = ret;
-					return ret;
-				}
-			}
-		} else {//x or y are not leaves
-			if ( !x.getSignature().equals(y.getSignature()) ) {
-				ret= countNodes(x) + countNodes(y);
-				fDT[index_x][index_y] = ret;
-				return ret;
-			} else {//x.getSignature().equals(y.getSignature())
-				if (isLeaf(x)) {
-					ret= countNodes(y)-1;
-					fDT[index_x][index_y] = ret;
-					return ret;
-				}
-				if (isLeaf(y)) {
-					ret= countNodes(x)-1;
-					fDT[index_x][index_y] = ret;
-					return ret;
-				}
-				//both x and y have children
-				return handleXandYnotLeaves(x,y);
-			}
-		}
-		return ret;
-	}
-	
-	abstract int handleXandYnotLeaves(XMLNode x, XMLNode y);
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/AttributesImpl.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/AttributesImpl.java
deleted file mode 100644
index a85ee61..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/AttributesImpl.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import org.xml.sax.Attributes;
-
-/**
- * An Attributes implementation that can perform more operations
- * than the attribute list helper supplied with the standard SAX2
- * distribution.
- */
-public class AttributesImpl implements Attributes {
-
-	/** Head node. */
-	private ListNode fHead;
-
-	/** Tail node. */
-	private ListNode fTail;
-
-	/** Length. */
-	private int fLength;
-
-
-	/** Returns the number of attributes. */
-	public int getLength() {
-		return fLength;
-	}
-
-	/** Returns the index of the specified attribute. */
-	public int getIndex(String raw) {
-		ListNode place= fHead;
-		int index= 0;
-		while (place != null) {
-			if (place.raw.equals(raw)) {
-				return index;
-			}
-			index++;
-			place= place.next;
-		}
-		return -1;
-	}
-
-	/** Returns the index of the specified attribute. */
-	public int getIndex(String uri, String local) {
-		ListNode place= fHead;
-		int index= 0;
-		while (place != null) {
-			if (place.uri.equals(uri) && place.local.equals(local)) {
-				return index;
-			}
-			index++;
-			place= place.next;
-		}
-		return -1;
-	}
-
-	/** Returns the attribute URI by index. */
-	public String getURI(int index) {
-
-		ListNode node= getListNodeAt(index);
-		return node != null ? node.uri : null;
-	}
-
-	/** Returns the attribute local name by index. */
-	public String getLocalName(int index) {
-
-		ListNode node= getListNodeAt(index);
-		return node != null ? node.local : null;
-	}
-
-	/** Returns the attribute raw name by index. */
-	public String getQName(int index) {
-
-		ListNode node= getListNodeAt(index);
-		return node != null ? node.raw : null;
-
-	}
-
-	/** Returns the attribute type by index. */
-	public String getType(int index) {
-
-		ListNode node= getListNodeAt(index);
-		return (node != null) ? node.type : null;
-	}
-
-	/** Returns the attribute type by uri and local. */
-	public String getType(String uri, String local) {
-
-		ListNode node= getListNode(uri, local);
-		return (node != null) ? node.type : null;
-
-	}
-
-	/** Returns the attribute type by raw name. */
-	public String getType(String raw) {
-
-		ListNode node= getListNode(raw);
-		return (node != null) ? node.type : null;
-	}
-
-	/** Returns the attribute value by index. */
-	public String getValue(int index) {
-
-		ListNode node= getListNodeAt(index);
-		return (node != null) ? node.value : null;
-	}
-
-	/** Returns the attribute value by uri and local. */
-	public String getValue(String uri, String local) {
-
-		ListNode node= getListNode(uri, local);
-		return (node != null) ? node.value : null;
-	}
-
-	/** Returns the attribute value by raw name. */
-	public String getValue(String raw) {
-
-		ListNode node= getListNode(raw);
-		return (node != null) ? node.value : null;
-	}
-
-	/** Adds an attribute. */
-	public void addAttribute(String raw, String type, String value) {
-		addAttribute(null, null, raw, type, value);
-	}
-
-	/** Adds an attribute. */
-	public void addAttribute(
-		String uri,
-		String local,
-		String raw,
-		String type,
-		String value) {
-
-		ListNode node= new ListNode(uri, local, raw, type, value);
-		if (fLength == 0) {
-			fHead= node;
-		} else {
-			fTail.next= node;
-		}
-		fTail= node;
-		fLength++;
-	}
-
-	/** Inserts an attribute. */
-	public void insertAttributeAt(
-		int index,
-		String raw,
-		String type,
-		String value) {
-		insertAttributeAt(index, null, null, raw, type, value);
-	}
-
-	/** Inserts an attribute. */
-	public void insertAttributeAt(
-		int index,
-		String uri,
-		String local,
-		String raw,
-		String type,
-		String value) {
-
-		// if list is empty, add attribute
-		if (fLength == 0 || index >= fLength) {
-			addAttribute(uri, local, raw, type, value);
-			return;
-		}
-
-		// insert at beginning of list
-		ListNode node= new ListNode(uri, local, raw, type, value);
-		if (index < 1) {
-			node.next= fHead;
-			fHead= node;
-		} else {
-			ListNode prev= getListNodeAt(index - 1);
-			node.next= prev.next;
-			prev.next= node;
-		}
-		fLength++;
-	}
-
-	/** Removes an attribute. */
-	public void removeAttributeAt(int index) {
-
-		if (fLength == 0)
-			return;
-
-		if (index == 0) {
-			fHead= fHead.next;
-			if (fHead == null) {
-				fTail= null;
-			}
-			fLength--;
-		} else {
-			ListNode prev= getListNodeAt(index - 1);
-			ListNode node= getListNodeAt(index);
-			if (node != null) {
-				prev.next= node.next;
-				if (node == fTail) {
-					fTail= prev;
-				}
-				fLength--;
-			}
-		}
-	}
-
-	/** Removes the specified attribute. */
-	public void removeAttribute(String raw) {
-		removeAttributeAt(getIndex(raw));
-	}
-
-	/** Removes the specified attribute. */
-	public void removeAttribute(String uri, String local) {
-		removeAttributeAt(getIndex(uri, local));
-	}
-
-	/** Returns the node at the specified index. */
-	private ListNode getListNodeAt(int i) {
-
-		for (ListNode place= fHead; place != null; place= place.next) {
-			if (--i == -1) {
-				return place;
-			}
-		}
-		return null;
-	}
-
-	/** Returns the first node with the specified uri and local. */
-	public ListNode getListNode(String uri, String local) {
-
-		if (uri != null && local != null) {
-			ListNode place= fHead;
-			while (place != null) {
-				if (place.uri != null
-					&& place.local != null
-					&& place.uri.equals(uri)
-					&& place.local.equals(local)) {
-					return place;
-				}
-				place= place.next;
-			}
-		}
-		return null;
-	}
-
-	/** Returns the first node with the specified raw name. */
-	private ListNode getListNode(String raw) {
-
-		if (raw != null) {
-			for (ListNode place= fHead; place != null; place= place.next) {
-				if (place.raw != null && place.raw.equals(raw)) {
-					return place;
-				}
-			}
-		}
-
-		return null;
-	}
-
-	/** Returns a string representation of this object. */
-	public String toString() {
-		StringBuffer str= new StringBuffer();
-
-		str.append('[');
-		str.append("len="); //$NON-NLS-1$
-		str.append(fLength);
-		str.append(", {"); //$NON-NLS-1$
-		for (ListNode place= fHead; place != null; place= place.next) {
-			str.append(place.toString());
-			if (place.next != null) {
-				str.append(", "); //$NON-NLS-1$
-			}
-		}
-		str.append("}]"); //$NON-NLS-1$
-
-		return str.toString();
-	}
-
-	/**
-	 * An attribute node.
-	 */
-	static class ListNode {
-
-		/** Attribute uri. */
-		public String uri;
-
-		/** Attribute local. */
-		public String local;
-
-		/** Attribute raw. */
-		public String raw;
-
-		/** Attribute type. */
-		public String type;
-
-		/** Attribute value. */
-		public String value;
-
-		/** Next node. */
-		public ListNode next;
-
-		/** Constructs a list node. */
-		public ListNode(
-			String uri0,
-			String local0,
-			String raw0,
-			String type0,
-			String value0) {
-
-			this.uri= uri0;
-			this.local= local0;
-			this.raw= raw0;
-			this.type= type0;
-			this.value= value0;
-
-		}
-
-		/** Returns string representation of this object. */
-		public String toString() {
-			return raw != null ? raw : local;
-		}
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ChooseMatcherDropDownAction.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ChooseMatcherDropDownAction.java
deleted file mode 100644
index 46d9373..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ChooseMatcherDropDownAction.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.action.*;
-
-
-/**
- * Drop down menu to select a particular id mapping scheme
- */
-class ChooseMatcherDropDownAction extends Action implements IMenuCreator {
-
-	private XMLStructureViewer fViewer;
-
-	public ChooseMatcherDropDownAction(XMLStructureViewer viewer) {
-		fViewer = viewer;
-		setText(XMLCompareMessages.getString("ChooseMatcherDropDownAction.text")); //$NON-NLS-1$
-		setImageDescriptor(XMLPlugin.getDefault().getImageDescriptor("obj16/smartmode_co.gif")); //$NON-NLS-1$
-		setToolTipText(XMLCompareMessages.getString("ChooseMatcherDropDownAction.tooltip")); //$NON-NLS-1$
-		setMenuCreator(this);
-	}
-
-	public void dispose() {
-	}
-
-	public Menu getMenu(Menu parent) {
-		return null;
-	}
-
-	public Menu getMenu(Control parent) {
-		XMLPlugin plugin= XMLPlugin.getDefault();
-		Menu menu= new Menu(parent);
-		addActionToMenu(menu, new SelectMatcherAction(XMLStructureCreator.USE_UNORDERED, fViewer));
-		addActionToMenu(menu, new SelectMatcherAction(XMLStructureCreator.USE_ORDERED, fViewer));
-		new MenuItem(menu, SWT.SEPARATOR);
-		HashMap IdMaps = plugin.getIdMaps();
-		HashMap IdMapsInternal = plugin.getIdMapsInternal();
-
-		Set keySetIdMaps = IdMaps.keySet();
-		Set keySetIdMapsInternal = IdMapsInternal.keySet();
-		ArrayList internalIdMapsAL= new ArrayList();
-		for (Iterator iter_internal = keySetIdMapsInternal.iterator(); iter_internal.hasNext(); ) {
-			String idmap_name = (String)iter_internal.next();
-			internalIdMapsAL.add(idmap_name);
-		}
-		Object[] internalIdMapsA= internalIdMapsAL.toArray();
-		Arrays.sort(internalIdMapsA);
-		for (int i= 0; i < internalIdMapsA.length; i++) {
-			addActionToMenu(menu, new SelectMatcherAction((String)internalIdMapsA[i], fViewer));
-		}
-		new MenuItem(menu, SWT.SEPARATOR);
-
-		ArrayList userIdMapsAL= new ArrayList();
-		for (Iterator iter_idmaps = keySetIdMaps.iterator(); iter_idmaps.hasNext(); ) {
-			String idmap_name = (String)iter_idmaps.next();
-			userIdMapsAL.add(idmap_name);
-		}
-		
-		HashMap OrderedElements= plugin.getOrderedElements();
-		Set keySetOrdered= OrderedElements.keySet();
-		for (Iterator iter_orderedElements= keySetOrdered.iterator(); iter_orderedElements.hasNext();) {
-			String idmap_name= (String) iter_orderedElements.next();
-			if (!keySetIdMaps.contains(idmap_name)) {
-				userIdMapsAL.add(idmap_name);
-			}
-		}
-
-		Object[] userIdMapsA= userIdMapsAL.toArray();
-		Arrays.sort(userIdMapsA);
-		for (int i= 0; i < userIdMapsA.length; i++) {
-			addActionToMenu(menu, new SelectMatcherAction((String)userIdMapsA[i], fViewer));
-		}
-		
-		return menu;
-	}
-
-	protected void addActionToMenu(Menu parent, Action action) {
-		ActionContributionItem item= new ActionContributionItem(action);
-		item.fill(parent, -1);
-	}
-
-	public void run() {
-		fViewer.contentChanged();
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/CreateNewIdMapAction.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/CreateNewIdMapAction.java
deleted file mode 100644
index 34a4a3d..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/CreateNewIdMapAction.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.*;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.window.Window;
-
-/**
- * Button to create a new id mapping scheme
- */
-public class CreateNewIdMapAction extends Action {
-
-	private HashMap fIdMaps;// HashMap ( idname -> HashMap (signature -> id) )
-	private HashMap fIdMapsInternal;
-	private HashMap fIdExtensionToName;
-	
-	public CreateNewIdMapAction(XMLStructureViewer viewer) {		
-		setImageDescriptor(XMLPlugin.getDefault().getImageDescriptor("obj16/addidmap.gif")); //$NON-NLS-1$
-		setToolTipText(XMLCompareMessages.getString("XMLStructureViewer.newtask")); //$NON-NLS-1$
-	}
-	
-	public void run() {
-		XMLPlugin plugin= XMLPlugin.getDefault();
-		fIdMapsInternal= plugin.getIdMapsInternal();//fIdMapsInternal is only read, not modified
-		
-		fIdMaps = new HashMap();
-		HashMap PluginIdMaps = plugin.getIdMaps();
-		Set keySet = PluginIdMaps.keySet();
-		for (Iterator iter = keySet.iterator(); iter.hasNext(); ) {
-			String key = (String) iter.next();
-			fIdMaps.put(key, ((HashMap)PluginIdMaps.get(key)).clone());
-		}
-		
-		fIdExtensionToName= new HashMap();
-		HashMap PluginIdExtensionToName= plugin.getIdExtensionToName();
-		keySet= PluginIdExtensionToName.keySet();
-		for (Iterator iter= keySet.iterator(); iter.hasNext(); ) {
-			String key= (String) iter.next();
-			fIdExtensionToName.put(key, PluginIdExtensionToName.get(key));
-		}
-		
-		IdMap idmap = new IdMap(false);
-		XMLCompareAddIdMapDialog dialog= new XMLCompareAddIdMapDialog(XMLPlugin.getActiveWorkbenchShell(),idmap,fIdMaps,fIdMapsInternal,fIdExtensionToName,false);
-		if (dialog.open() == Window.OK) {
-			if (!fIdMaps.containsKey(idmap.getName())) {
-				fIdMaps.put(idmap.getName(),new HashMap());
-				if (!idmap.getExtension().equals("")) //$NON-NLS-1$
-					fIdExtensionToName.put(idmap.getExtension(),idmap.getName());
-				XMLPlugin.getDefault().setIdMaps(fIdMaps,fIdExtensionToName,null,false);
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/IdMap.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/IdMap.java
deleted file mode 100644
index a229213..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/IdMap.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.ArrayList;
-import java.util.Vector;
-
-/** This class is used to represent a id mapping scheme in the XML Compare preference page
- */
-public class IdMap {
-
-	private String fName;
-	private boolean fInternal;
-	private Vector fMappings;
-	private String fExtension;
-	private ArrayList fOrdered;//contains Mapping elements for list of ordered entries (the children of these elements will be compared in ordered fashion)
-
-	/**
-	 * Creates an IdMap which represents an Id Mapping Scheme
-	 * @param internal true if the IdMap is internal
-	 */
-	public IdMap(boolean internal) {
-		this("", internal); //$NON-NLS-1$
-	}
-
-	/**
-	 * Creates an IdMap which represents an Id Mapping Scheme
-	 * @param name The name of the mapping, as in fIdMaps/fIdMapsInternal HashMaps and fOrderedElements/fOrderedElementsInternal HashMaps
-	 * @param internal true if the IdMap is internal
-	 */
-	public IdMap(String name, boolean internal) {
-		this(name, internal, new Vector());
-	}
-
-	/**
-	 * Creates an IdMap which represents an Id Mapping Scheme
-	 * @param name The name of the mapping, as in fIdMaps/fIdMapsInternal HashMaps and fOrderedElements/fOrderedElementsInternal HashMaps
-	 * @param internal true if the IdMap is internal
-	 * @param mappings Vector of Mapping elements which represent the id mappings of this id mapping scheme
-	 */
-	public IdMap(String name, boolean internal, Vector mappings) {
-		this(name, internal, mappings, ""); //$NON-NLS-1$
-	}
-
-	/**
-	 * Creates an IdMap which represents an Id Mapping Scheme.
-	 * @param name The name of the mapping, as in fIdMaps/fIdMapsInternal HashMaps and fOrderedElements/fOrderedElementsInternal HashMaps.
-	 * @param internal true if the IdMap is internal.
-	 * @param mappings Vector of Mapping elements which represent the id mappings of this id mapping scheme.
-	 * @param extension Optional extension to be associated with this id mapping scheme.
-	 */
-	public IdMap(String name, boolean internal, Vector mappings, String extension) {
-		this(name, internal, mappings, extension, null);
-	}
-
-	/**
-	 * Creates an IdMap which represents an Id Mapping Scheme.
-	 * @param name The name of the mapping, as in fIdMaps/fIdMapsInternal HashMaps and fOrderedElements/fOrderedElementsInternal HashMaps.
-	 * @param internal true if the IdMap is internal.
-	 * @param mappings Vector of Mapping elements which represent the id mappings of this id mapping scheme.
-	 * @param extension Optional extension to be associated with this id mapping scheme.
-	 * @param ordered Optional ArrayList of Mapping elements representing ordered entries.
-	 */
-	public IdMap(String name, boolean internal, Vector mappings, String extension, ArrayList ordered) {
-		fName = name;
-		fInternal = internal;
-		fMappings = mappings;
-		fExtension= extension.toLowerCase();
-		fOrdered= ordered;
-	}
-	
-	/*
-	 * @see Object#equals(Object)
-	 */
-	public boolean equals(Object object) {
-		if (!(object instanceof IdMap))
-			return false;
-			
-		IdMap idmap= (IdMap) object;
-
-		if (idmap == this)
-			return true;		
-
-		return
-			idmap.getName().equals(fName) &&
-			idmap.getMappings().equals(fMappings);
-	}
-	
-	/*
-	 * @see Object#hashCode()
-	 */
-	public int hashCode() {
-		return fName.hashCode() ^ fMappings.hashCode();
-	}
-
-	public void setName(String name) {
-		fName = name;
-	}
-	
-	public String getName() {
-		return fName;
-	}
-
-	public void setMappings(Vector mappings) {
-		fMappings = mappings;
-	}
-	
-	public Vector getMappings() {
-		return fMappings;
-	}
-
-	public void setInternal(boolean bool) {
-		fInternal = bool;
-	}
-	
-	public boolean isInternal() {
-		return fInternal;
-	}
-	
-	public void setExtension(String extension) {
-		fExtension= extension;
-	}
-	
-	public String getExtension() {
-		return fExtension;
-	}
-	public void setOrdered(ArrayList ordered) {
-		fOrdered= ordered;
-	}
-	public ArrayList getOrdered() {
-		return fOrdered;
-	}
-
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/Mapping.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/Mapping.java
deleted file mode 100644
index 742aec3..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/Mapping.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-/** This class is used to represent a particular id mapping or ordered entry in the XML Compare preference page
- */
-public class Mapping {
-
-	private String fElement;
-	private String fSignature;
-	private String fIdAttribute;
-
-	public Mapping() {
-		this("", "", ""); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-	}
-
-	public Mapping(String element, String signature) {
-		this(element, signature, ""); //$NON-NLS-1$
-	}
-
-	public Mapping(String element, String signature, String idattribute) {
-		fElement = element;
-		fSignature = signature;
-		fIdAttribute = idattribute;
-	}
-	
-	/*
-	 * @see Object#equals(Object)
-	 */
-	public boolean equals(Object object) {
-		if (!(object instanceof Mapping))
-			return false;
-			
-		Mapping mapping= (Mapping) object;
-
-		if (mapping == this)
-			return true;		
-
-		return
-			mapping.fElement.equals(fElement) &&
-			mapping.fSignature.equals(fSignature) &&
-			mapping.fIdAttribute.equals(fIdAttribute);
-	}
-	
-	/*
-	 * @see Object#hashCode()
-	 */
-	public int hashCode() {
-		return fElement.hashCode() ^ fSignature.hashCode();
-	}
-
-	public void setElement(String element) {
-		fElement = element;
-	}
-	public String getElement() {
-		return fElement;
-	}	
-
-	public void setSignature(String signature) {
-		fSignature = signature;
-	}
-	public String getSignature() {
-		return fSignature;
-	}
-	
-	public void setIdAttribute(String idattribute) {
-		fIdAttribute = idattribute;
-	}
-	public String getIdAttribute() {
-		return fIdAttribute;
-	}
-	
-	public String getKey() {
-		return getKey(fSignature, fElement);
-	}
-	
-	public static String getKey(String signature, String element) {
-		if (signature == "") //$NON-NLS-1$
-			return XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + element + XMLStructureCreator.SIGN_SEPARATOR;
-		else
-			return XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + signature + XMLStructureCreator.SIGN_SEPARATOR + element + XMLStructureCreator.SIGN_SEPARATOR;
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/OrderedMatching.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/OrderedMatching.java
deleted file mode 100644
index ddcfc3e..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/OrderedMatching.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.ListIterator;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-public class OrderedMatching extends AbstractMatching {
-
-	public OrderedMatching() {
-		super();
-	}
-
-	protected int orderedMath(XMLNode x, XMLNode y) {
-		//assumes x and y have children
-		Object[] xc= x.getChildren();
-		Object[] yc= y.getChildren();
-
-		ArrayList xc_elementsAL= new ArrayList();
-		ArrayList xc_attrsAL= new ArrayList();
-
-		ArrayList yc_elementsAL= new ArrayList();
-		ArrayList yc_attrsAL= new ArrayList();
-
-		//find attributes and elements and put them in xc_elementsAL and xc_attrsAL, respectively
-		for (int i= 0; i < xc.length; i++) {
-			XMLNode x_i= (XMLNode) xc[i];
-			if (x_i.getXMLType().equals(XMLStructureCreator.TYPE_ELEMENT)) {
-				xc_elementsAL.add(x_i);
-			} else if (
-				x_i.getXMLType().equals(XMLStructureCreator.TYPE_ATTRIBUTE)) {
-				xc_attrsAL.add(x_i);
-			}
-		}
-
-		//do the same for yc				
-		for (int i= 0; i < yc.length; i++) {
-			XMLNode y_i= (XMLNode) yc[i];
-			if (y_i.getXMLType().equals(XMLStructureCreator.TYPE_ELEMENT)) {
-				yc_elementsAL.add(y_i);
-			} else if (
-				y_i.getXMLType().equals(XMLStructureCreator.TYPE_ATTRIBUTE)) {
-				yc_attrsAL.add(y_i);
-			}
-		}
-
-		Object[] xc_elements= xc_elementsAL.toArray();
-		Object[] yc_elements= yc_elementsAL.toArray();
-
-		ArrayList DTMatching= new ArrayList();
-		// Matching to be added to Entry in fDT_Matchings
-		int distance= 0; //distance to be added to entry in fDT
-
-		// perform unordered matching on attributes
-		// this updates fDT and fDT_Matchings
-		if (xc_attrsAL.size() > 0 || yc_attrsAL.size() > 0) {
-			if (xc_attrsAL.size() == 0)
-				distance += yc_attrsAL.size();
-			else if (yc_attrsAL.size() == 0)
-				distance += xc_attrsAL.size();
-			else {
-				//unorderedMatch(x, y, xc_attrs, yc_attrs);
-				//				distance += fDT[indexOfLN(x)][indexOfRN(y)];
-				//				DTMatching= fDT_Matchings[indexOfLN(x)][indexOfRN(y)];
-				distance= handleAttributes(xc_attrsAL, yc_attrsAL, DTMatching);
-			}
-		}
-
-		//perform ordered matching on element children, i.e. number them in order of appearance
-
-		/* start new */
-		distance=
-			handleRangeDifferencer(
-				xc_elements,
-				yc_elements,
-				DTMatching,
-				distance);
-		/* end new */
-
-		/* start: Naive ordered compare /*
-		//			int minlength= (xc_elements.length > yc_elements.length)?yc_elements.length:xc_elements.length;
-		//			for (int i= 0; i < minlength; i++) {
-		//				distance += dist((XMLNode) xc_elements[i], (XMLNode) yc_elements[i]);
-		//				DTMatching.add(new Match( (XMLNode)xc_elements[i], (XMLNode)yc_elements[i]));
-		//			}
-		//			if (xc_elements.length > yc_elements.length) {
-		//				for (int i= minlength; i < xc_elements.length; i++) {
-		//					distance += countNodes((XMLNode) xc_elements[i]);
-		//				}
-		//			} else if (xc_elements.length < yc_elements.length) {
-		//				for (int i= minlength; i < yc_elements.length; i++) {
-		//					distance += countNodes((XMLNode) yc_elements[i]);
-		//				}
-		//			}
-		/* end: Naive ordered compare */
-
-		fDT[indexOfLN(x)][indexOfRN(y)]= distance;
-		fDT_Matchings[indexOfLN(x)][indexOfRN(y)]= DTMatching;
-		return distance;
-
-	}
-
-	/* matches two trees according to paper "X-Diff", p. 16 */
-	public void match(
-		XMLNode LeftTree,
-		XMLNode RightTree,
-		boolean rightTreeIsAncestor,
-		IProgressMonitor monitor)
-		throws InterruptedException {
-
-		fNLeft= new Vector();
-		//numbering LeftTree: Mapping nodes in LeftTree to numbers to be used as array indexes
-		fNRight= new Vector();
-		//numbering RightTree: Mapping nodes in RightTree to numbers to be used as array indexes
-		numberNodes(LeftTree, fNLeft);
-		numberNodes(RightTree, fNRight);
-		fDT= new int[fNLeft.size()][fNRight.size()];
-		fDT_Matchings= new ArrayList[fNLeft.size()][fNRight.size()];
-		for (int i= 0; i < fDT.length; i++) {
-			fDT[i]= new int[fNRight.size()];
-			for (int j= 0; j < fDT[0].length; j++) {
-				fDT[i][j]= NO_ENTRY;
-			}
-		}
-
-		dist(LeftTree, RightTree);
-		//		/* mark matchings on LeftTree and RightTree */
-		fMatches= new Vector();
-		if (!LeftTree.getSignature().equals(RightTree.getSignature())) {
-			//matching is empty	
-		} else {
-			fMatches.add(new Match(LeftTree, RightTree));
-			for (int i_M= 0; i_M < fMatches.size(); i_M++) {
-				Match m= (Match) fMatches.elementAt(i_M);
-				if (!isLeaf(m.fx) && !isLeaf(m.fy)) {
-					//					if (fDT_Matchings[ indexOfLN(m.fx) ][ indexOfRN(m.fy) ] == null)
-					//						System.out.println("Error: ID not unique for " + m.fx.getId());
-					//					else
-					//						fMatches.addAll(fDT_Matchings[ indexOfLN(m.fx) ][ indexOfRN(m.fy) ]);
-					if (fDT_Matchings[indexOfLN(m.fx)][indexOfRN(m.fy)]
-						!= null)
-						fMatches.addAll(
-							fDT_Matchings[indexOfLN(m.fx)][indexOfRN(m.fy)]);
-				}
-			}
-		}
-		//end of Step2
-		/* Renumber Id of Nodes to follow Matches. Or for ancestor, copy over Id to ancestor */
-		if (rightTreeIsAncestor) {
-			for (ListIterator it_M= fMatches.listIterator(); it_M.hasNext();) {
-				Match m= (Match) it_M.next();
-				if (m.fx != null && m.fy != null)
-					m.fy.setId(m.fx.getId());
-			}
-		} else {
-			int newId= 0;
-			for (ListIterator it_M= fMatches.listIterator();
-				it_M.hasNext();
-				newId++) {
-				Match m= (Match) it_M.next();
-				if (m.fx != null)
-					m.fx.setId(Integer.toString(newId));
-				if (m.fy != null)
-					m.fy.setId(Integer.toString(newId));
-				//				System.out.println("Matching: "+ ((m.fx != null)?m.fx.getOrigId():"null")+" -> "+((m.fx != null)?m.fx.getId():"null")+" , "+((m.fy != null)?m.fy.getOrigId():"null")+" -> "+((m.fy != null)?m.fy.getId():"null")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-		}
-		//if (monitor != null) monitor.done();
-	}
-
-	public int handleAttributes(
-		ArrayList xc_attrs,
-		ArrayList yc_attrs,
-		ArrayList DTMatching) {
-		int distance= 0;
-		x_for : for (
-			Iterator iter_xc= xc_attrs.iterator(); iter_xc.hasNext();) {
-			XMLNode x_attr= (XMLNode) iter_xc.next();
-			String x_attr_name= x_attr.getName();
-			for (Iterator iter_yc= yc_attrs.iterator(); iter_yc.hasNext();) {
-				XMLNode y_attr= (XMLNode) iter_yc.next();
-				if (y_attr.getName().equals(x_attr_name)) {
-					if (!y_attr.getValue().equals(x_attr.getValue()))
-						distance += 1;
-					DTMatching.add(new Match(x_attr, y_attr));
-					yc_attrs.remove(y_attr);
-					continue x_for;
-				}
-			}
-			DTMatching.add(new Match(x_attr, null));
-			distance += 1;
-		}
-
-		for (Iterator iter_yc= yc_attrs.iterator(); iter_yc.hasNext();) {
-			DTMatching.add(new Match(null, (XMLNode) iter_yc.next()));
-			distance += 1;
-		}
-
-		return distance;
-	}
-
-	protected int handleXandYnotLeaves(XMLNode x, XMLNode y) {
-		/* handle entries as ordered*/
-		return orderedMath(x, y);
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/SWTUtil.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/SWTUtil.java
deleted file mode 100644
index 6f35895..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/SWTUtil.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Caret;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.util.Assert;
-
-/**
- * Utility class to simplify access to some SWT resources. 
- */
-public class SWTUtil {
-	
-	/**
-	 * Returns the standard display to be used. The method first checks, if
-	 * the thread calling this method has an associated disaply. If so, this
-	 * display is returned. Otherwise the method returns the default display.
-	 */
-	public static Display getStandardDisplay() {
-		Display display;
-		display= Display.getCurrent();
-		if (display == null)
-			display= Display.getDefault();
-		return display;		
-	}
-	
-	/**
-	 * Returns the shell for the given widget. If the widget doesn't represent
-	 * a SWT object that manage a shell, <code>null</code> is returned.
-	 * 
-	 * @return the shell for the given widget
-	 */
-	public static Shell getShell(Widget widget) {
-		if (widget instanceof Control)
-			return ((Control)widget).getShell();
-		if (widget instanceof Caret)
-			return ((Caret)widget).getParent().getShell();
-		if (widget instanceof DragSource)
-			return ((DragSource)widget).getControl().getShell();
-		if (widget instanceof DropTarget)
-			return ((DropTarget)widget).getControl().getShell();
-		if (widget instanceof Menu)
-			return ((Menu)widget).getParent().getShell();
-		if (widget instanceof ScrollBar)
-			return ((ScrollBar)widget).getParent().getShell();
-							
-		return null;	
-	}
-	
-		
-	private static double getVerticalDialogUnitSize(Control control) {
-		GC gc= new GC(control);
-		try {
-			int height = gc.getFontMetrics().getHeight();
-			return height * 0.125;
-		} finally {
-			gc.dispose();
-		}
-	}
-	
-	private static double getHorizontalDialogUnitSize(Control control) {
-		GC gc= new GC(control);
-		try {
-			int averageWidth= gc.getFontMetrics().getAverageCharWidth();
-			return averageWidth * 0.25;
-		} finally {
-			gc.dispose();
-		}
-	}	
-	
-	
-	/**
-	 * @see DialogPage#convertHeightInCharsToPixels
-	 */
-	public static int convertHeightInCharsToPixels(int chars, Control control) {
-		return convertVerticalDLUsToPixels(chars * 8, control);
-	}
-
-	/**
-	 * @see DialogPage#convertHorizontalDLUsToPixels
-	 */
-	public static int convertHorizontalDLUsToPixels(int dlus, Control control) {
-		return (int)Math.round(dlus * getHorizontalDialogUnitSize(control));
-	}
-
-	/**
-	 * @see DialogPage#convertVerticalDLUsToPixels
-	 */
-	public static int convertVerticalDLUsToPixels(int dlus, Control control) {
-		return (int)Math.round(dlus * getVerticalDialogUnitSize(control));
-	}
-	
-	/**
-	 * @see DialogPage#convertWidthInCharsToPixels
-	 */
-	public static int convertWidthInCharsToPixels(int chars, Control control) {
-		return convertHorizontalDLUsToPixels(chars * 4, control);
-	}
-	
-	/**
-	 * Returns a width hint for a button control.
-	 */
-	public static int getButtonWidthHint(Button button) {
-		int widthHint= convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH, button);
-		return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-	}
-
-	/**
-	 * Returns a height hint for a button control.
-	 */		
-	public static int getButtonHeigthHint(Button button) {
-		return convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT, button);
-	}		
-
-	/**
-	 * Sets width and height hint for the button control.
-	 * <b>Note:</b> This is a NOP if the button's layout data is not
-	 * an instance of <code>GridData</code>.
-	 * 
-	 * @param	the button for which to set the dimension hint
-	 */		
-	public static void setButtonDimensionHint(Button button) {
-		Assert.isNotNull(button);
-		Object gd= button.getLayoutData();
-		if (gd instanceof GridData) {
-			((GridData)gd).heightHint= getButtonHeigthHint(button);
-			((GridData)gd).widthHint= getButtonWidthHint(button);		 
-		}
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/SelectMatcherAction.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/SelectMatcherAction.java
deleted file mode 100644
index 79c0377..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/SelectMatcherAction.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import org.eclipse.jface.action.Action;
-
-class SelectMatcherAction extends Action {
-
-	private XMLStructureViewer fViewer;
-	private String fDesc;
-
-	public SelectMatcherAction(String desc, XMLStructureViewer viewer) {
-		fViewer= viewer;
-		fDesc= desc;
-		setText(fDesc);
-		setToolTipText(fDesc);
-	}
-
-	public void run() {
-		((XMLStructureCreator) fViewer.getStructureCreator()).setIdMap(fDesc);
-		fViewer.contentChanged();
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLChildren.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLChildren.java
deleted file mode 100644
index 2c50c97..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLChildren.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.text.IDocument;
-
-/** XMLNode that has children elements */
-public class XMLChildren extends XMLNode {
-	
-	public int children;	// counts the number of children
-	public HashMap childElements;	// maps the name of XML child elements to their # of occurence
-	
-	public XMLChildren(String XMLType, String id, String value, String signature, IDocument doc, int start, int length) {
-		super(XMLType, id, value, signature, doc, start, length);
-		children= 0;
-		childElements = new HashMap();
-	}
-}
-
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareAddIdMapDialog.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareAddIdMapDialog.java
deleted file mode 100644
index cb449fb..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareAddIdMapDialog.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.text.MessageFormat;
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.compare.examples.xml.ui.StatusDialog;
-import org.eclipse.compare.examples.xml.ui.StatusInfo;
-
-/**
- * This class is used to add or edit an ID Mapping Scheme
- */
-public class XMLCompareAddIdMapDialog extends StatusDialog {
-	
-	private IdMap fIdMap;
-	private HashMap fIdMaps;
-	private HashMap fIdMapsInternal;
-	private HashMap fIdExtensionToName;
-	private boolean fEdit;
-	
-	private Text fIdMapText;
-	private Text fIdMapExtText;
-
-	public XMLCompareAddIdMapDialog(Shell parent, IdMap idmap, HashMap idmaps, HashMap idmapsInternal, HashMap idextensiontoname, boolean edit) {
-		super(parent);
-	
-		fEdit= edit;
-		if (fEdit)
-			setTitle(XMLCompareMessages.getString("XMLCompareAddIdMapDialog.editTitle")); //$NON-NLS-1$
-		else
-			setTitle(XMLCompareMessages.getString("XMLCompareAddIdMapDialog.newTitle")); //$NON-NLS-1$
-
-		fIdMap= idmap;
-		fIdMaps= idmaps;
-		fIdMapsInternal= idmapsInternal;
-		fIdExtensionToName= idextensiontoname;
-	}
-	
-	/**
-	 * Creates and returns the contents of the upper part 
-	 * of the dialog (above the button bar).
-	 *
-	 * Subclasses should override.
-	 *
-	 * @param the parent composite to contain the dialog area
-	 * @return the dialog area control
-	 */		
-	protected Control createDialogArea(Composite ancestor) {
-		Composite composite= (Composite) super.createDialogArea(ancestor);
-		
-		Composite inner= new Composite(composite, SWT.NONE);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		inner.setLayout(layout);
-		inner.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		Label label= new Label(inner, SWT.NULL);
-		label.setText(XMLCompareMessages.getString("XMLCompareAddIdMapDialog.label")); //$NON-NLS-1$
-		label.setLayoutData(new GridData());
-
-		fIdMapText= new Text(inner, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = convertWidthInCharsToPixels(30);
-		fIdMapText.setLayoutData(data);
-		fIdMapText.setText(fIdMap.getName());
-		fIdMapText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e){
-				doValidation();
-			}
-		});
-	
-		label= new Label(inner, SWT.NULL);
-		label.setText(XMLCompareMessages.getString("XMLCompareAddIdMapDialog.extlabel")); //$NON-NLS-1$
-		label.setLayoutData(new GridData());
-
-		fIdMapExtText= new Text(inner, SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = convertWidthInCharsToPixels(30);
-		fIdMapExtText.setLayoutData(data);
-		fIdMapExtText.setText(fIdMap.getExtension());
-		fIdMapExtText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e){
-				doValidation();
-			}
-		});
-
-		
-		fIdMapText.setFocus();
-
-		return composite;
-	}
-	
-	/**
-	 * Validate user input
-	 */		
-	private void doValidation() {
-		StatusInfo status= new StatusInfo();
-		String newText= fIdMapText.getText();
-		if (newText.length() == 0)
-			status.setError(XMLCompareMessages.getString("XMLCompareAddIdMapDialog.error.noname")); //$NON-NLS-1$
-		else if (XMLComparePreferencePage.containsInvalidCharacters(newText))
-			status.setError(XMLCompareMessages.getString("XMLCompareAddIdMapDialog.error.invalidname")); //$NON-NLS-1$
-		else if ( (!fEdit && (fIdMaps.containsKey(newText) || fIdMapsInternal.containsKey(newText)) )
-					|| (fEdit && !newText.equals(fIdMap.getName()) && (fIdMaps.containsKey(newText) || fIdMapsInternal.containsKey(newText)) )
-				 )
-			status.setError(XMLCompareMessages.getString("XMLCompareAddIdMapDialog.error.idmapExists")); //$NON-NLS-1$
-		newText= fIdMapExtText.getText().toLowerCase();
-		if (newText.length() > 0) {
-			if (newText.indexOf(".") > -1) //$NON-NLS-1$
-				status.setError(XMLCompareMessages.getString("XMLCompareAddIdMapDialog.error.extfullstop")); //$NON-NLS-1$
-			else if (fIdExtensionToName.containsKey(newText) && !fIdExtensionToName.get(newText).equals(fIdMap.getName()))
-				status.setError(MessageFormat.format("{0} {1}",new String[] {XMLCompareMessages.getString("XMLCompareAddIdMapDialog.error.extExists"),(String)fIdExtensionToName.get(newText)})); //$NON-NLS-2$ //$NON-NLS-1$
-		}
-		updateStatus(status);
-	}
-	
-	/**
-	 * Notifies that the ok button of this dialog has been pressed.
-	 */	
-	protected void okPressed() {
-		fIdMap.setName(fIdMapText.getText());
-		fIdMap.setExtension(fIdMapExtText.getText().toLowerCase());
-		super.okPressed();
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditCopyIdMapDialog.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditCopyIdMapDialog.java
deleted file mode 100644
index 4073a79..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditCopyIdMapDialog.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.HashMap;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.compare.examples.xml.ui.StatusDialog;
-import org.eclipse.compare.examples.xml.ui.StatusInfo;
-
-/**
- * This class is used to create an editable ID Mapping Scheme from an internal ID Mappping Scheme
- */
-public class XMLCompareEditCopyIdMapDialog extends StatusDialog {
-	
-	private HashMap fIdMaps;
-	private HashMap fIdMapsInternal;
-	
-	private Text fIdMapText;
-	private String fResult;
-
-	/**
-	 * Constructs a new edit copy mapping dialog.
-	 */	
-	public XMLCompareEditCopyIdMapDialog(Shell parent, IdMap idmap, HashMap idmaps, HashMap idmapsInternal) {
-		super(parent);
-	
-		setTitle(XMLCompareMessages.getString("XMLCompareEditCopyIdMapDialog.title")); //$NON-NLS-1$
-
-		fIdMaps= idmaps;
-		fIdMapsInternal= idmapsInternal;
-	}
-	
-	public String getResult() {
-		return fResult;
-	}
-	
-	/**
-	 * Creates and returns the contents of the upper part 
-	 * of the dialog (above the button bar).
-	 *
-	 * Subclasses should override.
-	 *
-	 * @param the parent composite to contain the dialog area
-	 * @return the dialog area control
-	 */		
-	protected Control createDialogArea(Composite ancestor) {
-		Composite composite= (Composite) super.createDialogArea(ancestor);
-		
-		Label comment= new Label(composite, SWT.NONE);
-		comment.setText(XMLCompareMessages.getString("XMLCompareEditCopyIdMapDialog.comment")); //$NON-NLS-1$
-		GridData data= new GridData();
-		data.horizontalAlignment= GridData.FILL;
-		data.verticalAlignment= GridData.BEGINNING;
-		comment.setLayoutData(data);
-		
-		Composite inner= new Composite(composite, SWT.NONE);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		inner.setLayout(layout);
-		inner.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		Label label= new Label(inner, SWT.NULL);
-		label.setText(XMLCompareMessages.getString("XMLCompareEditCopyIdMapDialog.label")); //$NON-NLS-1$
-		label.setLayoutData(new GridData());
-
-		fIdMapText= new Text(inner, SWT.BORDER);
-		fIdMapText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fIdMapText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e){
-				doValidation();
-			}
-		});
-
-		fIdMapText.setFocus();
-		
-		return composite;
-	}
-	
-	/**
-	 * Validate user input
-	 */		
-	private void doValidation() {
-		StatusInfo status= new StatusInfo();
-		String newText= fIdMapText.getText();
-		if (newText.length() == 0)
-			status.setError(XMLCompareMessages.getString("XMLCompareEditCopyIdMapDialog.error.noname")); //$NON-NLS-1$
-		else if (XMLComparePreferencePage.containsInvalidCharacters(newText))
-			status.setError(XMLCompareMessages.getString("XMLCompareEditCopyIdMapDialog.error.invalidname")); //$NON-NLS-1$
-		else if (fIdMaps.containsKey(newText) || fIdMapsInternal.containsKey(newText))
-			status.setError(XMLCompareMessages.getString("XMLCompareEditCopyIdMapDialog.error.nameExists")); //$NON-NLS-1$
-		updateStatus(status);
-	}
-	
-	/**
-	 * Notifies that the ok button of this dialog has been pressed.
-	 */		
-	protected void okPressed() {
-		fResult= fIdMapText.getText();
-		super.okPressed();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditMappingDialog.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditMappingDialog.java
deleted file mode 100644
index d64ad25..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditMappingDialog.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.HashMap;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.compare.examples.xml.ui.StatusDialog;
-import org.eclipse.compare.examples.xml.ui.StatusInfo;
-
-/**
- * This class is used to add or edit a particular ID Mapping
- */
-public class XMLCompareEditMappingDialog extends StatusDialog {
-	
-	private Mapping fMapping;
-	private HashMap fIdmapHM;
-	private boolean fEdit;
-	
-	private Text fElementText;
-	private Text fSignatureText;
-	private Text fIdAttributeText;
-
-	private Button fIdTypeAttributeButton;
-	private Button fIdTypeChildBodyButton;
-	
-	/**
-	 * Constructs a new edit mapping dialog.
-	 */		
-	public XMLCompareEditMappingDialog(Shell parent, Mapping mapping, HashMap idmapHM, boolean edit) {
-		super(parent);
-	
-		int shellStyle= getShellStyle();
-		setShellStyle(shellStyle | SWT.MAX | SWT.RESIZE);
-
-	
-		fEdit= edit;
-		if (fEdit)
-			setTitle(XMLCompareMessages.getString("XMLCompareEditMappingDialog.editTitle")); //$NON-NLS-1$
-		else
-			setTitle(XMLCompareMessages.getString("XMLCompareEditMappingDialog.newTitle")); //$NON-NLS-1$
-
-		fMapping= mapping;
-		fIdmapHM= idmapHM;
-	}
-	
-	/**
-	 * Creates and returns the contents of the upper part 
-	 * of the dialog (above the button bar).
-	 *
-	 * Subclasses should override.
-	 *
-	 * @param the parent composite to contain the dialog area
-	 * @return the dialog area control
-	 */	
-	protected Control createDialogArea(Composite ancestor) {
-		Composite composite= (Composite) super.createDialogArea(ancestor);
-		
-		Composite inner= new Composite(composite, SWT.NONE);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		inner.setLayout(layout);
-		inner.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		//Element
-		Label label= new Label(inner, SWT.NULL);
-		label.setText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.element")); //$NON-NLS-1$
-		label.setLayoutData(new GridData());
-
-		fElementText= new Text(inner, SWT.BORDER);
-		fElementText.setText(fMapping.getElement());
-		fElementText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fElementText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e){
-				doValidation();
-			}
-		});
-
-		//Signature
-		label= new Label(inner, SWT.NULL);
-		label.setText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.signature")); //$NON-NLS-1$
-		label.setLayoutData(new GridData());
-
-		fSignatureText= new Text(inner, SWT.BORDER);
-		fSignatureText.setText(fMapping.getSignature());
-		GridData data= new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint= convertWidthInCharsToPixels(50);
-		fSignatureText.setLayoutData(data);
-		fSignatureText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e){
-				doValidation();
-			}
-		});
-		
-		//Id Attribute
-		label= new Label(inner, SWT.NULL);
-		label.setText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.idattribute")); //$NON-NLS-1$
-		label.setLayoutData(new GridData());
-
-		fIdAttributeText= new Text(inner, SWT.BORDER);
-
-		fIdAttributeText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fIdAttributeText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e){
-				doValidation();
-			}
-		});
-
-		//Id Source
-		createIdSourceGroup(inner);
-
-		fElementText.setFocus();
-
-		return composite;
-	}
-	
-	/**
-	 * Validate user input
-	 */	
-	private void doValidation() {
-		StatusInfo status= new StatusInfo();
-		String text= fElementText.getText();
-		String mappingKey= Mapping.getKey(fSignatureText.getText(), text);
-		String errormsg= ""; //$NON-NLS-1$
-		boolean isError= false;
-		if (text.length() == 0) {
-			errormsg= XMLCompareMessages.getString("XMLCompareEditMappingDialog.error.noname"); //$NON-NLS-1$
-			isError= true;
-		} else if (XMLComparePreferencePage.containsInvalidCharacters(text)) {
-			if (errormsg == "") errormsg= XMLCompareMessages.getString("XMLCompareEditMappingDialog.error.invalidname"); //$NON-NLS-2$ //$NON-NLS-1$
-			isError= true;
-		} else if (!fEdit && fIdmapHM != null && fIdmapHM.containsKey(mappingKey)) {
-			if (errormsg == "") errormsg= XMLCompareMessages.getString("XMLCompareEditMappingDialog.error.mappingExists"); //$NON-NLS-2$ //$NON-NLS-1$
-			isError= true;
-		}
-		text= fSignatureText.getText();
-		if (XMLComparePreferencePage.containsInvalidCharacters(text)) {
-			if (errormsg == "") errormsg= XMLCompareMessages.getString("XMLCompareEditMappingDialog.error.invalidsignature"); //$NON-NLS-2$ //$NON-NLS-1$
-			isError= true;
-		}
-		text= fIdAttributeText.getText();
-		if (text.length() == 0)
-			isError= true;
-		else if (XMLComparePreferencePage.containsInvalidCharacters(text)) {
-			if (errormsg == "") errormsg= XMLCompareMessages.getString("XMLCompareEditMappingDialog.error.invalididattribute"); //$NON-NLS-2$ //$NON-NLS-1$
-			isError= true;
-		}
-		if (isError) status.setError(errormsg);
-		updateStatus(status);
-	}
-	
-	/**
-	 * Notifies that the ok button of this dialog has been pressed.
-	 */	
-	protected void okPressed() {
-		fMapping.setElement(fElementText.getText());
-		fMapping.setSignature(fSignatureText.getText());
-		String idtext= fIdAttributeText.getText();
-		if (fIdTypeChildBodyButton.getSelection()) {
-			idtext= new Character(XMLStructureCreator.ID_TYPE_BODY) + idtext;
-		}
-		fMapping.setIdAttribute(idtext);
-		super.okPressed();
-	}
-	
-	private void createIdSourceGroup(Composite composite) {
-		Label titleLabel= new Label(composite, SWT.NONE);
-		titleLabel.setText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.idtype")); //$NON-NLS-1$
-		titleLabel.setToolTipText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.idtype.tooltip")); //$NON-NLS-1$
-	
-		Composite buttonComposite= new Composite(composite, SWT.LEFT);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		buttonComposite.setLayout(layout);
-		composite.setData(new GridData());
-	
-		//attribute button
-		fIdTypeAttributeButton= createRadioButton(buttonComposite, XMLCompareMessages.getString("XMLComparePreference.idtype.attribute")); //$NON-NLS-1$
-		fIdTypeAttributeButton.setToolTipText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.idtype.attribute.tooltip")); //$NON-NLS-1$
-	
-		//child body button
-		fIdTypeChildBodyButton= createRadioButton(buttonComposite, XMLCompareMessages.getString("XMLComparePreference.idtype.child_body")); //$NON-NLS-1$
-		fIdTypeChildBodyButton.setToolTipText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.idtype.childbody.tooltip")); //$NON-NLS-1$
-	
-		String idtext= fMapping.getIdAttribute();
-		if (fEdit && idtext.charAt(0) == XMLStructureCreator.ID_TYPE_BODY) {
-			idtext= idtext.substring(1,idtext.length());
-			fIdTypeChildBodyButton.setSelection(true);
-		} else
-			fIdTypeAttributeButton.setSelection(true);
-		fIdAttributeText.setText(idtext);
-	
-	}
-
-	private Button createRadioButton(Composite parent, String label) {
-		Button button= new Button(parent, SWT.RADIO | SWT.LEFT);
-		button.setText(label);
-		GridData data= new GridData();
-		button.setLayoutData(data);
-		return button;
-	}	
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditOrderedDialog.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditOrderedDialog.java
deleted file mode 100644
index 14c7a22..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareEditOrderedDialog.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.ArrayList;
-
-import org.eclipse.compare.examples.xml.ui.StatusDialog;
-import org.eclipse.compare.examples.xml.ui.StatusInfo;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-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.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * This class is used to add or edit a particular ID Mapping
- */
-public class XMLCompareEditOrderedDialog extends StatusDialog {
-	
-	private Mapping fMapping;
-	private ArrayList fIdmapAL;
-	private boolean fEdit;
-	
-	private Text fElementText;
-	private Text fSignatureText;
-
-	/**
-	 * Constructs a new edit mapping dialog.
-	 */		
-	public XMLCompareEditOrderedDialog(Shell parent, Mapping mapping, ArrayList idmapAL, boolean edit) {
-		super(parent);
-	
-		int shellStyle= getShellStyle();
-		setShellStyle(shellStyle | SWT.MAX | SWT.RESIZE);
-
-	
-		fEdit= edit;
-		if (fEdit)
-			setTitle(XMLCompareMessages.getString("XMLCompareEditOrderedDialog.editTitle")); //$NON-NLS-1$
-		else
-			setTitle(XMLCompareMessages.getString("XMLCompareEditOrderedDialog.newTitle")); //$NON-NLS-1$
-
-		fMapping= mapping;
-		fIdmapAL= idmapAL;
-	}
-	
-	/**
-	 * Creates and returns the contents of the upper part 
-	 * of the dialog (above the button bar).
-	 *
-	 * Subclasses should override.
-	 *
-	 * @param the parent composite to contain the dialog area
-	 * @return the dialog area control
-	 */	
-	protected Control createDialogArea(Composite ancestor) {
-		Composite composite= (Composite) super.createDialogArea(ancestor);
-		
-		Composite inner= new Composite(composite, SWT.NONE);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		inner.setLayout(layout);
-		inner.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		//Element
-		Label label= new Label(inner, SWT.NULL);
-		label.setText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.element")); //$NON-NLS-1$
-		label.setLayoutData(new GridData());
-
-		fElementText= new Text(inner, SWT.BORDER);
-		fElementText.setText(fMapping.getElement());
-		fElementText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fElementText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e){
-				doValidation();
-			}
-		});
-
-		//Signature
-		label= new Label(inner, SWT.NULL);
-		label.setText(XMLCompareMessages.getString("XMLCompareEditMappingDialog.signature")); //$NON-NLS-1$
-		label.setLayoutData(new GridData());
-
-		fSignatureText= new Text(inner, SWT.BORDER);
-		fSignatureText.setText(fMapping.getSignature());
-		GridData data= new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint= convertWidthInCharsToPixels(50);
-		fSignatureText.setLayoutData(data);
-		fSignatureText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e){
-				doValidation();
-			}
-		});
-		
-		fElementText.setFocus();
-
-		return composite;
-	}
-	
-	/**
-	 * Validate user input
-	 */	
-	private void doValidation() {
-		StatusInfo status= new StatusInfo();
-		String text= fElementText.getText();
-		String mappingKey= Mapping.getKey(fSignatureText.getText(), text);
-		String errormsg= ""; //$NON-NLS-1$
-		boolean isError= false;
-		if (text.length() == 0) {
-			errormsg= XMLCompareMessages.getString("XMLCompareEditMappingDialog.error.noname"); //$NON-NLS-1$
-			isError= true;
-		} else if (XMLComparePreferencePage.containsInvalidCharacters(text)) {
-			if (errormsg == "") errormsg= XMLCompareMessages.getString("XMLCompareEditMappingDialog.error.invalidname"); //$NON-NLS-2$ //$NON-NLS-1$
-			isError= true;
-		} else if (!fEdit && fIdmapAL.contains(mappingKey)) {
-			if (errormsg == "") errormsg= XMLCompareMessages.getString("XMLCompareEditOrderedDialog.error.orderedExists"); //$NON-NLS-1$ //$NON-NLS-2$
-			isError= true;
-		}
-		text= fSignatureText.getText();
-		if (XMLComparePreferencePage.containsInvalidCharacters(text)) {
-			if (errormsg == "") errormsg= XMLCompareMessages.getString("XMLCompareEditMappingDialog.error.invalidsignature"); //$NON-NLS-2$ //$NON-NLS-1$
-			isError= true;
-		}
-		if (isError) status.setError(errormsg);
-		updateStatus(status);
-	}
-	
-	/**
-	 * Notifies that the ok button of this dialog has been pressed.
-	 */	
-	protected void okPressed() {
-		fMapping.setElement(fElementText.getText());
-		fMapping.setSignature(fSignatureText.getText());
-		super.okPressed();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareMessages.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareMessages.java
deleted file mode 100644
index 6417cf7..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLCompareMessages.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class XMLCompareMessages {
-
-	private static final String BUNDLE_NAME= "org.eclipse.compare.examples.xml.xmlcompare"; //$NON-NLS-1$
-
-	private static final ResourceBundle RESOURCE_BUNDLE =
-		ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private XMLCompareMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		} catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLComparePreferencePage.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLComparePreferencePage.java
deleted file mode 100644
index 0c1e85c..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLComparePreferencePage.java
+++ /dev/null
@@ -1,837 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.window.Window;
-
-import org.eclipse.ui.*;
-
-/**
- * The XMLComparePreferencePage is the page used to set ID Mappings for XML Compare
- */
-public class XMLComparePreferencePage extends PreferencePage implements IWorkbenchPreferencePage, Listener {
-
-	private Table fIdMapsTable;
-	private Button fAddIdMapButton;
-	private Button fRenameIdMapButton;
-	private Button fRemoveIdMapButton;
-	private Button fEditIdMapButton;
-
-	private Table fMappingsTable;
-	private Button fNewMappingsButton;
-	private Button fEditMappingsButton;
-	private Button fRemoveMappingsButton;
-
-	private Table fOrderedTable;
-	private Button fNewOrderedButton;
-	private Button fEditOrderedButton;
-	private Button fRemoveOrderedButton;
-
-	private HashMap fIdMapsInternal;
-	private HashMap fIdMaps;// HashMap ( idname -> HashMap (signature -> id) )
-	private HashMap fIdExtensionToName;
-	
-	//fOrderedElements contains signature of xml element whose children must be compared in ordered fashion
-	private HashMap fOrderedElements;// HashMap ( idname -> ArrayList (signature) )
-	private HashMap fOrderedElementsInternal;
-	
-	protected static char[] invalidCharacters;
-	protected static final char SIGN_SEPARATOR = XMLStructureCreator.SIGN_SEPARATOR;
-
-	public static String IDTYPE_ATTRIBUTE= XMLCompareMessages.getString("XMLComparePreference.idtype.attribute"); //$NON-NLS-1$
-	public static String IDTYPE_CHILDBODY= XMLCompareMessages.getString("XMLComparePreference.idtype.child_body"); //$NON-NLS-1$
-
-	
-	static {
-		invalidCharacters = new char[] {XMLPlugin.IDMAP_SEPARATOR,XMLPlugin.IDMAP_FIELDS_SEPARATOR,XMLStructureCreator.SIGN_ENCLOSING};
-	}
-
-	
-	public XMLComparePreferencePage() {
-		super();
-		
-		fIdMaps = new HashMap();
-		XMLPlugin plugin= XMLPlugin.getDefault();
-		HashMap PluginIdMaps = plugin.getIdMaps();
-		Set keySet = PluginIdMaps.keySet();
-		for (Iterator iter = keySet.iterator(); iter.hasNext(); ) {
-			String key = (String) iter.next();
-			fIdMaps.put(key, ((HashMap)PluginIdMaps.get(key)).clone() );
-		}
-		fIdMapsInternal = plugin.getIdMapsInternal();
-		
-		fIdExtensionToName= new HashMap();
-		HashMap PluginIdExtensionToName= plugin.getIdExtensionToName();
-		keySet= PluginIdExtensionToName.keySet();
-		for (Iterator iter= keySet.iterator(); iter.hasNext(); ) {
-			String key= (String) iter.next();
-			fIdExtensionToName.put(key, PluginIdExtensionToName.get(key));
-		}
-		
-		fOrderedElements= new HashMap();
-		HashMap PluginOrderedElements= plugin.getOrderedElements();
-		keySet= PluginOrderedElements.keySet();
-		for (Iterator iter= keySet.iterator(); iter.hasNext();) {
-			String key= (String) iter.next();
-			fOrderedElements.put(key, ((ArrayList)PluginOrderedElements.get(key)).clone());
-		}
-		
-		fOrderedElementsInternal= plugin.getOrderedElementsInternal();
-	}
-
-	/**
-	 * @see PreferencePage#createContents(Composite)
-	 */
-	protected Control createContents(Composite ancestor) {
-		Composite parent= new Composite(ancestor, SWT.NULL);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		layout.marginHeight= 0;
-		layout.marginWidth= 0;
-		parent.setLayout(layout);				
-		
-		//layout the top table & its buttons
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(XMLCompareMessages.getString("XMLComparePreference.topTableLabel")); //$NON-NLS-1$
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-	
-		fIdMapsTable = new Table(parent, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
-		fIdMapsTable.setHeaderVisible(true);	
-		data = new GridData(GridData.FILL_BOTH);
-		data.heightHint = fIdMapsTable.getItemHeight()*4;
-		fIdMapsTable.setLayoutData(data);
-		fIdMapsTable.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				selectionChanged();
-			}
-		});
-
-		String column2Text= XMLCompareMessages.getString("XMLComparePreference.topTableColumn2"); //$NON-NLS-1$
-		String column3Text= XMLCompareMessages.getString("XMLComparePreference.topTableColumn3"); //$NON-NLS-1$
-		ColumnLayoutData columnLayouts[]= {
-			new ColumnWeightData(1),
-			new ColumnPixelData(convertWidthInCharsToPixels(column2Text.length()+2), true),
-			new ColumnPixelData(convertWidthInCharsToPixels(column3Text.length()+5), true)};
-		TableLayout tablelayout = new TableLayout();
-		fIdMapsTable.setLayout(tablelayout);
-		for (int i=0; i<3; i++)
-			tablelayout.addColumnData(columnLayouts[i]);
-		TableColumn column = new TableColumn(fIdMapsTable, SWT.NONE);
-		column.setText(XMLCompareMessages.getString("XMLComparePreference.topTableColumn1")); //$NON-NLS-1$
-		column = new TableColumn(fIdMapsTable, SWT.NONE);
-		column.setText(column2Text); //$NON-NLS-1$
-		column = new TableColumn(fIdMapsTable, SWT.NONE);
-		column.setText(column3Text); //$NON-NLS-1$
-		
-		fillIdMapsTable();
-
-		Composite buttons= new Composite(parent, SWT.NULL);
-		buttons.setLayout(new GridLayout());
-		data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		buttons.setLayoutData(data);
-
-		fAddIdMapButton = new Button(buttons, SWT.PUSH);
-		fAddIdMapButton.setText(XMLCompareMessages.getString("XMLComparePreference.topAdd")); //$NON-NLS-1$
-		fAddIdMapButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addIdMap(fAddIdMapButton.getShell());
-			}
-		});
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
-		int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		data.widthHint = Math.max(widthHint, fAddIdMapButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-		fAddIdMapButton.setLayoutData(data);
-	
-		fRenameIdMapButton = new Button(buttons, SWT.PUSH);
-		fRenameIdMapButton.setText(XMLCompareMessages.getString("XMLComparePreference.topRename")); //$NON-NLS-1$
-		fRenameIdMapButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				renameIdMap(fRenameIdMapButton.getShell());
-			}
-		});
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
-		widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		data.widthHint = Math.max(widthHint, fAddIdMapButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-		fRenameIdMapButton.setLayoutData(data);
-
-		fRemoveIdMapButton = new Button(buttons, SWT.PUSH);
-		fRemoveIdMapButton.setText(XMLCompareMessages.getString("XMLComparePreference.topRemove")); //$NON-NLS-1$
-		fRemoveIdMapButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-				removeIdMap(fRemoveIdMapButton.getShell());
-			}
-		});
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
-			widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		data.widthHint = Math.max(widthHint, fRemoveIdMapButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-		fRemoveIdMapButton.setLayoutData(data);
-
-		createSpacer(buttons);
-
-		fEditIdMapButton = new Button(buttons, SWT.PUSH);
-		fEditIdMapButton.setText(XMLCompareMessages.getString("XMLComparePreference.topEdit")); //$NON-NLS-1$
-		fEditIdMapButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				editIdMap(fEditIdMapButton.getShell());
-			}
-		});
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
-		widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		data.widthHint = Math.max(widthHint, fEditIdMapButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-		fEditIdMapButton.setLayoutData(data);
-	
-		//Spacer
-		label = new Label(parent, SWT.LEFT);
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-
-		//layout the middle table & its buttons
-		label = new Label(parent, SWT.LEFT);
-		label.setText(XMLCompareMessages.getString("XMLComparePreference.middleTableLabel")); //$NON-NLS-1$
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-
-		fMappingsTable = new Table(parent, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
-		fMappingsTable.setHeaderVisible(true);	
-		data = new GridData(GridData.FILL_BOTH);
-		data.heightHint = fMappingsTable.getItemHeight()*4;
-		data.widthHint= convertWidthInCharsToPixels(70);
-		fMappingsTable.setLayoutData(data);
-		
-		column3Text= XMLCompareMessages.getString("XMLComparePreference.middleTableColumn3"); //$NON-NLS-1$
-		String column4Text= XMLCompareMessages.getString("XMLComparePreference.middleTableColumn4"); //$NON-NLS-1$
-		columnLayouts= new ColumnLayoutData[] {
-			new ColumnWeightData(10),
-			new ColumnWeightData(18),
-			new ColumnPixelData(convertWidthInCharsToPixels(column3Text.length()+1), true),
-			new ColumnPixelData(convertWidthInCharsToPixels(column4Text.length()+3), true)};
-		tablelayout = new TableLayout();
-		fMappingsTable.setLayout(tablelayout);
-		for (int i=0; i<4; i++)
-			tablelayout.addColumnData(columnLayouts[i]);
-		column = new TableColumn(fMappingsTable, SWT.NONE);
-		column.setText(XMLCompareMessages.getString("XMLComparePreference.middleTableColumn1")); //$NON-NLS-1$
-		column = new TableColumn(fMappingsTable, SWT.NONE);
-		column.setText(XMLCompareMessages.getString("XMLComparePreference.middleTableColumn2")); //$NON-NLS-1$
-		column = new TableColumn(fMappingsTable, SWT.NONE);
-		column.setText(column3Text); //$NON-NLS-1$
-		column = new TableColumn(fMappingsTable, SWT.NONE);
-		column.setText(column4Text); //$NON-NLS-1$
-	
-		buttons= new Composite(parent, SWT.NULL);
-		buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-		layout= new GridLayout();
-		layout.marginHeight= 0;
-		layout.marginWidth= 0;
-		buttons.setLayout(layout);
-		
-		fNewMappingsButton= new Button(buttons, SWT.PUSH);
-		fNewMappingsButton.setLayoutData(getButtonGridData(fNewMappingsButton));
-		fNewMappingsButton.setText(XMLCompareMessages.getString("XMLComparePreference.middleNew")); //$NON-NLS-1$
-		fNewMappingsButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addMapping(fAddIdMapButton.getShell());
-			}
-		});
-
-		fEditMappingsButton= new Button(buttons, SWT.PUSH);
-		fEditMappingsButton.setLayoutData(getButtonGridData(fEditMappingsButton));
-		fEditMappingsButton.setText(XMLCompareMessages.getString("XMLComparePreference.middleEdit")); //$NON-NLS-1$
-		fEditMappingsButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				editMapping(fEditMappingsButton.getShell());
-			}
-		});
-
-		fRemoveMappingsButton= new Button(buttons, SWT.PUSH);
-		fRemoveMappingsButton.setLayoutData(getButtonGridData(fRemoveMappingsButton));
-		fRemoveMappingsButton.setText(XMLCompareMessages.getString("XMLComparePreference.middleRemove")); //$NON-NLS-1$
-		fRemoveMappingsButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				removeMapping(fRemoveMappingsButton.getShell());
-			}
-		});
-
-		createSpacer(buttons);
-
-		//layout the botton table & its buttons
-		label = new Label(parent, SWT.LEFT);
-		label.setText(XMLCompareMessages.getString("XMLComparePreference.bottomTableLabel")); //$NON-NLS-1$
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-
-		fOrderedTable = new Table(parent, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
-		fOrderedTable.setHeaderVisible(true);	
-		data = new GridData(GridData.FILL_BOTH);
-		data.heightHint = fOrderedTable.getItemHeight()*2;
-		data.widthHint= convertWidthInCharsToPixels(70);
-		fOrderedTable.setLayoutData(data);
-		
-		columnLayouts= new ColumnLayoutData[] {
-			new ColumnWeightData(1),
-			new ColumnWeightData(1)};
-		tablelayout = new TableLayout();
-		fOrderedTable.setLayout(tablelayout);
-		for (int i=0; i<2; i++)
-			tablelayout.addColumnData(columnLayouts[i]);
-		column = new TableColumn(fOrderedTable, SWT.NONE);
-		column.setText(XMLCompareMessages.getString("XMLComparePreference.bottomTableColumn1")); //$NON-NLS-1$
-		column = new TableColumn(fOrderedTable, SWT.NONE);
-		column.setText(XMLCompareMessages.getString("XMLComparePreference.bottomTableColumn2")); //$NON-NLS-1$
-	
-		buttons= new Composite(parent, SWT.NULL);
-		buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-		layout= new GridLayout();
-		layout.marginHeight= 0;
-		layout.marginWidth= 0;
-		buttons.setLayout(layout);
-		
-		fNewOrderedButton= new Button(buttons, SWT.PUSH);
-		fNewOrderedButton.setLayoutData(getButtonGridData(fNewOrderedButton));
-		fNewOrderedButton.setText(XMLCompareMessages.getString("XMLComparePreference.bottomNew")); //$NON-NLS-1$
-		fNewOrderedButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addOrdered(fNewOrderedButton.getShell());
-			}
-		});
-
-		fEditOrderedButton= new Button(buttons, SWT.PUSH);
-		fEditOrderedButton.setLayoutData(getButtonGridData(fEditOrderedButton));
-		fEditOrderedButton.setText(XMLCompareMessages.getString("XMLComparePreference.bottomEdit")); //$NON-NLS-1$
-		fEditOrderedButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				editOrdered(fEditOrderedButton.getShell());
-			}
-		});
-
-		fRemoveOrderedButton= new Button(buttons, SWT.PUSH);
-		fRemoveOrderedButton.setLayoutData(getButtonGridData(fRemoveOrderedButton));
-		fRemoveOrderedButton.setText(XMLCompareMessages.getString("XMLComparePreference.bottomRemove")); //$NON-NLS-1$
-		fRemoveOrderedButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				removeOrdered(fRemoveOrderedButton.getShell());
-			}
-		});
-
-		createSpacer(buttons);
-
-
-
-		fIdMapsTable.setSelection(0);
-		fIdMapsTable.setFocus();
-		selectionChanged();
-		
-		return parent;
-	}
-	
-	protected void createSpacer(Composite parent) {
-		Label spacer= new Label(parent, SWT.NONE);
-		GridData data= new GridData();
-		data.horizontalAlignment= GridData.FILL;
-		data.verticalAlignment= GridData.BEGINNING;
-		data.heightHint= 4;		
-		spacer.setLayoutData(data);
-	}
-	
-	private static GridData getButtonGridData(Button button) {
-		GridData data= new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint= SWTUtil.getButtonWidthHint(button);
-		data.heightHint= SWTUtil.getButtonHeigthHint(button);
-	
-		return data;
-	}
-	
-	public void init(IWorkbench workbench) {
-		noDefaultAndApplyButton();
-	}
-
-	public void handleEvent(Event event) {
-	}
-
-	private void addIdMap(Shell shell) {
-		IdMap idmap = new IdMap(false);
-		XMLCompareAddIdMapDialog dialog= new XMLCompareAddIdMapDialog(shell,idmap,fIdMaps,fIdMapsInternal,fIdExtensionToName,false);
-		if (dialog.open() == Window.OK) {
-			if (!fIdMaps.containsKey(idmap.getName())) {
-				fIdMaps.put(idmap.getName(),new HashMap());
-				if (!idmap.getExtension().equals("")) //$NON-NLS-1$
-					fIdExtensionToName.put(idmap.getExtension(),idmap.getName());
-				newIdMapsTableItem(idmap,true);
-			}
-		}
-	}
-
-	private void renameIdMap(Shell shell) {
-		TableItem[] itemsIdMaps = fIdMapsTable.getSelection();
-		if (itemsIdMaps.length > 0) {
-			IdMap idmap = (IdMap) itemsIdMaps[0].getData();
-			String old_name = idmap.getName();
-			String old_extension= idmap.getExtension();
-			HashMap idmapHS = (HashMap) fIdMaps.get(old_name);
-			XMLCompareAddIdMapDialog dialog= new XMLCompareAddIdMapDialog(shell,idmap,fIdMaps,fIdMapsInternal,fIdExtensionToName,true);
-			if (dialog.open() == Window.OK) {
-				fIdMaps.remove(old_name);
-				fIdExtensionToName.remove(old_extension);
-				fIdMaps.put(idmap.getName(),idmapHS);
-				if (!idmap.getExtension().equals("")) //$NON-NLS-1$
-					fIdExtensionToName.put(idmap.getExtension(),idmap.getName());
-				fIdMapsTable.remove(fIdMapsTable.indexOf(itemsIdMaps[0]));
-				newIdMapsTableItem(idmap,true);
-			}
-		}
-	}
-
-	private void removeIdMap(Shell shell) {
-		TableItem[] itemsIdMap = fIdMapsTable.getSelection();
-		if (itemsIdMap.length > 0) {
-//			fIdMaps.remove(itemsIdMap[0].getText());
-			String IdMapName= ((IdMap)itemsIdMap[0].getData()).getName();
-			fIdMaps.remove( IdMapName );
-			fOrderedElements.remove( IdMapName );
-			//All the corresponding ID Mappings must be removed as well
-			TableItem[] itemsMappings = fMappingsTable.getItems();
-			for (int i=0; i<itemsMappings.length; i++) {
-				itemsMappings[i].dispose();
-			}
-			//All the corresponding Ordered entries must be removed as well
-			TableItem[] itemsOrdered= fOrderedTable.getItems();
-			for (int i= 0; i < itemsOrdered.length; i++) {
-				itemsOrdered[i].dispose();
-			}
-			//Remove extension
-			if (!itemsIdMap[0].getText(2).equals("")) { //$NON-NLS-1$
-				fIdExtensionToName.remove(itemsIdMap[0].getText(2));
-			}
-			itemsIdMap[0].dispose();  //Table is single selection
-		}
-	}
-	
-	private void editIdMap(Shell shell) {
-		TableItem[] items = fIdMapsTable.getSelection();
-		if (items.length > 0) {
-			IdMap idmap = (IdMap) items[0].getData();
-			XMLCompareEditCopyIdMapDialog dialog= new XMLCompareEditCopyIdMapDialog(shell,idmap,fIdMaps,fIdMapsInternal);
-			if (dialog.open() == Window.OK) {
-				String new_idmapName = dialog.getResult();
-				if (!fIdMaps.containsKey(new_idmapName)) {
-					//copy over id mappings
-					Vector newMappings = new Vector();
-					IdMap newIdMap = new IdMap(new_idmapName, false, newMappings);
-					HashMap newIdmapHM = new HashMap();
-					fIdMaps.put(newIdMap.getName(),newIdmapHM);
-					Vector Mappings = idmap.getMappings();
-					for (Enumeration enum= Mappings.elements(); enum.hasMoreElements(); ) {
-						Mapping mapping = (Mapping) enum.nextElement();
-						Mapping newMapping = new Mapping(mapping.getElement(), mapping.getSignature(), mapping.getIdAttribute());
-						newMappings.add(newMapping);
-						newIdmapHM.put(newMapping.getKey(), newMapping.getIdAttribute());
-					}
-					//copy over ordered entries
-					ArrayList orderedAL= idmap.getOrdered();
-					if (orderedAL != null && orderedAL.size() > 0) {
-						ArrayList newOrderedAL= new ArrayList();
-						newIdMap.setOrdered(newOrderedAL);
-						ArrayList idmapOrdered= new ArrayList();
-						fOrderedElements.put(newIdMap.getName(),idmapOrdered);
-						for (Iterator iter= orderedAL.iterator(); iter.hasNext();) {
-							Mapping ordered= (Mapping) iter.next();
-							Mapping newOrdered= new Mapping(ordered.getElement(), ordered.getSignature());
-							newOrderedAL.add(newOrdered);
-							idmapOrdered.add(newOrdered.getKey());
-						}
-					}
-					
-					newIdMapsTableItem(newIdMap,true);
-					selectionChanged();
-				}
-			}
-		}
-	}
-
-	private void addMapping(Shell shell) {
-		TableItem[] items = fIdMapsTable.getSelection();
-		if (items.length > 0) {
-			IdMap idmap = (IdMap) items[0].getData();
-			Mapping mapping = new Mapping();
-			HashMap idmapHM = (HashMap) fIdMaps.get(idmap.getName());
-			XMLCompareEditMappingDialog dialog= new XMLCompareEditMappingDialog(shell,mapping,idmapHM,false);
-			if (dialog.open() == Window.OK) {
-				String idmapHMKey = mapping.getKey();
-				if (idmapHM == null)
-					idmapHM= new HashMap();
-				if (!idmapHM.containsKey(idmapHMKey)) {
-					idmapHM.put(idmapHMKey, mapping.getIdAttribute());
-					newMappingsTableItem(mapping, true);
-					Vector mappings = idmap.getMappings();
-					mappings.add(mapping);
-				}
-			}
-		}
-	}
-
-	private void editMapping(Shell shell) {
-		TableItem[] itemsIdMaps = fIdMapsTable.getSelection();		
-		TableItem[] itemsMappings = fMappingsTable.getSelection();
-		if (itemsMappings.length > 0) {
-			IdMap idmap = (IdMap) itemsIdMaps[0].getData();
-			HashMap idmapHM = (HashMap) fIdMaps.get(idmap.getName());
-			Mapping mapping = (Mapping)itemsMappings[0].getData();
-			String idmapHMKey = mapping.getKey();
-			idmapHM.remove(idmapHMKey);
-			XMLCompareEditMappingDialog dialog= new XMLCompareEditMappingDialog(shell,mapping,null,true);
-			if (dialog.open() == Window.OK) {
-				idmapHMKey = mapping.getKey();
-				idmapHM.put(idmapHMKey, mapping.getIdAttribute());
-				fMappingsTable.remove(fMappingsTable.indexOf(itemsMappings[0]));
-				newMappingsTableItem(mapping, true);
-			}
-		}
-	}
-
-	private void removeMapping(Shell shell) {
-		TableItem[] itemsIdMaps = fIdMapsTable.getSelection();
-		TableItem[] itemsMappings = fMappingsTable.getSelection();
-		
-		if (itemsMappings.length > 0 && itemsIdMaps.length > 0) {
-			Mapping mapping = (Mapping)itemsMappings[0].getData();
-			IdMap idmap = (IdMap) itemsIdMaps[0].getData();
-			HashMap idmapHS = (HashMap) fIdMaps.get( idmap.getName() );
-			idmapHS.remove(mapping.getKey());
-			Vector mappings= idmap.getMappings();
-			mappings.remove(mapping);
-			itemsMappings[0].dispose();  //Table is single selection
-		}
-	}
-
-	private void addOrdered(Shell shell) {
-		TableItem[] items = fIdMapsTable.getSelection();
-		if (items.length > 0) {
-//			Set orderedSet= fOrderedElements.keySet();
-//			for (Iterator iter= orderedSet.iterator(); iter.hasNext(); ) {
-//				String IdMapName= (String) iter.next();
-//				ArrayList ordered= (ArrayList) fOrderedElements.get(IdMapName);
-//				for (Iterator iter2= ordered.iterator(); iter2.hasNext(); ) {
-//					System.out.println(IdMapName + ": " + iter2.next()); //$NON-NLS-1$
-//				}
-//			}
-			IdMap idmap = (IdMap) items[0].getData();
-			Mapping mapping = new Mapping();
-			ArrayList idmapAL= (ArrayList) fOrderedElements.get(idmap.getName());
-			if (idmapAL == null)
-				idmapAL= new ArrayList();
-			XMLCompareEditOrderedDialog dialog= new XMLCompareEditOrderedDialog(shell,mapping,idmapAL,false);
-			if (dialog.open() == Window.OK) {
-				String idmapALKey = mapping.getKey();
-				if (!idmapAL.contains(idmapALKey)) {
-					idmapAL.add(idmapALKey);
-					newOrderedTableItem(mapping, true);
-					ArrayList ordered= idmap.getOrdered();
-					if (ordered == null) {
-						ordered= new ArrayList();
-						ordered.add(mapping);
-						idmap.setOrdered(ordered);
-					} else {
-						ordered.add(mapping);
-					}
-					if (!fOrderedElements.containsKey(idmap.getName()))
-						fOrderedElements.put(idmap.getName(), idmapAL);
-				}
-			}
-		}
-	}
-	
-	private void editOrdered(Shell shell) {
-		TableItem[] itemsIdMaps = fIdMapsTable.getSelection();		
-		TableItem[] itemsOrdered = fOrderedTable.getSelection();
-		if (itemsOrdered.length > 0) {
-			IdMap idmap = (IdMap) itemsIdMaps[0].getData();
-			ArrayList idmapAL = (ArrayList) fOrderedElements.get(idmap.getName());
-			Mapping mapping = (Mapping)itemsOrdered[0].getData();
-			String idmapALKey = mapping.getKey();
-			idmapAL.remove(idmapALKey);
-			XMLCompareEditOrderedDialog dialog= new XMLCompareEditOrderedDialog(shell,mapping,null,true);
-			if (dialog.open() == Window.OK) {
-				idmapALKey = mapping.getKey();
-				idmapAL.add(idmapALKey);
-				fOrderedTable.remove(fOrderedTable.indexOf(itemsOrdered[0]));
-				newOrderedTableItem(mapping, true);
-			}
-		}
-		
-	}
-	
-	private void removeOrdered(Shell shell) {
-		TableItem[] itemsIdMaps = fIdMapsTable.getSelection();
-		TableItem[] itemsOrdered = fOrderedTable.getSelection();
-		if (itemsOrdered.length > 0 && itemsIdMaps.length > 0) {
-			Mapping mapping = (Mapping)itemsOrdered[0].getData();
-			IdMap idmap = (IdMap) itemsIdMaps[0].getData();
-			ArrayList idmapAL = (ArrayList) fOrderedElements.get( idmap.getName() );
-			idmapAL.remove(mapping.getKey());
-			if (idmapAL.size() <= 0)
-				fOrderedElements.remove(idmap.getName());
-			ArrayList ordered= idmap.getOrdered();
-			ordered.remove(mapping);
-			if (ordered.size() <= 0)
-				idmap.setOrdered(null);
-			itemsOrdered[0].dispose();  //Table is single selection
-		}		
-	}
-
-	protected TableItem newIdMapsTableItem(IdMap idmap, boolean selected) {
-		//find index where to insert table entry
-		TableItem[] items = fIdMapsTable.getItems();
-		int i;
-		for (i=0; i<items.length && idmap.getName().compareToIgnoreCase(items[i].getText(0)) > 0; i++);
-		TableItem item = new TableItem(fIdMapsTable, SWT.NULL, i);
-		String[] values = new String[] {idmap.getName(), (idmap.isInternal())?XMLCompareMessages.getString("XMLComparePreference.topTableColumn2internal"):XMLCompareMessages.getString("XMLComparePreference.topTableColumn2user"),idmap.getExtension()}; //$NON-NLS-2$ //$NON-NLS-1$
-		item.setText(values);
-		item.setData(idmap);
-		if (selected) {
-			fIdMapsTable.setSelection(i);
-			fIdMapsTable.setFocus();
-			selectionChanged();
-		}
-		return item;
-	}
-	
-	protected TableItem newMappingsTableItem(Mapping mapping, boolean selected) {
-		TableItem[] items = fMappingsTable.getItems();
-		int i;
-		for (i=0; i<items.length && mapping.getElement().compareToIgnoreCase(items[i].getText(0)) > 0; i++);
-
-		TableItem item = new TableItem(fMappingsTable, SWT.NULL, i);
-		String idtext = mapping.getIdAttribute();
-		String idtype;
-		if (idtext.charAt(0)==XMLStructureCreator.ID_TYPE_BODY) {
-			idtext = idtext.substring(1,idtext.length());
-			idtype = IDTYPE_CHILDBODY;
-		} else
-			idtype = IDTYPE_ATTRIBUTE;
-		
-		String[] values = new String[] {mapping.getElement(), mapping.getSignature(), idtext, idtype};
-		item.setText(values);
-		item.setData(mapping);
-		if (selected)
-			fMappingsTable.setSelection(i);
-	
-		return item;
-	}
-
-	protected TableItem newOrderedTableItem(Mapping mapping, boolean selected) {
-		TableItem[] items = fOrderedTable.getItems();
-		int i;
-		for (i=0; i<items.length && mapping.getElement().compareToIgnoreCase(items[i].getText(0)) > 0; i++);
-
-		TableItem item = new TableItem(fOrderedTable, SWT.NULL, i);
-		
-		String[] values = new String[] {mapping.getElement(), mapping.getSignature()};
-		item.setText(values);
-		item.setData(mapping);
-		if (selected)
-			fOrderedTable.setSelection(i);
-	
-		return item;
-	}
-
-	
-	protected void fillIdMapsTable() {
-		//fill user idmaps from plugin.xml
-		fillIdMaps(true);
-		
-		//fill user idmaps from Preference Store
-		fillIdMaps(false);
-				
-		//add user idmaps that have ordered entries but no id mappings
-		//they do not appear in the preference store with name IDMAP_PREFERENCE_NAME
-		Set OrderedKeys= fOrderedElements.keySet();
-		Set IdMapKeys= fIdMaps.keySet();
-		for (Iterator iter_orderedElements= OrderedKeys.iterator(); iter_orderedElements.hasNext();) {
-			String IdMapName= (String) iter_orderedElements.next();
-			if (!IdMapKeys.contains(IdMapName)) {
-				IdMap idmap= new IdMap(IdMapName, false);
-				ArrayList idmapOrdered= (ArrayList) fOrderedElements.get(IdMapName);
-				setOrdered(idmap, idmapOrdered);
-				newIdMapsTableItem(idmap, false);
-			}
-		}
-	}
-
-	private void fillIdMaps(boolean internal) {
-		HashMap IdMaps= (internal)?fIdMapsInternal:fIdMaps;
-		HashMap OrderedElements= (internal)?fOrderedElementsInternal:fOrderedElements;
-		Set IdMapKeys = IdMaps.keySet();
-		for (Iterator iter_internal = IdMapKeys.iterator(); iter_internal.hasNext(); ) {
-			String IdMapName = (String) iter_internal.next();
-			Vector Mappings = new Vector();
-			IdMap idmap = new IdMap(IdMapName, internal, Mappings);
-			//create mappings of internal idmaps
-			HashMap idmapHM = (HashMap) IdMaps.get(IdMapName);
-			Set idmapKeys = idmapHM.keySet();
-			for (Iterator iter_idmap = idmapKeys.iterator(); iter_idmap.hasNext(); ) {
-				Mapping mapping = new Mapping();
-				String signature = (String) iter_idmap.next();
-				int end_of_signature = signature.lastIndexOf(SIGN_SEPARATOR,signature.length()-2);
-				if (end_of_signature < XMLStructureCreator.ROOT_ID.length() + 1)
-					mapping.setSignature(""); //$NON-NLS-1$
-				else
-					mapping.setSignature(signature.substring(XMLStructureCreator.ROOT_ID.length() + 1,end_of_signature));
-				mapping.setElement(signature.substring(end_of_signature+1,signature.length()-1));
-				mapping.setIdAttribute((String)idmapHM.get(signature));
-				Mappings.add(mapping);
-			}
-			//create ordered mappings
-			ArrayList idmapOrdered= (ArrayList) OrderedElements.get(IdMapName);
-			if (idmapOrdered != null) {
-				setOrdered(idmap, idmapOrdered);
-			}
-			//set extension
-			if (fIdExtensionToName.containsValue(IdMapName)) {
-				Set keySet= fIdExtensionToName.keySet();
-				String extension= new String();
-				for (Iterator iter= keySet.iterator(); iter.hasNext(); ) {
-					extension= (String)iter.next();
-					if ( ((String)fIdExtensionToName.get(extension)).equals(IdMapName) )
-						break;
-				}
-				idmap.setExtension(extension);
-			}
-			newIdMapsTableItem(idmap, false);
-		}
-	}
-
-	protected static void setOrdered(IdMap idmap, ArrayList idmapOrdered) {
-		ArrayList Ordered= new ArrayList();
-		for (Iterator iter_ordered= idmapOrdered.iterator(); iter_ordered.hasNext();) {
-			Mapping mapping= new Mapping();
-			String signature= (String) iter_ordered.next();
-			int end_of_signature = signature.lastIndexOf(SIGN_SEPARATOR,signature.length()-2);
-			if (end_of_signature < XMLStructureCreator.ROOT_ID.length() + 1)
-				mapping.setSignature(""); //$NON-NLS-1$
-			else
-				mapping.setSignature(signature.substring(XMLStructureCreator.ROOT_ID.length() + 1,end_of_signature));
-			mapping.setElement(signature.substring(end_of_signature+1,signature.length()-1));
-			Ordered.add(mapping);
-		}				
-		idmap.setOrdered(Ordered);
-	}
-
-	/**
-	 * @see IWorkbenchPreferencePage#performDefaults
-	 */	
-	public boolean performOk() {
-		XMLPlugin plugin= XMLPlugin.getDefault();
-		if (!plugin.getIdMaps().equals(fIdMaps)
-			|| !plugin.getIdExtensionToName().equals(fIdExtensionToName)
-			|| !plugin.getOrderedElements().equals(fOrderedElements) )
-			plugin.setIdMaps(fIdMaps,fIdExtensionToName,fOrderedElements,true);
-			//XMLPlugin.getDefault().setIdMaps(fIdMaps,fIdExtensionToName,null);
-		return super.performOk();
-	}	
-	
-	public boolean performCancel() {
-		fIdMaps = (HashMap) XMLPlugin.getDefault().getIdMaps().clone();
-		return super.performCancel();
-	}
-	
-	protected void selectionChanged() {
-		TableItem[] items = fIdMapsTable.getSelection();
-		if (items.length > 0) {
-			//Refresh Mappings Table
-			fMappingsTable.removeAll();
-			Vector Mappings = ((IdMap)items[0].getData()).getMappings();
-			for (Enumeration enum = Mappings.elements(); enum.hasMoreElements(); ) {
-				newMappingsTableItem((Mapping)enum.nextElement(), false);
-			}
-			//Refresh Ordered Table
-			fOrderedTable.removeAll();
-			ArrayList Ordered= ((IdMap)items[0].getData()).getOrdered();
-			if (Ordered != null) {
-				for (Iterator iter_ordered= Ordered.iterator(); iter_ordered.hasNext();) {
-					newOrderedTableItem((Mapping)iter_ordered.next(), false);
-				}
-			}
-		}
-		updateEnabledState();
-	}
-
-	/**
-	 * Updates the state (enabled, not enabled) of the buttons
-	 */
-	private void updateEnabledState() {
-		TableItem[] itemsIdMaps = fIdMapsTable.getSelection();
-		if (itemsIdMaps.length > 0) {
-			IdMap idmap = (IdMap) itemsIdMaps[0].getData();
-			if (idmap.isInternal()) {
-				fRenameIdMapButton.setEnabled(false);
-				fRemoveIdMapButton.setEnabled(false);
-				fEditIdMapButton.setEnabled(true);
-				
-				fNewMappingsButton.setEnabled(false);
-				fEditMappingsButton.setEnabled(false);
-				fRemoveMappingsButton.setEnabled(false);
-				
-				fNewOrderedButton.setEnabled(false);
-				fEditOrderedButton.setEnabled(false);
-				fRemoveOrderedButton.setEnabled(false);
-			} else {
-				fRenameIdMapButton.setEnabled(true);
-				fRemoveIdMapButton.setEnabled(true);
-				fEditIdMapButton.setEnabled(false);
-				
-				fNewMappingsButton.setEnabled(true);
-				fEditMappingsButton.setEnabled(true);
-				fRemoveMappingsButton.setEnabled(true);
-				
-				fNewOrderedButton.setEnabled(true);
-				fEditOrderedButton.setEnabled(true);
-				fRemoveOrderedButton.setEnabled(true);
-			}
-		}
-	}
-
-	static protected boolean containsInvalidCharacters(String text) {
-		for (int i=0; i<invalidCharacters.length; i++) {
-			if (text.indexOf(invalidCharacters[i]) > -1)
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLNode.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLNode.java
deleted file mode 100644
index 13e087f..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLNode.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import org.eclipse.compare.CompareUI;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.structuremergeviewer.DocumentRangeNode;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Objects that make up the parse tree.
- */
-public class XMLNode extends DocumentRangeNode implements ITypedElement {
-
-	private String fValue;
-	private String fName;
-	private String fSignature;
-	private String fOrigId;
-	private XMLNode parent;
-	private String fXMLType;
-	private boolean fUsesIDMAP;
-	private boolean fOrderedChild;
-
-	public int bodies; // counts the number of bodies
-
-	public XMLNode(String XMLType, String id, String value, String signature, IDocument doc, int start, int length) {
-		super(0, id, doc, start, length);
-		fXMLType= XMLType;
-		fValue= value;
-		fSignature= signature;
-		fOrigId= id;
-		if (XMLStructureCreator.DEBUG_MODE)
-			System.out.println("Created XMLNode with XMLType: " + XMLType + ", id: " + id + ", value: " + value + ", signature: " + fSignature); //$NON-NLS-1$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$
-		bodies= 0;
-		fUsesIDMAP= false;
-		fOrderedChild= false;
-	}
-
-	void setValue(String value) {
-		fValue= value;
-	}
-
-	String getValue() {
-		return fValue;
-	}
-
-	/**
-	 * @see ITypedElement#getName
-	 */
-	public String getName() {
-		if (fName != null)
-			return fName;
-		return this.getId();
-	}
-
-	public void setName(String name) {
-		fName= name;
-	}
-
-	/**
-	 * Every xml node is of type "txt" so that the builtin TextMergeViewer is used automatically.
-	 * @see ITypedElement#getType
-	 */
-	public String getType() {
-		return "txt"; //$NON-NLS-1$
-	}
-
-	public void setIsOrderedChild(boolean isOrderedChild) {
-		fOrderedChild= isOrderedChild;
-	}
-	/**
-	 * @see ITypedElement#getImage
-	 */
-	public Image getImage() {
-		if (fOrderedChild)
-			return CompareUI.getImage(
-				XMLPlugin.IMAGE_TYPE_PREFIX
-					+ XMLStructureCreator.TYPE_ELEMENT
-					+ XMLPlugin.IMAGE_TYPE_ORDERED_SUFFIX);
-		else
-			return CompareUI.getImage(
-				XMLPlugin.IMAGE_TYPE_PREFIX + getXMLType());
-	}
-
-	public void setParent(XMLNode parent0) {
-		this.parent= parent0;
-	}
-
-	public XMLNode getParent() {
-		return this.parent;
-	}
-
-	String getXMLType() {
-		return fXMLType;
-	}
-
-	String getSignature() {
-		return fSignature;
-	}
-
-	void setOrigId(String id) {
-		fOrigId= id;
-	}
-
-	public String getOrigId() {
-		return fOrigId;
-	}
-
-	public void setUsesIDMAP(boolean b) {
-		fUsesIDMAP= b;
-	}
-
-	public boolean usesIDMAP() {
-		return fUsesIDMAP;
-	}
-
-	//for tests
-	public boolean testEquals(Object obj) {
-		if (obj instanceof XMLNode) {
-			XMLNode n= (XMLNode) obj;
-			return fValue.equals(n.getValue())
-				&& fSignature.equals(n.getSignature())
-				&& fXMLType.equals(n.getXMLType())
-				&& fUsesIDMAP == n.usesIDMAP();
-		}
-		return false;
-	}
-
-	/**
-	 * Returns true if the subtree rooted at this node is equals to the subtree rooted at <code>obj</code>
-	 */
-	public boolean subtreeEquals(Object obj) {
-		if (!testEquals(obj))
-			return false;
-		if (obj instanceof XMLNode) {
-			XMLNode n= (XMLNode) obj;
-			if (getXMLType().equals(XMLStructureCreator.TYPE_ATTRIBUTE)
-				&& n.getXMLType().equals(XMLStructureCreator.TYPE_ATTRIBUTE))
-				return true;
-			Object[] children= getChildren();
-			Object[] n_children= n.getChildren();
-			//if both nodes have no children, return true;
-			if ((children == null || children.length <= 0)
-				&& (n_children == null || n_children.length <= 0))
-				return true;
-			//now at least one of the two nodes has children;
-			/* so if one of the two nodes has no children, or they don't have the same number of children,
-			 * return false;
-			 */
-			if ((children == null || children.length <= 0)
-				|| (n_children == null || n_children.length <= 0)
-				|| (children.length != n_children.length))
-				return false;
-			//now both have children and the same number of children
-			for (int i= 0; i < children.length; i++) {
-				/* if the subtree rooted at children[i] is not equal to the subtree rooted at n_children[i],
-				 * return false
-				 */
-				if (!((XMLNode) children[i]).subtreeEquals(n_children[i]))
-					return false;
-			}
-		}
-		return true;
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLPlugin.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLPlugin.java
deleted file mode 100644
index ddf1440..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLPlugin.java
+++ /dev/null
@@ -1,395 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.util.ListenerList;
-
-import org.eclipse.compare.CompareUI;
-import org.eclipse.core.runtime.*;
-
-/**
- * This class is the plug-in runtime class for the 
- * <code>"org.eclipse.compare.xml"</code> plug-in.
- * </p>
- */
-public final class XMLPlugin extends AbstractUIPlugin {
-	
-	private ListenerList fViewers;
-
-	public static final String PLUGIN_ID= "org.eclipse.compare.examples.xml"; //$NON-NLS-1$
-
-	private static final String ID_MAPPING_EXTENSION_POINT= "idMapping"; //$NON-NLS-1$
-	private static final String MAPPING_ELEMENT_NAME= "mapping"; //$NON-NLS-1$
-	private static final String IDMAP_NAME_ATTRIBUTE= "name"; //$NON-NLS-1$
-	private static final String EXTENSION_NAME_ATTRIBUTE= "extension"; //$NON-NLS-1$
-	private static final String MAPPING_SIGNATURE_ATTRIBUTE= "signature"; //$NON-NLS-1$
-	private static final String MAPPING_ID_ATTRIBUTE= "id"; //$NON-NLS-1$
-	private static final String MAPPING_ID_SOURCE= "id-source"; //$NON-NLS-1$
-	private static final String MAPPING_ID_SOURCE_BODY= "body"; //$NON-NLS-1$
-	private static final String ORDERED_ELEMENT_NAME= "ordered"; //$NON-NLS-1$
-	private static final String ORDERED_SIGNATURE_ATTRIBUTE= "signature"; //$NON-NLS-1$
-	
-	public static final String DEFAULT_PREFIX = "XML"; //$NON-NLS-1$
-	public static final String IMAGE_TYPE_PREFIX = "xml_"; //$NON-NLS-1$
-	public static final String IMAGE_TYPE_ORDERED_SUFFIX = "_ordered"; //$NON-NLS-1$
-	public static final String IDMAP_PREFERENCE_NAME = "idmap"; //$NON-NLS-1$
-	public static final String IDMAP_PREFIX = "idmap"; //$NON-NLS-1$
-	public static final char IDMAP_SEPARATOR = '*';
-	public static final char IDMAP_FIELDS_SEPARATOR = '!';
-	
-	public static final String ORDERED_PREFERENCE_NAME = "ordered"; //$NON-NLS-1$
-	public static final char ORDERED_FIELDS_SEPARATOR = IDMAP_FIELDS_SEPARATOR;
-	
-	private static XMLPlugin fgXMLPlugin;
-	private IPreferenceStore fPrefStore;
-	
-	private HashMap fIdMapsInternal;
-	private HashMap fIdMaps;
-	private HashMap fIdExtensionToName;
-	private HashMap fOrderedElementsInternal;
-	private HashMap fOrderedElements;
-
-	/**
-	 * Creates the <code>XMLPlugin</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 XMLPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-		fgXMLPlugin= this;
-		fViewers = new ListenerList();
-
-		CompareUI.removeAllStructureViewerAliases(DEFAULT_PREFIX);
-		initPrefStore();
-		CompareUI.registerImageDescriptor(IMAGE_TYPE_PREFIX + XMLStructureCreator.TYPE_ELEMENT, getImageDescriptor("obj16/element_obj.gif")); //$NON-NLS-1$
-		CompareUI.registerImageDescriptor(IMAGE_TYPE_PREFIX + XMLStructureCreator.TYPE_ATTRIBUTE, getImageDescriptor("obj16/attribute_obj.gif")); //$NON-NLS-1$
-		CompareUI.registerImageDescriptor(IMAGE_TYPE_PREFIX + XMLStructureCreator.TYPE_TEXT, getImageDescriptor("obj16/text_obj.gif")); //$NON-NLS-1$
-		CompareUI.registerImageDescriptor(IMAGE_TYPE_PREFIX + XMLStructureCreator.TYPE_ELEMENT + IMAGE_TYPE_ORDERED_SUFFIX, getImageDescriptor("obj16/element_ordered_obj.gif")); //$NON-NLS-1$
-		registerExtensions();
-	}
-		
-	protected ImageDescriptor getImageDescriptor(String relativePath) {
-		
-		URL installURL= getDescriptor().getInstallURL();
-		if (installURL != null) {
-			try {
-				URL url= new URL(installURL, "icons/full/" + relativePath); //$NON-NLS-1$
-				return ImageDescriptor.createFromURL(url);
-			} catch (MalformedURLException e) {
-				Assert.isTrue(false);
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the singleton instance of this plug-in runtime class.
-	 *
-	 * @return the XMLPlugin instance
-	 */
-	public static XMLPlugin getDefault() {
-		return fgXMLPlugin;
-	}
-
-	/**
-	 * Reads the Preference Store associated with XMLPlugin and initializes ID Mappings.
-	 */	
-	public void initPrefStore() {
-		fIdMaps = new HashMap();
-		fIdExtensionToName= new HashMap();
-		fPrefStore = getPreferenceStore();
-		String IdMapPrefValue = fPrefStore.getString(IDMAP_PREFERENCE_NAME);
-		int start = 0;
-		int end = IdMapPrefValue.indexOf(IDMAP_SEPARATOR);
-		while (end >= 0) {
-			String CurrentIdMap = IdMapPrefValue.substring(start,end);
-			int end_of_IdMapName = CurrentIdMap.indexOf(IDMAP_FIELDS_SEPARATOR);
-			String IdMapName = CurrentIdMap.substring(0,end_of_IdMapName);
-			int end_of_signature = CurrentIdMap.indexOf(IDMAP_FIELDS_SEPARATOR,end_of_IdMapName+1);
-			String IdMapSignature = CurrentIdMap.substring(end_of_IdMapName+1,end_of_signature);
-			int end_of_attribute= CurrentIdMap.indexOf(IDMAP_FIELDS_SEPARATOR,end_of_signature+1);
-			String IdMapAttribute;
-			if (end_of_attribute < 0) {//for backward compatibility
-				IdMapAttribute = CurrentIdMap.substring(end_of_signature+1,CurrentIdMap.length());
-			} else {//normal case
-				IdMapAttribute = CurrentIdMap.substring(end_of_signature+1,end_of_attribute);
-				String IdMapExtension= CurrentIdMap.substring(end_of_attribute+1,CurrentIdMap.length());
-				//if extension already associated, do not associate with this idmap
-				if (!IdMapExtension.equals("") && !fIdExtensionToName.containsKey(IdMapExtension)) { //$NON-NLS-1$
-					fIdExtensionToName.put(IdMapExtension,IdMapName);
-					CompareUI.addStructureViewerAlias(DEFAULT_PREFIX, IdMapExtension);
-				}
-			}
-			
-			if (fIdMaps.containsKey(IdMapName)) {
-				HashMap Mappings = (HashMap) fIdMaps.get(IdMapName);
-				Mappings.put(IdMapSignature,IdMapAttribute);
-			} else {
-				HashMap Mappings = new HashMap();
-				Mappings.put(IdMapSignature,IdMapAttribute);
-				fIdMaps.put(IdMapName,Mappings);
-			}
-			start = end+1;
-			end = IdMapPrefValue.indexOf(IDMAP_SEPARATOR,end+1);
-		}
-		
-		fOrderedElements= new HashMap();
-		String OrderedPrefValue= fPrefStore.getString(ORDERED_PREFERENCE_NAME);
-		StringTokenizer orderedTokens= new StringTokenizer(OrderedPrefValue, (new Character(ORDERED_FIELDS_SEPARATOR)).toString());
-		while (orderedTokens.hasMoreTokens()) {
-			String IdMapName= orderedTokens.nextToken();
-			String signature= orderedTokens.nextToken();
-			if (fOrderedElements.containsKey(IdMapName)) {
-				ArrayList idmapAL= (ArrayList) fOrderedElements.get(IdMapName);
-				idmapAL.add(signature);
-			} else {
-				ArrayList idmapAL= new ArrayList();
-				idmapAL.add(signature);
-				fOrderedElements.put(IdMapName, idmapAL);
-			}
-		}
-
-	}
-	
-	/**
-	 * Updates the user Id Mappings, the IdExtensionToName mappings and refreshes the preference store.
-	 * @param IdMap the new Id Mappings
-	 * @param IdExtensionToName the new IdExtensionToName mappings
-	 * @param refresh whether all the open StructureViewers should be refreshed with the new IdMapping settings
-	 */
-	public void setIdMaps(HashMap IdMap, HashMap IdExtensionToName, HashMap OrderedElements, boolean refresh) {
-		fIdMaps = IdMap;
-		if (IdExtensionToName != null && !IdExtensionToName.equals(fIdExtensionToName)) {
-			CompareUI.removeAllStructureViewerAliases(DEFAULT_PREFIX);
-			fIdExtensionToName= IdExtensionToName;
-			Set newkeySet= fIdExtensionToName.keySet();
-			for (Iterator iter= newkeySet.iterator(); iter.hasNext(); ) {
-				String extension= (String)iter.next();
-				CompareUI.addStructureViewerAlias(DEFAULT_PREFIX, extension);
-			}
-		}
-		StringBuffer IdMapPrefValue = new StringBuffer();
-		Set idmapKeys = fIdMaps.keySet();
-		for (Iterator iter_idmap = idmapKeys.iterator(); iter_idmap.hasNext(); ) {
-			String IdMapName = (String) iter_idmap.next();
-			HashMap idmapHM = (HashMap) fIdMaps.get(IdMapName);
-			Set mappingKeys = idmapHM.keySet();
-			String extension= ""; //$NON-NLS-1$
-			if (fIdExtensionToName.containsValue(IdMapName)) {
-				Set keySet= fIdExtensionToName.keySet();
-				for (Iterator iter= keySet.iterator(); iter.hasNext(); ) {
-					extension= (String)iter.next();
-					if ( ((String)fIdExtensionToName.get(extension)).equals(IdMapName) )
-						break;
-				}
-			}
-			for (Iterator iter_mapping = mappingKeys.iterator(); iter_mapping.hasNext(); ) {
-				String signature = (String) iter_mapping.next();
-				IdMapPrefValue.append(IdMapName+IDMAP_FIELDS_SEPARATOR+signature+IDMAP_FIELDS_SEPARATOR+idmapHM.get(signature)+IDMAP_FIELDS_SEPARATOR+extension+IDMAP_SEPARATOR);
-			}
-		}
-		fPrefStore.setValue(IDMAP_PREFERENCE_NAME,IdMapPrefValue.toString());
-		//fPrefStore.setValue(IDMAP_PREFERENCE_NAME,"");
-		
-		//stores OrderedElements
-		if (OrderedElements != null) {
-			fOrderedElements= OrderedElements;
-			StringBuffer OrderedPrefValue= new StringBuffer();
-			Set orderedKeys= fOrderedElements.keySet();
-			for (Iterator iter_ordered= orderedKeys.iterator(); iter_ordered.hasNext();) {
-				String IdMapName= (String) iter_ordered.next();
-				ArrayList idmapAL= (ArrayList) fOrderedElements.get(IdMapName);
-				for (Iterator iter_idmapAL= idmapAL.iterator(); iter_idmapAL.hasNext();) {
-					String signature= (String) iter_idmapAL.next();
-					OrderedPrefValue.append(IdMapName+ORDERED_FIELDS_SEPARATOR+signature+ORDERED_FIELDS_SEPARATOR);
-				}
-			}
-			fPrefStore.setValue(ORDERED_PREFERENCE_NAME,OrderedPrefValue.toString());
-			//fPrefStore.setValue(ORDERED_PREFERENCE_NAME,"");
-		}
-
-		if (refresh) {
-			Object[] viewers = fViewers.getListeners();
-			for (int i = 0; i < viewers.length; ++i) {
-				XMLStructureViewer viewer = (XMLStructureViewer) viewers[i];
-				viewer.updateIdMaps();
-				viewer.contentChanged();
-			}
-		}
-	}
-	
-	public HashMap getIdMaps() {
-		return fIdMaps;
-	}
-	
-	public HashMap getIdMapsInternal() {
-		return fIdMapsInternal;
-	}
-	
-	public HashMap getIdExtensionToName() {
-		return fIdExtensionToName;
-	}
-
-	public HashMap getOrderedElements() {
-		return fOrderedElements;
-	}
-
-	public HashMap getOrderedElementsInternal() {
-		return fOrderedElementsInternal;
-	}
-
-	/**
-	 * Registers all internal Id Mapping schemes
-	 * that are found in plugin.xml files.
-	 */
-	private void registerExtensions() {
-		IPluginRegistry registry= Platform.getPluginRegistry();
-		
-		// collect all Id Mappings
-		IConfigurationElement[] idmaps= registry.getConfigurationElementsFor(PLUGIN_ID, ID_MAPPING_EXTENSION_POINT);
-		fIdMapsInternal = new HashMap();
-		fOrderedElementsInternal= new HashMap();
-		for (int i_idmap= 0; i_idmap < idmaps.length; i_idmap++) {
-			final IConfigurationElement idmap= idmaps[i_idmap];
-			//handle IDMAP_NAME_ATTRIBUTE
-			String idmap_name= idmap.getAttribute(IDMAP_NAME_ATTRIBUTE);
-			//ignores idmap if its name equals the reserved name for unordered matching or the the name for ordered matching
-			if ( !idmap_name.equals(XMLStructureCreator.USE_UNORDERED) && !idmap_name.equals(XMLStructureCreator.USE_ORDERED) ) {
-				//handle mappings
-				HashMap idmapHM = new HashMap();
-				fIdMapsInternal.put(idmap_name, idmapHM);
-				IConfigurationElement[] mappings = idmap.getChildren(MAPPING_ELEMENT_NAME);
-				for (int i_mapping= 0; i_mapping < mappings.length; i_mapping++) {
-					IConfigurationElement mapping = mappings[i_mapping];
-					//add SIGN_SEPARATOR at the end because not contained in signatures of plugin.xml
-					//also add prefix at beginning
-					String signature= mapping.getAttribute(MAPPING_SIGNATURE_ATTRIBUTE);
-					String attribute= mapping.getAttribute(MAPPING_ID_ATTRIBUTE);
-					String idsource= mapping.getAttribute(MAPPING_ID_SOURCE);
-					String bodyid= ""; //$NON-NLS-1$
-					if (signature != null && !signature.equals("") //$NON-NLS-1$
-						&& attribute != null && !attribute.equals("")) { //$NON-NLS-1$
-						if (idsource != null && idsource.equals(MAPPING_ID_SOURCE_BODY))
-							bodyid= (new Character(XMLStructureCreator.ID_TYPE_BODY)).toString();
-						idmapHM.put(XMLStructureCreator.ROOT_ID	+ XMLStructureCreator.SIGN_SEPARATOR
-								+ signature	+ XMLStructureCreator.SIGN_SEPARATOR, bodyid + attribute);
-					}
-				}
-				//handles ordered entries
-				IConfigurationElement[] orderedEntries= idmap.getChildren(ORDERED_ELEMENT_NAME);
-				if (orderedEntries.length > 0) {
-					ArrayList orderedAL= new ArrayList();
-					for (int i_ordered= 0; i_ordered < orderedEntries.length; i_ordered++) {
-						IConfigurationElement ordered= orderedEntries[i_ordered];
-						//add SIGN_SEPARATOR at the end because not contained in signatures of plugin.xml
-						//also add prefix at beginning
-						String signature= ordered.getAttribute(ORDERED_SIGNATURE_ATTRIBUTE);
-						if (signature != null && !signature.equals("")) //$NON-NLS-1$
-							orderedAL.add(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + signature + XMLStructureCreator.SIGN_SEPARATOR);
-					}
-					if (orderedAL.size() > 0)
-						fOrderedElementsInternal.put(idmap_name, orderedAL);
-				}
-				//handle EXTENSION_NAME_ATTRIBUTE
-				String ext_name= idmap.getAttribute(EXTENSION_NAME_ATTRIBUTE);
-				if (ext_name != null && !fIdExtensionToName.containsKey(ext_name)) {
-					ext_name= ext_name.toLowerCase();
-					fIdExtensionToName.put(ext_name,idmap_name);
-					CompareUI.addStructureViewerAlias(DEFAULT_PREFIX, ext_name);
-				}				
-			}
-		}
-	}
-
-	public ListenerList getViewers() {
-		return fViewers;
-	}
-
-	public static Shell getActiveWorkbenchShell() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window != null)
-			return window.getShell();
-		return null;
-	}
-	
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		IWorkbenchWindow window= fgXMLPlugin.getWorkbench().getActiveWorkbenchWindow();
-		if (window == null) {
-			final WindowRef windowRef= new WindowRef();
-			Display.getDefault().syncExec(new Runnable() {
-				public void run() {
-					setActiveWorkbenchWindow(windowRef);
-				}
-			});
-			return windowRef.window;
-		}
-		else
-			return window;
-	}
-
-	private static class WindowRef {
-		public IWorkbenchWindow window;
-	}
-
-	private static void setActiveWorkbenchWindow(WindowRef windowRef) {
-		windowRef.window= null;
-		Display display= Display.getCurrent();
-		if (display == null)
-			return;
-		Control shell= display.getActiveShell();
-		while (shell != null) {
-			Object data= shell.getData();
-			if (data instanceof IWorkbenchWindow) {
-				windowRef.window= (IWorkbenchWindow)data;
-				return;
-			}
-			shell= shell.getParent();
-		}
-		Shell shells[]= display.getShells();
-		for (int i= 0; i < shells.length; i++) {
-			Object data= shells[i].getData();
-			if (data instanceof IWorkbenchWindow) {
-				windowRef.window= (IWorkbenchWindow)data;
-				return;
-			}
-		}
-	}	
-	
-	public static void log(Throwable e) {
-		log(new Status(IStatus.ERROR, getPluginId(), IStatus.ERROR, "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/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureCreator.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureCreator.java
deleted file mode 100644
index 51aeda4..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureCreator.java
+++ /dev/null
@@ -1,740 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.compare.IEditableContent;
-import org.eclipse.compare.IStreamContentAccessor;
-import org.eclipse.compare.structuremergeviewer.Differencer;
-import org.eclipse.compare.structuremergeviewer.IDiffContainer;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-import org.eclipse.compare.structuremergeviewer.IStructureCreator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.LocatorImpl;
-
-/**
- * This structure analyzer builds a parse tree of an XML document found in
- * a <code>IByteContentAccessor</code> input by calling getStructure(Object)
- */
-public class XMLStructureCreator implements IStructureCreator {
-
-	protected static final boolean DEBUG_MODE = false;
-
-	private XMLNode fcurrentParent;
-	private String fsignature;
-	private Document fdoc;
-	private boolean ignoreBodies = false;
-	//private String fName;
-	
-	public  static final String DEFAULT_NAME = XMLCompareMessages.getString("XMLStructureCreator.pluginname"); //$NON-NLS-1$
-
-	private HashMap fIdMapsInternal;
-	private HashMap fIdMaps;
-	private HashMap fIdExtensionToName;
-	private HashMap fOrderedElementsInternal;
-	private HashMap fOrderedElements;
-	private HashMap idMap;
-	private ArrayList fOrdered;
-
-	public static final String USE_UNORDERED = XMLCompareMessages.getString("XMLStructureCreator.unordered"); //$NON-NLS-1$
-	public static final String USE_ORDERED = XMLCompareMessages.getString("XMLStructureCreator.ordered"); //$NON-NLS-1$
-	public static final String DEFAULT_IDMAP= USE_ORDERED;
-	private String fIdMapToUse;
-	private boolean fUseIdMap;
-
-	public static final String TYPE_ELEMENT = "element"; //$NON-NLS-1$
-	public static final String TYPE_TEXT = "text"; //$NON-NLS-1$
-	public static final String TYPE_ATTRIBUTE = "attribute"; //$NON-NLS-1$
-
-	//for signatures
-	public static final String ROOT_ID = "root"; //$NON-NLS-1$
-	public static final char SIGN_SEPARATOR = '>';//'.'
-	public static final char SIGN_ENCLOSING = '$';
-	public static final String SIGN_ELEMENT = SIGN_ENCLOSING + TYPE_ELEMENT + SIGN_ENCLOSING;
-	public static final String SIGN_TEXT = SIGN_ENCLOSING + TYPE_TEXT + SIGN_ENCLOSING;
-	public static final String SIGN_ATTRIBUTE = SIGN_ENCLOSING + TYPE_ATTRIBUTE + SIGN_ENCLOSING;
-
-	public static final String IDMAP_UNORDERED = XMLCompareMessages.getString("XMLStructureCreator.idmap_unordered"); //$NON-NLS-1$
-
-	public static final char ID_SEPARATOR = '<';
-	public static final char ID_TYPE_BODY = '<';
-
-	//private static final String parserName = "org.apache.xerces.parsers.SAXParser"; //$NON-NLS-1$
-
-	//private static boolean setValidation    = false; //defaults
-	//private static boolean setNameSpaces    = true;
-    //private static boolean setSchemaSupport = true;
-    //private static boolean setSchemaFullSupport = false;
-
-	private String fFileExt;
-	private boolean fFirstCall = true;
-
-	private boolean fRemoveWhiteSpace;
-
-    protected class XMLHandler extends DefaultHandler {
-
-	protected Locator prevlocator; //previous locator
-	protected Locator locator; //current locator
- 
-	public void setDocumentLocator (Locator locator0) {
-	    this.locator = locator0;
-	}
-
-   //
-    // DocumentHandler methods
-    //	
-    /** Processing instruction. */
-    public void processingInstruction(String target, String data) {
-
-//    	System.out.println("target: " + target);
-//    	System.out.println("data: " + data);
-//        System.out.print("<?");
-//        System.out.print(target);
-//        if (data != null && data.length() > 0) {
-//            System.out.print(' ');
-//            System.out.print(data);
-//        }
-//        System.out.print("?>");
-//        System.out.flush();
-		prevlocator = new LocatorImpl(locator);
-    } // processingInstruction(String,String)
-
-    /** Start document. */
-    public void startDocument() {
-
-		prevlocator = new LocatorImpl(locator);
-
-    } // startDocument()
-
-    /** Start element. */
-    public void startElement(String uri, String local, String raw,
-                             Attributes attrs) {
-		XMLNode currentElement;
-
-		/* add root node for this element */
-
-		if (XMLStructureCreator.DEBUG_MODE) {
-			if (locator != null && prevlocator != null) {
-				System.out.println("prevlocator: line " + prevlocator.getLineNumber() + "  column " + prevlocator.getColumnNumber() + "  id " + prevlocator.getPublicId()); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-				System.out.println("locator: line " + locator.getLineNumber() + "  column " + locator.getColumnNumber() + "  id " + locator.getPublicId()); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-			}
-		}                    
-		
-		try {
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("Node where children field accessed: " + fcurrentParent.getId()); //$NON-NLS-1$
-			XMLChildren currentParent = (XMLChildren) fcurrentParent;
-			currentParent.children++;
-   	    	String elementId;
-        	String elementName;
-			IRegion r= fdoc.getLineInformation(prevlocator.getLineNumber()-1);
-			
-			String parentSig= fsignature;
-			fsignature = fsignature + raw + SIGN_SEPARATOR;
-			
-			if ( isUseIdMap() && idMap.containsKey(fsignature) ) {
-	      		String attrName = (String)idMap.get(fsignature);
-	      		elementId = raw + new Character(ID_SEPARATOR) + attrs.getValue(attrName);
-	      		elementName = raw + " [" + attrName + "=" + attrs.getValue(attrName) + "]"; //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-	      	} else {
-				if ( !currentParent.childElements.containsKey(raw) ) {
-					currentParent.childElements.put(raw,new Integer(1));
-				} else {
-					currentParent.childElements.put(raw,new Integer(((Integer)currentParent.childElements.get(raw)).intValue()+1));
-				}
-				elementId = raw+new Character(ID_SEPARATOR)+"["+currentParent.childElements.get(raw)+"]"; //$NON-NLS-2$ //$NON-NLS-1$
-				elementName = MessageFormat.format("{0} [{1}]",new String[] {raw,currentParent.childElements.get(raw).toString()}); //$NON-NLS-2$ //$NON-NLS-1$
-    	  	}
-            currentElement = new XMLChildren(TYPE_ELEMENT,elementId,elementId,(fsignature+SIGN_ELEMENT),fdoc,r.getOffset()+prevlocator.getColumnNumber()-1,0);
-            currentElement.setName(elementName);
-      		if ( isUseIdMap() && idMap.containsKey(fsignature))
-      			currentElement.setUsesIDMAP(true);
-			if (fOrdered != null && fOrdered.contains(parentSig))
-				currentElement.setIsOrderedChild(true);
-			
-    	    fcurrentParent.addChild(currentElement);
-	        currentElement.setParent(fcurrentParent);
-    	    fcurrentParent = currentElement;
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("\nAdded Element " + raw + "  with offset " + r.getOffset()); //$NON-NLS-2$ //$NON-NLS-1$
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("fcurrentParent1: " + fcurrentParent.getId()); //$NON-NLS-1$
-
-			if (attrs != null) {
-				if (XMLStructureCreator.DEBUG_MODE) System.out.println("attrs != null, fcurrentParent is " + fcurrentParent.getId()); //$NON-NLS-1$
-	            //attrs = sortAttributes(attrs);
-				int len = attrs.getLength();
-				int element_lines_length_size;
-				int[] element_lines_length;
-				int column_offset;
-				String element_string;
-				if (fcurrentParent.getParent().getId().equals(ROOT_ID)) {
-					element_lines_length_size = locator.getLineNumber()-prevlocator.getLineNumber();
-					element_lines_length = new int[element_lines_length_size];
-					column_offset = 0;
-					element_string = ""; //$NON-NLS-1$
-					for (int i_ell=0; i_ell<element_lines_length.length; i_ell++) {
-						IRegion attr_r = fdoc.getLineInformation(i_ell+prevlocator.getLineNumber());
-						element_lines_length[i_ell] = fdoc.get(attr_r.getOffset(), attr_r.getLength()).length()+1;
-						element_string = element_string + fdoc.get(attr_r.getOffset(), attr_r.getLength()) + " "; //$NON-NLS-1$
-					}
-				} else {
-					element_lines_length_size = locator.getLineNumber()-prevlocator.getLineNumber()+1;
-					//if (element_lines_length_size < 1) element_lines_length_size = 1;
-					element_lines_length = new int[element_lines_length_size];
-					IRegion first_line = fdoc.getLineInformation(prevlocator.getLineNumber()-1);
-					column_offset = prevlocator.getColumnNumber()-1;
-					int first_line_relevant_offset = first_line.getOffset()+column_offset;
-					int first_line_relevant_length = first_line.getLength()-column_offset;
-					element_string = fdoc.get(first_line_relevant_offset, first_line_relevant_length) + " "; //$NON-NLS-1$
-					element_lines_length[0] = element_string.length();
-					for (int i_ell=1; i_ell<element_lines_length.length; i_ell++) {
-						IRegion attr_r = fdoc.getLineInformation(i_ell+prevlocator.getLineNumber()-1);
-						element_lines_length[i_ell] = fdoc.get(attr_r.getOffset(), attr_r.getLength()).length()+1;
-						element_string = element_string + fdoc.get(attr_r.getOffset(), attr_r.getLength()) + " "; //$NON-NLS-1$
-					}
-				}
-
-				for (int i_attr = 0; i_attr < len; i_attr++) {
-	            	String attr_name = attrs.getQName(i_attr);
-	            	String attr_value = attrs.getValue(i_attr);
-					
-					/* find range of attribute in doc; manually parses the line */
-					boolean found = false;
-					int first_quotes = -1;
-					int second_quotes = -1;
-					int id_index = -1;
-					while (!found) {
-						first_quotes = element_string.indexOf("\"",second_quotes+1); //$NON-NLS-1$
-						second_quotes = element_string.indexOf("\"",first_quotes+1); //$NON-NLS-1$
-						String value;
-						try {
-						value = element_string.substring(first_quotes+1,second_quotes);
-						} catch (Exception e) {
-							value = ""; //$NON-NLS-1$
-						}
-						if (value.equals("")) //$NON-NLS-1$
-							found = true;
-						else if (value.equals(attr_value)) {
-							id_index = element_string.lastIndexOf(attr_name,first_quotes-1);
-							boolean wrong = false;
-							boolean found_equal = false;
-							for (int i_char=id_index+attr_name.length(); i_char<first_quotes && !wrong; i_char++) {
-								if (element_string.charAt(i_char) == '=')
-									if (!found_equal)
-										found_equal = true;
-									else
-										wrong = true;
-								else if (!Character.isWhitespace(element_string.charAt(i_char)))
-									wrong = true;
-							}
-							if (!wrong) found = true;
-						}
-					}
-					//id_index has one char missing for every line (the final cr)
-					int line_of_index = 0;
-					for (line_of_index = 0; id_index > element_lines_length[line_of_index]-1; line_of_index++)
-						id_index -= (element_lines_length[line_of_index]);
-					if (line_of_index == 0) id_index += column_offset;
-					if (fcurrentParent.getParent().getId().equals(ROOT_ID))
-						line_of_index += prevlocator.getLineNumber();
-					else
-						line_of_index += prevlocator.getLineNumber()-1;
-					//index at line line_of_index, line offset id_index
-					int line_of_end_of_value = 0;
-					int end_of_value_index = second_quotes;
-					for (line_of_end_of_value = 0; end_of_value_index > element_lines_length[line_of_end_of_value]-1; line_of_end_of_value++)
-						end_of_value_index -= (element_lines_length[line_of_end_of_value]);
-					if (line_of_end_of_value == 0) end_of_value_index += column_offset;
-					if (fcurrentParent.getParent().getId().equals(ROOT_ID))
-						line_of_end_of_value += prevlocator.getLineNumber();
-					else
-						line_of_end_of_value += prevlocator.getLineNumber()-1;
-					//end of value at line line_of_end_of_value, line offset end_of_value_index
-				
-					int attr_start_doc_offset = fdoc.getLineInformation(line_of_index).getOffset()+id_index;
-					//int attr_length_doc_offset = fdoc.getLineInformation(line_of_value).getOffset()+value_index+attr_value.length()+1+(line_of_end_of_value-line_of_index) - attr_start_doc_offset;
-					int attr_length_doc_offset = fdoc.getLineInformation(line_of_end_of_value).getOffset()+end_of_value_index +1 - attr_start_doc_offset;
-					currentElement = new XMLNode(TYPE_ATTRIBUTE,attr_name,attr_value,(fsignature+attr_name+SIGN_SEPARATOR+SIGN_ATTRIBUTE),fdoc,attr_start_doc_offset,attr_length_doc_offset);
-					currentElement.setName(attr_name);
-					fcurrentParent.addChild(currentElement);		
-			        currentElement.setParent(fcurrentParent);
-			        if (XMLStructureCreator.DEBUG_MODE) System.out.println("added attribute " + currentElement.getId() + " with value >" + currentElement.getValue() + "<" + " to element " + fcurrentParent.getId() + " which has parent " + fcurrentParent.getParent().getId()); //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-	            }
-    	    }
-		} catch (BadLocationException ex) {
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("BadLocationException in startElement(...) " + ex); //$NON-NLS-1$
-			currentElement = new XMLChildren(TYPE_ELEMENT,raw+"_("+((XMLChildren)fcurrentParent).children+")",raw+"_("+((XMLChildren)fcurrentParent).children+")",(fsignature+SIGN_ELEMENT),fdoc,0,0); //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-	    }
-	    if (XMLStructureCreator.DEBUG_MODE) System.out.println("At the end of startElement(...), fcurrentParent is " + fcurrentParent.getId()); //$NON-NLS-1$
-        prevlocator = new LocatorImpl(locator);
-    } // startElement(String,String,String,Attributes)
-
-    /** Characters. */
-    public void characters(char ch[], int start, int length) {
-		if (!ignoreBodies) {
-//			String chars = (new String(ch, start, length)).trim();
-			String chars= new String(ch, start, length);
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("characters: >" + chars + "<"); //$NON-NLS-2$ //$NON-NLS-1$
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("Body Location: line " + locator.getLineNumber() + "  column " + locator.getColumnNumber()); //$NON-NLS-2$ //$NON-NLS-1$
-
-			//if text contains only white space, it will be ignored.	
-			if (!trimWhiteSpace(chars).equals("")) { //$NON-NLS-1$
-				if (XMLStructureCreator.DEBUG_MODE) System.out.println("Adding body"); //$NON-NLS-1$
-				try {
-				    IRegion r= fdoc.getLineInformation(locator.getLineNumber()-1);
-				    //location returns the END of the characters
-	    			//offset of BEGINNING of characters:
-				    int offset = r.getOffset()+locator.getColumnNumber()-1-length;
-				    fcurrentParent.bodies++;
-				    String body_value = new String(ch, start, length);
-				    if (fRemoveWhiteSpace) {
-					    body_value= removeWhiteSpace(body_value);
-				    }
-				    XMLNode bodynode = new XMLNode(TYPE_TEXT,"body_("+fcurrentParent.bodies+")",body_value,(fsignature+SIGN_TEXT),fdoc,offset,length); //$NON-NLS-2$ //$NON-NLS-1$
-				    bodynode.setName(MessageFormat.format("{0} ({1})",new String[] {XMLCompareMessages.getString("XMLStructureCreator.body"),Integer.toString(fcurrentParent.bodies)})); //$NON-NLS-2$ //$NON-NLS-1$
-					fcurrentParent.addChild(bodynode);
-					bodynode.setParent(fcurrentParent);
-					if (XMLStructureCreator.DEBUG_MODE) System.out.println("Created body " + fcurrentParent.bodies //$NON-NLS-1$
-					  + " with offset " + offset + " and length " + length //$NON-NLS-2$ //$NON-NLS-1$
-					  + " with parent " + bodynode.getParent().getId()); //$NON-NLS-1$
-					//bodies as id attributes	
-					String popsig = fcurrentParent.getParent().getSignature(); //signature of parent of parent
-					popsig = popsig.substring(0,popsig.lastIndexOf(SIGN_ELEMENT));
-					if (isUseIdMap() && fcurrentParent.bodies == 1 && idMap.containsKey(popsig)) {
-						String pid= fcurrentParent.getId();//id of parent
-						String pelementname= pid.substring(0,pid.indexOf("<"));//name of parent element //$NON-NLS-1$
-						if ( ((String)idMap.get(popsig)).equals(ID_TYPE_BODY+pelementname) )  {
-							XMLNode pop= fcurrentParent.getParent();
-							String popid= pop.getId();
-							String popelementname= popid.substring(0,popid.indexOf("<")); //$NON-NLS-1$
-							pop.setId(popelementname + "<" + body_value); //$NON-NLS-1$
-							pop.setOrigId(popelementname + "<" + body_value); //$NON-NLS-1$
-							pop.setName(MessageFormat.format("{0} [{1}={2}]",new String[] {popelementname, pelementname, body_value})); //$NON-NLS-1$
-							pop.setUsesIDMAP(true);
-						}
-					}
-				} catch (BadLocationException ex) {
-					if (XMLStructureCreator.DEBUG_MODE) System.out.println("BadLocationException in characters(...) " + ex); //$NON-NLS-1$
-					fcurrentParent.addChild(new XMLNode(TYPE_TEXT,"body_("+fcurrentParent.bodies+")",new String(ch, start, length),(fsignature+SIGN_TEXT),fdoc,0,0)); //$NON-NLS-2$ //$NON-NLS-1$
-				}
-			}
-		}
-  		prevlocator = new LocatorImpl(locator);
-    } // characters(char[],int,int);
-
-    /** Ignorable whitespace. */
-    public void ignorableWhitespace(char ch[], int start, int length) {
-//
-////        characters(ch, start, length);
-////        System.out.flush();
-//
-	    prevlocator = new LocatorImpl(locator);
-    } // ignorableWhitespace(char[],int,int);
-
-    /** End element. */
-    public void endElement(String uri, String local, String raw) {
-    	if (XMLStructureCreator.DEBUG_MODE) System.out.println("\nExiting element " + fcurrentParent.getId()); //$NON-NLS-1$
-
-   		if (XMLStructureCreator.DEBUG_MODE) System.out.println("prevlocator: line " + prevlocator.getLineNumber() + "  column " + prevlocator.getColumnNumber() + "  id " + prevlocator.getPublicId()); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-		if (XMLStructureCreator.DEBUG_MODE) System.out.println("locator: line " + locator.getLineNumber() + "  column " + locator.getColumnNumber() + "  id " + locator.getPublicId()); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-
-	   
-		if (fcurrentParent.getParent() != null) {
-		try {
-			IRegion r2= fdoc.getLineInformation(locator.getLineNumber()-1);
-		   	Position pos = fcurrentParent.getRange();
-
-	   	int elem_length = r2.getOffset()+locator.getColumnNumber()-1 - pos.getOffset();//length of element from start tag to end tag
-		   	fcurrentParent.setLength(elem_length);
-		   	if (XMLStructureCreator.DEBUG_MODE) System.out.println("pos.getOffset: " + pos.getOffset() + "  elem_length: " + elem_length); //$NON-NLS-2$ //$NON-NLS-1$
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("fdoc.get(pos.getOffset()+elem_length-5,4): >" + fdoc.get(pos.getOffset()+elem_length-5,4) + "<"); //$NON-NLS-2$ //$NON-NLS-1$
-			//if (fdoc.get(pos.getOffset()+elem_length-2,1) != ">") elem_length-=1;
-			try {
-		   		fcurrentParent.setValue(fdoc.get(pos.getOffset(),elem_length));
-			} catch (BadLocationException ex) {
-				try {
-					fcurrentParent.setValue(fdoc.get(pos.getOffset(),elem_length-1));
-				} catch (BadLocationException ex2) {
-					if (XMLStructureCreator.DEBUG_MODE) {
-						System.out.println("BadLocationException in endElement(...) while attempting fcurrentParent.setValue(...): " + ex); //$NON-NLS-1$
-						System.out.println("Attempt to correct BadLocationException failed: " + ex2); //$NON-NLS-1$
-					}
-				}
-			}
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("Value of " + fcurrentParent.getId() + "  is >" + fcurrentParent.getValue() + "<"); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-
-			//going from ending element to parent element
-			fcurrentParent = fcurrentParent.getParent();
-			if (XMLStructureCreator.DEBUG_MODE) System.out.println("fcurrentParent = fcurrentParent.getParent();"); //$NON-NLS-1$
-			} catch (BadLocationException ex) {
-				if (XMLStructureCreator.DEBUG_MODE) {
-					System.out.println("BadLocationException in endElement(...): " + ex); //$NON-NLS-1$
-					System.out.println("fcurrentParent.getId(): " + fcurrentParent.getId()); //$NON-NLS-1$
-				}
-			}
-		} else {
-	   		if (XMLStructureCreator.DEBUG_MODE) System.out.println("Error: Cannot reach Parent of Parent"); //$NON-NLS-1$
-		}
-		if (XMLStructureCreator.DEBUG_MODE) System.out.println("fcurrentParent is now " + fcurrentParent.getId()); //$NON-NLS-1$
-		
-		prevlocator = new LocatorImpl(locator);
-		if (XMLStructureCreator.DEBUG_MODE) System.out.println("Signature before cutting: " + fsignature); //$NON-NLS-1$
-		int ssi = fsignature.lastIndexOf(SIGN_SEPARATOR);//fsignature separator index
-		ssi = fsignature.lastIndexOf(SIGN_SEPARATOR,ssi-1);//second-last ".", e.g. in root.a.b. to obtain root.a.
-		fsignature = fsignature.substring(0,ssi+1);
-		if (XMLStructureCreator.DEBUG_MODE) System.out.println("Signature after cutting: " + fsignature); //$NON-NLS-1$
-    } // endElement(String)
-
-    //
-    // ErrorHandler methods
-    //
-
-    /** Warning. */
-    public void warning(SAXParseException ex) {
-		System.err.println("[Warning] "+ //$NON-NLS-1$
-                           getLocationString(ex)+": "+ //$NON-NLS-1$
-                           ex.getMessage());
-    }
-
-    /** Error. */
-    public void error(SAXParseException ex) {
-        System.err.println("[Error] "+ //$NON-NLS-1$
-                           getLocationString(ex)+": "+ //$NON-NLS-1$
-                           ex.getMessage());                           
-    }
-
-    /** Fatal error. */
-    public void fatalError(SAXParseException ex) throws SAXException {
-        System.err.println("[Fatal Error] "+ //$NON-NLS-1$
-                           getLocationString(ex)+": "+ //$NON-NLS-1$
-                           ex.getMessage());
-        //System.out.println(ex);
-       //throw ex;
-    }
-
-    /** Returns a string of the location. */
-    private String getLocationString(SAXParseException ex) {
-        StringBuffer str = new StringBuffer();
-
-        String systemId = ex.getSystemId();
-        if (systemId != null) {
-            int index = systemId.lastIndexOf('/');
-            if (index != -1)
-                systemId = systemId.substring(index + 1);
-            str.append(systemId);
-        }
-        str.append(':');
-        str.append(ex.getLineNumber());
-        str.append(':');
-        str.append(ex.getColumnNumber());
-
-        return str.toString();
-
-    } // getLocationString(SAXParseException):String
-
-    }
-		
-	public XMLStructureCreator() {
-		//set default idmap
-		fIdMapToUse= DEFAULT_IDMAP;
-		fUseIdMap= false;
-		XMLPlugin plugin= XMLPlugin.getDefault();
-		//if statement required for tests
-		if (plugin != null) {
-			fIdMaps = plugin.getIdMaps();
-			fIdMapsInternal = plugin.getIdMapsInternal();
-			fIdExtensionToName = plugin.getIdExtensionToName();
-			fOrderedElements= plugin.getOrderedElements();
-			fOrderedElementsInternal= plugin.getOrderedElementsInternal();
-		}
-		fRemoveWhiteSpace= false;
-	}
-	
-//	public void setNameScheme(String idmap_name) {
-//		fName = MessageFormat.format("{0}     ({1})", new String[] {DEFAULT_NAME,idmap_name}); //$NON-NLS-1$
-//	}
-//	
-	/**
-	 * This title will be shown in the title bar of the structure compare pane.
-	 */
-	public String getName() {
-		return DEFAULT_NAME;
-	}
-
-	/**
-	 * Set File extension of the parsed file. This extension will be used to choose an Id Map scheme.
-	 */
-	public void setFileExtension(String ext) {
-		fFileExt= ext;	
-	}
-
-	/**
-	 * Initialize the Id Mappings for the Id Mapping Scheme and the Ordered Elements
-	 * This method must be called before getStructure(Object) is called on the two/three inputs of the compare
-	 */
-	public void initIdMaps() {
-		if (fFirstCall && fFileExt != null) {
-			fFirstCall = false;
-			String fileExtLower= fFileExt.toLowerCase();
-			if (fIdExtensionToName.containsKey(fileExtLower))
-				setIdMap((String)fIdExtensionToName.get(fileExtLower));
-		}
-
-		setUseIdMap();
-		fOrdered= null;
-		if (!isUseIdMap())
-			idMap = null;
-		else if (fIdMaps.containsKey(fIdMapToUse)) {
-			idMap = (HashMap) fIdMaps.get(fIdMapToUse);
-		} else if (fIdMapsInternal.containsKey(fIdMapToUse)) {
-			idMap = (HashMap) fIdMapsInternal.get(fIdMapToUse);
-		}
-		
-		if (fOrderedElements != null)
-			fOrdered= (ArrayList) fOrderedElements.get(fIdMapToUse);
-		if (fOrdered == null && fOrderedElementsInternal != null)
-			fOrdered= (ArrayList) fOrderedElementsInternal.get(fIdMapToUse);
-	}
-
-	/**
-	 * Returns the XML parse tree of the input.
-	 */
-	public IStructureComparator getStructure(Object input) {
-		if (XMLStructureCreator.DEBUG_MODE) System.out.println("Starting parse"); //$NON-NLS-1$
-		
-		if (!(input instanceof IStreamContentAccessor))
-			return null;
-
-		IStreamContentAccessor sca= (IStreamContentAccessor) input;
-		
-		try {
-
-			//Input parsed with parser.parse(new InputSource(sca.getContents));			
-			String contents= readString(sca.getContents());
-			if (contents == null)
-				contents= ""; //$NON-NLS-1$
-	
-			fdoc= new Document(contents);
-			fsignature = ROOT_ID + SIGN_SEPARATOR;							
-			XMLChildren root= new XMLChildren(TYPE_ELEMENT,ROOT_ID, "",(fsignature+SIGN_ELEMENT), fdoc, 0, fdoc.getLength()); //$NON-NLS-1$
-			fcurrentParent = root;
-
-            XMLHandler handler = new XMLHandler();
-
-			try {
-//            	/* original xerces code
-//            	SAXParser parser = (SAXParser)Class.forName(parserName).newInstance();
-//            	*/
-//				XMLReader parser = XMLReaderFactory.createXMLReader(parserName);
-//				
-//	            parser.setFeature( "http://xml.org/sax/features/validation", setValidation); //$NON-NLS-1$
-//    	        parser.setFeature( "http://xml.org/sax/features/namespaces", setNameSpaces ); //$NON-NLS-1$
-//    	        /*
-//    	        parser.setFeature( "http://apache.org/xml/features/nonvalidating/load-external-dtd", false); //$NON-NLS-1$
-//        	    parser.setFeature( "http://apache.org/xml/features/validation/schema", setSchemaSupport ); //$NON-NLS-1$
-//	            parser.setFeature( "http://apache.org/xml/features/validation/schema-full-checking", setSchemaFullSupport); //$NON-NLS-1$
-//	           	*/
-//	            parser.setContentHandler(handler);
-//	            parser.setErrorHandler(handler);
-//	            
-//	            parser.parse(new InputSource(sca.getContents()));
-				
-				SAXParserFactory factory = SAXParserFactory.newInstance();
-				factory.setNamespaceAware(true);
-				SAXParser parser = factory.newSAXParser();
-				parser.parse(new InputSource(sca.getContents()), handler);
-				
-				if (XMLStructureCreator.DEBUG_MODE) System.out.println("End of parse"); //$NON-NLS-1$
-			} catch (SAXParseException e) {
-        		XMLPlugin.log(e);
-        		return null;
-			} catch (Exception e) {
-//				MessageDialog.openError(XMLPlugin.getActiveWorkbenchShell(),"Error in XML parser","An error occured in the XML parser.\nNo structured compare can be shown");
-    	        XMLPlugin.log(e);
-    	        return null;
-    	    } 
-		
-			return root;
-		} catch (CoreException ex) {
-			XMLPlugin.log(ex);
-		}
-		return null;
-	}
-	
-	public boolean canSave() {
-		return true;
-	}
-
-	public boolean canRewriteTree() {
-		return false;
-	}
-	
-	public void rewriteTree(Differencer differencer, IDiffContainer root) {
-	}
-	
-	public void save(IStructureComparator structure, Object input) {
-		if (input instanceof IEditableContent && structure instanceof XMLNode) {
-			IDocument doc= ((XMLNode)structure).getDocument();
-			IEditableContent bca= (IEditableContent) input;
-			String c= doc.get();
-			bca.setContent(c.getBytes());
-		}
-	}
-	
-	public String getContents(Object node, boolean ignoreWhitespace) {
-		if (node instanceof XMLNode) {
-			String s= ((XMLNode)node).getValue();
-			if (ignoreWhitespace)
-				s= s.trim();
-			return s;
-		}
-		return null;
-	}
-	
-	public IStructureComparator locate(Object path, Object source) {
-		return null;
-	}
-	
-	/**
-	 * 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));
-
-			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;
-	}
-
-    /** Returns a sorted list of attributes. */
-    /* Taken from SAX2Writer sample of xerces */
-    protected Attributes sortAttributes(Attributes attrs) {
-
-        AttributesImpl attributes = new AttributesImpl();
-        int len = (attrs != null) ? attrs.getLength() : 0;
-        for (int i = 0; i < len; i++) {
-            String name = attrs.getQName(i);
-            int count = attributes.getLength();
-            int j = 0;
-            while (j < count) {
-                if (name.compareTo(attributes.getQName(j)) < 0) {
-                    break;
-                }
-                j++;
-            }
-            attributes.insertAttributeAt(j, name, attrs.getType(i),
-                                         attrs.getValue(i));
-        }
-
-        return attributes;
-
-    } // sortAttributes(AttributeList):AttributeList
-    
-    public void setIdMap(String idmap_name) {
-    	fIdMapToUse= idmap_name;
-    }
-    
-    /** Returns the name of the IdMap Scheme that will be used to set ids.
-     */
-    public String getIdMap() {
-    	return fIdMapToUse;
-    }
-    
-    public void setUseIdMap() {
-    	if (fIdMaps != null && fIdMapsInternal != null)
-	    	fUseIdMap= fIdMaps.containsKey(fIdMapToUse) || fIdMapsInternal.containsKey(fIdMapToUse);
-    }
-    
-    public boolean isUseIdMap() {
-		return fUseIdMap;
-    }
-    
-    public void updateIdMaps() {
-		fIdMaps = XMLPlugin.getDefault().getIdMaps();
-		fOrderedElements= XMLPlugin.getDefault().getOrderedElements();
-    }
-    
-    protected boolean isWhiteSpace(char c) {
-    	return c == '\t' || c == '\n' || c == '\r' || c == ' ';
-    }
-    
-    protected String removeWhiteSpace(String str) {
-		str= trimWhiteSpace(str);
-    	StringBuffer retStr= new StringBuffer();
-    	int start= 0, end= 0;
-		outer_while:
-		while (true) {
-			while ( end < str.length() && !isWhiteSpace(str.charAt(end)) ) { end++; }
-			if (end > str.length()) break outer_while;
-			if ( start != 0) retStr.append(' ');
-			retStr.append(str.substring(start, end));
-			end++;
-			while ( end < str.length() && isWhiteSpace(str.charAt(end)) ) { end++; }
-			start= end;
-		}
-    	return retStr.toString();
-    }
-    
-    protected String trimWhiteSpace(String str) {
-    	int start=0, end= str.length()-1;
-    	while (start < str.length() && isWhiteSpace(str.charAt(start))) { start++; }
-    	if ( start == str.length() )
-    		return ""; //$NON-NLS-1$
-    	while (end >= 0 && isWhiteSpace(str.charAt(end))) { end--; }
-    	return str.substring(start, end+1);
-    }
-
-    public void setRemoveWhiteSpace(boolean removeWhiteSpace) {
-    	fRemoveWhiteSpace= removeWhiteSpace;
-    }
-    
-    public boolean getRemoveWhiteSpace() {
-    	return fRemoveWhiteSpace;
-    }
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureViewer.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureViewer.java
deleted file mode 100644
index 6372ddb..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureViewer.java
+++ /dev/null
@@ -1,606 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareViewerSwitchingPane;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.internal.TimeoutContext;
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-import org.eclipse.compare.structuremergeviewer.StructureDiffViewer;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * An XML 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 XMLStructureViewer extends StructureDiffViewer {
-
-	private CompareViewerSwitchingPane fParent;
-
-	private HashMap fIdMapsInternal;
-	private HashMap fIdMaps;
-	private HashMap fOrderedElementsInternal;
-	private HashMap fOrderedElements;
-
-	protected static final char SIGN_SEPARATOR=
-		XMLStructureCreator.SIGN_SEPARATOR;
-
-	/**
-	 * 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
-	 */
-	class XMLSorter extends ViewerSorter {
-
-		ArrayList fOrdered;
-		boolean fAlwaysOrderSort;
-
-		public XMLSorter() {
-			super();
-			fAlwaysOrderSort= false;
-		}
-
-		public void setOrdered(ArrayList ordered) {
-			fOrdered= ordered;
-		}
-
-		public void setAlwaysOrderSort(boolean alwaysOrderSort) {
-			fAlwaysOrderSort= alwaysOrderSort;
-		}
-
-		public int category(Object node) {
-			if (node instanceof DiffNode) {
-				Object o= ((DiffNode) node).getId();
-				if (o instanceof XMLNode) {
-					String xmlType= ((XMLNode) o).getXMLType();
-					if (xmlType.equals(XMLStructureCreator.TYPE_ATTRIBUTE))
-						return 1;
-					if (xmlType.equals(XMLStructureCreator.TYPE_ELEMENT))
-						return 2;
-					if (xmlType.equals(XMLStructureCreator.TYPE_TEXT))
-						return 2;
-				}
-			}
-			return 0;
-		}
-
-		public void sort(final Viewer viewer, Object[] elements) {
-			if ((fOrdered != null || fAlwaysOrderSort)
-				&& elements != null
-				&& elements.length > 0
-				&& elements[0] instanceof DiffNode) {
-				Object o= ((DiffNode) elements[0]).getId();
-				if (o instanceof XMLNode) {
-					XMLNode parent= ((XMLNode) o).getParent();
-					String sig= parent.getSignature();
-					if (sig.endsWith(XMLStructureCreator.SIGN_ELEMENT)) {
-						String newSig=
-							sig.substring(
-								0,
-								sig.length()
-									- XMLStructureCreator.SIGN_ELEMENT.length());
-						if (fAlwaysOrderSort || fOrdered.contains(newSig)) {
-							final ArrayList originalTree=
-								new ArrayList(
-									Arrays.asList(parent.getChildren()));
-							Arrays.sort(elements, new Comparator() {
-								public int compare(Object a, Object b) {
-									return XMLSorter.this.compare(
-										(DiffNode) a,
-										(DiffNode) b,
-										originalTree);
-								}
-							});
-							return;
-						}
-					}
-				}
-			}
-			super.sort(viewer, elements);
-		}
-
-		private int compare(DiffNode a, DiffNode b, ArrayList originalTree) {
-
-			int index_a= originalTree.indexOf(a.getId());
-			int index_b= originalTree.indexOf(b.getId());
-			if (index_a < index_b)
-				return -1;
-			else
-				return 1;
-		}
-	}
-
-	public XMLStructureViewer(Tree tree, CompareConfiguration configuration) {
-		super(tree, configuration);
-		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 XMLStructureViewer(
-		Composite parent,
-		CompareConfiguration configuration) {
-		super(parent, configuration);
-		if (parent instanceof CompareViewerSwitchingPane) {
-			fParent= (CompareViewerSwitchingPane) parent;
-		}
-		initialize();
-	}
-
-	private void initialize() {
-		setStructureCreator(new XMLStructureCreator());
-		XMLPlugin plugin= XMLPlugin.getDefault();
-
-		plugin.getViewers().add(this);
-
-		fIdMaps= plugin.getIdMaps();
-		fIdMapsInternal= plugin.getIdMapsInternal();
-		fOrderedElements= plugin.getOrderedElements();
-		fOrderedElementsInternal= plugin.getOrderedElementsInternal();
-
-		XMLSorter sorter= new XMLSorter();
-		setSorter(sorter);
-
-	}
-
-	protected XMLStructureCreator getXMLStructureCreator() {
-		return (XMLStructureCreator) getStructureCreator();
-	}
-
-	/* (non Javadoc)
-	 * Overridden to unregister all listeners.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-
-		XMLPlugin.getDefault().getViewers().remove(this);
-
-		super.handleDispose(event);
-	}
-
-	/**
-	 * Recreates the comparable structures for the input sides.
-	 */
-	protected void compareInputChanged(ICompareInput input) {
-		if (input != null) {
-			ITypedElement t= input.getLeft();
-			if (t != null) {
-				String fileExtension= t.getType();
-				getXMLStructureCreator().setFileExtension(fileExtension);
-			}
-		}
-
-		getXMLStructureCreator().initIdMaps();
-		super.compareInputChanged(input);
-
-		if (input != null && fParent.getTitleArgument() == null)
-			appendToTitle(getXMLStructureCreator().getIdMap());
-	}
-
-	/**
-	 * Calls <code>diff</code> whenever the byte contents changes.
-	 */
-	protected void contentChanged() {
-		fIdMaps= XMLPlugin.getDefault().getIdMaps();
-		fOrderedElements= XMLPlugin.getDefault().getOrderedElements();
-		getXMLStructureCreator().updateIdMaps();
-		if (isIdMapRemoved()) {
-			getXMLStructureCreator().setIdMap(
-				XMLStructureCreator.DEFAULT_IDMAP);
-		}
-
-		getXMLStructureCreator().initIdMaps();
-
-		contentChanged(null);
-
-		if (fParent.getTitleArgument() == null)
-			appendToTitle(getXMLStructureCreator().getIdMap());
-
-	}
-
-	public IRunnableWithProgress getMatchingRunnable(
-		final XMLNode left,
-		final XMLNode right,
-		final XMLNode ancestor) {
-		return new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor)
-				throws
-					InvocationTargetException,
-					InterruptedException,
-					OperationCanceledException {
-				if (monitor == null) {
-					monitor= new NullProgressMonitor();
-				}
-				int totalWork;
-				if (ancestor != null)
-					totalWork= 1;
-				else
-					totalWork= 3;
-				monitor.beginTask(XMLCompareMessages.getString("XMLStructureViewer.matching.beginTask"), totalWork); //$NON-NLS-1$
-				ArrayList ordered= null;
-				if (!getXMLStructureCreator()
-					.getIdMap()
-					.equals(XMLStructureCreator.USE_UNORDERED)
-					&& !getXMLStructureCreator().getIdMap().equals(
-						XMLStructureCreator.USE_ORDERED)) {
-					ordered=
-						(ArrayList) fOrderedElements.get(
-							getXMLStructureCreator().getIdMap());
-					if (ordered == null)
-						ordered=
-							(ArrayList) fOrderedElementsInternal.get(
-								getXMLStructureCreator().getIdMap());
-				}
-				if (getSorter() instanceof XMLSorter)
-					 ((XMLSorter) getSorter()).setOrdered(ordered);
-				AbstractMatching m= null;
-				if (getXMLStructureCreator()
-					.getIdMap()
-					.equals(XMLStructureCreator.USE_ORDERED)) {
-					m= new OrderedMatching();
-					if (getSorter() instanceof XMLSorter)
-						 ((XMLSorter) getSorter()).setAlwaysOrderSort(true);
-				}
-				try {
-					if (m != null) {
-						m.match(left, right, false, monitor);
-						if (ancestor != null) {
-							m.match(
-								left,
-								ancestor,
-								true,
-								new SubProgressMonitor(monitor, 1));
-							m.match(
-								right,
-								ancestor,
-								true,
-								new SubProgressMonitor(monitor, 1));
-						}
-						//				} catch (InterruptedException e) {
-						//					System.out.println("in run");
-						//					e.printStackTrace();
-					}
-				} finally {
-					monitor.done();
-				}
-			}
-		};
-	}
-
-	protected void preDiffHook(
-		IStructureComparator ancestor,
-		IStructureComparator left,
-		IStructureComparator right) {
-		//		if (!xsc.getIdMap().equals(XMLStructureCreator.USE_ORDERED)) {
-		//TimeoutContext.run(true, TIMEOUT, getControl().getShell(), runnable);
-		if (left != null && right != null) {
-			try {
-				TimeoutContext.run(
-					true,
-					500,
-					XMLPlugin.getActiveWorkbenchShell(),
-					getMatchingRunnable(
-						(XMLNode) left,
-						(XMLNode) right,
-						(XMLNode) ancestor));
-			} catch (Exception e) {
-				XMLPlugin.log(e);
-			}
-		}
-	}
-
-	/**
-	 * Overriden to create buttons in the viewer's pane control bar.
-	 * <p>
-	 *
-	 * @param toolbarManager the toolbar manager for which to add the buttons
-	 */
-	protected void createToolItems(ToolBarManager toolBarManager) {
-		super.createToolItems(toolBarManager);
-		toolBarManager.appendToGroup("modes", new ChooseMatcherDropDownAction(this)); //$NON-NLS-1$
-		toolBarManager.appendToGroup("modes", new CreateNewIdMapAction(this)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Overriden to create a context menu.
-	 * <p>
-	 *
-	 * @param manager the menu manager for which to add menu items
-	 */
-	protected void fillContextMenu(IMenuManager manager) {
-		super.fillContextMenu(manager);
-		ISelection s= getSelection();
-		if (s instanceof StructuredSelection
-			&& ((StructuredSelection) s).getFirstElement() instanceof DiffNode
-			&& ((DiffNode) ((StructuredSelection) s).getFirstElement()).getId()
-				instanceof XMLNode) {
-			DiffNode diffnode=
-				(DiffNode) ((StructuredSelection) s).getFirstElement();
-			String diffnodeIdSig= ((XMLNode) diffnode.getId()).getSignature();
-			fIdMaps= XMLPlugin.getDefault().getIdMaps();
-			String idmap_name= getXMLStructureCreator().getIdMap();
-			if (diffnodeIdSig.endsWith(XMLStructureCreator.SIGN_ATTRIBUTE) || (diffnodeIdSig.endsWith(XMLStructureCreator.SIGN_TEXT) && ((XMLNode) diffnode.getId()).getOrigId().endsWith("(1)"))) { //$NON-NLS-1$
-				Action action= new SetAsIdAction(diffnode);
-				if (!fIdMaps.containsKey(idmap_name)) {
-					action.setText(XMLCompareMessages.getString("XMLStructureViewer.action.notUserIdMap")); //$NON-NLS-1$
-					action.setEnabled(false);
-				} else {
-					HashMap idmapHM= (HashMap) fIdMaps.get(idmap_name);
-					XMLNode idNode= (XMLNode) diffnode.getId();
-					String signature= idNode.getSignature();
-					String idname= ""; //$NON-NLS-1$
-					if (idNode
-						.getSignature()
-						.endsWith(XMLStructureCreator.SIGN_ATTRIBUTE)) {
-						signature=
-							signature.substring(
-								0,
-								signature.indexOf(
-									XMLStructureCreator.SIGN_ATTRIBUTE));
-						int end_of_signature=
-							signature.lastIndexOf(
-								SIGN_SEPARATOR,
-								signature.length() - 2);
-						idname=
-							signature.substring(
-								end_of_signature + 1,
-								signature.length() - 1);
-						signature= signature.substring(0, end_of_signature + 1);
-					} else if (
-						idNode.getSignature().endsWith(
-							XMLStructureCreator.SIGN_TEXT)) {
-						XMLNode textNode= (XMLNode) diffnode.getId();
-						XMLNode idelem= textNode.getParent();
-						XMLNode elem= idelem.getParent();
-						signature=
-							elem.getSignature().substring(
-								0,
-								elem.getSignature().indexOf(
-									XMLStructureCreator.SIGN_ELEMENT));
-						idname= idelem.getOrigId();
-						idname=
-							idname.substring(
-								0,
-								idname.indexOf(
-									XMLStructureCreator.ID_SEPARATOR));
-						idname=
-							new Character(XMLStructureCreator.ID_TYPE_BODY)
-								+ idname;
-					}
-					if (idmapHM.containsKey(signature)) {
-						if (idmapHM.get(signature).equals(idname)) {
-							action.setText(XMLCompareMessages.getString("XMLStructureViewer.action.setId.text1")); //$NON-NLS-1$
-							action.setEnabled(false);
-						} else {
-							String oldId= (String) idmapHM.get(signature);
-							if (oldId
-								.startsWith(
-									(new Character(XMLStructureCreator
-										.ID_TYPE_BODY))
-										.toString()))
-								oldId= oldId.substring(1);
-							action.setText(MessageFormat.format("{0} {1}", new String[] { XMLCompareMessages.getString("XMLStructureViewer.action.setId.text2"), oldId })); //$NON-NLS-2$ //$NON-NLS-1$
-							action.setEnabled(true);
-						}
-					} else {
-						action.setText(XMLCompareMessages.getString("XMLStructureViewer.action.setId.text3")); //$NON-NLS-1$
-						action.setEnabled(true);
-					}
-				}
-				manager.add(action);
-			} else if (
-				diffnodeIdSig.endsWith(XMLStructureCreator.SIGN_ELEMENT)) {
-				SetOrderedAction action= new SetOrderedAction(idmap_name);
-				if (!fIdMaps.containsKey(idmap_name)) {
-					action.setText(XMLCompareMessages.getString("XMLStructureViewer.action.notUserIdMap")); //$NON-NLS-1$
-					action.setEnabled(false);
-				} else {
-					ArrayList idmapOrdered=
-						(ArrayList) fOrderedElements.get(idmap_name);
-					XMLNode idNode= (XMLNode) diffnode.getId();
-					String signature= idNode.getSignature();
-					//					String idname= "";
-					signature=
-						signature.substring(
-							0,
-							signature.indexOf(
-								XMLStructureCreator.SIGN_ELEMENT));
-					if (idmapOrdered != null
-						&& idmapOrdered.contains(signature)) {
-						action.setText(XMLCompareMessages.getString("XMLStructureViewer.action.setOrdered.exists")); //$NON-NLS-1$
-						action.setEnabled(false);
-					} else {
-						action.setText(XMLCompareMessages.getString("XMLStructureViewer.action.setOrdered")); //$NON-NLS-1$
-						action.setSignature(signature);
-						action.setEnabled(true);
-					}
-				}
-
-				manager.add(action);
-			}
-		}
-	}
-
-	protected void appendToTitle(String idmap_name) {
-		if (fParent != null) {
-			getXMLStructureCreator().setIdMap(idmap_name);
-			fParent.setTitleArgument(idmap_name);
-		}
-	}
-
-	/**
-	 * Returns true if the current Id Map scheme has been removed.
-	 */
-	private boolean isIdMapRemoved() {
-		XMLStructureCreator xsc= getXMLStructureCreator();
-		String IdMapName= xsc.getIdMap();
-		return !IdMapName.equals(XMLStructureCreator.USE_UNORDERED)
-			&& !IdMapName.equals(XMLStructureCreator.USE_ORDERED)
-			&& !fIdMaps.containsKey(IdMapName)
-			&& !fIdMapsInternal.containsKey(IdMapName)
-			&& !fOrderedElements.containsKey(IdMapName);
-	}
-
-	protected class SetAsIdAction extends Action {
-
-		DiffNode fDiffNode;
-
-		public SetAsIdAction(DiffNode diffnode) {
-			fDiffNode= diffnode;
-		}
-
-		public void run() {
-			XMLStructureCreator sc= getXMLStructureCreator();
-			//			DiffNode diffnode = (DiffNode) ((StructuredSelection) getSelection()).getFirstElement();
-			String idmap_name= sc.getIdMap();
-			if (fIdMaps.containsKey(idmap_name)) {
-				HashMap idmapHM= (HashMap) fIdMaps.get(idmap_name);
-				if (((XMLNode) fDiffNode.getId())
-					.getSignature()
-					.endsWith(XMLStructureCreator.SIGN_ATTRIBUTE)) {
-					XMLNode attrNode= (XMLNode) fDiffNode.getId();
-					String signature= attrNode.getSignature();
-					signature=
-						signature.substring(
-							0,
-							signature.indexOf(
-								XMLStructureCreator.SIGN_ATTRIBUTE));
-					int end_of_signature=
-						signature.lastIndexOf(
-							SIGN_SEPARATOR,
-							signature.length() - 2);
-					String idattr=
-						signature.substring(
-							end_of_signature + 1,
-							signature.length() - 1);
-					signature= signature.substring(0, end_of_signature + 1);
-					idmapHM.put(signature, idattr);
-					XMLPlugin.getDefault().setIdMaps(
-						fIdMaps,
-						null,
-						null,
-						false);
-					//contentChanged();
-				} else if (
-					((XMLNode) fDiffNode.getId()).getSignature().endsWith(
-						XMLStructureCreator.SIGN_TEXT)) {
-					XMLNode textNode= (XMLNode) fDiffNode.getId();
-					XMLNode idelem= textNode.getParent();
-					XMLNode elem= idelem.getParent();
-					String signature=
-						elem.getSignature().substring(
-							0,
-							elem.getSignature().indexOf(
-								XMLStructureCreator.SIGN_ELEMENT));
-					String idname= idelem.getOrigId();
-					idname=
-						idname.substring(
-							0,
-							idname.indexOf(XMLStructureCreator.ID_SEPARATOR));
-					idname=
-						new Character(XMLStructureCreator.ID_TYPE_BODY)
-							+ idname;
-					idmapHM.put(signature, idname);
-					XMLPlugin.getDefault().setIdMaps(
-						fIdMaps,
-						null,
-						null,
-						false);
-					//contentChanged();
-				}
-			}
-		}
-	}
-
-	protected class SetOrderedAction extends Action {
-
-		String fIdMapName;
-		String fSignature;
-
-		public SetOrderedAction(String idmap_name) {
-			fIdMapName= idmap_name;
-		}
-
-		public void run() {
-			//String idmap_name= getXMLStructureCreator().getIdMap();
-			if (fSignature != null) {
-				ArrayList idmapOrdered=
-					(ArrayList) fOrderedElements.get(fIdMapName);
-				if (idmapOrdered == null) {
-					idmapOrdered= new ArrayList();
-					fOrderedElements.put(fIdMapName, idmapOrdered);
-				}
-				idmapOrdered.add(fSignature);
-			}
-		}
-
-		public void setSignature(String signature) {
-			fSignature= signature;
-		}
-	}
-
-	protected void updateIdMaps() {
-		getXMLStructureCreator().updateIdMaps();
-	}
-
-	/**
-	 * 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)) {
-			getXMLStructureCreator().setRemoveWhiteSpace(
-				!getXMLStructureCreator().getRemoveWhiteSpace());
-			contentChanged();
-		}
-		//		else
-		//			super.propertyChange(event);
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureViewerCreator.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureViewerCreator.java
deleted file mode 100644
index 0cdc9f4..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/XMLStructureViewerCreator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-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 XMLStructureViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new XMLStructureViewer(parent, mp);
-	}
-}
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/MessageLine.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/MessageLine.java
deleted file mode 100644
index ad74b02..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/MessageLine.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml.ui;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * A message line. It distinguishs between "normal" messages and errors. 
- * Setting an error message hides a currently displayed message until 
- * <code>clearErrorMessage</code> is called.
- */
-public class MessageLine extends CLabel {
-
-	public static final RGB RED= new RGB(200, 0, 0);
-	private static RGB fgDefaultErrorRGB= RED;
-
-	private String fMessageText;
-	private String fErrorText;
-
-	private Color fDefaultColor;
-	private RGB fErrorRGB;
-	private Color fErrorColor;
-
-	/**
-	 * Creates a new message line as a child of the given parent.
-	 * Error message will be shown in <code>RED</code>.
-	 */
-	public MessageLine(Composite parent) {
-		this(parent, SWT.LEFT);
-	}
-
-	/**
-	 * Creates a new message line as a child of the parent and with the given SWT stylebits.
-	 * Error message will be shown in  <code>RED</code>.
-	 */
-	public MessageLine(Composite parent, int style) {
-		super(parent, style);
-		fDefaultColor= getForeground();
-		fErrorRGB= fgDefaultErrorRGB;
-	}
-
-	/**
-	 * Creates a new message line as a child of the parent and with the given SWT stylebits.
-	 * Error message will be shown with in the given rgb color.
-	 */
-	public MessageLine(Composite parent, int style, RGB errorRGB) {
-		super(parent, style);
-		fDefaultColor= getForeground();
-		fErrorRGB= errorRGB;
-	}
-
-	/**
-	 * Clears the currently displayed error message and redisplayes
-	 * the message which was active before the error message was set.
-	 */
-	public void clearErrorMessage() {
-		setErrorMessage(null);
-	}
-
-	/**
-	 * Clears the currently displayed message.
-	 */
-	public void clearMessage() {
-		setMessage(null);
-	}
-
-	/**
-	 * Get the currently displayed error text.
-	 * @return The error message. If no error message is displayed <code>null</code> is returned.
-	 */
-	public String getErrorMessage() {
-		return fErrorText;
-	}
-
-	/**
-	 * Get the currently displayed message.
-	 * @return The message. If no message is displayed <code>null<code> is returned.
-	 */
-	public String getMessage() {
-		return fMessageText;
-	}
-
-	/**
-	 * Sets the default error color used by all message lines.
-	 * Note: a call to this method only affects newly created MessageLines not existing ones. 
-	 */
-	public static void setDefaultErrorColor(RGB color) {
-		fgDefaultErrorRGB= color;
-	}
-
-	/**
-	 * Display the given error message. A currently displayed message
-	 * is saved and will be redisplayed when the error message is cleared.
-	 */
-	public void setErrorMessage(String message) {
-		fErrorText= message;
-
-		if (message == null) {
-			setMessage(fMessageText);
-		} else {
-			if (fErrorColor == null) {
-				fErrorColor= new Color(getDisplay(), fErrorRGB);
-				addDisposeListener(new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						fErrorColor.dispose();
-					}
-				});
-			}
-			setForeground(fErrorColor);
-			setText(message);
-		}
-	}
-
-	/**
-	 * Set the message text. If the message line currently displays an error,
-	 * the message is stored and will be shown after a call to clearErrorMessage
-	 */
-	public void setMessage(String message) {
-		fMessageText= message;
-		if (message == null)
-			message= ""; //$NON-NLS-1$
-		if (fErrorText == null) {
-			setForeground(fDefaultColor);
-			setText(message);
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusDialog.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusDialog.java
deleted file mode 100644
index 8127f32..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusDialog.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml.ui;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-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.Control;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * An abstract base class for dialogs with a status bar and ok/cancel buttons.
- * The status message must be passed over as StatusInfo object and can be
- * an error, warning or ok. The OK button is enabled or disabled depending
- * on the status.
- */ 
-public abstract class StatusDialog extends Dialog {
-	
-	private Button fOkButton;
-	private MessageLine fStatusLine;
-	private IStatus fLastStatus;
-	private String fTitle;
-	private Image fImage;
-	
-	/**
-	 * Creates an instane of a status dialog.
-	 */
-	public StatusDialog(Shell parent) {
-		super(parent);
-	}
-	
-	/**
-	 * Specifies whether status line appears to the left of the buttons (default)
-	 * or above them.
-	 *
-	 * @param aboveButtons if <code>true</code> status line is placed above buttons; if
-	 * 	<code>false</code> to the right
-	 */
-	public void setStatusLineAboveButtons(boolean aboveButtons) {
-	}	
-	
-	/**
-	 * Update the dialog's status line to reflect the given status.
-	 * It is save to call this method before the dialog has been opened.
-	 */
-	protected void updateStatus(IStatus status) {
-		fLastStatus= status;
-		if (fStatusLine != null && !fStatusLine.isDisposed()) {
-			updateButtonsEnableState(status);
-			StatusUtil.applyToStatusLine(fStatusLine, status);	
-		}
-	}
-	
-	// 1GFCRWW: ITPJUI:ALL - Compile errors in VA/Java
-	/**
-	 * Returns the last status.
-	 */
-	public IStatus getStatus() {
-		return fLastStatus;
-	}
-
-	/**
-	 * Updates the status of the ok button to reflect the given status.
-	 * Subclasses may override this method to update additional buttons.
-	 * @param status the status.
-	 */
-	protected void updateButtonsEnableState(IStatus status) {
-		if (fOkButton != null && !fOkButton.isDisposed())
-			fOkButton.setEnabled(!status.matches(IStatus.ERROR));
-	}
-	
-	/* 
-	 * @see Window#create(Shell)
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		if (fTitle != null)
-			shell.setText(fTitle);
-	}
-
-	/*
-	 * @see Window#create()
-	 */	
-	public void create() {
-		super.create();
-		if (fLastStatus != null) {
-			// policy: dialogs are not allowed to come up with an error message
-			if (fLastStatus.matches(IStatus.ERROR)) {
-				StatusInfo status= new StatusInfo();
-				status.setError(""); //$NON-NLS-1$
-				fLastStatus= status;
-			}
-			updateStatus(fLastStatus);
-		}
-	}
-
-	/*
-	 * @see Dialog#createButtonsForButtonBar(Composite)
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		fOkButton= createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-	
-	/*
-	 * @see Dialog#createButtonBar(Composite)
-	 */				
-	protected Control createButtonBar(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NULL);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 1;
-		layout.marginHeight= 0;
-		layout.marginWidth= convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		fStatusLine= new MessageLine(composite);
-		fStatusLine.setAlignment(SWT.LEFT);
-		fStatusLine.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fStatusLine.setMessage(""); //$NON-NLS-1$
-
-		super.createButtonBar(composite);
-		return composite;
-	}
-	
-	/**
-	 * Sets the title for this dialog.
-	 * @param title the title.
-	 */
-	public void setTitle(String title) {
-		fTitle= title != null ? title : ""; //$NON-NLS-1$
-		Shell shell= getShell();
-		if ((shell != null) && !shell.isDisposed())
-			shell.setText(fTitle);
-	}
-
-	/**
-	 * Sets the image for this dialog.
-	 * @param image the image.
-	 */
-	public void setImage(Image image) {
-		fImage= image;
-		Shell shell= getShell();
-		if ((shell != null) && !shell.isDisposed())
-			shell.setImage(fImage);
-	}	
-	
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusInfo.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusInfo.java
deleted file mode 100644
index 49225d4..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusInfo.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml.ui;
-
-import org.eclipse.core.runtime.IStatus;
-
-import org.eclipse.jface.util.Assert;
-
-/**
- * A settable IStatus. 
- * Can be an error, warning, info or ok. For error, info and warning states,
- * a message describes the problem.
- */
-public class StatusInfo implements IStatus {
-	
-	private String fStatusMessage;
-	private int fSeverity;
-	
-	/**
-	 * Creates a status set to OK (no message)
-	 */
-	public StatusInfo() {
-		this(OK, null);
-	}
-
-	/**
-	 * Creates a status .
-	 * @param severity The status severity: ERROR, WARNING, INFO and OK.
-	 * @param message The message of the status. Applies only for ERROR,
-	 * WARNING and INFO.
-	 */	
-	public StatusInfo(int severity, String message) {
-		fStatusMessage= message;
-		fSeverity= severity;
-	}		
-	
-	/**
-	 *  Returns if the status' severity is OK.
-	 */
-	public boolean isOK() {
-		return fSeverity == IStatus.OK;
-	}
-
-	/**
-	 *  Returns if the status' severity is WARNING.
-	 */	
-	public boolean isWarning() {
-		return fSeverity == IStatus.WARNING;
-	}
-
-	/**
-	 *  Returns if the status' severity is INFO.
-	 */	
-	public boolean isInfo() {
-		return fSeverity == IStatus.INFO;
-	}	
-
-	/**
-	 *  Returns if the status' severity is ERROR.
-	 */	
-	public boolean isError() {
-		return fSeverity == IStatus.ERROR;
-	}
-	
-	/**
-	 * @see IStatus#getMessage
-	 */
-	public String getMessage() {
-		return fStatusMessage;
-	}
-	
-	/**
-	 * Sets the status to ERROR.
-	 * @param The error message (can be empty, but not null)
-	 */	
-	public void setError(String errorMessage) {
-		Assert.isNotNull(errorMessage);
-		fStatusMessage= errorMessage;
-		fSeverity= IStatus.ERROR;
-	}
-
-	/**
-	 * Sets the status to WARNING.
-	 * @param The warning message (can be empty, but not null)
-	 */		
-	public void setWarning(String warningMessage) {
-		Assert.isNotNull(warningMessage);
-		fStatusMessage= warningMessage;
-		fSeverity= IStatus.WARNING;
-	}
-
-	/**
-	 * Sets the status to INFO.
-	 * @param The info message (can be empty, but not null)
-	 */		
-	public void setInfo(String infoMessage) {
-		Assert.isNotNull(infoMessage);
-		fStatusMessage= infoMessage;
-		fSeverity= IStatus.INFO;
-	}	
-
-	/**
-	 * Sets the status to OK.
-	 */		
-	public void setOK() {
-		fStatusMessage= null;
-		fSeverity= IStatus.OK;
-	}
-	
-	/*
-	 * @see IStatus#matches(int)
-	 */
-	public boolean matches(int severityMask) {
-		return (fSeverity & severityMask) != 0;
-	}
-
-	/**
-	 * Returns always <code>false</code>.
-	 * @see IStatus#isMultiStatus()
-	 */
-	public boolean isMultiStatus() {
-		return false;
-	}
-
-	/*
-	 * @see IStatus#getSeverity()
-	 */
-	public int getSeverity() {
-		return fSeverity;
-	}
-
-	/*
-	 * @see IStatus#getPlugin()
-	 */
-	public String getPlugin() {
-		return "XMLPlugIn"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns always <code>null</code>.
-	 * @see IStatus#getException()
-	 */
-	public Throwable getException() {
-		return null;
-	}
-
-	/**
-	 * Returns always the error severity.
-	 * @see IStatus#getCode()
-	 */
-	public int getCode() {
-		return fSeverity;
-	}
-
-	/**
-	 * Returns always <code>null</code>.
-	 * @see IStatus#getChildren()
-	 */
-	public IStatus[] getChildren() {
-		return new IStatus[0];
-	}	
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusUtil.java b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusUtil.java
deleted file mode 100644
index 1c0dc9f..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/ui/StatusUtil.java
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/xmlcompare.properties b/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/xmlcompare.properties
deleted file mode 100644
index 2c1b217..0000000
--- a/examples/org.eclipse.compare.examples.xml/src/org/eclipse/compare/examples/xml/xmlcompare.properties
+++ /dev/null
@@ -1,109 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-#
-# Structure Creator
-#
-XMLStructureCreator.pluginname= XML Compare
-XMLStructureCreator.unordered= Unordered
-XMLStructureCreator.ordered= Ordered
-XMLStructureCreator.idmap_unordered= Unordered
-XMLStructureCreator.id_map_scheme= Id Map Scheme:
-XMLStructureCreator.body= body
-
-
-#
-# Id Scheme Drop Down Menu
-#
-ChooseMatcherDropDownAction.text= Compare Mode
-ChooseMatcherDropDownAction.tooltip= Compare Mode
-
-#
-# Preference Page
-#
-XMLComparePreference.idtype.attribute= attribute
-XMLComparePreference.idtype.child_body= child text
-XMLComparePreference.topTableLabel= Id Mapping schemes:
-XMLComparePreference.topTableColumn1= Name
-XMLComparePreference.topTableColumn2= Internal/User
-XMLComparePreference.topTableColumn2internal= Internal
-XMLComparePreference.topTableColumn2user= User
-XMLComparePreference.topTableColumn3= Extension
-XMLComparePreference.topAdd= &Add...
-XMLComparePreference.topRename= &Edit...
-XMLComparePreference.topRemove= &Remove
-XMLComparePreference.topEdit= Edit &Copy...
-XMLComparePreference.middleTableColumn1= Element
-XMLComparePreference.middleTableColumn2= Path
-XMLComparePreference.middleTableColumn3= Id Attribute
-XMLComparePreference.middleTableColumn4= Id Source
-XMLComparePreference.middleNew= &New...
-XMLComparePreference.middleEdit= E&dit...
-XMLComparePreference.middleRemove= Re&move
-XMLComparePreference.middleTableLabel=Element mappings of selected Id Mapping Scheme:
-XMLComparePreference.bottomTableLabel=Elements whose children are compared in ordered fashion:
-XMLComparePreference.bottomTableColumn1=Element
-XMLComparePreference.bottomTableColumn2=Path
-XMLComparePreference.bottomNew=Ne&w...
-XMLComparePreference.bottomEdit=Edi&t...
-XMLComparePreference.bottomRemove=Remo&ve
-
-#
-# Dialogs
-#
-XMLCompareAddIdMapDialog.editTitle= Edit Id Mapping Scheme
-XMLCompareAddIdMapDialog.newTitle= New Id Mapping Scheme
-XMLCompareAddIdMapDialog.label= ID Map Name:
-XMLCompareAddIdMapDialog.extlabel= Extension (optional)
-XMLCompareAddIdMapDialog.error.noname= Enter Id Map Name.
-XMLCompareAddIdMapDialog.error.invalidname= Invalid Id Map Name.
-XMLCompareAddIdMapDialog.error.idmapExists= Id Map already exists.
-XMLCompareAddIdMapDialog.error.extfullstop= Extension cannot contain '.'
-XMLCompareAddIdMapDialog.error.extExists= Extension already set for
-
-XMLCompareEditCopyIdMapDialog.title= Create Editable Copy of Internal Scheme
-XMLCompareEditCopyIdMapDialog.comment= You cannon edit an internal Id Map Scheme.\nTherefore, a user copy of the Id Map Scheme will created for editing.\nThe extension associated with the internal Id Map Scheme will not be transferred.\n\nPlease Enter a new name for the Id Map Scheme copy.
-XMLCompareEditCopyIdMapDialog.label= ID Map Name of Copy:
-XMLCompareEditCopyIdMapDialog.error.noname= Enter Id Map Name.
-XMLCompareEditCopyIdMapDialog.error.invalidname= Invalid Id Map Name.
-XMLCompareEditCopyIdMapDialog.error.nameExists= Id Map Name already exists.
-
-XMLCompareEditMappingDialog.editTitle= Edit Mapping
-XMLCompareEditMappingDialog.newTitle= New Mapping
-XMLCompareEditMappingDialog.element= Element
-XMLCompareEditMappingDialog.signature= Path
-XMLCompareEditMappingDialog.idattribute= ID
-XMLCompareEditMappingDialog.idtype= ID Source
-XMLCompareEditMappingDialog.idtype.tooltip= Select whether the ID is an attribute of the element or the text of a child
-XMLCompareEditMappingDialog.idtype.attribute.tooltip= ID is an attribute of the element
-XMLCompareEditMappingDialog.idtype.childbody.tooltip= ID is the text of a child element
-XMLCompareEditMappingDialog.error.noname= Enter Element Name.
-XMLCompareEditMappingDialog.error.invalidname= Invalid Element Name.
-XMLCompareEditMappingDialog.error.mappingExists= Mapping already exists.
-XMLCompareEditMappingDialog.error.invalidsignature= Invalid Signature.
-XMLCompareEditMappingDialog.error.invalididattribute= Invalid ID Attribute.
-
-XMLCompareEditOrderedDialog.newTitle=New Ordered
-XMLCompareEditOrderedDialog.editTitle=Edit Ordered
-XMLCompareEditOrderedDialog.error.orderedExists=Ordered entry already exists
-
-#
-# XMLStructureViewer
-#
-XMLStructureViewer.newtask= Create new Id Map Scheme
-XMLStructureViewer.action.notUserIdMap= Please select a User Id Mapping Scheme
-XMLStructureViewer.action.setId.text1= Already set as Id
-XMLStructureViewer.action.setId.text2= Replace existing Id
-XMLStructureViewer.action.setId.text3= Set as Id
-XMLStructureViewer.action.setOrdered.exists= Ordered entry exists already
-XMLStructureViewer.action.setOrdered=Set children as ordered
-XMLStructureViewer.matching.beginTask=Running Matching algorithm...
-
diff --git a/examples/org.eclipse.compare.examples.xml/tests/org/eclipse/compare/examples/xml/AllXMLCompareTests.java b/examples/org.eclipse.compare.examples.xml/tests/org/eclipse/compare/examples/xml/AllXMLCompareTests.java
deleted file mode 100644
index e97c067..0000000
--- a/examples/org.eclipse.compare.examples.xml/tests/org/eclipse/compare/examples/xml/AllXMLCompareTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import junit.framework.*;
-
-/**
- * TestSuite that runs all the XML Compare tests.
- */
-public class AllXMLCompareTests {
-
-	public static void main (String[] args) {
-		junit.textui.TestRunner.run (suite());
-	}
-	
-	public static Test suite ( ) {
-		TestSuite suite= new TestSuite("All XML Compare Tests"); //$NON-NLS-1$
-		suite.addTest(TestXMLStructureCreator.suite());
-	    return suite;
-	}
-}
-
diff --git a/examples/org.eclipse.compare.examples.xml/tests/org/eclipse/compare/examples/xml/TestXMLStructureCreator.java b/examples/org.eclipse.compare.examples.xml/tests/org/eclipse/compare/examples/xml/TestXMLStructureCreator.java
deleted file mode 100644
index f8fb50b..0000000
--- a/examples/org.eclipse.compare.examples.xml/tests/org/eclipse/compare/examples/xml/TestXMLStructureCreator.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.xml;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import junit.framework.*;
-
-import org.eclipse.jface.text.Document;
-
-import org.eclipse.compare.IEncodedStreamContentAccessor;
-import org.eclipse.compare.examples.xml.XMLChildren;
-import org.eclipse.compare.examples.xml.XMLNode;
-import org.eclipse.compare.examples.xml.XMLStructureCreator;
-import org.eclipse.core.runtime.CoreException;
-
-public class TestXMLStructureCreator extends TestCase {
-	
-	Document fdoc;
-	XMLStructureCreator fsc;
-	
-	public class TestStream implements IEncodedStreamContentAccessor {
-		String fString;
-		
-		public TestStream(String string) {
-			fString= string;
-		}
-		
-		public InputStream getContents() throws CoreException {
-			try {
-				return new ByteArrayInputStream(fString.getBytes("UTF-16")); //$NON-NLS-1$
-			} catch (Exception e) {
-				return new ByteArrayInputStream(fString.getBytes());
-			}
-		}
-		
-		public String getCharset() {
-			return "UTF-16"; //$NON-NLS-1$
-		}
-	}
-	
-	public TestXMLStructureCreator(String name) {
-		super(name);
-	}
-
-	protected void setUp() {
-		System.out.println("TestXMLStructureCreator.name()==" + getName()); //$NON-NLS-1$
-		fdoc = new Document();
-		fsc = new XMLStructureCreator();
-	}
-	
-	protected void tearDown() throws Exception {
-		//remove set-up
-	}
-	
-	public static Test suite() {
-		return new TestSuite(TestXMLStructureCreator.class);
-	}
-
-	public void test0() {
-		TestStream s= new TestStream("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<a attr1=\"&lt;b&gt;&lt;/b&gt;\"\nattr2=\"he\n ll\n o2\" attr3=\"hello3\"\nattr4=\"hello4\"><b attr=\n\"battr\" attr2=\"battr2\">\n<c/>\n</b>\n<b2/>\n</a>\n"); //$NON-NLS-1$
-		XMLChildren Tree= (XMLChildren) fsc.getStructure(s);
-
-		XMLChildren ExpectedTree = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,XMLStructureCreator.ROOT_ID, "",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$
-		//create Expected Tree
-		XMLChildren parent = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"a<[1]","<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<a attr1=\"&lt;b&gt;&lt;/b&gt;\"\nattr2=\"he\n ll\n o2\" attr3=\"hello3\"\nattr4=\"hello4\"><b attr=\n\"battr\" attr2=\"battr2\">\n<c/>\n</b>\n<b2/>\n</a>\n",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		parent.setName("a [1]"); //$NON-NLS-1$
-		ExpectedTree.addChild(parent);
-		parent.setParent(ExpectedTree);
-		XMLChildren current = new XMLChildren(XMLStructureCreator.TYPE_ATTRIBUTE,"attr1","<b></b>",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "attr1" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ATTRIBUTE), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("attr1"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ATTRIBUTE,"attr2","he  ll  o2",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "attr2" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ATTRIBUTE), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("attr2"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ATTRIBUTE,"attr3","hello3",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "attr3" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ATTRIBUTE), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("attr3"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ATTRIBUTE,"attr4","hello4",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "attr4" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ATTRIBUTE), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("attr4"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"b<[1]","<b attr=\n\"battr\" attr2=\"battr2\">\n<c/>\n</b>\n",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR +"b" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("b [1]"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		parent = current;
-		current = new XMLChildren(XMLStructureCreator.TYPE_ATTRIBUTE,"attr","battr",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + "attr" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ATTRIBUTE), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		current.setName("attr"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ATTRIBUTE,"attr2","battr2",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + "attr2" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ATTRIBUTE), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		current.setName("attr2"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"c<[1]","<c/>",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + "c" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		current.setName("c [1]"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		parent = (XMLChildren) parent.getParent();
-		current = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"b2<[1]","<b2/>",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR +"b2" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("b2 [1]"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		
-		checkTrees(Tree,ExpectedTree);
-	}
-		
-	public void test1() {
-		TestStream s= new TestStream("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<a>body_a_1\n  <b>body_b_1\n    <c>body_c_1\n      <d2>body_d2\n      </d2>\nbody_c_2\n    </c>\nbody_b_2\n  </b>\nbody_a_2\n  <b2>\n  </b2>\nbody_a_3\n</a>"); //$NON-NLS-1$
-		XMLChildren Tree= (XMLChildren) fsc.getStructure(s);
-
-		XMLChildren ExpectedTree = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,XMLStructureCreator.ROOT_ID, "",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$
-		//create Expected Tree
-		XMLChildren parent = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"a<[1]","<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<a>body_a_1\n  <b>body_b_1\n    <c>body_c_1\n      <d2>body_d2\n      </d2>\nbody_c_2\n    </c>\nbody_b_2\n  </b>\nbody_a_2\n  <b2>\n  </b2>\nbody_a_3\n</a>",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		parent.setName("a [1]"); //$NON-NLS-1$
-		ExpectedTree.addChild(parent);
-		parent.setParent(ExpectedTree);
-		XMLChildren current = new XMLChildren(XMLStructureCreator.TYPE_TEXT,"body_(1)","body_a_1\n  ",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_TEXT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		current.setName("body (1)"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"b<[1]","<b>body_b_1\n    <c>body_c_1\n      <d2>body_d2\n      </d2>\nbody_c_2\n    </c>\nbody_b_2\n  </b>\n",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("b [1]"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		parent = current;
-		current = new XMLChildren(XMLStructureCreator.TYPE_TEXT,"body_(1)","body_b_1\n    ",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_TEXT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("body (1)"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"c<[1]","<c>body_c_1\n      <d2>body_d2\n      </d2>\nbody_c_2\n    </c>\n",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR +"a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + "c" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		current.setName("c [1]"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		parent = current;
-		current = new XMLChildren(XMLStructureCreator.TYPE_TEXT,"body_(1)","body_c_1\n      ",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + "c" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_TEXT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		current.setName("body (1)"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"d2<[1]","<d2>body_d2\n      </d2>\n",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + "c" + XMLStructureCreator.SIGN_SEPARATOR + "d2" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-		current.setName("d2 [1]"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		parent = current;
-		current = new XMLChildren(XMLStructureCreator.TYPE_TEXT,"body_(1)","body_d2\n      ",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + "c" + XMLStructureCreator.SIGN_SEPARATOR + "d2" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_TEXT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-		current.setName("body (1)"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		parent = (XMLChildren) parent.getParent();
-		current = new XMLChildren(XMLStructureCreator.TYPE_TEXT,"body_(2)","\nbody_c_2\n    ",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + "c" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_TEXT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		current.setName("body (2)"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		parent = (XMLChildren) parent.getParent();
-		current = new XMLChildren(XMLStructureCreator.TYPE_TEXT,"body_(2)","\nbody_b_2\n  ",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + "b" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_TEXT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("body (2)"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		parent = (XMLChildren) parent.getParent();
-		current = new XMLChildren(XMLStructureCreator.TYPE_TEXT,"body_(2)","\nbody_a_2\n  ",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_TEXT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		current.setName("body (2)"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_ELEMENT,"b2<[1]","<b2>\n  </b2>\n",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + "b2" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_ELEMENT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		current.setName("b2 [1]"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-		current = new XMLChildren(XMLStructureCreator.TYPE_TEXT,"body_(3)","\nbody_a_3\n",(XMLStructureCreator.ROOT_ID + XMLStructureCreator.SIGN_SEPARATOR + "a" + XMLStructureCreator.SIGN_SEPARATOR + XMLStructureCreator.SIGN_TEXT), fdoc, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		current.setName("body (2)"); //$NON-NLS-1$
-		parent.addChild(current);
-		current.setParent(parent);
-
-		checkTrees(Tree,ExpectedTree);
-	}
-		
-	protected void checkTrees(XMLNode left, XMLNode right) {
-		if (left != null && right != null) {
-			//System.out.println(left.getName() + ", " + right.getName());
-			//System.out.println(">" + left.getValue() + "<\n>" + right.getValue() + "<");
-			assertTrue(left.testEquals(right));
-			Object[] leftChildren = left.getChildren();
-			Object[] rightChildren = right.getChildren();
-			if (leftChildren != null && rightChildren != null) {
-				if (leftChildren.length == rightChildren.length) {
-					for (int i=0; i<leftChildren.length; i++)
-						checkTrees((XMLNode) leftChildren[i], (XMLNode) rightChildren[i]);
-				} else
-					assertTrue(false);
-			}
-		} else if ( ((left == null) && (right != null)) || ((left != null) && (right == null)) ) {
-			assertTrue(false);
-		}
-	}
-}
-
diff --git a/examples/org.eclipse.compare.examples/.classpath b/examples/org.eclipse.compare.examples/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/examples/org.eclipse.compare.examples/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.compare.examples/.cvsignore b/examples/org.eclipse.compare.examples/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.compare.examples/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.compare.examples/.project b/examples/org.eclipse.compare.examples/.project
deleted file mode 100644
index 507ff7b..0000000
--- a/examples/org.eclipse.compare.examples/.project
+++ /dev/null
@@ -1,22 +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.compatibility</project>
-		<project>org.eclipse.jface.text</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.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 24c663c..0000000
--- a/examples/org.eclipse.compare.examples/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 c67e77d..0000000
--- a/examples/org.eclipse.compare.examples/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 9157dcc..0000000
--- a/examples/org.eclipse.compare.examples/plugin.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin
-   id="org.eclipse.compare.examples"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName">
-
-   <runtime>
-      <library name="compareexamples.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.compare"/>
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
-   </requires>
-
-   <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 d59e046..0000000
--- a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/CompareExampleMessages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 7133443..0000000
--- a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/KeyValuePairStructureCreator.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.IStatus;
-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);
-			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(IStatus.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(IStatus.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 3448ff0..0000000
--- a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/TextMergeViewerCreator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 b828af8..0000000
--- a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/Util.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.compare.IStreamContentAccessor;
-import org.eclipse.compare.IEncodedStreamContentAccessor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-
-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.
-	 */
-	private static String readString(InputStream is, String encoding) {
-		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, encoding));
-
-			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;
-	}
-
-	static String readString(IStreamContentAccessor sa) throws CoreException {
-		InputStream is= sa.getContents();
-		String encoding= null;
-		if (sa instanceof IEncodedStreamContentAccessor)
-			encoding= ((IEncodedStreamContentAccessor)sa).getCharset();
-		if (encoding == null)
-			encoding= ResourcesPlugin.getEncoding();
-		return readString(is, encoding);
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/.classpath b/examples/org.eclipse.team.examples.filesystem/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/examples/org.eclipse.team.examples.filesystem/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<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 eee2527..0000000
--- a/examples/org.eclipse.team.examples.filesystem/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.team.examples.filesystem</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.jface.text</project>
-		<project>org.eclipse.team.core</project>
-		<project>org.eclipse.team.ui</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.ui.editors</project>
-		<project>org.eclipse.ui.ide</project>
-		<project>org.eclipse.ui.views</project>
-		<project>org.eclipse.ui.workbench.texteditor</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 bda3da5..0000000
--- a/examples/org.eclipse.team.examples.filesystem/plugin.xml
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.team.examples.filesystem"
-   name="%pluginName"
-   version="3.0.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.runtime.compatibility"/> 
-      <import plugin="org.eclipse.ui.ide" optional="true"/>
-      <import plugin="org.eclipse.ui.views" optional="true"/>
-      <import plugin="org.eclipse.jface.text" optional="true"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor" optional="true"/>
-      <import plugin="org.eclipse.ui.editors" optional="true"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.team.core"/>
-      <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>
-   
-<!-- *************** Deployment Provider **************** -->
-   <extension
-         point="org.eclipse.team.core.deployment">
-      <deployment
-            class="org.eclipse.team.examples.filesystem.deployment.FileSystemDeploymentProvider"
-            id="org.eclipse.team.examples.filesystem.FileSystemDeploymentProvider"
-            name="%nonVersioningProvider">
-      </deployment>
-   </extension>
-
-<!-- *************** Deployment ObjectContributions **************** -->   
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IContainer"
-            adaptable="true"
-            id="org.eclipse.team.examples.filesystem.ResourceContributions">
-         <menu
-               label="Deployment Example"
-               path="additions"
-               id="example.deployment">
-            <separator name="group1"/>
-            <separator name="group2"/>
-    	 </menu>        
-         <action
-               label="Connect..."
-               tooltip="Deployment Actions"
-               menubarPath="example.deployment/group2"
-               class="org.eclipse.team.examples.filesystem.deployment.DeployAction"
-               id="org.eclipse.team.examples.filesystem.deploy">
-         </action>
-         <action
-               label="Disconnect..."
-               tooltip="Deployment Actions"
-               menubarPath="example.deployment/group2"
-               class="org.eclipse.team.examples.filesystem.deployment.UnDeployAction"
-               id="org.eclipse.team.examples.filesystem.undeploy">
-         </action>        
-         <action
-               label="Upload"
-               tooltip="Deployment Actions"
-               menubarPath="example.deployment/group1"
-               class="org.eclipse.team.examples.filesystem.deployment.NullAction"
-               id="org.eclipse.team.examples.filesystem.undeploy">
-         </action> 
-         <action
-               label="Download"
-               tooltip="Deployment Actions"
-               menubarPath="example.deployment/group1"
-               class="org.eclipse.team.examples.filesystem.deployment.NullAction"
-               id="org.eclipse.team.examples.filesystem.undeploy">
-         </action> 
-      </objectContribution>
-   </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 3508b5a..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileModificationValidator.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.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;
-
-/**
- * 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 {
-	
-	private FileSystemOperations operations;
-
-	/**
-	 * Constructor for FileModificationValidator.
-	 */
-	public FileModificationValidator(RepositoryProvider provider) {
-		operations = ((FileSystemProvider)provider).getOperations();
-	}
-
-	/**
-	 * 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(IStatus.ERROR, FileSystemPlugin.ID, 0, e.getLocalizedMessage(), e);
-		}
-		return Status.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) {
-		if (file.isReadOnly()) {
-			return checkout(new IResource[] { file });
-		} else {
-			return Status.OK_STATUS;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemOperations.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemOperations.java
deleted file mode 100644
index bf072be..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemOperations.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-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.core.runtime.SubProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.variants.IResourceVariant;
-import org.eclipse.team.core.variants.IResourceVariantComparator;
-import org.eclipse.team.core.variants.ThreeWaySynchronizer;
-import org.eclipse.team.examples.filesystem.subscriber.FileSystemResourceVariant;
-import org.eclipse.team.examples.filesystem.subscriber.FileSystemSubscriber;
-
-/**
- * The get and put operations for the file system provider.
- */
-public class FileSystemOperations {
-
-	// A reference to the provider
-	private FileSystemProvider provider;
-
-	FileSystemOperations(FileSystemProvider provider) {
-		this.provider = provider;
-	}
-
-	/**
-	 * Make the local state of the project match the remote state by getting any out-of-sync 
-	 * resources. The overrideOutgoing flag is used to indicate whether locally modified
-	 * files should also be replaced or left alone.
-	 * @param resources the resources to get
-	 * @param depth the depth of the operation
-	 * @param overrideOutgoing whether locally modified resources should be replaced
-	 * @param progress a progress monitor
-	 * @throws TeamException
-	 */
-	public void get(IResource[] resources, int depth, boolean overrideOutgoing, IProgressMonitor progress) throws TeamException {
-		try {
-			// ensure the progress monitor is not null
-			progress = Policy.monitorFor(progress);
-			progress.beginTask(Policy.bind("GetAction.working"), 100); //$NON-NLS-1$
-			// Refresh the subscriber so we have the latest remote state
-			FileSystemSubscriber.getInstance().refresh(resources, depth, new SubProgressMonitor(progress, 30));
-			internalGet(resources, depth, overrideOutgoing, new SubProgressMonitor(progress, 70));
-		} finally {
-			progress.done();
-		}
-	}
-
-	/**
-	 * Checkout the given resources to the given depth by setting any files
-	 * to writtable (i.e set read-only to <coce>false</code>.
-	 * @param resources the resources to be checked out
-	 * @param depth the depth of the checkout
-	 * @param progress a progress monitor
-	 * @throws TeamException
-	 */
-	public void checkout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
-		try {
-			progress = Policy.monitorFor(progress);
-			progress.beginTask(Policy.bind("FileSystemSimpleAccessOperations.1"), resources.length); //$NON-NLS-1$
-			for (int i = 0; i < resources.length; i++) {
-				Policy.checkCanceled(progress);
-				resources[i].accept(new IResourceVisitor() {
-					public boolean visit(IResource resource) throws CoreException {
-						if (resource.getType() == IResource.FILE) {
-							//TODO: lock the file on the 'server'.
-							resource.setReadOnly(false);
-						}
-						return true;
-					}
-				}, depth, false /* include phantoms */);
-				progress.worked(1);
-			}
-		} catch (CoreException e) {
-			throw TeamException.asTeamException(e);
-		} finally {
-			progress.done();
-		}
-	}
-
-	/**
-	 * Checkin the given resources to the given depth by replacing the remote (i.e. file system)
-	 * contents with the local workspace contents. 
-	 * @param resources the resources
-	 * @param depth the depth of the operation
-	 * @param overrideIncoming indicate whether incoming remote changes should be replaced
-	 * @param progress a progress monitor
-	 * @throws TeamException
-	 */
-	public void checkin(IResource[] resources, int depth, boolean overrideIncoming, IProgressMonitor progress) throws TeamException {
-		try {
-			// ensure the progress monitor is not null
-			progress = Policy.monitorFor(progress);
-			progress.beginTask(Policy.bind("PutAction.working"), 100); //$NON-NLS-1$
-			// Refresh the subscriber so we have the latest remote state
-			FileSystemSubscriber.getInstance().refresh(resources, depth, new SubProgressMonitor(progress, 30));
-			internalPut(resources, depth, overrideIncoming, new SubProgressMonitor(progress, 70));
-		} finally {
-			progress.done();
-		}
-	}
-
-	/**
-	 * Return whether the local resource is checked out. A resource
-	 * is checked out if it is a file that is not read-only. Folders
-	 * are always checked out.
-	 * @param resource the resource
-	 * @return whether the resource is checked out and can be modified
-	 */
-	public boolean isCheckedOut(IResource resource) {
-		if (resource.getType() != IResource.FILE) return true;
-		return !resource.isReadOnly();
-	}
-
-	/*
-	 * Get the resource variant for the given resource.
-	 */
-	private FileSystemResourceVariant getResourceVariant(IResource resource) {
-		return (FileSystemResourceVariant)provider.getResourceVariant(resource);
-	}
-	
-	private void internalGet(IResource[] resources, int depth, boolean overrideOutgoing, IProgressMonitor progress) throws TeamException {
-		// Traverse the resources and get any that are out-of-sync
-		progress.beginTask(Policy.bind("GetAction.working"), IProgressMonitor.UNKNOWN); //$NON-NLS-1$
-		for (int i = 0; i < resources.length; i++) {
-			Policy.checkCanceled(progress);
-			if (resources[i].getType() == IResource.FILE) {
-				internalGet((IFile) resources[i], overrideOutgoing, progress);
-			} else if (depth != IResource.DEPTH_ZERO) {
-				internalGet((IContainer)resources[i], depth, overrideOutgoing, progress);
-			}
-			progress.worked(1);
-		}
-	}
-
-	/*
-	 * Get the folder and its children to the depth specified.
-	 */
-	private void internalGet(IContainer container, int depth, boolean overrideOutgoing, IProgressMonitor progress) throws TeamException {
-		try {
-			ThreeWaySynchronizer synchronizer = FileSystemSubscriber.getInstance().getSynchronizer();
-			// Make the local folder state match the remote folder state
-			List toDelete = new ArrayList();
-			if (container.getType() == IResource.FOLDER) {
-				IFolder folder = (IFolder)container;
-				FileSystemResourceVariant remote = getResourceVariant(container);
-				if (!folder.exists() && remote != null) {
-					// Create the local folder
-					folder.create(false, true, progress);
-					synchronizer.setBaseBytes(folder, remote.asBytes());
-				} else if (folder.exists() && remote == null) {
-					// Schedule the folder for removal but delay in
-					// case the folder contains outgoing changes
-					toDelete.add(folder);
-				}
-			}
-			
-			// Get the children
-			IResource[] children = synchronizer.members(container);
-			if (children.length > 0) {
-				internalGet(children, depth == IResource.DEPTH_INFINITE ? IResource.DEPTH_INFINITE : IResource.DEPTH_ZERO, overrideOutgoing, progress);
-			}
-		
-			// Remove any empty folders
-			for (Iterator iter = toDelete.iterator(); iter.hasNext(); ) {
-				IFolder folder = (IFolder) iter.next();
-				if (folder.members().length == 0) {
-					folder.delete(false, true, progress);
-					synchronizer.flush(folder, IResource.DEPTH_INFINITE);
-				}
-			}
-		} catch (CoreException e) {
-			throw TeamException.asTeamException(e);
-		}
-	}
-
-	/*
-	 * Get the file if it is out-of-sync.
-	 */
-	private void internalGet(IFile localFile, boolean overrideOutgoing, IProgressMonitor progress) throws TeamException {
-		ThreeWaySynchronizer synchronizer = FileSystemSubscriber.getInstance().getSynchronizer();
-		IResourceVariantComparator comparator = FileSystemSubscriber.getInstance().getResourceComparator();
-		FileSystemResourceVariant remote = getResourceVariant(localFile);
-		byte[] baseBytes = synchronizer.getBaseBytes(localFile);
-		IResourceVariant base = provider.getResourceVariant(localFile, baseBytes);
-		if (!synchronizer.hasSyncBytes(localFile) || (
-				synchronizer.isLocallyModified(localFile) && !overrideOutgoing)) {
-			// Do not overwrite the local modification
-			return;
-		}
-		if (base != null && remote == null) {
-			// The remote no longer exists so remove the local
-			try {
-				localFile.delete(false, true, progress);
-			} catch (CoreException e) {
-				throw TeamException.asTeamException(e);
-			}
-		}
-		if (!synchronizer.isLocallyModified(localFile) && comparator.compare(base, remote)) {
-			// The base and remote are the same and there's no local changes
-			// so nothing needs to be done
-		}
-		try {
-			//Copy from the local file to the remote file:
-			InputStream source = null;
-			try {
-				// Get the remote file content.
-				source = remote.getContents();
-				// 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();
-			}
-			// Mark as read-only to force a checkout before editing
-			localFile.setReadOnly(true);
-		} catch (IOException e) {
-			throw FileSystemPlugin.wrapException(e);
-		} catch (CoreException e) {
-			throw FileSystemPlugin.wrapException(e);
-		}
-	}
-	
-	private void internalPut(IResource[] resources, int depth, boolean overrideIncoming, IProgressMonitor progress) throws TeamException {
-		// ensure the progress monitor is not null
-		progress = Policy.monitorFor(progress);
-		progress.beginTask(Policy.bind("PutAction.working"), IProgressMonitor.UNKNOWN); //$NON-NLS-1$
-		for (int i = 0; i < resources.length; i++) {
-			Policy.checkCanceled(progress);
-			if (resources[i].getType() == IResource.FILE) {
-				internalPut((IFile)resources[i], overrideIncoming, progress);
-			} else if (depth > 0) { //Assume that resources are either files or containers.
-				internalPut((IContainer)resources[i], depth, overrideIncoming, progress);
-			}
-			progress.worked(1);
-		}
-		progress.done();
-	}
-	
-	/*
-	 * Get the file if it is out-of-sync.
-	 */
-	private void internalPut(IFile localFile, boolean overrideIncoming, IProgressMonitor progress) throws TeamException {
-		ThreeWaySynchronizer synchronizer = FileSystemSubscriber.getInstance().getSynchronizer();
-		IResourceVariantComparator comparator = FileSystemSubscriber.getInstance().getResourceComparator();
-		FileSystemResourceVariant remote = getResourceVariant(localFile);
-		byte[] baseBytes = synchronizer.getBaseBytes(localFile);
-		IResourceVariant base = provider.getResourceVariant(localFile, baseBytes);
-		
-		// Check whether we are overriding a remote change
-		if (base == null && remote != null && !overrideIncoming) {
-			// The remote is an incoming (or conflicting) addition.
-			// Do not replace unless we are overriding
-			return;
-		} else  if (base != null && remote == null) {
-			// The remote is an incoming deletion
-			if (!localFile.exists()) {
-				// Conflicting deletion. Clear the synchronizer.
-				synchronizer.flush(localFile, IResource.DEPTH_ZERO);
-			} else if (!overrideIncoming) {
-				// Do not override the incoming deletion
-				return;
-			}
-		} else if (base != null && remote != null) {
-			boolean same = comparator.compare(base, remote);
-			if (!synchronizer.isLocallyModified(localFile) && same) {
-				// The base and remote are the same and there's no local changes
-				// so nothing needs to be done
-				return;
-			}
-			if (!same && !overrideIncoming) {
-				// The remote has changed. Only override if specified
-				return;
-			}
-		}
-		
-		// Handle an outgoing deletion
-		File diskFile = provider.getFile(localFile);
-		if (!localFile.exists()) { 
-			diskFile.delete();
-			synchronizer.flush(localFile, IResource.DEPTH_ZERO);
-		} else {
-			// Otherwise, upload the contents
-			try {
-				//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());
-					// Mark the file as read-only to require another checkout
-					localFile.setReadOnly(true);
-				} finally {
-					if (in != null)
-						in.close();
-					if (out != null)
-						out.close();
-				}
-				// Update the synchronizer base bytes
-				remote = getResourceVariant(localFile);
-				synchronizer.setBaseBytes(localFile, remote.asBytes());
-			} catch (IOException e) {
-				throw FileSystemPlugin.wrapException(e);
-			} catch (CoreException e) {
-				throw FileSystemPlugin.wrapException(e);
-			}
-		}
-	}
-	
-	/*
-	 * Get the folder and its children to the depth specified.
-	 */
-	private void internalPut(IContainer container, int depth, boolean overrideIncoming, IProgressMonitor progress) throws TeamException {
-		try {
-			ThreeWaySynchronizer synchronizer = FileSystemSubscriber.getInstance().getSynchronizer();
-			// Make the local folder state match the remote folder state
-			List toDelete = new ArrayList();
-			if (container.getType() == IResource.FOLDER) {
-				IFolder folder = (IFolder)container;
-				File diskFile = provider.getFile(container);
-				FileSystemResourceVariant remote = getResourceVariant(container);
-				if (!folder.exists() && remote != null) {
-					// Schedule the folder for removal but delay in
-					// case the folder contains incoming changes
-					toDelete.add(diskFile);
-				} else if (folder.exists() && remote == null) {
-					// Create the remote directory and sync up the local
-					diskFile.mkdir();
-					synchronizer.setBaseBytes(folder, provider.getResourceVariant(folder).asBytes());
-				}
-			}
-			
-			// Get the children
-			IResource[] children = synchronizer.members(container);
-			if (children.length > 0) {
-				internalPut(children, depth == IResource.DEPTH_INFINITE ? IResource.DEPTH_INFINITE : IResource.DEPTH_ZERO, overrideIncoming, progress);
-			}
-		
-			// Remove any empty folders
-			for (Iterator iter = toDelete.iterator(); iter.hasNext(); ) {
-				File diskFile = (File) iter.next();
-				if (diskFile.listFiles().length == 0) {
-					diskFile.delete();
-					synchronizer.flush(container, IResource.DEPTH_INFINITE);
-				}
-			}
-		} catch (CoreException e) {
-			throw TeamException.asTeamException(e);
-		}
-	}
-}
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 040f24c..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"; //$NON-NLS-1$
-	
-	/**
-	 * This is the provider ID of the plugin as defined in the plugin.xml
-	 */
-	public static final String PROVIDER_ID = ID + ".FileSystemProvider"; //$NON-NLS-1$
-	
-	// 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"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * 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 a7596be..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemProvider.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.resources.IResource;
-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.core.variants.IResourceVariant;
-import org.eclipse.team.examples.filesystem.subscriber.FileSystemResourceVariant;
-import org.eclipse.team.examples.filesystem.subscriber.FileSystemSubscriber;
-
-/**
- * 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"); //$NON-NLS-1$
-
-	/**
-	 * 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 {
-		FileSystemSubscriber.getInstance().handleRootChanged(getProject(), true /* added */);
-	}
-
-	/**
-	 * 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);
-		FileSystemSubscriber.getInstance().handleRootChanged(getProject(), false /* removed */);
-	}
-
-	/**
-	 * 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)); //$NON-NLS-1$
-		}
-		
-		// 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 object that provides the operations for transfering data 
-	 * to and from the provider's location.
-	 */
-	public FileSystemOperations getOperations() {
-		return new FileSystemOperations(this);
-	}
-	/**
-	 * @see org.eclipse.team.core.RepositoryProvider#getFileModificationValidator()
-	 */
-	public IFileModificationValidator getFileModificationValidator() {
-		return new FileModificationValidator(this);
-	}
-
-	/**
-	 * Return the resource variant for the local resource using the bytes to
-	 * identify the variant.
-	 * @param resource the resource
-	 * @param bytes the bytes that identify the resource variant
-	 * @return the resource variant handle
-	 */
-	public IResourceVariant getResourceVariant(IResource resource, byte[] bytes) {
-		File file = getFile(resource);
-		if (file == null) return null;
-		return new FileSystemResourceVariant(file, bytes);
-	}
-	
-	/**
-	 * Return the resource variant for the local resource.
-	 * @param resource the resource
-	 * @return the resource variant
-	 */
-	public IResourceVariant getResourceVariant(IResource resource) {
-		File file = getFile(resource);
-		if (file == null) return null;
-		return new FileSystemResourceVariant(file);
-	}
-	
-	/**
-	 * Return the <code>java.io.File</code> that the given resource maps to.
-	 * Return <code>null</code> if the resource is not a child of this provider's
-	 * project.
-	 * @param resource the resource
-	 * @return the file that the resource maps to.
-	 */
-	public java.io.File getFile(IResource resource) {
-		if (resource.getProject().equals(getProject())) {
-			IPath rootdir = getRoot();
-			return new File(rootdir.append(resource.getProjectRelativePath()).toOSString());
-		}
-		return null;
-	}
-
-}
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 cfb2db5..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 + "!"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	
-	/**
-	 * 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$
-		}
-	}
-	
-	/**
-	 * 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 f39f217..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", //$NON-NLS-1$
-							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 ccb68c1..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/messages.properties
+++ /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
-###############################################################################
-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
-FileSystemRemoteResource.0=This resource is a container so it cannot have data.
-FileSystemSimpleAccessOperations.1=Checking resources out...
-FileSystemSimpleAccessOperations.3=Re-locking resources...
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemRemoteTree.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemRemoteTree.java
deleted file mode 100644
index 1a5d01b..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemRemoteTree.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.examples.filesystem.subscriber;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.variants.IResourceVariant;
-import org.eclipse.team.core.variants.ThreeWayRemoteTree;
-import org.eclipse.team.examples.filesystem.FileSystemPlugin;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-
-/**
- * The file sytem three-way remote resource varant tree taht provides
- * the ability to traverse the file system for the creation of resource variants.
- */
-public class FileSystemRemoteTree extends ThreeWayRemoteTree {
-	
-	/**
-	 * Create the file syetm remote resource variant tree
-	 * @param subscriber the file system subscriber
-	 */
-	public FileSystemRemoteTree(FileSystemSubscriber subscriber) {
-		super(subscriber);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.AbstractResourceVariantTree#fetchMembers(org.eclipse.team.core.variants.IResourceVariant, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected IResourceVariant[] fetchMembers(IResourceVariant variant, IProgressMonitor progress) throws TeamException {
-		return ((FileSystemResourceVariant)variant).members();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.AbstractResourceVariantTree#fetchVariant(org.eclipse.core.resources.IResource, int, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected IResourceVariant fetchVariant(IResource resource, int depth, IProgressMonitor monitor) throws TeamException {
-		RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), FileSystemPlugin.PROVIDER_ID);
-		if (provider != null) {
-			return ((FileSystemProvider)provider).getResourceVariant(resource);
-		}
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemResourceVariant.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemResourceVariant.java
deleted file mode 100644
index 5ddd2c7..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemResourceVariant.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.subscriber;
-
-import java.io.BufferedInputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Date;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.variants.CachedResourceVariant;
-import org.eclipse.team.examples.filesystem.FileSystemPlugin;
-
-/**
- * A file system resource variant. Although not strictly necessary, this
- * class extends <code>CachedResourceVariant</code> which will
- * cache the contents of the resource variant.
- */
-public class FileSystemResourceVariant extends CachedResourceVariant {
-	
-	private java.io.File ioFile;
-	private byte[] bytes;
-	
-	/**
-	 * Create a resource variant for the given file. The bytes will
-	 * be calculated when they are accessed.
-	 * @param file the file
-	 */
-	public FileSystemResourceVariant(java.io.File file) {
-		this.ioFile = file;
-	}
-	
-	/**
-	 * Create a resource variant for the given file and sync bytes.
-	 * @param file the file
-	 * @param bytes the timestamp bytes
-	 */
-	public FileSystemResourceVariant(java.io.File file, byte[] bytes) {
-		this.ioFile = file;
-		this.bytes = bytes;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.CachedResourceVariant#fetchContents(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void fetchContents(IProgressMonitor monitor) throws TeamException {
-		setContents(getContents(), monitor);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.CachedResourceVariant#getCachePath()
-	 */
-	protected String getCachePath() {
-		// append the timestamp to the file path to give each variant a unique path
-		return getFilePath() + " " + ioFile.lastModified(); //$NON-NLS-1$
-	}
-	
-	private String getFilePath() {
-		try {
-			return ioFile.getCanonicalPath();
-		} catch (IOException e) {
-			// Failed for some reason. Try the absolute path.
-			FileSystemPlugin.log(new Status(IStatus.ERROR, FileSystemPlugin.ID, 0, 
-					"Failed to obtain canonical path for " + ioFile.getAbsolutePath(), e));
-			return ioFile.getAbsolutePath();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.CachedResourceVariant#getCacheId()
-	 */
-	protected String getCacheId() {
-		return FileSystemPlugin.ID;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.IResourceVariant#getName()
-	 */
-	public String getName() {
-		return ioFile.getName();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.IResourceVariant#isContainer()
-	 */
-	public boolean isContainer() {
-		return ioFile.isDirectory();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.IResourceVariant#getContentIdentifier()
-	 */
-	public String getContentIdentifier() {
-		// Use the modification timestamp as the content identifier
-		return new Date(ioFile.lastModified()).toString();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.IResourceVariant#asBytes()
-	 */
-	public byte[] asBytes() {
-		if (bytes == null) {
-			// For simplicity, convert the timestamp to it's string representation.
-			// A more optimal storage format would be the 8 bytes that make up the long.
-			bytes = Long.toString(ioFile.lastModified()).getBytes();
-		} 
-		return bytes;
-	}
-
-	/**
-	 * Return the files contained by the file of this resource variant.
-	 * @return the files contained by the file of this resource variant.
-	 */
-	public FileSystemResourceVariant[] members() {
-		if (isContainer()) {
-			java.io.File[] members = ioFile.listFiles();
-			FileSystemResourceVariant[] result = new FileSystemResourceVariant[members.length];
-			for (int i = 0; i < members.length; i++) {
-				result[i] = new FileSystemResourceVariant(members[i]);
-			}
-			return result;
-		} else {
-			return new FileSystemResourceVariant[0];
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	public InputStream getContents() throws TeamException {
-		try {
-			return new BufferedInputStream(new FileInputStream(ioFile));
-		} catch (FileNotFoundException e) {
-			throw new TeamException("Failed to fetch contents for " + getFilePath(), e);
-		}
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemSubscriber.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemSubscriber.java
deleted file mode 100644
index fc0880b..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemSubscriber.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.subscriber;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.variants.IResourceVariant;
-import org.eclipse.team.core.variants.ThreeWayRemoteTree;
-import org.eclipse.team.core.variants.ThreeWaySubscriber;
-import org.eclipse.team.core.variants.ThreeWaySynchronizer;
-import org.eclipse.team.examples.filesystem.FileSystemPlugin;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-
-/**
- * This is an example file system subscriber that overrides
- * ThreeWaySubscriber. It uses a repository
- * provider (<code>FileSystemProvider</code>) to determine and
- * manage the roots and to create resource variants. It also makes
- * use of a file system specific remote tree (<code>FileSystemRemoteTree</code>)
- * for provided the remote tree access and refresh.
- * 
- * @see ThreeWaySubscriber
- * @see ThreeWaySynchronizer
- * @see FileSystemProvider
- * @see FileSystemRemoteTree
- */
-public class FileSystemSubscriber extends ThreeWaySubscriber {
-
-	private static FileSystemSubscriber instance;
-	
-	/**
-	 * Return the file system subscriber singleton.
-	 * @return the file system subscriber singleton.
-	 */
-	public static synchronized FileSystemSubscriber getInstance() {
-		if (instance == null) {
-			instance = new FileSystemSubscriber();
-		}
-		return instance;
-	}
-	
-	/**
-	 * Create the file system subscriber.
-	 */
-	private FileSystemSubscriber() {
-		super(new ThreeWaySynchronizer(new QualifiedName(FileSystemPlugin.ID, "workpsace-sync"))); //$NON-NLS-1$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.ThreeWaySubscriber#getResourceVariant(org.eclipse.core.resources.IResource, byte[])
-	 */
-	public IResourceVariant getResourceVariant(IResource resource, byte[] bytes) throws TeamException {
-		RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), FileSystemPlugin.PROVIDER_ID);
-		if (provider != null) {
-			return ((FileSystemProvider)provider).getResourceVariant(resource, bytes);
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.ThreeWaySubscriber#createRemoteTree()
-	 */
-	protected ThreeWayRemoteTree createRemoteTree() {
-		return new FileSystemRemoteTree(this);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.subscribers.Subscriber#getName()
-	 */
-	public String getName() {
-		return "File System Example";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.subscribers.Subscriber#roots()
-	 */
-	public IResource[] roots() {
-		List result = new ArrayList();
-		IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-		for (int i = 0; i < projects.length; i++) {
-			IProject project = projects[i];
-			if(project.isAccessible()) {
-				RepositoryProvider provider = RepositoryProvider.getProvider(project, FileSystemPlugin.PROVIDER_ID);
-				if(provider != null) {
-					result.add(project);
-				}
-			}
-		}
-		return (IProject[]) result.toArray(new IProject[result.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.variants.ThreeWaySubscriber#handleRootChanged(org.eclipse.core.resources.IResource, boolean)
-	 */
-	public void handleRootChanged(IResource resource, boolean added) {
-		// Override to allow FileSystemProvider to signal the addition and removal of roots
-		super.handleRootChanged(resource, added);
-	}
-
-}
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 bab7824..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"),  //$NON-NLS-1$
-			Policy.bind("ConfigurationWizard.description"),  //$NON-NLS-1$
-			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"), //$NON-NLS-1$
-				Policy.bind("ConfigurationWizard.error"), //$NON-NLS-1$
-				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 6fc051c..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()); //$NON-NLS-1$
-		} 
-	}
-	
-	/**
-	 * @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 219ac80..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")); //$NON-NLS-1$
-		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")); //$NON-NLS-1$
-		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")); //$NON-NLS-1$
-				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 30e9910..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/GetAction.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.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.getOperations().get(providerResources, IResource.DEPTH_INFINITE, isOverwriteOutgoing(), subMonitor);
-					}
-				} catch (TeamException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		}, Policy.bind("GetAction.problemMessage"), PROGRESS_DIALOG); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Indicate whether the action should overwrite outgoing changes.
-	 * By default, the get action does not override local modifications.
-	 * @return whether the action should overwrite outgoing changes.
-	 */
-	protected boolean isOverwriteOutgoing() {
-		return false;
-	}
-}
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 4c8c157..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.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.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.getOperations().checkin(providerResources, IResource.DEPTH_INFINITE, isOverrideIncoming(), subMonitor);
-					}
-				} catch (TeamException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		}, Policy.bind("PutAction.problemMessage"), PROGRESS_DIALOG); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Indicate whether the put should override incoming changes.
-	 * @return whether the put should override incoming changes.
-	 */
-	protected boolean isOverrideIncoming() {
-		return false;
-	}
-}
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 60a5620..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.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.examples.filesystem.ui;
-
-
-/**
- * A replace is simply a get that overwrite local changes
- */
-public class ReplaceAction extends GetAction {
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.examples.filesystem.ui.GetAction#isOverwriteOutgoing()
-	 */
-	protected boolean isOverwriteOutgoing() {
-		return true;
-	}
-}
diff --git a/tests/org.eclipse.compare.tests/.classpath b/tests/org.eclipse.compare.tests/.classpath
deleted file mode 100644
index 9501e31..0000000
--- a/tests/org.eclipse.compare.tests/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="JUnit Tests"/>
-	<classpathentry kind="src" path="/org.junit"/>
-	<classpathentry kind="src" path="/org.eclipse.compare"/>
-	<classpathentry kind="src" path="/org.eclipse.core.runtime.compatibility"/>
-	<classpathentry kind="src" path="/org.eclipse.jface.text"/>
-	<classpathentry kind="src" path="/org.eclipse.jface"/>
-	<classpathentry kind="src" path="/org.eclipse.jdt.junit"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<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 da302d0..0000000
--- a/tests/org.eclipse.compare.tests/.project
+++ /dev/null
@@ -1,23 +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.core.runtime.compatibility</project>
-		<project>org.eclipse.jdt.junit</project>
-		<project>org.eclipse.jface</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 087c77f..0000000
--- a/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/AllTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-
-/**
- * Test some non-UI areas of the compare plugin.
- */
-public class AllTests {
-
-	public static Test suite() {
-		TestSuite suite= new TestSuite("Test for org.eclipse.compare.tests"); //$NON-NLS-1$
-		//$JUnit-BEGIN$
-		suite.addTestSuite(DocLineComparatorTest.class);
-		suite.addTestSuite(FilterTest.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 2e3cc62..0000000
--- a/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/DocLineComparatorTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.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;
-
-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))"); //$NON-NLS-1$
-		
-		IDocument doc2= new Document();
-		doc2.set("if (s.strip)"); //$NON-NLS-1$
-		
-		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))"); //$NON-NLS-1$
-		
-		IDocument doc2= new Document();
-		doc2.set("if (s.strip))   "); //$NON-NLS-1$
-		
-		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(""); //$NON-NLS-1$
-		
-		IDocument doc2= new Document();
-		doc2.set("    "); //$NON-NLS-1$
-		
-		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/JUnit Tests/org/eclipse/compare/tests/FilterTest.java b/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/FilterTest.java
deleted file mode 100644
index 0c65023..0000000
--- a/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/FilterTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.tests;
-
-import org.eclipse.compare.internal.CompareFilter;
-
-import junit.framework.*;
-import junit.framework.TestCase;
-
-public class FilterTest extends TestCase {
-	
-	CompareFilter fFilter;
-	
-	public FilterTest(String name) {
-		super(name);
-	}
-		
-	public void testFilterFile() {
-		CompareFilter f= new CompareFilter();
-		f.setFilters("*.class");
-		Assert.assertTrue("file foo.class should be filtered", f.filter("foo.class", false, false));
-		Assert.assertFalse("file foo.java shouldn't be filtered", f.filter("foo.java", false, false));
-	}
-	
-	public void testFilterDotFile() {
-		CompareFilter f= new CompareFilter();
-		f.setFilters(".cvsignore");
-		Assert.assertTrue("file .cvsignore should be filtered", f.filter(".cvsignore", false, false));
-		Assert.assertFalse("file foo.cvsignore shouldn't be filtered", f.filter("foo.cvsignore", false, false));
-	}
-	
-	public void testFilterFolder() {
-		CompareFilter f= new CompareFilter();
-		f.setFilters("bin/");
-		Assert.assertTrue("folder bin should be filtered", f.filter("bin", true, false));
-		Assert.assertFalse("file bin shouldn't be filtered", f.filter("bin", false, false));
-	}
-	
-	public void testMultiFilter() {
-		CompareFilter f= new CompareFilter();
-		f.setFilters("*.class, .cvsignore, bin/");
-		Assert.assertTrue("file foo.class should be filtered", f.filter("foo.class", false, false));
-		Assert.assertFalse("file foo.java shouldn't be filtered", f.filter("foo.java", false, false));
-		Assert.assertTrue("file .cvsignore should be filtered", f.filter(".cvsignore", false, false));
-		Assert.assertFalse("file foo.cvsignore shouldn't be filtered", f.filter("foo.cvsignore", false, false));
-		Assert.assertTrue("folder bin should be filtered", f.filter("bin", true, false));
-		Assert.assertFalse("file bin shouldn't be filtered", f.filter("bin", false, false));
-	}
-	
-	public void testVerify() {
-		//Assert.assertNull("filters don't verify", Filter.validateResourceFilters("*.class, .cvsignore, bin/"));
-		//Assert.assertNotNull("filters shouldn't verify", Filter.validateResourceFilters("bin//"));
-	}
-}
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 36c12d3..0000000
--- a/tests/org.eclipse.compare.tests/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 dfa2362..0000000
--- a/tests/org.eclipse.compare.tests/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.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 aec5eab..0000000
--- a/tests/org.eclipse.compare.tests/plugin.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.compare.tests"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName">
-
-   <runtime>
-      <library name="comparetests.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.compare.tests"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.junit"/>
-      <import plugin="org.eclipse.compare"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.eclipse.jface"/>
-      <import plugin="org.eclipse.jdt.junit"/>
-   </requires>
-
-
-</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 065ac06..0000000
--- a/tests/org.eclipse.team.tests.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<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 a33b339..0000000
--- a/tests/org.eclipse.team.tests.core/.project
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.team.tests.core</name>
-	<comment></comment>
-	<projects>
-		<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.runtime.compatibility</project>
-		<project>org.eclipse.core.tests.harness</project>
-		<project>org.eclipse.jface.text</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.ui</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.ui.editors</project>
-		<project>org.eclipse.ui.ide</project>
-		<project>org.eclipse.ui.views</project>
-		<project>org.eclipse.ui.workbench.texteditor</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 926d9a3..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
\ 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 6b1b468..0000000
--- a/tests/org.eclipse.team.tests.core/plugin.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.team.tests.core"
-   name="Eclipse Team Core Tests"
-   version="3.0.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.eclipse.ui.ide" optional="true"/>
-      <import plugin="org.eclipse.ui.views" optional="true"/>
-      <import plugin="org.eclipse.jface.text" optional="true"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor" optional="true"/>
-      <import plugin="org.eclipse.ui.editors" optional="true"/>
-      <import plugin="org.eclipse.core.tests.harness"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
-      <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
-            class="org.eclipse.team.tests.core.RepositoryProviderBic"
-            id="org.eclipse.team.tests.core.bic-provider">
-      </repository>
-   </extension>
-   <extension
-         point="org.eclipse.team.core.repository">
-      <repository
-            class="org.eclipse.team.tests.core.RepositoryProviderNaish"
-            id="org.eclipse.team.tests.core.naish-provider">
-      </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
-            class="org.eclipse.team.tests.core.RepositoryProviderWithLinking"
-            id="org.eclipse.team.tests.core.linking">
-      </repository>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="Team Test Views"
-            id="org.eclipse.team.tests.core">
-      </category>
-      <view
-            name="Content Provider Test View"
-            category="org.eclipse.team.tests.core"
-            class="org.eclipse.team.tests.ui.views.ContentProviderTestView"
-            id="org.eclipse.team.tests.ui.views.ContentProviderTestView">
-      </view>
-   </extension>
-
-
-</plugin>
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 1738eea..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTeamTests.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 AllTeamTests extends EclipseWorkspaceTest {
-
-	/**
-	 * Constructor for CVSClientTest.
-	 */
-	public AllTeamTests() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSClientTest.
-	 * @param name
-	 */
-	public AllTeamTests(String name) {
-		super(name);
-	}
-
-	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/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/TeamTest.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TeamTest.java
deleted file mode 100644
index 35727ac..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TeamTest.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-import java.util.*;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.tests.harness.EclipseWorkspaceTest;
-
-public class TeamTest extends EclipseWorkspaceTest {
-	protected static IProgressMonitor DEFAULT_MONITOR = new NullProgressMonitor();
-	protected static final IProgressMonitor DEFAULT_PROGRESS_MONITOR = new NullProgressMonitor();
-
-	public static Test suite(Class c) {
-		String testName = System.getProperty("eclipse.team.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(c);
-			return suite;
-		} else {
-			try {
-				return (Test)c.getConstructor(new Class[] { String.class }).newInstance(new Object[] {testName});
-			} catch (Exception e) {
-				fail(e.getMessage());
-				// Above will throw so below is never actually reached
-				return null;
-			}
-		}
-	}
-
-	public TeamTest() {
-		super();
-	}
-	public TeamTest(String name) {
-		super(name);
-	}
-
-	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);
-	}
-
-	/**
-	 * 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 void sleep(int ms) {
-		try {
-			Thread.sleep(ms);
-		} catch (InterruptedException e) {
-			System.err.println("Testing was rudely interrupted.");
-		}
-	}
-
-	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/src/org/eclipse/team/tests/ui/synchronize/AllTeamSynchronizeTests.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/AllTeamSynchronizeTests.java
deleted file mode 100644
index 24f9123..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/AllTeamSynchronizeTests.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.ui.synchronize;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.tests.harness.EclipseWorkspaceTest;
-
-public class AllTeamSynchronizeTests extends EclipseWorkspaceTest {
-
-	/**
-	 * Constructor for CVSClientTest.
-	 */
-	public AllTeamSynchronizeTests() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSClientTest.
-	 * @param name
-	 */
-	public AllTeamSynchronizeTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(TestDiffNodePresentationModel.suite());
-		suite.addTest(SyncInfoSetContentProviderTest.suite());
-		return suite;
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/SyncInfoSetContentProviderTest.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/SyncInfoSetContentProviderTest.java
deleted file mode 100644
index 56a4e8b..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/SyncInfoSetContentProviderTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.synchronize;
-
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.team.core.synchronize.SyncInfoTree;
-import org.eclipse.team.internal.ui.synchronize.CompressedFoldersModelProvider;
-import org.eclipse.team.internal.ui.synchronize.SynchronizeModelProvider;
-
-/**
- * Tests for the SyncInfoSet content providers.
- */
-public class SyncInfoSetContentProviderTest extends TestDiffNodePresentationModel {
-	
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public SyncInfoSetContentProviderTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public SyncInfoSetContentProviderTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return suite(SyncInfoSetContentProviderTest.class);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ui.synchronize.TestDiffNodePresentationModel#getDiffNodeController()
-	 */
-	protected SynchronizeModelProvider getDiffNodeController(SyncInfoTree set) {
-		return new CompressedFoldersModelProvider(set);
-	}
-
-	private void assertFolderPresent(IFolder folder, List resources) {
-		// First, if the folder is out-of-sync, it should be visible
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			IResource resource = (IResource) iter.next();
-			if (resource.equals(folder)) {
-				// The folder should be present.
-				// Remove it since it has been verified
-				iter.remove();
-				return;
-			}
-		}
-		// If the folder contains a file in the list, it is also OK
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			IResource resource = (IResource) iter.next();
-			if (resource.getType() == IResource.FILE && resource.getParent().equals(folder)) {
-				// The compressed folder is valid since it contains an out-of-sync file
-				// However, the resource is left since it has not been verified (only it's parent)
-				return;
-			}
-		}
-		fail("Folder " + folder.getFullPath() + " should not be visible but is.");
-	}
-
-	private void assertFilePresent(IResource itemResource, List resources) {
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			IResource resource = (IResource) iter.next();
-			if (resource.equals(itemResource)) {
-				// The resource has been verified so it can be removed
-				iter.remove();
-				return;
-			}
-		}
-		fail("Resource " + itemResource.getFullPath() + " should not be visible but is.");
-	}
-
-	private void assertProjectPresent(IProject project, List resources) {
-//		First, if the project is out-of-sync, it should be visible
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			IResource resource = (IResource) iter.next();
-			if (resource.equals(project)) {
-				// The folder should be present.
-				// Remove it since it has been verified
-				iter.remove();
-				return;
-			}
-		}
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			IResource resource = (IResource) iter.next();
-			if (resource.getProject().equals(project)) {
-				return;
-			}
-		}
-		fail("Project " + project.getName() + " should not be visible but is.");
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestDiffNodePresentationModel.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestDiffNodePresentationModel.java
deleted file mode 100644
index e54a537..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestDiffNodePresentationModel.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.synchronize;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.synchronize.*;
-import org.eclipse.team.internal.ui.Utils;
-import org.eclipse.team.internal.ui.synchronize.*;
-import org.eclipse.team.tests.core.TeamTest;
-import org.eclipse.team.tests.ui.views.ContentProviderTestView;
-import org.eclipse.team.tests.ui.views.TestTreeViewer;
-import org.eclipse.team.ui.synchronize.TreeViewerAdvisor;
-
-
-public class TestDiffNodePresentationModel extends TeamTest {
-	
-	private ContentProviderTestView view;
-	private SyncInfoTree set;
-	private TreeViewerAdvisor configuration;
-	
-	public TestDiffNodePresentationModel() {
-		super();
-	}
-
-	public TestDiffNodePresentationModel(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return suite(TestDiffNodePresentationModel.class);
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.set = new SyncInfoTree();
-		this.configuration = new TreeViewerAdvisor(set) {
-			protected ISynchronizeModelProvider getModelProvider() {
-				return TestDiffNodePresentationModel.this.getDiffNodeController(set);
-			}
-		};
-		view = ContentProviderTestView.findViewInActivePage(null);
-		configuration.initializeViewer(view.getViewer());
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		set = null;
-		configuration.dispose();
-		super.tearDown();
-	}
-	
-	protected SynchronizeModelProvider getDiffNodeController(SyncInfoTree set) {
-		return new HierarchicalModelProvider(set);
-	}
-	
-	/*
-	 * 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 {
-		IProject project = getUniqueTestProject(prefix);
-		buildResources(project, resources, true);
-		return project;
-	}
-	
-	/*
-	 * Create a test project using the currently running test case as the project name prefix
-	 */
-	protected IProject createProject(String[] resources) throws CoreException {
-		return createProject(getName(), resources);
-	}
-		
-	private void adjustSet(SyncInfoSet set, IProject project, String[] resourceStrings, int[] syncKind) throws TeamException {
-		IResource[] resources = buildResources(project, resourceStrings);
-		try {
-			set.beginInput();
-			for (int i = 0; i < resources.length; i++) {
-				IResource resource = resources[i];
-				int kind = syncKind[i];
-				if (kind == SyncInfo.IN_SYNC) {
-					set.remove(resource);
-				} else {
-					SyncInfo newInfo = new TestSyncInfo(resource, kind);
-					set.add(newInfo);
-				}
-			}
-		} finally {
-			set.endInput(null);
-		}
-	}
-
-	/**
-	 * Ensure that the resource
-	 * @param resources
-	 */
-	protected void assertProperVisibleItems() {
-		IResource[] resources = set.getResources();
-		List resourceList = new ArrayList();
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			resourceList.add(resource);
-		}
-		TestTreeViewer viewer = view.getViewer();
-		Item[] items = viewer.getRootItems();
-		if (resources.length ==  0) {
-			assertTrue("There are items visible when there should not be.", items.length == 0);
-			return;
-		}
-		// Test that all items in the tree are expected
-		for (int i = 0; i < items.length; i++) {
-			Item item = items[i];
-			assertThatAllOutOfSyncResourcesAreShown(item, resourceList);
-		}
-		// Test that all expected resources and their parents are present
-		assertTrue("The tree did not contain all expected resources: " + resourceList.toString(), resourceList.isEmpty());
-	}
-	
-	/**
-	 * Traverse every element shown in the view and ensure that every out-of-sync 
-	 * resource in the set is at least shown. This doesn't test the actual logical
-	 * organization, but does ensure that all out-of-sync resources are shown only
-	 * once.
-	 */
-	protected void assertThatAllOutOfSyncResourcesAreShown(Item item, List outOfSyncResources) {
-		Object node = item.getData();
-		SyncInfo info = (SyncInfo)Utils.getAdapter(node, SyncInfo.class);
-		if(info != null) {
-			assertTrue("The tree contained an out-of-sync resource that wasn't in the set", outOfSyncResources.remove(info.getLocal()));
-		}
-		Item[] children = view.getViewer().getChildren(item);
-		for (int i = 0; i < children.length; i++) {
-			Item child = children[i];
-			assertThatAllOutOfSyncResourcesAreShown(child, outOfSyncResources);
-		}
-	}
-	
-	public void testNestedFolder() throws CoreException {
-		IProject project = createProject(new String[]{"file.txt", "folder1/file2.txt", "folder1/folder2/file3.txt"});
-		adjustSet(set, project, 
-				new String[]{"file.txt"}, 
-				new int[]{SyncInfo.OUTGOING | SyncInfo.CHANGE});
-		assertProperVisibleItems();
-		adjustSet(set, project, 
-				new String[]{"folder1/file2.txt", "folder1/folder2/file3.txt"}, 
-				new int[]{SyncInfo.OUTGOING | SyncInfo.CHANGE, SyncInfo.OUTGOING | SyncInfo.CHANGE});
-		assertProperVisibleItems();
-		adjustSet(set, project, 
-				new String[]{"folder1/file2.txt"}, 
-				new int[]{SyncInfo.IN_SYNC,});
-		assertProperVisibleItems();
-	}
-
-	public void testParentRemovalWithChildRemaining() throws CoreException {
-		IProject project = createProject(new String[]{"file.txt", "folder1/file2.txt", "folder1/folder2/file3.txt"});
-		adjustSet(set, project, 
-				new String[]{"folder1/folder2/", "folder1/folder2/file3.txt"}, 
-				new int[]{SyncInfo.CONFLICTING | SyncInfo.CHANGE, SyncInfo.CONFLICTING | SyncInfo.CHANGE});
-		assertProperVisibleItems();
-		
-		adjustSet(set, project, 
-				new String[]{"folder1/folder2/", "folder1/folder2/file3.txt"}, 
-				new int[]{SyncInfo.IN_SYNC, SyncInfo.OUTGOING | SyncInfo.CHANGE});
-		assertProperVisibleItems();
-	}
-	
-	public void testEmptyFolderChange() throws CoreException {
-		IProject project = createProject(new String[]{"file.txt", "folder1/file2.txt", "folder1/folder2/file3.txt", "folder3/"});
-		adjustSet(set, project, 
-				new String[]{"folder1/folder2/", "folder1/folder2/file3.txt"}, 
-				new int[]{SyncInfo.CONFLICTING | SyncInfo.CHANGE, SyncInfo.CONFLICTING | SyncInfo.CHANGE});
-		assertProperVisibleItems();
-		
-		adjustSet(set, project, 
-				new String[]{"folder1/folder2/", "folder1/folder2/file3.txt"}, 
-				new int[]{SyncInfo.IN_SYNC, SyncInfo.OUTGOING | SyncInfo.CHANGE});
-		assertProperVisibleItems();
-		
-		adjustSet(set, project, 
-				new String[]{"folder1/folder2/file3.txt"}, 
-				new int[]{SyncInfo.IN_SYNC});
-		assertProperVisibleItems();
-		
-		adjustSet(set, project, 
-				new String[]{"folder3/"}, 
-				new int[]{SyncInfo.INCOMING | SyncInfo.ADDITION});
-		assertProperVisibleItems();
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java
deleted file mode 100644
index 2a1150a..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.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.ui.synchronize;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.synchronize.SyncInfo;
-
-public class TestSyncInfo extends SyncInfo {
-
-	private int kind;
-	
-	public TestSyncInfo(IResource resource, int kind) throws TeamException {
-		super(resource, null, null, null);
-		this.kind = kind;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.subscribers.SyncInfo#calculateKind()
-	 */
-	protected int calculateKind() throws TeamException {
-		return this.kind;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.subscribers.SyncInfo#getKind()
-	 */
-	public int getKind() {
-		return kind;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/ContentProviderTestView.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/ContentProviderTestView.java
deleted file mode 100644
index f604741..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/ContentProviderTestView.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.ui.views;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.ui.*;
-import org.eclipse.ui.part.ViewPart;
-
-public class ContentProviderTestView extends ViewPart {
-	
-	public static final String VIEW_ID = "org.eclipse.team.tests.ui.views.ContentProviderTestView";
-	
-	private TestTreeViewer viewer;
-
-	public static ContentProviderTestView findViewInActivePage(IWorkbenchPage activePage) {
-		try {
-			if (activePage == null) {
-				activePage = TeamUIPlugin.getActivePage();
-				if (activePage == null) return null;
-			}
-			IViewPart part = activePage.findView(VIEW_ID);
-			if (part == null)
-				part = activePage.showView(VIEW_ID);
-			return (ContentProviderTestView)part;
-		} catch (PartInitException pe) {
-			return null;
-		}
-	}
-	
-	public ContentProviderTestView() {
-	}
-
-	public void createPartControl(Composite parent) {
-		viewer = new TestTreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-	}
-
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-	
-	public TestTreeViewer getViewer() {
-		return viewer;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/TestTreeViewer.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/TestTreeViewer.java
deleted file mode 100644
index 7803f5f..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/TestTreeViewer.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.ui.views;
-
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.*;
-
-public class TestTreeViewer extends TreeViewer {
-
-	public TestTreeViewer(Composite parent) {
-		super(parent);
-	}
-
-	public TestTreeViewer(Composite parent, int style) {
-		super(parent, style);
-	}
-
-	public TestTreeViewer(Tree tree) {
-		super(tree);
-	}
-	
-	public Item[] getRootItems() {
-		expandAll();
-		return getChildren(getControl());
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#getChildren(org.eclipse.swt.widgets.Widget)
-	 */
-	public Item[] getChildren(Widget o) {
-		return super.getChildren(o);
-	}
-	
-	public boolean hasItemFor(DiffNode node) {
-		return findItem(node) != null;
-	}
-}
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 3418c93..0000000
--- a/tests/org.eclipse.team.tests.core/test.xml
+++ /dev/null
@@ -1,48 +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 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.cvs.core/.classpath b/tests/org.eclipse.team.tests.cvs.core/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<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 77c5177..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-selfhost*
-cvsSniff*.zip
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 610fd98..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/.project
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.team.tests.cvs.core</name>
-	<comment></comment>
-	<projects>
-		<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.runtime.compatibility</project>
-		<project>org.eclipse.core.tests.harness</project>
-		<project>org.eclipse.jface.text</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.ui.editors</project>
-		<project>org.eclipse.ui.ide</project>
-		<project>org.eclipse.ui.views</project>
-		<project>org.eclipse.ui.workbench.texteditor</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/book.css b/tests/org.eclipse.team.tests.cvs.core/book.css
deleted file mode 100644
index 139eb28..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/book.css
+++ /dev/null
Binary files differ
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/html/00000.html b/tests/org.eclipse.team.tests.cvs.core/html/00000.html
deleted file mode 100644
index e83ba16..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00000.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html><head><title>Check Out Prompting</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Check Out Prompting</h2>
-
-<ul>
-  <li>Select a project in HEAD</li>
-  <li>Perform a Checkout As</li>
-  <li>Use the same name but specify a custom location</li>
-  <li>Ensure project was checked out properly</li>
-  <li>Select the same project and choose Checkout As again</li>
-  <li>Use the same name but don't specify a custom location</li>
-  <li>Ensure that the use is prompted to overwrite</li>
-  <li>Test various options in prompt to ensure proper behavior</li>
-</ul>
-
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00001.html b/tests/org.eclipse.team.tests.cvs.core/html/00001.html
deleted file mode 100644
index 4b35dcc..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00001.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html><head><title>Unit Use-cases</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-</head><body><h2>Unit Use-cases</h2>
-
-Answer comes here.
-
-<P>&nbsp;<br><a href="../hglegal2003.htm"><img src=../images/ngibmcpy2003.gif border=0></a>
-</P></body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00002.html b/tests/org.eclipse.team.tests.cvs.core/html/00002.html
deleted file mode 100644
index 7444150..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00002.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><head><title>End-To-End Use Cases</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-</head><body><h2>End-To-End Use Cases</h2>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00003.html b/tests/org.eclipse.team.tests.cvs.core/html/00003.html
deleted file mode 100644
index 2f8a8cc..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00003.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html><head><title>Unit Use-Cases</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-</head><body><h2>Unit Use-Cases</h2>
-
-Answer comes here.
-<a href="html/00017.html">Crash Recovery</a>
-
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00004.html b/tests/org.eclipse.team.tests.cvs.core/html/00004.html
deleted file mode 100644
index 29343ae..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00004.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><head><title>Repositories View</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-</head><body><h2>Repositories View</h2>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00005.html b/tests/org.eclipse.team.tests.cvs.core/html/00005.html
deleted file mode 100644
index 971d598..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00005.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html><head><title>Check Out</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-</head><body><h2>Check Out</h2>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00006.html b/tests/org.eclipse.team.tests.cvs.core/html/00006.html
deleted file mode 100644
index 0c2c9e4..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00006.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html><head><title>Checkout As prompting</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-</head><body><h2>Checkout As prompting</h2>
-
-<h3>Checkout As... Prompting</h3>
-<ul>
-  <li>Select a project in HEAD</li>
-  <li>Perform a Checkout As</li>
-  <li>Use the same name but specify a custom location</li>
-  <li>Ensure project was checked out properly</li>
-  <li>Select the same project and choose Checkout As again</li>
-  <li>Use the same name but don't specify a custom location</li>
-  <li>Ensure that the use is prompted to overwrite</li>
-  <li>Test various options in prompt to ensure proper behavior</li>
-</ul>
-
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00007.html b/tests/org.eclipse.team.tests.cvs.core/html/00007.html
deleted file mode 100644
index ef9fada..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00007.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html><head><title>Check Out - prompts</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Check Out - prompts</h2>
-<p>Since: 3.0 M5<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-<ul>
-  <li>Select a project in HEAD</li>
-  <li>Perform a Checkout</li>
-  <li>Ensure project was checked out properly</li>
-  <li>Select the same project and choose Checkout As</li>
-  <li>Use the same name and specify a custom location</li>
-  <li>Ensure that the user is prompted to overwrite</li>
-  <li>Ensure OK and Cancel have proper behavior</li>
-</ul>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00008.html b/tests/org.eclipse.team.tests.cvs.core/html/00008.html
deleted file mode 100644
index 6a7d804..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00008.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html><head><title>Comparing</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Comparing</h2>
-
-The CVS plugin supports comparing of resources in the workspace with revision in the repository. You can also compare between two remote elements.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00009.html b/tests/org.eclipse.team.tests.cvs.core/html/00009.html
deleted file mode 100644
index 5ca0693..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00009.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<html><head><title>Remote resources</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Remote resources</h2>
-<p>Since: 3.0 M5<br>
-Last Modified: $Date: 2004/02/25 20:34:42 $</p><body>
-<h4>Compare With... in Repositories view </h4>
-<p>Perform the following steps:</p>
-<ol>
-  <li>Select a project in HEAD and choose Compare With... from context menu</li>
-  <li>Select a branch tag</li>
-  <li>Ensure result of comparison is correct</li>
-  <li>Repeat and in step 2) use a version tag</li>
-</ol>
-<p>Repeat the above steps for a project in a branch and a project version.</p>
-<p>Repeat the above steps for a selected folder and a selected file.</p>
-<h4>Compare on two selections in Repositories view</h4>
-<p>Perform the following steps:</p>
-<ol>
-  <li>Select a project in HEAD</li>
-  <li>CTRL-select a project in a branch</li>
-  <li>Choose Compare from context menu</li>
-  <li>Ensure result of comparison is correct</li>
-</ol>
-<p>Repeat the above for various conbinations (branch + version, version + branch, 
-  branch + branch, version + version).</p>
-  <p>Repeat the above steps for a selected folder and a selected file.</p>
-<h4>Compare on two selections in Resource History view.</h4>
-<p>Perform the following steps:</p>
-<ul>
-  <li>Open Resource History view on a file with multiple revisions</li>
-  <li>Select 2 and choose Compare from the context menu</li>
-  <li>Ensure result of comparison is correct</li>
-</ul>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00010.html b/tests/org.eclipse.team.tests.cvs.core/html/00010.html
deleted file mode 100644
index 1b71fc5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00010.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html><head><title>Synchronizing</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Synchronizing</h2>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00011.html b/tests/org.eclipse.team.tests.cvs.core/html/00011.html
deleted file mode 100644
index b0f3dc5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00011.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<html><head><title>Sync View operations and selection</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Sync View operations and selection</h2>
-<p>Since: 3.0 M5<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-<p>Ensure Commit and Update buttons:</p>
-<ul>
-  <li>operate on all applicable visible changes</li>
-  <li>exclude filtered changes</li>
-  <li>exclude conflicts</li>
-</ul>
-<p>Ensure Update menu action:</p>
-<ul>
-  <li>is enabled when selection contains incoming or conflicting changes</li>
-  <li>operates only on selected changes</li>
-  <li>silently handles mergable conflicts</li>
-  <li>will prompt if conflicts are no mergable</li>
-</ul>
-<p>Ensure Commit menu action</p>
-<ul>
-  <li>is enable only when selection contains outgoing changes</li>
-  <li>prompts form unadded resources</li>
-  <li>operates only on selected changes</li>
-</ul>
-<p>Ensure Override and Commit and Override and Update</p>
-<ul>
-  <li>are only enabled for conflicts or changes in the opposite direction</li>
-  <li>operates only on selected changes</li>
-</ul>
-<p>Ensure Refresh button refreshes all projects regardless of mode, selection 
-  or working set.</p>
-<p>Ensure Refresh menu action refreshes only the selection</p>
-<h4>Modes and Working Sets</h4>
-<p>Ensure that choosing modes and working sets </p>
-<ul>
-  <li>result in proper filtering</li>
-  <li>updates status bar properly</li>
-</ul>
-<p>All actions on large sets (Mark as Merged as well)</p>
-
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00012.html b/tests/org.eclipse.team.tests.cvs.core/html/00012.html
deleted file mode 100644
index 1b01caa..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00012.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html><head><title>Merging</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Merging</h2>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00013.html b/tests/org.eclipse.team.tests.cvs.core/html/00013.html
deleted file mode 100644
index 57143b3..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00013.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html><head><title>Sync View operations and selection</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Sync View operations and selection</h2>
-<p>Since: 3.0 M5<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-<ul>
-<li>Same scenarios as <a href="html/00011.html">Sync View operations and selection</a> except you can't commit.
-<li>Test mark as merged (ensure that it can work on large data sets
-</ul>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00014.html b/tests/org.eclipse.team.tests.cvs.core/html/00014.html
deleted file mode 100644
index ff40a8d..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00014.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html><head><title>Resource History</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Resource History</h2>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00015.html b/tests/org.eclipse.team.tests.cvs.core/html/00015.html
deleted file mode 100644
index 0f88259..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00015.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<html><head><title>Editor linking</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-</head><body><h2>Editor linking</h2>
-
-<ol>
-  <li>Open the Resource History view and enable editor linking</li>
-  <li>Open a compare editor from the sync view (on a resource that exists remotely) 
-    and ensure that the history view updates.</li>
-  <li>Open an editor from the Repositories vew and ensure that the history view 
-    updates.</li>
-  <li>Open an editoron a local file and ensure that the history view updates.</li>
-</ol>
-<p>Repeat the above with the Resource History view hidden and ensure that no revision 
-  history is fetched (i.e. no jobs appear in progress view).</p>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00016.html b/tests/org.eclipse.team.tests.cvs.core/html/00016.html
deleted file mode 100644
index efbf71f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00016.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<html><head><title>Sync View modes and working sets</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Sync View modes and working sets</h2>
-
-<p>Since: 3.0 M5<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-Ensure that choosing modes and working sets 
-<ul>
-<li>result in proper filtering 
-<li>updates status bar properly 
-<li>All actions on large sets (Mark as Merged as well)
-</ul>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00017.html b/tests/org.eclipse.team.tests.cvs.core/html/00017.html
deleted file mode 100644
index 800d128..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00017.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<html><head><title>Crash Recovery</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Crash Recovery</h2>
-
-<p>Scenario 1</p>
-<ol>
-  <li>Turn on deep dirty decoration</li>
-  <li>Dirty a file and ensure that the file and it's parents are dirty</li>
-  <li>Quit Eclipse so dirty state is persisted</li>
-  <li>Restart and perform an override and update or commit and ensure file and 
-    parents are clean</li>
-  <li>Kill Eclipse</li>
-  <li>Restart and ensure parents and file are clean</li>
-</ol>
-<p>Scenario 2</p>
-<ol>
-  <li>Check out two copies of the same project</li>
-  <li>Dirty the same file in both projects, commit one and refresh the other in 
-    the sync view so a conflict is visible</li>
-  <li>Quit Eclipse so that the sync state is persisted</li>
-  <li>Restart Eclipse and perform an Override and Commit on the conflict</li>
-  <li>Kill Eclipse</li>
-  <li>Restart Eclipse and ensure that the sync view doesn't show the file (i.e 
-    the file is in-sync).</li>
-</ol>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00018.html b/tests/org.eclipse.team.tests.cvs.core/html/00018.html
deleted file mode 100644
index e69d3f1..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00018.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html><head><title>Editor Linking</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Editor Linking</h2>
-<p>Since: 3.0 M5<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-<ol>
-  <li>Open the Resource History view and enable editor linking</li>
-  <li>Open a compare editor from the sync view (on a resource that exists remotely) 
-    and ensure that the history view updates.</li>
-  <li>Open an editor from the Repositories vew and ensure that the history view 
-    updates.</li>
-  <li>Open an editoron a local file and ensure that the history view updates.</li>
-</ol>
-<p>Repeat the above with the Resource History view hidden and ensure that no revision 
-  history is fetched (i.e. no jobs appear in progress view).</p>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00019.html b/tests/org.eclipse.team.tests.cvs.core/html/00019.html
deleted file mode 100644
index 187e501..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00019.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<html><head><title>Crash Recovery</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Crash Recovery</h2>
-<p>Since: 3.0 M5<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-<p>Scenario 1</p>
-<ol>
-  <li>Turn on deep dirty decoration</li>
-  <li>Dirty a file and ensure that the file and it's parents are dirty</li>
-  <li>Quit Eclipse so dirty state is persisted</li>
-  <li>Restart and perform an override and update or commit and ensure file and 
-    parents are clean</li>
-  <li>Kill Eclipse</li>
-  <li>Restart and ensure parents and file are clean</li>
-</ol>
-<p>Scenario 2</p>
-<ol>
-  <li>Check out two copies of the same project</li>
-  <li>Dirty the same file in both projects, commit one and refresh the other in 
-    the sync view so a conflict is visible</li>
-  <li>Quit Eclipse so that the sync state is persisted</li>
-  <li>Restart Eclipse and perform an Override and Commit on the conflict</li>
-  <li>Kill Eclipse</li>
-  <li>Restart Eclipse and ensure that the sync view doesn't show the file (i.e 
-    the file is in-sync).</li>
-</ol>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00020.html b/tests/org.eclipse.team.tests.cvs.core/html/00020.html
deleted file mode 100644
index ecbd13c..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00020.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html><head><title>Concurrency</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Concurrency</h2>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00021.html b/tests/org.eclipse.team.tests.cvs.core/html/00021.html
deleted file mode 100644
index aca77c0..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00021.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<html><head><title>Close and disconnect</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Close and disconnect</h2>
-<p>Since: 3.0 M5<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-<h4>Background refresh and disconnect</h4>
-<ol>
-  <li>Load several projects from the repository</li>
-  <li>Ensure that several have outgoing and incoming changes</li>
-  <li>Choose one project to disconnect. The project should have incoming and outgoing 
-    changes and be one of the later ones in the refresh order (alphebetical).</li>
-  <li>Perform a refresh on all the projects</li>
-  <li>While the refresh is occuring, disconnect the project chosen in step 3) 
-    and leave CVS folders.</li>
-  <li>Ensure that the project is removed from the sync view and no errors occur</li>
-</ol>
-<p>Repeat the steps and purge the CVS meta-data in step 5).</p>
-<p>Repeat the above steps but change the operation in step 5) to the following:</p>
-<ul>
-  <li>close project</li>
-  <li>project where server is unreachable</li>
-  <li>delete project</li>
-  <li>binary project import over source project with outgoing changes</li>
-</ul>
-<h4>Decoration and disconnect</h4>
-<ul>
-  <li>Load several projects from the repository</li>
-  <li>Ensure that several have outgoing and incoming changes</li>
-  <li>Choose one project to disconnect. The project should have incoming and outgoing 
-    changes and be one of the later ones in the refresh order (alphebetical).</li>
-  <li>Turn on CVS decorators</li>
-  <li>As the decorations are being calculated, disconnect all projects from CVS 
-    control.</li>
-  <li>Ensure that the project is removed from the sync view and no errors occur</li>
-</ul>
-<p>Repeat the above steps but change the operation in step 5) to the following:</p>
-<ul>
-  <li>close project</li>
-  <li>project where server is unreachable</li>
-  <li>delete project</li>
-  <li>binary project import over source project with outgoing changes</li>
-  <li>delete or move files and folders (to test move/delete hook)</li>
-</ul>
-
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00022.html b/tests/org.eclipse.team.tests.cvs.core/html/00022.html
deleted file mode 100644
index d6efc6d..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00022.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<html><head><title>Persistance and deletion</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Persistance and deletion</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-<ul>
-<li>Select a project and perform a merge.
-<li>Ensure that the merge appears in the Synchronize View
-<li>Exit and restart eclipse
-<li>The merge should still exist in the Synchronize View
-<li>Delete the merge from the synchronize view using the remove toolbar button
-<li>The merge subscriber should be removed from the view.
-</ul>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00023.html b/tests/org.eclipse.team.tests.cvs.core/html/00023.html
deleted file mode 100644
index c30bee1..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00023.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Restarting Workbench</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Restarting Workbench</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00024.html b/tests/org.eclipse.team.tests.cvs.core/html/00024.html
deleted file mode 100644
index f4212d6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00024.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<html><head><title>Annotate</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Annotate</h2>
-<p>Since: 3.0 M6<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-<h4>Annotate action should be available from</h4>
-<ul>
-<li>history view, repo explorer, resource/packages view
-</ul>
-
-<h4>Annotate java files</h4>
-<ul>
-<li>should show the java editor
-<li>you should be able to step through changes in the annotate view and the java editor should
-stay in sync (e.g. highlight) the changes associated with the selected change in the annotate view.
-<li>you should also be able to select a line in the java file and the annotate view should
-select the change that is associated with that line.
-<li>the history view should show the history for the opened file and highlight the revision
-of the currently selected change in the annotate view.
-</ul>
-
-<h4>Annotate non-text editor files</h4>
-<ul>
-<li>annotate plugin.xml file
-<li>the default text editor should be shown
-<li>you should also be able to select a line in the text file and the annotate view should
-select the change that is associated with that line.
-<li>the history view should show the history for the opened file and highlight the revision
-of the currently selected change in the annotate view.
-</ul>
-
-<h4>Annotate binary files</h4>
-<ul>
-<li>annotate a file marked as binary
-<li>the server should report an error that annotations cannot be shown for binary files.
-</ul>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00025.html b/tests/org.eclipse.team.tests.cvs.core/html/00025.html
deleted file mode 100644
index d62f456..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00025.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html><head><title>Synchronize View Settings</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Synchronize View Settings</h2>
-<p>Since: 3.0 M6<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-<h4>Saved between sessions</h4>
-<p>The following GUI preferences in the Synchronize View are persisted between workbench 
-sessions. Also they are persisted for each participant. You should be able to create
-a merge and workspace participant, then change the settings on each. Restart Eclipse and the settings 
-should be maintained for each participant. The persisted settings are:</p>
-<ul>
-<li>mode
-<li>layout
-<li>working set
-</ul>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00026.html b/tests/org.eclipse.team.tests.cvs.core/html/00026.html
deleted file mode 100644
index 3836925..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00026.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Sharing</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Sharing</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00027.html b/tests/org.eclipse.team.tests.cvs.core/html/00027.html
deleted file mode 100644
index d1d82b2..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00027.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<html><head><title>Sharing as a subfolder</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><body><h2>Sharing as a subfolder</h2>
-<p>Since: 3.0 M6<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p>
-
-<p>Perform the following steps:</p>
-<ol>
-  <li>Create a new project</li>
-  <li>Select Team>Share</li>
-  <li>Select a repository and click next</li>
-  <li>Enter a path with at least two segments as the remote module name</li>
-  <li>Click Finish</li>
-</ol>
-<p>Ensure that the project was shared properly (i.e. remote folders were created).
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00028.html b/tests/org.eclipse.team.tests.cvs.core/html/00028.html
deleted file mode 100644
index 2575c41..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00028.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<html><head><title>Reconnecting an existing project</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Reconnecting an existing project</h2>
-<p>Since: 3.0 M6<br>
-Last Modified: $Date: 2004/02/25 20:34:42 $</p><body>
-<p>
-The following scenario represents how a user would reconnect a project that does
-not contain CVS meta-data to it's remote counterpart. It is assumed that the local project 
-was derived from a previous version of the remote project but both the local project and
-the remote may have been modified since then.
-</p>
-<h3>Scenario 1: Existing location using project name</h3>
-<p>Perform the following steps:</p>
-<ol>
-  <li>Load an existing project (using Checkout or some other means)</li>
-  <li>Disconnect the project and indicate that CVS meta-data is to be deleted</li>
-  <li>Modify some local resources</li>
-  <li>Optionally, modify the remote contents of some resources using a separate checkout</li>
-  <li>Perform a Team>Share Project and select CVS (if there is more than one 
-  repository provider available).</li>
-  <li>Select the repository the project was loaded from and click Next.</li>
-  <li>Use the project name as the module name. Click Next.</li>
-  <li>In the tag page, select HEAD as the branch to share with and click Next</li>
-  <li>In the sharing page, only the files that do not have the same contents
-  as the server should appear. Perform a Mark as Merged or Commit on these 
-  files.
-  <li>Click Finish.</li>
-</ol>
-
-<h3>Scenario 1: New location using curstom module name</h3>
-<p>Perform the following steps:</p>
-<ol>
-  <li>Load an existing project using Checkout As and a different name</li>
-  <li>Disconnect the project and indicate that CVS meta-data is to be deleted</li>
-  <li>Discard the repository location<li>
-  <li>Modify some local resources</li>
-  <li>Optionally, modify the remote contents of some resources using a separate checkout</li>
-  <li>Perform a Team>Share Project and select CVS (if there is more than one 
-  repository provider available).</li>
-  <li>Select to create a new repository and click Next</li>
-  <li>Enter the repository information for the repository and click Next</li>
-  <li>Enter the name of the module that the project was loaded from. Click Next.</li>
-  <li>In the tag page, select HEAD as the branch to share with and click Next</li>
-  <li>In the sharing page, only the files that do not have the same contents
-  as the server should appear. Perform a Mark as Merged or Commit on these 
-  files.
-  <li>Click Finish.</li>
-</ol>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00028a.html b/tests/org.eclipse.team.tests.cvs.core/html/00028a.html
deleted file mode 100644
index f6ba486..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00028a.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html><head><title>SSH2</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>SSH2</h2>
-<p>
-Tests for the ssh2 connection method.<br>
-UNDER CONSTRUCTION
-</p>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00029.html b/tests/org.eclipse.team.tests.cvs.core/html/00029.html
deleted file mode 100644
index 5977ac6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00029.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Patching</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Patching</h2>
-<p>Since: 3.0 M6<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00029a.html b/tests/org.eclipse.team.tests.cvs.core/html/00029a.html
deleted file mode 100644
index b7bc112..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00029a.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html><head><title>Server version compatibiliity</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Server version compatibiliity</h2>
-<p>Since: M6<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-This test is to ensure that the ssh2 connection method properly delagates to ssh1
-when the server only supports ssh1. 
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00030.html b/tests/org.eclipse.team.tests.cvs.core/html/00030.html
deleted file mode 100644
index 6d78d13..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00030.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<html><head><title>Importing a zip over a shared project</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Importing a zip over a shared project</h2>
-<p>Since: 3.0 M6<br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-<p>This scenario captures one means of patching. It assumes that a zip file contains 
-a previous version of a project that has been modified in some way and added to
-a zip archive (without CVS directories).</p>
-
-<p>Perform the following steps:</p>
-<ol>
-  <li>Load the project from CVS (using Checkout or some other means)</li>
-  <li>Import the zip over the loaded project.</li>
-  <li>Ensure that the sync states are Outgoing for all resources from the zip file.</li>
-  <li>Ensure that all folders from the zip file (except new ones)
-  are marked as in-sync and all files (except new ones) are outgoing changes.
-  <li>Changing the comparison criteria to compare contents should not contact the server
-  and should leave only the resources that differ in the sync view. Perform a 
-  Mark As Merged and a Commit on these resources.</li>
-  <li>Changing the comparison criteria back to revision number will reveal all the files
-  whose content did not change, perform a Mark as merged on these resources followed by 
-  a Team>Update on the project in the Navigator (Note: This could be handled better).</li>
-  <li>After the update, ensure the project has no out-of-sync resources.</li>
-</ol>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00030a.html b/tests/org.eclipse.team.tests.cvs.core/html/00030a.html
deleted file mode 100644
index 15c1cb1..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00030a.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Proxies</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Proxies</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-Using HTTP and SOCKS5 proxies.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00031.html b/tests/org.eclipse.team.tests.cvs.core/html/00031.html
deleted file mode 100644
index 55006e2..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00031.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<html><head><title>Key Generation</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Key Generation</h2>
-<p>Since: <br>
-Last Modified: $Date: 2003/12/15 21:25:19 $</p><body>
-
-You should be able to generate private/public keys in the SSH2 preference
-page. Here are some scenarios for testing:
-<ul>
-<li>Generate keys and save private key without password. You should be prompted.
-<li>Generate keys and save private key with password. You shouldn't be prompted.
-<li>Generate keys and install using the sftp button.
-</ul>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00032.html b/tests/org.eclipse.team.tests.cvs.core/html/00032.html
deleted file mode 100644
index 93f8a0e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00032.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<html><head><title>General use</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>General use</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/01/13 18:46:26 $</p><body>
-
-This tests the prompting and usage of the SSH2 connection method:
-<ul>
-<li>Delete all files in your SSH_HOME directory. You can find this directory by opening the SSH2 preference page
-<li>Create a CVS repository connection of type 'extssh'. You will be prompting about the server id not being in 
-your known_hosts file.
-<li>Select cancel, and error should be shown indicating that the location was not validated do you want to keep it.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00033.html b/tests/org.eclipse.team.tests.cvs.core/html/00033.html
deleted file mode 100644
index 811c505..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00033.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Annotate</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Annotate</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/02/21 01:46:02 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00034.html b/tests/org.eclipse.team.tests.cvs.core/html/00034.html
deleted file mode 100644
index 9940287..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00034.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Show Annotation Action</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Show Annotation Action</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/02/21 01:46:02 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00035.html b/tests/org.eclipse.team.tests.cvs.core/html/00035.html
deleted file mode 100644
index acffdef..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00035.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Label Decorations</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Label Decorations</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/02/21 01:46:02 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00036.html b/tests/org.eclipse.team.tests.cvs.core/html/00036.html
deleted file mode 100644
index 80bda25..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00036.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Enablement at startup</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Enablement at startup</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/02/21 01:46:02 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00037.html b/tests/org.eclipse.team.tests.cvs.core/html/00037.html
deleted file mode 100644
index 2bd64b8..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00037.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Customizations</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Customizations</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/02/21 01:46:02 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00038.html b/tests/org.eclipse.team.tests.cvs.core/html/00038.html
deleted file mode 100644
index 6cd5065..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00038.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html><head><title>Decorations in the Synchronize pages</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Decorations in the Synchronize pages</h2>
-<p>Since: M8<br>
-Last Modified: $Date: 2004/02/25 20:34:42 $</p><body>
-
-CVS text label decorations should be visible in the CVS synchronize participants. We don't bother to show
-the images because the sync view already shows the state images. The labels should also update if the
-'show change in label' preference is changed.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00039.html b/tests/org.eclipse.team.tests.cvs.core/html/00039.html
deleted file mode 100644
index bd81940..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00039.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<html><head><title>Compare with another branch or version</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Compare with another branch or version</h2>
-<p>Since: M8<br>
-Last Modified: $Date: 2004/03/09 20:51:17 $</p><body>
-<p>
-You should be able to select a project/folder/resource and compare againts
-another branch or version. Multi-select should work across projects in 
-different repositories. Once the comparison is shown it should be possible to
-merge changes into the local workspace. It should also be possible to remember 
-the comparison, which will cause it to appear in the synchronize view.</p>
-<p>
-We should support multi-selection of files, but I'm not sure what should be
-shown to the user in those cases.</p>
-<h3>On file selected</h3>
-<ul>
-<li>If the file has differences open a compare editor and show otherwise a message is shown to indicate that the file is the same.
-<li>should be able to open the history view and link in to the opened compare editor
-<li>the compare editor should update when changes are made to the local file in some other context (e.g other editor, refactoring).
-</ul>
-
-<h3>Multiple selection</h3>
-<p>Entire contents of the folder are compared deep. If changes are found the user is notified and they are
-shown in a dialog. If no changes are found the user is notified. The dialog should allow the user to browse
-the changes and merge anything into his workspace. If the user wants to keep the comparison non-model, he
-can add it to the synchronize view. There is a button to do so on the compare dialog.</p>
-
-<h3>Merging changes</h3>
-<p>
-When the compare dialog is showing several changes you should be able to selectively merge anything into the local workspace. Specific attention should
-be made to the following cases:
-</p>
-<ul>
-<li>Edit the local then press ok. You should be prompted to save the changes and the changes should be correctly updated in the corresponding resource.
-<li>Edit the local and browse to another file. You should be prompted to save the changes.
-<li>Press the cancel button with changes, you should be prompted.
-</ul>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00040.html b/tests/org.eclipse.team.tests.cvs.core/html/00040.html
deleted file mode 100644
index 88a49f9..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00040.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Reverting deleted resources</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Reverting deleted resources</h2>
-<p>Since: M8<br>
-Last Modified: $Date: 2004/03/05 17:12:22 $</p><body>
-
-You should be able to restore a deleted revision from the CVS server. 
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00041.html b/tests/org.eclipse.team.tests.cvs.core/html/00041.html
deleted file mode 100644
index f04a15b..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00041.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html><head><title>File Revisions</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>File Revisions</h2>
-<p>Since: M8<br>
-Last Modified: $Date: 2004/03/09 20:51:17 $</p><body>
-
-<h3>Compare the local resource with other revisions</h3>
-<ul>
-<li>If the file isn't managed the action should no appear.
-<li>If the file doesn't have any revisions you should be prompted
-<li>If the file has revisions you should be prompted with the list of revisions in a compare dialog
-<li>In the compare dialog you can select any revision and merge changes into the local copy
-<li>If you edit the local resource then chose OK, you will be prompted to save changes. Ensure that the changes are saved correctly to the underlying resource.
-<li>Ensure that the titles are ok (e.g. dialog title, structure pane title...)
-</ul>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00042.html b/tests/org.eclipse.team.tests.cvs.core/html/00042.html
deleted file mode 100644
index c975656..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00042.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>CVS Console</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>CVS Console</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/05 17:12:22 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00043.html b/tests/org.eclipse.team.tests.cvs.core/html/00043.html
deleted file mode 100644
index e618f18..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00043.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<html><head><title>Preferences</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Preferences</h2>
-<p>Since: M8<br>
-Last Modified: $Date: 2004/03/05 17:12:22 $</p><body>
-
-There are a couple of preferences that controls the behavior and presentation of the console. These are:
-<ul>
-<li>font color: message color, error color, command line. Changing these should immediatly update the console view.
-</ul>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00044.html b/tests/org.eclipse.team.tests.cvs.core/html/00044.html
deleted file mode 100644
index b536252..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00044.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Replacing</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Replacing</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/05 17:12:22 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00045.html b/tests/org.eclipse.team.tests.cvs.core/html/00045.html
deleted file mode 100644
index 3312297..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00045.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>With latest</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>With latest</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/05 17:12:22 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00046.html b/tests/org.eclipse.team.tests.cvs.core/html/00046.html
deleted file mode 100644
index 951e231..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00046.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>With another branch of version</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>With another branch of version</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/05 17:12:22 $</p><body>
-
-Answer comes here.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00047.html b/tests/org.eclipse.team.tests.cvs.core/html/00047.html
deleted file mode 100644
index eb21ad4..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00047.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html><head><title>With file revision</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>With file revision</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/09 20:51:17 $</p><body>
-
-<h3>Replace the local resource with other revisions</h3>
-<ul>
-<li>If the file isn't managed the action should no appear.
-<li>If the file doesn't have any revisions you should be prompted
-<li>If the file has revisions you should be prompted with the list of revisions in a compare dialog
-<li>In the compare dialog you can select any revision and compare changes but merging isn't supported
-<li>If a revision is selected the Replace button should be enabled. Otherwise it should be disabled
-<li>If you selected the replace button the file should contain the contents of the revision selected. The dialog will also close.
-<li>Ensure that the titles are ok (e.g. dialog title, structure pane title...)
-</ul>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00048.html b/tests/org.eclipse.team.tests.cvs.core/html/00048.html
deleted file mode 100644
index 516f56f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00048.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<html><head><title>Refreshing with Remote</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Refreshing with Remote</h2>
-<p>Since: M8<br>
-Last Modified: $Date: 2004/03/05 17:12:22 $</p><body>
-
-
-<p>
-Synchronizing means ???
-</p>
-
-<h3>After a Synchronize has completed</h3>
-<p>Generally the sync view is shown AFTER the synchronize operation has completed. This way we don't interrupt the user's context. Why do
-people like to be prompted after? For some the synchronize operation can be very long, and they want to be told when they can view the 
-results.</p>
- <ul>
- <li>1st time and no changes, then simply prompt that there are no changes.
- <li>1st time and there are changes in the workspace, then prompt asking about perspective switch next enumerate the types of changes in the workspace, and open sync view.
- <li>other times and no changes, then simply prompt.
- <li>other times and changes, then prompt enumerating the types of changes in the workspace, and open sync view.
- <li>other times and changes and option to not prompt, open sync view.
- </ul>
-
-<p>
-There are a couple of reasons someone may want to synchronize with the remote. There are currently
-two ways of running the refresh operation:
-<ul>
-<li>Directly from the synchronize view
-<li>From Team > Synchronize with Repository
-</ul>
-</p>
-<h3>Notice a file is out-of-sync in another view (e.g. packages explorer, types) and want to see the changes</h3>
-<p>In case you can select a file, it will be refreshed with the server, and if changes are found the compare editor is opened
-that will allow browsing the changes. If no changes are found, you will be prompted.</p>
-
-<h3>From another view would like to browse the outgoing/incoming changes for several resources</h3>
-<p>Select a folder or group of files and Team > Synchronize will open the sync view and automatically refresh with
-the remote repository.</p>
-
-<h3>In the sync view and would like to refresh to see if there are new changes from the server</h3>
-<p>
-
-</p>
-
-Assumption, the sync view may or may not be open when the synchronize is performed. Maybe we need a different prompt
-each case. One for Team > Sync and another for refresh from the sync view.
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00049.html b/tests/org.eclipse.team.tests.cvs.core/html/00049.html
deleted file mode 100644
index ddd1fb2..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00049.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<html><head><title>Decorations</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Decorations</h2>
-<p>Since: M8<br>
-Last Modified: $Date: 2003/11/27 22:04:58 $</p><body>
-
-There are many standard decorations in the sync view. Most significant are the propagated flags.
-
-<h3>Conflicts</h3>
-<p>
-Conflicting changes should be propagated to parent resources such that you can easily see, when the tree
-is collapsed that there are conflicts. When the conflict is resolved, the parent conflict markers should be
-removed.
-</p>
-<h3>Error and Warning problem markers</h3>
-<p>
-Error and warning makers are shown on resources and propagated to parent resources such that you can
-easily see if you are releasing errors or warnings.
-</p>
-<h3>Branch changes</h3>
-<p>
-Changes to branches, revisions, should be updated automatically in the views decorators. For example, if you branch 
-from the sync view the branch name should appear.
-</p>
-
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/html/00050.html b/tests/org.eclipse.team.tests.cvs.core/html/00050.html
deleted file mode 100644
index d232bd0..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00050.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<html><head><title>Sharing a new project</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Sharing a new project</h2>
-<p>Since: 3.0 M8<br>
-Last Modified: $Date: 2003/11/27 22:04:58 $</p><body>
-
-<h3>Scenario 1: Existing location using project name</h3>
-<p>Perform the following steps:</p>
-<ol>
-  <li>Create a new project that does not exist in the repository</li>
-  <li>Select Team>Share and select CVS (if there is more than one 
-  repository provider available).</li>
-  <li>Select a repository and click Next</li>
-  <li>Use the project name as the module name. Click Next.</li>
-  <li>After a time, the last page should show the outgoing changes in the project.
-  Commit the changes from the synchronize pane.</li>
-  <li>Click Finish</li>
-</ol>
-
-<h3>Scenario 2: New location using different name</h3>
-<p>Perform the following steps:</p>
-<ol>
-  <li>Create a new project</li>
-  <li>Select Team>Share and select CVS (if there is more than one 
-  repository provider available).</li>
-  <li>Select to create a new repository and click Next</li>
-  <li>Enter the repository information for a new repository and click Next</li>
-  <li>Enter a single segment module name that does not exist in the repository and click Next.</li>
-  <li>After a time, the last page should show the outgoing changes in the project.
-  Commit the changes from the synchronize pane.</li>
-  <li>Click Finish</li>
-</ol>
-</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Core Tests.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Core Tests.launch
deleted file mode 100644
index 23bf310..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Core Tests.launch
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.team.tests.ccvs.core.AllCoreTests"/>
-<booleanAttribute key="tracing" value="false"/>
-<stringAttribute key="location1" value="C:\Eclipse\Latest-Eclipse-Drop\eclipse\runtime-test-workspace"/>
-<booleanAttribute key="default" value="true"/>
-<stringAttribute key="vmargs" value="-Declipse.cvs.properties=c:\eclipse\repository.properties -Declipse.cvs.testName2=testFileAdditions"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-</listAttribute>
-<booleanAttribute key="clearConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="onePluginID" value=""/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="progargs" value="-os win32 -ws win32 -arch x86 -nl en_CA"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.team.tests.cvs.core"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="onePlugin" value="false"/>
-<stringAttribute key="location0" value="C:\Eclipse\Latest-Eclipse-Drop\eclipse\runtime-test-workspace"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.debug.ui.javaSourceLocator"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS UI Tests.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS UI Tests.launch
deleted file mode 100644
index fac8b26..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS UI Tests.launch
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.team.tests.ccvs.core.AllTests"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="default" value="true"/>
-<stringAttribute key="vmargs" value="-Declipse.cvs.properties=c:\eclipse\repository.properties -Declipse.cvs.testName2=testFileAdditions"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.boot/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/filter/loader" value="*"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/actions" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/timing/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.team.ftp/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.boot/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug" value="false"/>
-<mapEntry key="org.eclipse.team.ftp/requests" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/monitor/listeners" value="false"/>
-<mapEntry key="org.eclipse.ant.core/debug" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes" value="false"/>
-<mapEntry key="org.eclipse.core.boot/trace/pluginActivation" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/ieadapter" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.core.boot/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug/dump" value=""/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug/resolve" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.core.boot/monitor/bundles" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug/events/plugin" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/part.activate" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/ieadapter/inprocess" value="false"/>
-<mapEntry key="org.eclipse.jface/trace/actions" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug/events/extension" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.core.boot/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/filter/resource" value="*"/>
-<mapEntry key="org.eclipse.team.ftp/list" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/activateplugin" value="false"/>
-<mapEntry key="org.eclipse.core.resources/monitor/builders" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/workbench.restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/part.create" value="false"/>
-<mapEntry key="org.eclipse.help/debug/protocols" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/filter/native" value="*"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/properties" 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.core.runtime/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.ftp/responses" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.boot/monitor/plugins" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/workbench.start" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/timing/startup" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ui/consolebuffering" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/failure" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.ant.core/buildfile/timing" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/perspective" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/config/debug" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/part.listeners" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/success" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/filter/class" value="*"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes/failure" value="false"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="progargs" value="-os win32 -ws win32 -arch x86 -nl en_CA"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.team.tests.cvs.core"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="maximized" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.debug.ui.javaSourceLocator"/>
-<stringAttribute key="location0" value="C:\Eclipse\Latest-Eclipse-Drop\eclipse\runtime-test-workspace"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.uitestapplication"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/One CVS Test.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/One CVS Test.launch
deleted file mode 100644
index 9e7fc4a..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/One CVS Test.launch
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.team.tests.ccvs.core.provider.ImportTest"/>
-<booleanAttribute key="tracing" value="false"/>
-<stringAttribute key="location1" value="C:\Eclipse\Latest-Eclipse-Drop\eclipse\runtime-test-workspace"/>
-<booleanAttribute key="default" value="true"/>
-<stringAttribute key="vmargs" value="-Declipse.cvs.properties=c:\eclipse\repository.properties -Declipse.cvs.testName=testCheckout"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="onePluginID" value=""/>
-<stringAttribute key="progargs" value="-os win32 -ws win32 -arch x86 -nl en_CA"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.team.tests.cvs.core"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="onePlugin" value="false"/>
-<stringAttribute key="location0" value="C:\Eclipse\Latest-Eclipse-Drop\eclipse\runtime-test-workspace"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.debug.ui.javaSourceLocator"/>
-</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 cbdd28e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/plugin.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.team.tests.cvs.core"
-   name="Eclipse CVS Tests Core"
-   version="3.0.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.eclipse.ui.ide" optional="true"/>
-      <import plugin="org.eclipse.ui.views" optional="true"/>
-      <import plugin="org.eclipse.jface.text" optional="true"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor" optional="true"/>
-      <import plugin="org.eclipse.ui.editors" optional="true"/>
-      <import plugin="org.eclipse.core.tests.harness"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/> 
-      <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">
-            </parameter>
-         </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>
-   <extension
-         point="org.eclipse.help.toc">
-      <toc
-            file="toc.xml"
-            primary="true">
-      </toc>
-   </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 d16695f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/repository.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
-###############################################################################
-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
-failLog=false
\ 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 0a93874..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/self-host.xml
+++ /dev/null
@@ -1,81 +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="_3.0.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"/>
-    <antcall target="org.eclipse.releng.tools"/>
-    <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.releng.tools">
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.releng.tools" />
-      <param name="jarName" value="tools.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/AllCoreTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllCoreTests.java
deleted file mode 100644
index d2c4320..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllCoreTests.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.team.tests.ccvs.core;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.team.tests.ccvs.core.cvsresources.AllTestsCVSResources;
-
-/**
- * Tests that don't require the Team UI plugin to be loaded.
- */
-public class AllCoreTests extends EclipseTest {
-
-	public AllCoreTests() {
-		super();
-	}
-
-	public AllCoreTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(AllTestsCVSResources.suite());
-		return new CVSTestSetup(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 0df86a5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTests.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.ccvs.core;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.team.tests.ccvs.core.provider.AllTestsProvider;
-import org.eclipse.team.tests.ccvs.core.subscriber.AllTestsTeamSubscriber;
-import org.eclipse.team.tests.ccvs.ui.AllUITests;
-
-public class AllTests extends EclipseTest {
-
-	public AllTests() {
-		super();
-	}
-
-	public AllTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(AllTestsProvider.suite());
-		suite.addTest(AllTestsTeamSubscriber.suite());
-		suite.addTest(AllUITests.suite());
-		return new CVSUITestSetup(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/CVSTestLogListener.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestLogListener.java
deleted file mode 100644
index ad874ff..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestLogListener.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-
-/**
- * Listener that accumulates test errors
- */
-public class CVSTestLogListener implements ILogListener {
-
-	Map errors = new HashMap();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.ILogListener#logging(org.eclipse.core.runtime.IStatus, java.lang.String)
-	 */
-	public void logging(IStatus status, String plugin) {
-		List pluginErrors = (List)errors.get(plugin);
-		if (pluginErrors == null) {
-			pluginErrors = new ArrayList();
-			errors.put(plugin, pluginErrors);
-		}
-		pluginErrors.add(status);
-	}
-
-	public void checkErrors() throws CoreException {
-		if (errors.isEmpty()) return;
-		List allErrors = new ArrayList();
-		for (Iterator iter = errors.values().iterator(); iter.hasNext();) {
-			allErrors.addAll((List)iter.next());
-		}
-		errors.clear();
-		if (allErrors.isEmpty()) return;
-		IStatus status = null;
-		if (allErrors.size() == 1) {
-			status = (IStatus)allErrors.get(0);
-			if (!status.isMultiStatus()) {
-				throw new CVSException(status);
-			}
-		}
-		if (status == null) {
-			status = new MultiStatus("org.eclipse.team.tests.cvs.core", 0, 
-					(IStatus[]) allErrors.toArray(new IStatus[allErrors.size()]), 
-					"Errors were logged during this test. Check the log file for details", null);
-		}
-		throw new CoreException(status);
-	}
-}
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 0d989f7..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestSetup.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.connection.CVSCommunicationException;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.util.KnownRepositories;
-
-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 final boolean FAIL_IF_EXCEPTION_LOGGED;
-	
-	public static final String READ_REPOSITORY_LOCATION;
-	public static final String WRITE_REPOSITORY_LOCATION;
-	
-	public static CVSRepositoryLocation repository;
-	public static CVSTestLogListener logListener;
-	
-	// Static initializer for constants
-	static {
-		loadProperties();
-		REPOSITORY_LOCATION = System.getProperty("eclipse.cvs.repository");
-		READ_REPOSITORY_LOCATION = System.getProperty("eclipse.cvs.repository.read");
-		WRITE_REPOSITORY_LOCATION = System.getProperty("eclipse.cvs.repository.write");
-		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"));
-		FAIL_IF_EXCEPTION_LOGGED = Boolean.valueOf(System.getProperty("eclipse.cvs.failLog", "true")).booleanValue();
-	}
-
-	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 CoreException {
-		if (repository == null) {
-			repository = setupRepository(REPOSITORY_LOCATION);
-		}
-		CVSProviderPlugin.getPlugin().setCompressionLevel(COMPRESSION_LEVEL);
-		// Add a log listener so we can ensure that nothing is logged during a test
-		if (logListener == null) {
-			logListener = new CVSTestLogListener();
-			Platform.addLogListener(logListener);
-		}
-	}
-
-	protected CVSRepositoryLocation setupRepository(String location) throws CVSException {
-		
-		// Validate that we can connect, also creates and caches the repository location. This
-		// is important for the UI tests.
-		CVSRepositoryLocation repository = (CVSRepositoryLocation)KnownRepositories.getInstance().getRepository(location);
-		KnownRepositories.getInstance().addRepository(repository, false);
-		repository.setUserAuthenticator(new TestsUserAuthenticator());
-		repository.setReadLocation(READ_REPOSITORY_LOCATION);
-		repository.setWriteLocation(WRITE_REPOSITORY_LOCATION);
-		
-		// Give some info about which repository the tests are running with
-		System.out.println("Connecting to: " + repository.getHost() + ":" + repository.getMethod().getName());
-		
-		try {
-			try {
-				repository.validateConnection(new NullProgressMonitor());
-			} catch (CVSCommunicationException e) {
-				// Try once more, just in case it is a transient server problem
-				repository.validateConnection(new NullProgressMonitor());
-			}
-		} catch (CVSException e) {
-			System.out.println("Unable to connect to remote repository: " + repository.toString());
-			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/CVSUITestSetup.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSUITestSetup.java
deleted file mode 100644
index 8222b0c..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSUITestSetup.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.eclipse.team.tests.ccvs.core;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.ui.PlatformUI;
-
-public class CVSUITestSetup extends CVSTestSetup implements Test {
-
-	public CVSUITestSetup(Test test) {
-		super(test);
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.extensions.TestSetup#setUp()
-	 */
-	public void setUp() throws CoreException {
-		super.setUp();
-		PlatformUI.getWorkbench().getDecoratorManager().setEnabled(CVSUIPlugin.DECORATOR_ID, true);
-	}
-}
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 3931795..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, true /* open for modification */);
-			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 a5a6384..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java
+++ /dev/null
@@ -1,915 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import junit.framework.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.tests.harness.EclipseWorkspaceTest;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.SubscriberSyncInfoCollector;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.*;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.connection.*;
-import org.eclipse.team.internal.ccvs.core.resources.*;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.SyncFileChangeListener;
-import org.eclipse.team.internal.ccvs.ui.operations.*;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class EclipseTest extends EclipseWorkspaceTest {
-
-	protected static IProgressMonitor DEFAULT_MONITOR = new NullProgressMonitor();
-	protected static final int RANDOM_CONTENT_SIZE = 3876;
-	protected static String eol = System.getProperty("line.separator");
-	
-	public static Test suite(Class c) {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(c);
-			return new CVSTestSetup(suite);
-		} else {
-			try {
-				return new CVSTestSetup((Test)c.getConstructor(new Class[] { String.class }).newInstance(new Object[] {testName}));
-			} catch (Exception e) {
-				fail(e.getMessage());
-				// Above will throw so below is never actually reached
-				return null;
-			}
-		}
-	}
-	
-	public EclipseTest() {
-		super();
-		if (eol == null) eol = "\n";
-	}
-
-	public EclipseTest(String name) {
-		super(name);
-		if (eol == null) eol = "\n";
-	}
-
-	/*
-	 * 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;
-		String contents = getFileContents(file);
-		StringBuffer buffer = new StringBuffer();
-		if (prepend) {
-			buffer.append(text);
-		}
-		buffer.append(contents);
-		if (!prepend) {
-			buffer.append(eol + text);
-		}
-		setContentsAndEnsureModified(file, buffer.toString());
-	}
-	
-	public void assertEndsWith(IFile file, String text) throws IOException, CoreException {
-		assertTrue(getFileContents(file).endsWith(text));		
-	}
-	
-	public void assertStartsWith(IFile file, String text) throws IOException, CoreException {
-		assertTrue(getFileContents(file).startsWith(text));		
-	}
-	
-	public static String getFileContents(IFile file) throws IOException, CoreException {
-		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();		
-	}
-	
-	/**
-	 * 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;
-	}
-	
-	
-	protected void replace(IContainer container, String[] hierarchy, CVSTag tag, boolean recurse) throws CoreException {
-		IResource[] resources = getResources(container, hierarchy);
-		replace(resources, tag, recurse);
-	}
-	
-	protected void replace(IResource[] resources, CVSTag tag, boolean recurse) throws CoreException {
-		ReplaceOperation op = new ReplaceOperation(null, resources, tag, recurse);
-		executeHeadless(op);
-	}
-	
-	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((IWorkbenchPart)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);
-		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());
-		checkout(getRepository(), copy, 
-			CVSWorkspaceRoot.getCVSFolderFor(project).getFolderSyncInfo().getRepository(), 
-			tag, DEFAULT_MONITOR);
-		return copy;
-	 }
-	 
-	public static void checkout(
-		final ICVSRepositoryLocation repository,
-		final IProject project,
-		final String sourceModule,
-		final CVSTag tag,
-		IProgressMonitor monitor)
-		throws TeamException {
-		
-		RemoteFolder remote = new RemoteFolder(null, repository, sourceModule == null ? project.getName() : sourceModule, tag);
-		executeHeadless(new CheckoutSingleProjectOperation(null, remote, project, null, false /* the project is not preconfigured */) {
-			public boolean promptToOverwrite(String title, String msg) {
-				return true;
-			}
-		});
-
-	}
-
-	protected IProject checkoutProject(IProject project, String moduleName, CVSTag tag) throws TeamException {
-	 	if (project == null)
-	 		project = getWorkspace().getRoot().getProject(new Path(moduleName).lastSegment());
-		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;
-	}
-	
-	/*
-	 * Create a test project using the currently running test case as the project name prefix
-	 */
-	protected IProject createProject(String[] strings) throws TeamException, CoreException {
-		return createProject(getName(), strings);
-	}
-	
-	/*
-	 * 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) {
-			if (info1 == info2) return;
-			if (info1 == null) {
-				fail("Expected no resource sync info  for " + path.toString() + " but it was " + info2 + " instead");
-			}
-			if (info2 == null) {
-				fail("Expected resource sync info of " + info1 + " for " + path.toString() + " but there was no sync info.");
-			}
-			fail("Shouldn't be able to get here");
-			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('/'));
-		}
-		assertEquals("Resource Sync info differs for " + path.toString(), line1, 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() + eol);
-		}
-		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, true /* open for modification */);
-		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 {
-		mapNewProject(project);
-		commitNewProject(project);
-	}
-	
-	protected void mapNewProject(IProject project) throws TeamException {
-		shareProject(getRepository(), project, null, DEFAULT_MONITOR);
-	}
-	
-	/**
-	 * Map the given local project to remote folder, creating the remote folder or any of
-	 * its ancestors as necessary.
-	 * @param location
-	 * @param project
-	 * @param moduleName
-	 * @param default_monitor
-	 */
-	protected void shareProject(CVSRepositoryLocation location, IProject project, String moduleName, IProgressMonitor default_monitor) throws CVSException {
-		ShareProjectOperation op = new ShareProjectOperation(null, location, project, moduleName);
-		executeHeadless(op);
-	}
-	
-	protected void commitNewProject(IProject project) throws CoreException, CVSException, TeamException {
-		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");
-		}
-	}
-	
-	public static void waitForJobCompletion(Job job) {
-		// process UI events first, give the main thread a chance
-		// to handle any syncExecs or asyncExecs posted as a result
-		// of the event processing thread.
-		while (Display.getCurrent().readAndDispatch()) {};
-		
-		// wait for the event handler to process changes.
-		while(job.getState() != Job.NONE) {
-			while (Display.getCurrent().readAndDispatch()) {};
-			try {
-				Thread.sleep(10);		
-			} catch (InterruptedException e) {
-			}
-		}
-		while (Display.getCurrent().readAndDispatch()) {};
-	}
-	
-	public static void waitForIgnoreFileHandling() {
-		waitForJobCompletion(SyncFileChangeListener.getDeferredHandler().getEventHandlerJob());
-	}
-	
-	public static void waitForSubscriberInputHandling(SubscriberSyncInfoCollector input) {
-		input.waitForCollector(new IProgressMonitor() {
-			public void beginTask(String name, int totalWork) {
-			}
-			public void done() {
-			}
-			public void internalWorked(double work) {
-			}
-			public boolean isCanceled() {
-				return false;
-			}
-			public void setCanceled(boolean value) {
-			}
-			public void setTaskName(String name) {
-			}
-			public void subTask(String name) {
-			}
-			public void worked(int work) {
-				while (Display.getCurrent().readAndDispatch()) {}
-			}
-		});
-	}
-
-	protected static void executeHeadless(CVSOperation op) throws CVSException {
-		try {
-			try {
-				// Bypass contxt by executing run(IProgressMonitor) directly
-				op.run(DEFAULT_MONITOR);
-			} catch (InvocationTargetException e1) {
-				throw CVSException.wrapException(e1);
-			}
-		} catch (InterruptedException e) {
-			throw new OperationCanceledException();
-		}
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		if (CVSTestSetup.logListener != null) {
-			try {
-				CVSTestSetup.logListener.checkErrors();
-			} catch (CoreException e) {
-				if (CVSTestSetup.FAIL_IF_EXCEPTION_LOGGED) {
-					fail("Exception written to log: ", e);
-				} else {
-					// Write the log to standard out so it can be more easily seen
-					write(e.getStatus(), 0);
-				}
-			}
-		}
-	}
-
-	protected void write(IStatus status, int indent) {
-		PrintStream output = System.out;
-		indent(output, indent);
-		output.println("Severity: " + status.getSeverity());
-
-		indent(output, indent);
-		output.println("Plugin ID: " + status.getPlugin());
-
-		indent(output, indent);
-		output.println("Code: " + status.getCode());
-
-		indent(output, indent);
-		output.println("Message: " + status.getMessage());
-		
-		Throwable t = status.getException();
-		if (t != null) {
-			t.printStackTrace(output);
-			if (t instanceof CoreException) {
-				write(((CoreException)t).getStatus(), indent + 1);
-			}
-		}
-
-		if (status.isMultiStatus()) {
-			IStatus[] children = status.getChildren();
-			for (int i = 0; i < children.length; i++)
-				write(children[i], indent + 1);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#runBare()
-	 */
-	public void runBare() throws Throwable {
-		try {
-			super.runBare();
-		} catch (CVSException e) {
-			// If a communication exception occurred
-			// perhaps it is a server problem
-			// Try again, just in case it is
-			if (containsCommunicationException(e)) {
-				super.runBare();
-			} else {
-				throw e;
-			}
-		}
-	}
-
-	private boolean containsCommunicationException(CVSException e) {
-		if (e instanceof CVSCommunicationException) return true;
-		IStatus status = e.getStatus();
-		if (status.getException() instanceof CVSCommunicationException) return true;
-		if (status.isMultiStatus()) {
-			IStatus[] children = status.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				IStatus child = children[i];
-				if (child.getException() instanceof CVSCommunicationException) return true;
-			}
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.harness.EclipseWorkspaceTest#ensureDoesNotExistInWorkspace(org.eclipse.core.resources.IResource)
-	 */
-	public void ensureDoesNotExistInWorkspace(IResource resource) {
-		// Overridden to change how the workspace is deleted on teardown
-		if (resource.getType() == IResource.ROOT) {
-			// Delete each project individually
-			Job[] allJobs = Platform.getJobManager().find(null /* all families */);
-			IProject[] projects = ((IWorkspaceRoot)resource).getProjects();
-			try {
-				ensureDoesNotExistInWorkspace(projects);
-			} catch (AssertionFailedError e) {
-				// The delete failed. Write the active jobs to stdout
-				System.out.println("Jobs active at time of deletion failure: "); //$NON-NLS-1$
-				if (allJobs.length == 0) {
-					System.out.println("None"); //$NON-NLS-1$
-				}
-				for (int i = 0; i < allJobs.length; i++) {
-					Job job = allJobs[i];
-					System.out.println(job.getName());
-				}
-				if (CVSTestSetup.FAIL_IF_EXCEPTION_LOGGED) {
-					throw e;
-				}
-			}
-		} else {
-			super.ensureDoesNotExistInWorkspace(resource);
-		}
-	}
-
-}
-
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/TestsUserAuthenticator.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestsUserAuthenticator.java
deleted file mode 100644
index 576e446..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestsUserAuthenticator.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.core;
-
-import org.eclipse.team.internal.ccvs.core.*;
-
-/**
- * A test authenticator that provide defaults for all methods.
- */
-public class TestsUserAuthenticator implements IUserAuthenticator {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IUserAuthenticator#promptForUserInfo(org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, org.eclipse.team.internal.ccvs.core.IUserInfo, java.lang.String)
-	 */
-	public void promptForUserInfo(ICVSRepositoryLocation location, IUserInfo userInfo, String message) throws CVSException {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IUserAuthenticator#prompt(org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, int, java.lang.String, java.lang.String, int[], int)
-	 */
-	public int prompt(ICVSRepositoryLocation location, int promptType, String title, String message, int[] promptResponses, int defaultResponseIndex) {
-		return defaultResponseIndex;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IUserAuthenticator#promptForKeyboradInteractive(org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, java.lang.String, java.lang.String, java.lang.String, java.lang.String[], boolean[])
-	 */
-	public String[] promptForKeyboradInteractive(ICVSRepositoryLocation location, String destination, String name, String instruction, String[] prompt, boolean[] echo) throws CVSException {
-		return prompt;
-	}
-}
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 011c092..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/BatchedTestSetup.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.team.tests.ccvs.core.cvsresources;
-
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-
-public class BatchedTestSetup extends TestSetup {
-	private ISchedulingRule rule;
-
-	public BatchedTestSetup(Test test) {
-		super(test);
-	}
-
-	public void setUp() throws CVSException {
-		rule = EclipseSynchronizer.getInstance().beginBatching(ResourcesPlugin.getWorkspace().getRoot(), null);
-	}
-	
-	public void tearDown() throws CVSException {
-		EclipseSynchronizer.getInstance().endBatching(rule, 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 f938909..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseSynchronizerTest.java
+++ /dev/null
@@ -1,750 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.IResourceVisitor;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-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.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-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();
-		// Setting should not be an error but sync info should always be null
-		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);
-		waitForIgnoreFileHandling();
-		
-		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", ":pserver:user@host:/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);
-		}
-	}
-	
-	/**
-	 * Create a test project whose name is derived from the currently running test case.
-	 * The resources are built using the names supplied in the given String array.
-	 * Paths ending in / will be folders while others will be files. Intermediate folders
-	 * are created as needed. Dummy sync info is applied to all created resources and
-	 * the project is mapped to the CVS repository provider.
-	 * @param resourcePaths paths of resources to be generated
-	 * @return the create project
-	 */
-	protected IProject createProject(String[] resourcePaths) throws CoreException {
-		// Create the project and build the resources
-		IProject project = getUniqueTestProject(getName());
-		buildResources(project, resourcePaths, true);
-		
-		// Associate dummy sync info with al create resources
-		project.accept(new IResourceVisitor() {
-			public boolean visit(IResource resource) throws CoreException {
-				if (resource.getType() != IResource.PROJECT) {
-					sync.setResourceSync(resource, dummyResourceSync(resource));
-				}
-				if (resource.getType() != IResource.FILE) {
-					sync.setFolderSync((IContainer)resource, dummyFolderSync((IContainer)resource));
-				}
-				return true;
-			}
-		});
-		
-		// Map the project to CVS so the Move/Delete hook works
-		RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
-		return project;
-	}
-	
-	/**
-	 * Assert that the resources at the given resource paths have sync info.
-	 * Also assert that the ancestors of the resources also have sync info
-	 * @param project the project containing the resources
-	 * @param resourcePaths the project relative resource paths
-	 * @throws CVSException
-	 */
-	protected void assertHasSyncInfo(IProject project, String[] resourcePaths) throws CVSException {
-		for (int i = 0; i < resourcePaths.length; i++) {
-			String path = resourcePaths[i];
-			IResource resource = findResource(project, path);
-			assertHasSyncInfo(resource);
-		}
-	}
-
-	private IResource findResource(IProject project, String path) {
-		IResource resource = project.findMember(path);
-		if (resource == null) {
-			if (path.charAt(path.length()-1) == Path.SEPARATOR)
-				resource = (IResource) project.getFolder(path);
-			else
-				resource = (IResource) project.getFile(path);
-		}
-		return resource;
-	}
-
-	/**
-	 * Assert that the resource and its ancestors have sync info
-	 * @param resource the resource being queried
-	 * @throws CVSException
-	 */
-	protected void assertHasSyncInfo(IResource resource) throws CVSException {
-		if (resource.getType() == IResource.ROOT) return;
-		if (resource.getType() != IResource.FILE) {
-			assertNotNull("Folder should have folder sync info but does not: " + resource.getProjectRelativePath(), sync.getFolderSync((IContainer)resource));
-		}
-		if (resource.getType() != IResource.PROJECT) {
-			assertNotNull("Resource should have sync bytes but does not: " + resource.getProjectRelativePath(), sync.getSyncBytes(resource));
-			assertHasSyncInfo(resource.getParent());
-		}
-	}
-	
-	/**
-	 * Assert that the resources at the given resource paths do not have sync info.
-	 * Also assert that the descendants of the resources also do not have sync info
-	 * @param project
-	 * @param resourcePaths
-	 * @throws CVSException
-	 */
-	private void assertHasNoSyncInfo(IProject project, String[] resourcePaths) throws CoreException {
-		for (int i = 0; i < resourcePaths.length; i++) {
-			String path = resourcePaths[i];
-			IResource resource = findResource(project, path);
-			assertHasNoSyncInfo(resource);
-		}
-	}
-	
-	protected void assertHasNoSyncInfo(IResource resource) throws CoreException {
-		if (resource.getType() == IResource.ROOT) return;
-		if (resource.getType() != IResource.FILE) {
-			assertNull("Folder should not have folder sync but does: " + resource.getProjectRelativePath(), sync.getFolderSync((IContainer)resource));
-			IResource[] members = ((IContainer)resource).members();
-			for (int i = 0; i < members.length; i++) {
-				IResource child = members[i];
-				assertHasNoSyncInfo(child);
-			}
-		}
-		if (resource.getType() != IResource.PROJECT) {
-			assertNull("Resource should not have sync bytes but does: " + resource.getProjectRelativePath(), sync.getSyncBytes(resource));
-		}
-	}
-
-	public void testDeleteFile() throws CoreException {
-		// Create a project with dummy sync info
-		IProject project =  createProject(new String[] {"folder1/folder2/file1", "folder1/folder2/file2"});
-		
-		// Delete the file and assert old sync info is still in place and new has no sync info
-		IFile file = project.getFile("folder1/folder2/file1");
-		file.delete(false, false, null);
-		assertHasSyncInfo(project, new String[] {"folder1/folder2/file1"});
-	}
-	
-	public void testDeleteFolder() throws CoreException {
-		// Create a project with dummy sync info
-		IProject project =  createProject(new String[] {"folder1/folder2/file1", "folder1/folder2/file2"});
-		
-		// Delete the folder and assert old sync info is still in place and new has no sync info
-		IFolder folder = project.getFolder("folder1/folder2/");
-		folder.delete(false, false, null);
-		assertHasSyncInfo(project, new String[] {"folder1/folder2/file1", "folder1/folder2/file2"});
-	}
-	
-	public void testMoveFile() throws CoreException {
-		// Create a project with dummy sync info
-		IProject project =  createProject(new String[] {"folder1/folder2/file1", "folder1/folder2/file2"});
-		
-		// Move the file and assert old sync info is still in place and new has no sync info
-		IFile file = project.getFile("folder1/folder2/file1");
-		project.getFolder("folder1/folder3/").create(false, true, null);
-		file.move(project.getFolder("folder1/folder3/file1").getFullPath(), false, null);
-		assertHasSyncInfo(project, new String[] {"folder1/folder2/file1"});
-		assertHasNoSyncInfo(project, new String[] {"folder1/folder3"});
-	}
-	
-	public void testMoveFolder() throws CoreException {
-		// Create a project with dummy sync info
-		IProject project =  createProject(new String[] {"folder1/folder2/file1"});
-		
-		// Move the folder and assert old sync info is still in place and new has no sync info
-		IFolder folder = project.getFolder("folder1/folder2/");
-		folder.move(project.getFolder("folder1/folder3").getFullPath(), false, null);
-		assertHasSyncInfo(project, new String[] {"folder1/folder2/file1"});
-		assertHasNoSyncInfo(project, new String[] {"folder1/folder3/"});
-	}
-	
-	/*
-	 * See bug 44446
-	 */
-	public void testFileRecreation() throws CoreException {
-		// Create a project with dummy sync info
-		IProject project =  createProject(new String[] {"folder1/file1"});
-		
-		// Remove the file and assert that it still has sync info
-		IFile file = project.getFile("folder1/file1");
-		file.delete(false, false, null);
-		assertHasSyncInfo(file);
-		
-		// Recreate the file and assert that it still has sync info
-		file.create(getRandomContents(), false /*force*/, null);
-		assertHasSyncInfo(file);
-		
-		// unmanage the file and assert that sync info is gone
-		sync.deleteResourceSync(file);
-		assertHasNoSyncInfo(file);
-	}
-	
-	/*
-	 * This testcase simulates an update that has an incoming deletion and a merge 
-	 * (which may do a move).
-	 */
-	public void testFileMoveAndDelete() throws CoreException {
-		// Create a project with dummy sync info
-		final IProject project =  createProject(new String[] {"folder1/file1", "folder1/file2"});
-		
-		sync.run(project, new ICVSRunnable() {
-			public void run(IProgressMonitor monitor) throws CVSException {
-				try {
-					IFile file1 = project.getFile("folder1/file1");
-					IFile file2 = project.getFile("folder1/file2");
-					// Delete file 1
-					file1.delete(false, false, null);
-					assertHasSyncInfo(file1);
-					assertHasSyncInfo(file2);
-					sync.deleteResourceSync(file1);
-					assertHasNoSyncInfo(file1);
-					assertHasSyncInfo(file2);
-					// Move file 2
-					file2.move(new Path("file3"), false, false, null);
-					assertHasNoSyncInfo(file1);
-					assertHasSyncInfo(file2);
-				} catch (CoreException e) {
-					throw CVSException.wrapException(e);
-				}
-			}
-		}, null);
-	}
-	
-	public void testMoveFolderOverFolder() throws CoreException {
-		// Create a project with dummy sync info
-		final IProject project =  createProject(new String[] {"folder1/file1", "folder2/file1"});
-		
-		// Change the sync info of folder1/file1 to be revision 1.9
-		String revision = "1.9";
-		IFile file11 = project.getFile("folder1/file1");
-		ResourceSyncInfo info = sync.getResourceSync(file11);
-		MutableResourceSyncInfo muttable = info.cloneMutable();
-		muttable.setRevision(revision);
-		sync.setResourceSync(file11, muttable);
-		
-		// Move the folder and verify that the sync info stays
-		project.getFolder("folder2").delete(false, false, null);
-		project.getFolder("folder1").move(new Path("folder2"), false, false, null);
-		assertHasSyncInfo(file11);
-		IFile file21 = project.getFile("folder2/file1");
-		assertHasSyncInfo(file21);
-		assertTrue(sync.getResourceSync(file11).getRevision().equals(revision));
-		assertTrue(!sync.getResourceSync(file21).getRevision().equals(revision));
-		
-	}
-}
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 1956138..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncBytesTest.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-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 = KnownRepositories.getInstance().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, false /* read-only */);
-		
-		// 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 1e7d9ad..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncInfoTest.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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() {
-		
-		// testing malformed entry lines first
-		try {
-			new ResourceSyncInfo("//////", null, null);			
-			fail();
-		} catch(CVSException e) {
-			// Error expected
-		}
-		try {
-			new ResourceSyncInfo("//1.1///", null, null);			
-			fail();
-		} catch(CVSException e) {
-			// Error expected
-		}
-		try {
-			new ResourceSyncInfo("/file.txt////", null, null);			
-			fail();
-		} catch(CVSException e) {
-			// Error expected
-		}
-		try {
-			new ResourceSyncInfo("/file.txt//////////", null, null);			
-			fail();
-		} catch(CVSException e) {
-			// Error expected
-		}
-	}
-	
-	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());
-		
-		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);
-		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));
-	}
-	
-	public void testRevisionComparison() {
-		assertTrue(ResourceSyncInfo.isLaterRevision("1.9", "1.8"));
-		assertTrue( ! ResourceSyncInfo.isLaterRevision("1.8", "1.8"));
-		assertTrue( ! ResourceSyncInfo.isLaterRevision("1.8", "1.9"));
-		
-		assertTrue(ResourceSyncInfo.isLaterRevision("1.8.1.2", "1.8"));
-		assertTrue( ! ResourceSyncInfo.isLaterRevision("1.8", "1.8.1.2"));
-		assertTrue( ! ResourceSyncInfo.isLaterRevision("1.8.1.2", "1.7"));
-		
-		assertTrue( ! ResourceSyncInfo.isLaterRevision("0", "1.1"));
-		assertTrue(ResourceSyncInfo.isLaterRevision("1.1", "0"));
-	}
-	
-	public void testRevisionOnBranchComparison() throws CVSException {
-		ResourceSyncInfo syncInfo1 = new ResourceSyncInfo("/name/1.5/dummy timestamp//", null, null);
-		ResourceSyncInfo syncInfo2 = new ResourceSyncInfo("/name/1.4/dummy timestamp//", null, null);
-		
-		ResourceSyncInfo syncInfo3 = new ResourceSyncInfo("/name/1.4.1.2/dummy timestamp//Nb1", null, null);
-		ResourceSyncInfo syncInfo4 = new ResourceSyncInfo("/name/1.4/dummy timestamp//Nb1", null, null);
-		
-		ResourceSyncInfo syncInfo5 = new ResourceSyncInfo("/name/1.4.1.2/dummy timestamp//Tv1", null, null);
-		
-		assertTrue(ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo1.getBytes(), syncInfo2.getBytes()));
-		assertTrue( ! ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo2.getBytes(), syncInfo1.getBytes()));
-		assertTrue( ! ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo1.getBytes(), syncInfo1.getBytes()));
-		
-		assertTrue(ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo3.getBytes(), syncInfo4.getBytes()));
-		assertTrue( ! ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo4.getBytes(), syncInfo3.getBytes()));
-		assertTrue( ! ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo4.getBytes(), syncInfo4.getBytes()));
-		
-		assertTrue( ! ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo5.getBytes(), syncInfo4.getBytes()));
-		assertTrue( ! ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo4.getBytes(), syncInfo5.getBytes()));
-		assertTrue( ! ResourceSyncInfo.isLaterRevisionOnSameBranch(syncInfo5.getBytes(), syncInfo5.getBytes()));
-	}
-}
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 594b6c7..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/AllTestsProvider.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.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;
-
-public class AllTestsProvider extends EclipseTest {
-
-	public AllTestsProvider() {
-		super();
-	}
-
-	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(ResourceDeltaTest.suite());
-		suite.addTest(WatchEditTest.suite());
-		suite.addTest(LinkResourcesTest.suite());
-		suite.addTest(IsModifiedTests.suite());
-		return new CVSTestSetup(suite);
-	}
-}
\ No newline at end of file
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 31c55b7..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java
+++ /dev/null
@@ -1,551 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-import java.util.HashMap;
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.*;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-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.syncinfo.ResourceSyncInfo;
-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() {
-		return suite(CVSProviderTest.class);
-	}
-	
-	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
-		replace(new IResource[] {copy}, null, true);
-		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);
-		
-		IFileTypeInfo[] infos = Team.getDefaultTypes();
-		String[] extensions = new String[infos.length];
-		int[] types = new int[infos.length];
-		for (int i = 0; i < infos.length; i++) {
-			IFileTypeInfo info = infos[i];
-			extensions[i] = info.getExtension();
-			types[i] = info.getType();
-		}
-		Team.setAllTypes(extensions, types);
-	}
-	
-	public void testKeywordSubsBinToText() throws TeamException, CoreException, IOException {
-		//create a test project
-		KSubstOption ksubst = Command.KSUBST_TEXT;
-		IProject project = createProject("testKeywordSubsBinToText", new String[] { "dummy" });
-		assertHasKSubstOption(project, "dummy", Command.KSUBST_BINARY);
-	
-		// change keyword substitution
-		Map map = new HashMap();
-		map.put(project.getFile("dummy"), ksubst);
-		
-		// change from binary to text should commit a new file with 
-		waitMsec(1500);
-		IStatus status = getProvider(project).setKeywordSubstitution(map, null, null);
-		assertTrue("Status should be ok, was: " + status.toString(), status.isOK());
-		assertHasKSubstOption(project, "dummy", ksubst);
-
-		IProject copy = checkoutCopy(project, "-copy");
-		assertHasKSubstOption(copy, "dummy", ksubst);
-		assertEquals(project, copy);		 		
-	}
-	
-	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 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) {
-			}
-	}
-	
-	public void testTagExistsFailure() throws TeamException, CoreException, IOException {
-		IProject project = createProject(new String[] { "a.txt", "b.txt" });
-		CVSTag tag = new CVSTag("v1", CVSTag.VERSION);
-		tagProject(project, tag, false);
-		
-		setContentsAndEnsureModified(project.getFile("a.txt"));
-		commitProject(project);
-		
-		try {
-			tagProject(project, tag, false/* don't force */);
-			fail("The tag should have failed since the tag already exists.");
-		} catch (TeamException e) {
-			// This is what we expected
-			assertTrue("This exception should be an error", e.getStatus().getSeverity() == IStatus.ERROR);
-		}
-		
-		tagProject(project, tag, true /* force */);
-		IProject copy = checkoutCopy(project, tag);
-		assertEquals(project, copy);
-	}
-	
-	public void testUpdateWithOverwrite() throws TeamException, CoreException {
-		// Create a project and ad an unmanaged resource
-		IProject project = createProject(new String[] { "a.txt", "b.txt" });
-		buildResources(project, new String[] { "new.txt" }, false);
-		// Checkout a copy and commit the same resource
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "new.txt" }, true);
-		IStatus status;
-		try {
-			// Use the regular update and ensure that it fails
-			status = executeCommand(project, Command.UPDATE, Command.NO_LOCAL_OPTIONS);
-			fail();
-		} catch (CVSException e) {
-			// This is expected as the creation of the file failed;
-		}
-		// Use the update and overwrite and ensure that it works
-		status = executeCommand(project, Command.REPLACE, Command.NO_LOCAL_OPTIONS);
-		assertTrue(status.isOK());
-	}
-
-	private IStatus executeCommand(IProject project, Update update, LocalOption[] options) throws CVSException {
-		Session session = new Session(getRepository(), CVSWorkspaceRoot.getCVSFolderFor(project));
-		session.open(DEFAULT_MONITOR);
-		try {
-			return update.execute(
-					session,
-					Command.NO_GLOBAL_OPTIONS, 
-					options, 
-					new String[] { "." },
-					null,
-					DEFAULT_MONITOR);
-		} finally {
-			session.close();
-		}
-		
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ConcurrencyTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ConcurrencyTests.java
deleted file mode 100644
index 120f6e6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ConcurrencyTests.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.team.tests.ccvs.core.provider;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-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.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.operations.FetchMembersOperation;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class ConcurrencyTests extends EclipseTest {
-
-	public ConcurrencyTests() {
-		super();
-	}
-
-	public ConcurrencyTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(ConcurrencyTests.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new ConcurrencyTests(testName));
-		}
-	}
-	
-	public void testBackgroundMemberFetch() throws CoreException, InvocationTargetException, InterruptedException {
-		IProject project = createProject("testBackgroundMemberFetch", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-		ICVSRemoteFolder folder = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project);
-		final List result = new ArrayList(); 
-		final boolean[] done = new boolean[] { false };
-		IElementCollector collector = new IElementCollector() {
-			public void add(Object element, IProgressMonitor monitor) {
-				result.add(element);
-			}
-			public void add(Object[] elements, IProgressMonitor monitor) {
-				result.addAll(Arrays.asList(elements));
-			}
-			public void done() {
-				done[0] = true;
-			}
-		};
-		
-		FetchMembersOperation operation = new FetchMembersOperation(null, folder, collector) {
-			public void done(IJobChangeEvent event) {
-				done[0] = true;
-				super.done(event);
-			}
-		};
-		operation.run();
-		int count = 0;
-		while (!done[0]) {
-			Thread.sleep(1000);
-			count++;
-			if (count > 5) {
-				fail("Fetch of memebers didn't complete in " + count + " seconds");
-			}
-		}
-		assertTrue(result.size() == project.members().length);
-		for (Iterator iter = result.iterator(); iter.hasNext();) {
-			ICVSRemoteResource remote = (ICVSRemoteResource) iter.next();
-			IResource local = project.findMember(remote.getName());
-			assertNotNull(local);
-		}
-	}
-}
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 c74dbd5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ImportTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.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");
-		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"));
-		
-
-	}
-	
-	public void testRootShare() throws CoreException {
-		// Create a test project 
-		IProject project = getUniqueTestProject(getName());
-		IResource[] result = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/a.txt" }, true);
-		// Share the project
-		shareProject(getRepository(), project, null, DEFAULT_MONITOR);
-		addResources(project, new String[] { "file1.txt", "folder1/", "folder1/a.txt" }, true);
-		// Checkout a copy ans test
-		IProject copy = checkoutProject(getUniqueTestProject(getName() + "copy"), project.getName(), null);
-		assertEquals(project, copy);
-	}
-	
-	public void testNonRootShare() throws CoreException {
-		// Create a test project 
-		IProject project = getUniqueTestProject(getName());
-		IResource[] result = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/a.txt" }, true);
-		// Share it as a non-root folder in the repository
-		String moduleName = "root" + Long.toString(System.currentTimeMillis()) + "/" + project.getName();
-		shareProject(getRepository(), project, moduleName, DEFAULT_MONITOR);
-		addResources(project, new String[] { "file1.txt", "folder1/", "folder1/a.txt" }, true);
-		// Checkout a copy and test
-		IProject copy = checkoutProject(getUniqueTestProject(getName() + "copy"), moduleName, null);
-		assertEquals(project, copy);
-	}
-}
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 fc73b50..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java
+++ /dev/null
@@ -1,561 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.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.internal.ccvs.core.util.ResourceStateChangeListeners;
-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());
-			}
-		}
-		public void externalSyncInfoChange(IResource[] changedResources) {
-			resourceSyncInfoChanged(changedResources);	
-		}
-		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();
-		ResourceStateChangeListeners.getListener().addResourceStateChangeListener(listener);
-	}
-
-	/**
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		previouslyModified.clear();
-		changedResources.clear();
-		ResourceStateChangeListeners.getListener().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));
-			}
-		}
-		waitForIgnoreFileHandling();
-		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);
-		replace(new IResource[] {project.getFile("changed.txt")}, null, true);
-		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);
-		replace(new IResource[] {project.getFile("changed.txt")}, null, true);
-		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);
-		replace(new IResource[] {project.getFile("folder1/deleted.txt"), project.getFile("folder1/a.txt")}, null, true);
-		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);
-	}
-	
-	public void testIgnoredAfterCheckout() throws TeamException, CoreException {
-		// Bug 43938
-		// Create a project and add a .cvsignore to it
-		IProject project = createProject("testIgnoredAfterCheckout", new String[] { ".changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		project.getFile(".cvsignore").create(new ByteArrayInputStream("ignored".getBytes()), false, DEFAULT_MONITOR);
-		getProvider(project).add(new IResource[] {project.getFile(".cvsignore")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		commitProject(project);
-		assertModificationState(project, null, true);
-		project.getFolder("ignored").create(false, true, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		
-		// Checkout a copy and add the file to ensure it is ignored
-		// Check the project out under a different name
-		IProject copy = checkoutCopy(project, "-copy");
-		assertModificationState(copy, null, true);
-		copy.getFolder("ignored").create(false, true, DEFAULT_MONITOR);
-		assertModificationState(copy, 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 76833fc..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/LinkResourcesTest.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.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.ICVSFolder;
-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.FolderSyncInfo;
-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);
-		
-		// Add CVS info to the project so the map doesn't log an error
-		ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(project);
-		cvsFolder.setFolderSyncInfo(new FolderSyncInfo("repo/root", ":pserver:name@host:/root", null, false));
-		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, 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 7c5d357..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ModuleTest.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-
-import org.eclipse.core.internal.plugins.PluginDescriptor;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.*;
-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.*;
-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, true /* open for modification */);
-		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);
-		ICVSRemoteResource tree = CVSWorkspaceRoot.getRemoteTree(project1, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project1), tree, false, false);
-		RemoteModule module = getRemoteModule("project1");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree, 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);
-		ICVSRemoteResource tree = CVSWorkspaceRoot.getRemoteTree(docs, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(docs), tree, false, false);
-		RemoteModule module = getRemoteModule("docs");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree, module, false);
-		
-		IProject macros = checkoutProject("macros", null);
-		tree = CVSWorkspaceRoot.getRemoteTree(macros, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(macros), tree, false, false);
-		module = getRemoteModule("macros");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree, 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);
-		ICVSRemoteResource tree = CVSWorkspaceRoot.getRemoteTree(project2, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project2), tree, false, false);
-
-		RemoteModule module = getRemoteModule("project2");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree, module, false);
-
-		project2 = checkoutProject("project2-only", null);
-		tree = CVSWorkspaceRoot.getRemoteTree(project2, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project2), tree, false, false);
-
-		module = getRemoteModule("project2-only");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree, 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);
-		ICVSRemoteResource tree = CVSWorkspaceRoot.getRemoteTree(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.getRemoteTree(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.getRemoteTree(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);
-		ICVSRemoteResource tree = CVSWorkspaceRoot.getRemoteTree(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.getRemoteTree(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.getRemoteTree(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 425187f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.lang.reflect.InvocationTargetException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.variants.IResourceVariant;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.*;
-import org.eclipse.team.internal.ccvs.ui.operations.CheckoutToRemoteFolderOperation;
-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() {
-		return suite(RemoteResourceTest.class);
-	}
-	
-	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 {
-		ICVSRemoteResource[] 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
-		ICVSRemoteResource tree = CVSWorkspaceRoot.getRemoteTree(project, v1Tag, DEFAULT_MONITOR);
-
-		// Check out the project version
-		project = checkoutCopy(project, v1Tag);
-		
-		// Compare the two
-		assertEquals(Path.EMPTY, tree, (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"});
-		
-		IResourceVariant remote = (IResourceVariant)CVSWorkspaceRoot.getRemoteResourceFor(file);
-		InputStream in = remote.getStorage(DEFAULT_MONITOR).getContents();
-		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);
-//	 }
-	 
-	 public void testCheckoutIntoRemoteFolder() throws CoreException, IOException, CVSException, InvocationTargetException, InterruptedException {
-	 	IProject project = createProject(new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-	 	
-	 	ICVSRemoteFolder remote = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project);
-	 	remote = checkoutRemote(remote);
-	 	assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project), remote, false, true);
-	 	
-	 	// Try a version
-	 	CVSTag tag = new CVSTag("v1", CVSTag.VERSION);
-	 	tagProject(project, tag, false);
-	 	IProject copy = checkoutCopy(project, tag);
-	 	setContentsAndEnsureModified(project.getFile("file1.txt"));
-	 	commitProject(project);
-	 	remote = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project);
-	 	((RemoteFolder)remote).setTag(tag);
-	 	remote = checkoutRemote(remote);
-	 	assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(copy), remote, false, true);
-	 }
-
-	private ICVSRemoteFolder checkoutRemote(ICVSRemoteFolder remote) throws CVSException, InvocationTargetException, InterruptedException {
-		return CheckoutToRemoteFolderOperation.checkoutRemoteFolder(null, remote, DEFAULT_MONITOR);
-	}
-	
-	public void testContentFetchForLocalDeletion() throws TeamException, IOException, CoreException {
-		IProject project = createProject(new String[] { "file1.txt"});
-		String contents = "the file contents";
-		setContentsAndEnsureModified(project.getFile("file1.txt"), contents);
-		commitProject(project);
-		project.getFile("file1.txt").delete(false, null);
-		IResourceVariant remote = (IResourceVariant)CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("file1.txt"));
-		String fetchedContents = asString(remote.getStorage(DEFAULT_MONITOR).getContents());
-		assertEquals("Contents do not match", contents, fetchedContents);
-	}
-
-	/**
-	 * @param stream
-	 * @return
-	 */
-	private String asString(InputStream stream) throws IOException {
-		StringBuffer buffer = new StringBuffer();
-		int b = stream.read();
-		while (b != -1) {
-			buffer.append((char)b);
-			b = stream.read();
-		}
-		return buffer.toString();
-	}
-}
-
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/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 4368eb5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/AllTestsTeamSubscriber.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.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;
-import org.eclipse.team.tests.ccvs.ui.SynchronizeViewTestAdapter;
-
-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());
-		suite.addTest(CVSCompareSubscriberTest.suite());
-		suite.addTest(SyncSetTests.suite());
-		CVSSyncSubscriberTest.setSyncSource(new SynchronizeViewTestAdapter());
-		return new CVSTestSetup(suite);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSCompareSubscriberTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSCompareSubscriberTest.java
deleted file mode 100644
index 90d9d41..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSCompareSubscriberTest.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.core.subscriber;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.synchronize.SyncInfo;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-/**
- * Tests the CVSMergeSubscriber
- */
-public class CVSCompareSubscriberTest extends CVSSyncSubscriberTest {
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(CVSCompareSubscriberTest.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new CVSCompareSubscriberTest(testName));
-		}
-	}
-
-	public CVSCompareSubscriberTest() {
-		super();
-	}
-
-	public CVSCompareSubscriberTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Test the basic changes that can occur when comparing the local workspace to a remote
-	 * lineup.
-	 */
-	public void testStandardChanges() throws InvocationTargetException, InterruptedException, CVSException, CoreException, IOException {
-		// Create a test project
-		IProject project = createProject("testCompareChanges", new String[]{"file1.txt", "file2.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/deleted.txt"});
-		// Checkout and branch a copy
-		CVSTag tag = new CVSTag("v1", CVSTag.VERSION);
-		tagProject(project, tag, true);
-		// Modify the workspace
-		addResources(project, new String[]{"addition.txt", "folderAddition/", "folderAddition/new.txt"}, true);
-		deleteResources(project, new String[]{"folder1/a.txt"}, true);
-		deleteResources(project, new String[] {"folder2/"}, true);
-		// modify file1 - make two revisions
-		appendText(project.getFile("file1.txt"), "Appended text 1", false);
-		commitProject(project);
-		appendText(project.getFile("file1.txt"), "Appended text 2", false);
-		commitProject(project);
-		// modify file2 in both branch and head and ensure it's merged properly 
-		appendText(project.getFile("file2.txt"), "appened text", false);
-		commitProject(project);
-		// create a merge subscriber
-		CVSCompareSubscriber subscriber = getSyncInfoSource().createCompareSubscriber(project, tag);
-		// check the sync states
-		assertSyncEquals("testIncomingChanges", subscriber, project, 
-				new String[]{
-				"file1.txt", 
-				"file2.txt", 
-				"folder1/",
-				"folder1/b.txt",
-				"folder1/a.txt", 
-				"addition.txt", 
-				"folderAddition/", 
-				"folderAddition/new.txt", 
-				"folder2/",
-				"folder2/deleted.txt"}, true, 
-				new int[]{
-				SyncInfo.CHANGE, 
-				SyncInfo.CHANGE, 
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.ADDITION, 
-				SyncInfo.DELETION, 
-				SyncInfo.IN_SYNC, 
-				SyncInfo.DELETION,
-				SyncInfo.IN_SYNC,
-				SyncInfo.ADDITION});
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		getSyncInfoSource().tearDown();
-		super.tearDown();
-	}
-}
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 0b01cf0..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSMergeSubscriberTest.java
+++ /dev/null
@@ -1,529 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 java.lang.reflect.InvocationTargetException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.Subscriber;
-import org.eclipse.team.core.synchronize.SyncInfo;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-
-/**
- * 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;
-	}
-	
-	private void mergeResources(CVSMergeSubscriber subscriber, IProject project, String[] resourcePaths, boolean allowOverwrite) throws CoreException, TeamException, InvocationTargetException, InterruptedException {
-		IResource[] resources = getResources(project, resourcePaths);
-		SyncInfo[] infos = createSyncInfos(subscriber, resources);
-		mergeResources(subscriber, infos, allowOverwrite);
-	}
-	
-	private void mergeResources(Subscriber subscriber, SyncInfo[] infos, boolean allowOverwrite) throws TeamException, InvocationTargetException, InterruptedException {
-		TestMergeUpdateOperation action = new TestMergeUpdateOperation(getElements(infos), allowOverwrite);
-		action.run(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 InvocationTargetException, InterruptedException, CVSException, CoreException, IOException {
-		// Create a test project
-		IProject project = createProject("testIncomingChanges", new String[] { "file1.txt", "file2.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);
-		
-		// modify file1 - make two revisions
-		appendText(copy.getFile("file1.txt"), "Appended text 1", false);
-		commitProject(copy);
-		appendText(copy.getFile("file1.txt"), "Appended text 2", false);
-		commitProject(copy);
-		
-		// modify file2 in both branch and head and ensure it's merged properly 
-		appendText(copy.getFile("file2.txt"), "appened text", false);
-		commitProject(copy);
-		appendText(project.getFile("file2.txt"), "prefixed text", true);
-		commitProject(project);		
-				
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = getSyncInfoSource().createMergeSubscriber(project, root, branch);
-		
-		// check the sync states
-		assertSyncEquals("testIncomingChanges", subscriber, project, 
-				new String[]{"file1.txt", "file2.txt", "folder1/", "folder1/a.txt", "addition.txt", "folderAddition/", "folderAddition/new.txt"}, 
-				true, 
-				new int[]{
-						SyncInfo.INCOMING |	SyncInfo.CHANGE, 
-						SyncInfo.CONFLICTING |	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", "file2.txt", "folder1/a.txt", "addition.txt", "folderAddition/", "folderAddition/new.txt"}, true);		
-
-		// check the sync states for the workspace subscriber
-		assertSyncEquals("testIncomingChanges", getWorkspaceSubscriber(), project, 
-				new String[] { "file1.txt", "file2.txt", "folder1/", "folder1/a.txt", "addition.txt", "folderAddition/", "folderAddition/new.txt"}, 
-				true, new int[] {
-						SyncInfo.OUTGOING | SyncInfo.CHANGE,
-						SyncInfo.OUTGOING | SyncInfo.CHANGE,
-						SyncInfo.IN_SYNC,
-						SyncInfo.OUTGOING  | SyncInfo.DELETION,
-						SyncInfo.OUTGOING | SyncInfo.ADDITION,
-						SyncInfo.IN_SYNC,
-						SyncInfo.OUTGOING | SyncInfo.ADDITION});
-	
-		assertEndsWith(project.getFile("file1.txt"), "Appended text 1" + eol + "Appended text 2");
-		assertStartsWith(project.getFile("file2.txt"), "prefixed text");
-		assertEndsWith(project.getFile("file2.txt"), "appened text");
-	}
-	
-	/**
-	 * This tests tests that the cvs update command is sent properly with the two -j options to merge
-	 * contents between two revisions into the workspaoce.
-	 */
-	public void test46007() throws InvocationTargetException, InterruptedException, CVSException, CoreException, IOException {
-		// Create a test project
-		IProject project = createProject("test46007", new String[] { "file1.txt" });
-		appendText(project.getFile("file1.txt"), "dummy", true);
-		commitProject(project);
-				
-		// 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 file1
-		appendText(copy.getFile("file1.txt"), "Appended text 1", true);
-		commitProject(copy);
-		
-		CVSTag root2 = new CVSTag("v1", CVSTag.VERSION);
-		tagProject(copy, root2, true);
-		appendText(copy.getFile("file1.txt"), "Appended text 2", false);
-		commitProject(copy);
-		CVSTag root3 = new CVSTag("v2", CVSTag.VERSION);
-		tagProject(copy, root3, true);
-		
-		CVSMergeSubscriber subscriber = getSyncInfoSource().createMergeSubscriber(project, root2, root3);
-		assertSyncEquals("test46007", subscriber, project, 
-				new String[]{"file1.txt"}, 
-				true, 
-				new int[]{SyncInfo.CONFLICTING | SyncInfo.CHANGE});
-		
-		mergeResources(subscriber, project, new String[]{"file1.txt"}, true);		
-
-		assertSyncEquals("test46007", getWorkspaceSubscriber(), project, 
-				new String[] { "file1.txt"}, 
-				true, new int[] {SyncInfo.OUTGOING | SyncInfo.CHANGE});
-		
-		// the change made before v1 in the branch should not of been merged into the
-		// workspace since the start/end points do not include those changed. Hence,
-		// the two -j options sent to the cvs server.
-		assertEndsWith(project.getFile("file1.txt"), "Appended text 2");
-		assertStartsWith(project.getFile("file1.txt"), "dummy");
-	}	
-	
-	public void testMergableConflicts() throws IOException, TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// 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 = getSyncInfoSource().createMergeSubscriber(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"}, 
-		false /* allow overwrite */);
-		
-		// 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 IOException, TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// 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 = getSyncInfoSource().createMergeSubscriber(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"}, true /* allow overwrite */);
-		
-		// 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?
-	}
-	
-	public void testLocalScrub() throws IOException, TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// Create a test project
-		IProject project = createProject("testLocalScrub", 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);
-		
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = getSyncInfoSource().createMergeSubscriber(project, root, branch);
-		
-		// check the sync states
-		assertSyncEquals("testLocalScrub", subscriber, project, 
-				new String[] { "delete.txt", "file1.txt", "file2.txt", "addition.txt", "folder1/a.txt", "folder1/b.txt"}, 
-				true, new int[] {
-							  SyncInfo.INCOMING | SyncInfo.DELETION,
-							  		SyncInfo.INCOMING | SyncInfo.CHANGE, 
-							  		SyncInfo.INCOMING | SyncInfo.CHANGE,
-							  		SyncInfo.INCOMING | SyncInfo.ADDITION,
-							  		SyncInfo.INCOMING | SyncInfo.DELETION,
-							  		SyncInfo.INCOMING | SyncInfo.CHANGE});
-		
-		// scrub the project contents
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++) {
-			IResource resource = members[i];
-			if (resource.getName().equals(".project")) continue;
-			resource.delete(false, DEFAULT_MONITOR);
-		}
-		
-		// update
-		mergeResources(subscriber, project, 
-				new String[] { 
-						   "delete.txt", 
-						   		"file1.txt", 
-						   		"file2.txt", 
-						   		"addition.txt", 
-						   		"folder1/a.txt",
-		"folder1/b.txt"}, 
-		true /* allow overwrite */);
-		
-		// commit
-		commitProject(project);
-	}
-	
-	public void testBug37546MergeWantsToDeleteNewDirectories() throws CVSException, CoreException {		
-		IProject project = createProject("testBug37546", new String[]{"file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		setContentsAndEnsureModified(project.getFile("file1.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
-		addResources(branchedProject, new String[] {"folder2/", "folder2/c.txt"}, true);
-		
-		// modify HEAD and add the same folder
-		addResources(project, new String[] {"folder2/"}, true);
-		addResources(project, new String[] {"folder3/"}, true);
-		addResources(project, new String[] {"folder4/", "folder4/d.txt"}, false);
-		
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = getSyncInfoSource().createMergeSubscriber(project, root, branch);
-		
-		assertSyncEquals("testBug37546", subscriber, project, 
-				new String[]{"folder2/", "folder2/c.txt", "folder3/", "folder4/", "folder4/d.txt"}, true, 
-				new int[]{
-						SyncInfo.IN_SYNC, 
-								SyncInfo.INCOMING | SyncInfo.ADDITION,
-								SyncInfo.IN_SYNC, SyncInfo.IN_SYNC, SyncInfo.IN_SYNC});		
-	}
-	
-	/*Bug 53129  
-	   Outgoing deletions in deleted folders are lost.
-	 */
-	public void testOutgoingDeletionAfterMergeBug53129() throws TeamException, CoreException, InvocationTargetException, InterruptedException {		
-		IProject project = createProject("testBug53129", new String[]{"file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		setContentsAndEnsureModified(project.getFile("file1.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
-		deleteResources(branchedProject, new String[] {"folder1/a.txt", "folder1/b.txt"}, true);
-		
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = getSyncInfoSource().createMergeSubscriber(project, root, branch);
-		
-		assertSyncEquals("testBug53129 - 1", subscriber, project, 
-				new String[]{"file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"}, true, 
-				new int[]{
-						SyncInfo.IN_SYNC, SyncInfo.IN_SYNC,
-						SyncInfo.INCOMING | SyncInfo.DELETION,
-						SyncInfo.INCOMING | SyncInfo.DELETION});
-		
-		mergeResources(subscriber, project, new String[]{"folder1/a.txt", "folder1/b.txt"}, true);
-		
-		assertSyncEquals("testBug53129 - 2", getWorkspaceSubscriber(), project, 
-				new String[]{"file1.txt", "folder1", "folder1/a.txt", "folder1/b.txt"}, true, 
-				new int[]{
-						SyncInfo.IN_SYNC, SyncInfo.IN_SYNC, 
-						SyncInfo.OUTGOING | SyncInfo.DELETION,
-						SyncInfo.OUTGOING | SyncInfo.DELETION});
-		
-		IFolder f = project.getFolder("folder1");
-		f.delete(true, null);
-		
-		assertSyncEquals("testBug53129 - 3", getWorkspaceSubscriber(), project, 
-				new String[]{"file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"}, true, 
-				new int[]{
-						SyncInfo.IN_SYNC, 
-						SyncInfo.IN_SYNC,
-						SyncInfo.OUTGOING | SyncInfo.DELETION,
-						SyncInfo.OUTGOING | SyncInfo.DELETION});
-	}
-	
-	public void testDisconnectingProject() throws CoreException, IOException, TeamException, InterruptedException {
-		// Create a test project (which commits it as well)
-		//		Create a test project
-		IProject project = createProject("testDisconnect", 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);
-		
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = getSyncInfoSource().createMergeSubscriber(project, root, branch);
-		
-		RepositoryProvider.unmap(project);
-		assertProjectRemoved(subscriber, project);
-	}
-	
-	public void testMarkAsMerged() throws IOException, TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// Create a test project
-		IProject project = createProject("testMarkAsMerged", 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"));
-		setContentsAndEnsureModified(project.getFile("delete.txt"));
-		addResources(project, new String[] {"addition.txt"}, false);
-		appendText(project.getFile("file2.txt"), "conflict line\n", false);
-		
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = getSyncInfoSource().createMergeSubscriber(project, root, branch);
-		
-		// check the sync states
-		assertSyncEquals("testMarkAsMergedConflicts", subscriber, project, 
-				new String[] { "delete.txt", "file1.txt", "file2.txt", "addition.txt", "folder1/a.txt"}, 
-				true, new int[] {
-							  SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-							  		SyncInfo.CONFLICTING | SyncInfo.CHANGE, 
-							  		SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-							  		SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-							  		SyncInfo.CONFLICTING | SyncInfo.CHANGE});
-		
-		markAsMerged(subscriber, project, new String[] { "delete.txt", "file1.txt", "file2.txt", "addition.txt", "folder1/a.txt"});
-		
-		// check the sync states
-		assertSyncEquals("testMarkAsMerged", subscriber, project, 
-				new String[] { "delete.txt", "file1.txt", "file2.txt", "addition.txt", "folder1/a.txt"}, 
-				true, new int[] {
-							  SyncInfo.IN_SYNC,
-							  		SyncInfo.IN_SYNC, 
-							  		SyncInfo.IN_SYNC,
-							  		SyncInfo.IN_SYNC,
-							  		SyncInfo.IN_SYNC});				
-	} 
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		getSyncInfoSource().tearDown();
-		super.tearDown();
-	}
-}
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 0496a4d..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSSyncSubscriberTest.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import junit.framework.AssertionFailedError;
-
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.synchronize.SyncInfo;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber;
-import org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberConfirmMergedOperation;
-import org.eclipse.team.internal.ui.synchronize.SyncInfoModelElement;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-import org.eclipse.team.tests.ccvs.ui.SynchronizeViewTestAdapter;
-
-/**
- * Provides test methods common to CVS sync subscribers
- */
-public abstract class CVSSyncSubscriberTest extends EclipseTest {
-
-	private ISubscriberChangeListener listener;
-	private List accumulatedTeamDeltas = new ArrayList();
-	private static SyncInfoSource source = new SynchronizeViewTestAdapter();
-
-	public CVSSyncSubscriberTest() {
-		super();
-	}
-	
-	public CVSSyncSubscriberTest(String name) {
-		super(name);
-	}
-
-	public static void setSyncSource(SyncInfoSource newSource) {
-		source = newSource;
-	}
-	
-	protected Subscriber getWorkspaceSubscriber() throws TeamException {
-		Subscriber subscriber = CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber();
-		if (subscriber == null) fail("The CVS sync subsciber is not registered");
-		return subscriber;
-	}
-	
-	public SyncInfoSource getSyncInfoSource() {
-		assertNotNull(source);
-		return source;
-	}
-	
-	protected void refresh(Subscriber subscriber, IResource resource) throws TeamException {
-		getSyncInfoSource().refresh(subscriber, resource);
-	}
-	
-	/*
-	 * 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, Subscriber 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, Subscriber subscriber, IResource resource, int syncKind) throws TeamException {
-		int conflictTypeMask = 0x0F; // ignore manual and auto merge sync types for now.
-		SyncInfo info = getSyncInfo(subscriber, resource);
-		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 " + 
-				   SyncInfo.kindToString(kindOther) + " but was " +
-				   SyncInfo.kindToString(kind), kind == kindOther);
-	}
-	
-	protected SyncInfo getSyncInfo(Subscriber subscriber, IResource resource) throws TeamException {
-		return getSyncInfoSource().getSyncInfo(subscriber, resource);
-	}
-
-	/**
-	 * @param changes
-	 * @param resources
-	 */
-	protected void assertSyncChangesMatch(ISubscriberChangeEvent[] 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++) {
-				ISubscriberChangeEvent 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 ISubscriberChangeEvent[] deregisterSubscriberListener(Subscriber subscriber) throws TeamException {
-		subscriber.removeListener(listener);
-		return (ISubscriberChangeEvent[]) accumulatedTeamDeltas.toArray(new SubscriberChangeEvent[accumulatedTeamDeltas.size()]);
-	}
-
-	protected ISubscriberChangeListener registerSubscriberListener(Subscriber subscriber) throws TeamException {
-		listener = new ISubscriberChangeListener() {
-			public void subscriberResourceChanged(ISubscriberChangeEvent[] deltas) {
-				accumulatedTeamDeltas.addAll(Arrays.asList(deltas));
-			}
-		};
-		accumulatedTeamDeltas.clear();
-		subscriber.addListener(listener);
-		return listener;
-	}
-	
-	protected SyncInfo[] createSyncInfos(Subscriber subscriber, IResource[] resources) throws TeamException {
-		SyncInfo[] result = new SyncInfo[resources.length];
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			result[i] = getSyncInfo(subscriber, resource);
-		}
-		return result;
-	}
-
-	protected void assertProjectRemoved(Subscriber subscriber, IProject project) throws TeamException {
-		getSyncInfoSource().assertProjectRemoved(subscriber, project);
-	}
-	
-	protected void markAsMerged(CVSSyncTreeSubscriber subscriber, IProject project, String[] resourcePaths) throws CoreException, TeamException, InvocationTargetException, InterruptedException {
-		IResource[] resources = getResources(project, resourcePaths);
-		SyncInfo[] infos = createSyncInfos(subscriber, resources);
-		new SubscriberConfirmMergedOperation(null, getElements(infos)).run(DEFAULT_MONITOR);
-	}
-
-	protected IDiffElement[] getElements(SyncInfo[] infos) {
-		SyncInfoModelElement[] elements = new SyncInfoModelElement[infos.length];
-		for (int i = 0; i < elements.length; i++) {
-			elements[i] = new SyncInfoModelElement(null, infos[i]);
-		}
-		return elements;
-	}
-}
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 ebf74c5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSWorkspaceSubscriberTest.java
+++ /dev/null
@@ -1,1317 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.*;
-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.core.subscribers.ISubscriberChangeEvent;
-import org.eclipse.team.core.synchronize.SyncInfo;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-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.subscriber.CVSSubscriberOperation;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-/**
- * 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));
-		}
-	}
-	
-	protected CVSSyncTreeSubscriber getSubscriber() throws TeamException {
-		return (CVSSyncTreeSubscriber)getWorkspaceSubscriber();
-	}
-	
-	/* (non-Javadoc)
-	 * 
-	 * The shareProject method is invoked when creating new projects.
-	 * @see org.eclipse.team.tests.ccvs.core.EclipseTest#shareProject(org.eclipse.core.resources.IProject)
-	 */
-	protected void shareProject(final IProject project) throws TeamException, CoreException {
-		mapNewProject(project);
-		// Everything should be outgoing addition except he project
-		assertSyncEquals(project.getName(), getSubscriber(), project, SyncInfo.IN_SYNC);
-		assertAllSyncEquals(project.members(true), SyncInfo.OUTGOING | SyncInfo.ADDITION, IResource.DEPTH_INFINITE);
-
-		commitNewProject(project);
-		// Everything should be in-sync
-		assertAllSyncEquals(project, SyncInfo.IN_SYNC, IResource.DEPTH_INFINITE);
-	}
-	
-	protected void assertAllSyncEquals(final IResource rootResource, final int kind, int depth) throws CoreException {
-		if (!rootResource.exists() && !rootResource.isPhantom()) {
-			assertTrue(kind == SyncInfo.IN_SYNC);
-			return;
-		}
-		rootResource.accept(new IResourceVisitor() {
-			public boolean visit(IResource resource) throws CoreException {
-				assertSyncEquals(rootResource.getName(), getSubscriber(), resource, kind);
-				return true;
-			}
-		}, depth, true);
-	}
-	
-	private void assertAllSyncEquals(IResource[] resources, int kind, int depth) throws CoreException {
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			assertAllSyncEquals(resource, kind, depth);
-		}
-	}
-	
-	/* (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 refresh, int[] kinds) throws CoreException, TeamException {
-		assertSyncEquals(string, getSubscriber(), project, strings, refresh, kinds);
-	}
-	
-	private void assertSyncEquals(IProject project, String[] strings, boolean refresh, int[] kinds) throws CoreException, TeamException {
-		assertSyncEquals(getName(), getSubscriber(), project, strings, refresh, kinds);
-	}
-	
-	private void assertSyncEquals(String message, IResource resource, int syncKind) throws TeamException {
-		assertSyncEquals(message, getSubscriber(), resource, syncKind);
-		
-	}
-
-	/* (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);
-		ISubscriberChangeEvent[] 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);
-		ISubscriberChangeEvent[] changes = deregisterSubscriberListener();
-		assertSyncChangesMatch(changes, affected);
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			// After deletion, folders should be in-sync while files should be outgoing deletions
-			if (resource.getType() == IResource.FILE) {
-				assertSyncEquals("Delete", resource, SyncInfo.OUTGOING | SyncInfo.DELETION);
-			} else {
-				assertSyncEquals("Delete", resource, SyncInfo.IN_SYNC);
-			}
-		}
-	}
-	
-	private ISubscriberChangeEvent[] 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);
-		ISubscriberChangeEvent[] 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);
-		ISubscriberChangeEvent[] 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);
-		}
-	}
-	
-	/******************************************************************
-	 * Subscriber Actions: commit/update and overide and commit/update
-	 * These actions are those contributed to the Synchronize View by
-	 * the CVS plugin.
-	 ******************************************************************/
-	private SyncInfo[] createSyncInfos(IResource[] resources) throws TeamException {
-		return createSyncInfos(getSubscriber(), resources);
-	}
-	
-	public IResource[] update(IContainer container, String[] hierarchy) throws CoreException, TeamException, InvocationTargetException, InterruptedException {
-		IResource[] resources = getResources(container, hierarchy);
-		runSubscriberOperation(new TestUpdateOperation(getElements(resources)));
-		return resources;
-	}
-
-	public IResource[] commit(IContainer container, String[] hierarchy) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		runSubscriberOperation(new TestCommitOperation(getElements(resources), false /* override */));
-		return resources;
-	}
-
-	public IResource[] overrideAndUpdate(IContainer container, String[] hierarchy, boolean shouldPrompt) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		TestOverrideAndUpdateOperation action = new TestOverrideAndUpdateOperation(getElements(resources));
-		runSubscriberOperation(action);
-		assertTrue(shouldPrompt == action.isPrompted());			
-		return resources;
-	}
-	
-	public IResource[] overrideAndCommit(IContainer container, String[] hierarchy, boolean shouldPrompt) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		TestCommitOperation action = new TestCommitOperation(getElements(resources), true /* override */);
-		runSubscriberOperation(action);
-		//assertTrue(shouldPrompt == action.isPrompted());			
-		return resources;
-	}
-	
-	protected IDiffElement[] getElements(IResource[] resources) throws CoreException {
-		SyncInfo[] syncResources = createSyncInfos(resources);
-		return getElements(syncResources);
-	}
-	
-	private void runSubscriberOperation(CVSSubscriberOperation op) throws CoreException {
-		try {
-			op.run(DEFAULT_MONITOR);
-		} catch (InvocationTargetException e) {
-			throw CVSException.wrapException(e);
-		} catch (InterruptedException e) {
-			fail("Operation was interupted");
-		}
-	}
-
-	/******************************************************************
-	 * Tests
-	 ******************************************************************/
-	
-	/*
-	 * Perform a simple test that checks for the different types of incoming changes
-	 */
-	public void testIncomingChanges() throws IOException, TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// 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
-		update(
-			project, 
-			new String[] {
-				"folder1/a.txt", 
-				"folder1/b.txt", 
-				"folder2/", 
-				"folder2/folder3/", 
-				"folder2/folder3/add.txt"});
-		
-		// 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
-		commit(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"});
-	}
-	
-	public void testOverideAndUpdateSimple() throws CVSException, CoreException, IOException {
-		 IProject project = createProject("testOutgoingChangesOverideAndUpdate", 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("testOutgoingChangesOverwrite", 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});
-			
-		 // Revert the changes
-		 overrideAndUpdate(project, new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, true /* should prompt */);
-	
-		 // Ensure we're in sync
-		 assertSyncEquals("testOutgoingChangesOverwrite", 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 is re-created
-		 assertExistsInWorkspace("testOutgoingChangesOverwrite", project.getFile(new Path("folder1/b.txt")));
-
-		// Test conflicting changes
-		IProject copy = checkoutCopy(project, "-copy");
-		appendText(copy.getFile("file1.txt"), "prefix" + eol, 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"), eol + "postfix", 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 });
-		
-		// Revert the changes
-		overrideAndUpdate(project, new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, true /* should prompt */);
-
-		assertSyncEquals("testFileConflict", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC});
-	}
-	
-	/*
-	 * Perform a simple test that checks for the different types of outgoing changes
-	 */
-	public void testOverrideOutgoingChanges() throws IOException, TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// 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});
-				
-		// Override the changes
-		overrideAndUpdate(
-			project, 
-			new String[] {
-				"folder1/a.txt", 
-				"folder1/b.txt", 
-				"folder2/folder3/add.txt"},
-			true /* should prompt */);
-		
-		// 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});
-				
-		commit(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 IOException, TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testFileConflict", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Set the contents of file1.txt to ensure proper merging
-		setContentsAndEnsureModified(project.getFile("file1.txt"), "Use a custom string" + eol + " to ensure proper merging");
-		commitProject(project);
-		
-		// Checkout a copy and make some modifications
-		IProject copy = checkoutCopy(project, "-copy");
-		appendText(copy.getFile("file1.txt"), "prefix" + eol, 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"), eol + "postfix", 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
-		update(
-			project,
-			new String[] {"file1.txt"});
-								 
-		assertSyncEquals("testFileConflict", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			true, new int[] {
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.IN_SYNC,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE });
-				
-		// Release the folder1/a.txt conflict by merging and then committing
-		commit(project, new String[] {"file1.txt", "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, InvocationTargetException, InterruptedException {
-		
-		// 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
-		commit(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
-		overrideAndUpdate(
-			project,
-			new String[] {"add1a.txt", "add2a.txt"},
-			true /* should prompt */);
-
-		
-		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, InvocationTargetException, InterruptedException {
-		
-		// 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.
-		overrideAndUpdate(
-			project, 
-			new String[] {
-				"delete1.txt", 
-				"delete2.txt", 
-				"delete3.txt", 
-				"delete4.txt", 
-				"delete5.txt"},
-			true /* should be prompted */);
-		
-		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
-		commit(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, CoreException {
-		IProject project = createProject(new String[] { "file1.txt", "folder1/file2.txt"});
-		
-		// Make a new folder and map it to the same project
-		IProject newProject = getUniqueTestProject("empty-" + getName());
-		FolderSyncInfo info = CVSWorkspaceRoot.getCVSFolderFor(project).getFolderSyncInfo();
-		CVSWorkspaceRoot.getCVSFolderFor(newProject).setFolderSyncInfo(info);
-		RepositoryProvider.map(newProject, CVSProviderPlugin.getTypeId());
-		
-		// Assert that all resources are incoming additions
-		assertSyncEquals(newProject, 
-				new String[] { "file1.txt", "folder1/", "folder1/file2.txt"}, 
-				true, new int[] {
-					SyncInfo.INCOMING | SyncInfo.ADDITION,
-					SyncInfo.INCOMING | SyncInfo.ADDITION,
-					SyncInfo.INCOMING | SyncInfo.ADDITION});
-	}
-	
-	/*
-	 * 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, InvocationTargetException, InterruptedException {
-		
-		// 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});
-				
-		update(
-			project, 
-			new String[] {"folder1/"});
-	
-		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
-		commit(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, InvocationTargetException, InterruptedException {
-		// 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
-		update(
-			project, 
-			new String[] {"folder1/add.txt"});
-		
-		// 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});
-	}
-	 
-	 public void testSyncOnBranch() throws TeamException, CoreException, IOException {
-	 	
-		// Create a test project and a branch
-		IProject project = createProject(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 /* force */);
-		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
-		assertSyncEquals(project, new String[] { 
-				"file1.txt", 
-				"file2.txt", 
-				"file3.txt", 
-				"folder1/", 
-				"folder1/a.txt", 
-				"folder1/b.txt",
-				"addition.txt", 
-				"folderAddition/", 
-				"folderAddition/new.txt"}, 
-			true, 
-			new int[] {
-				SyncInfo.INCOMING | SyncInfo.CHANGE,
-				SyncInfo.INCOMING | SyncInfo.CHANGE,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.INCOMING | SyncInfo.DELETION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION});
-	 }
-	 
-	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 testDeleteProject() throws CoreException, IOException, TeamException, InterruptedException {
-		String[] resourceNames = new String[] { "deleted.txt", "file1.txt", "folder1/", "folder1/a.txt" };
-		int[] inSync = new int[] {SyncInfo.IN_SYNC, SyncInfo.IN_SYNC, SyncInfo.IN_SYNC, SyncInfo.IN_SYNC};
-		IProject project = createProject("testDeleteProject", resourceNames);
-		assertSyncEquals("sync should be in sync", project, resourceNames, true, inSync);
-
-		// Make some modifications
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"));
-		addResources(project, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(project, new String[] {"deleted.txt"}, false);
-		
-		// Get the sync tree for the project
-		assertSyncEquals("testOutgoingChanges", project, 
-			new String[] { "file1.txt", "folder1/", "deleted.txt", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.OUTGOING | SyncInfo.DELETION,
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.IN_SYNC, /* adding a folder creates it remotely */
-				SyncInfo.IN_SYNC, /* adding a folder creates it remotely */
-				SyncInfo.OUTGOING | SyncInfo.ADDITION});
-				
-		project.delete(true, false, DEFAULT_MONITOR);
-		
-		assertProjectRemoved(getWorkspaceSubscriber(), project);
-	}
-	
-	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
-		commit(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
-		commit(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});
-				
-		commit(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());
-	}
-	
-	public void testDisconnectingProject() throws CoreException, TeamException, InterruptedException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testDisconnect", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(project);
-		RepositoryProvider.unmap(project);
-		assertProjectRemoved(getWorkspaceSubscriber(), project);
-	}
-	
-	/*
-	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=40221
-	 */
-	public void testConflictingFolderDeletion() throws TeamException, CoreException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testConflictingFolderDeletion", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Checkout a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		
-		// Delete a folder in both projects and checkin one of the deletions
-		deleteResources(project, new String[] { "folder1/" }, false /* checkin */);
-		deleteResources(copy, new String[] { "folder1/" }, true /* checkin */);
-		
-		// The files should show up as outgoing deletions
-		assertSyncEquals("testConflictingFolderDeletion sync check", project,
-			 new String[] { "folder1/", "folder1/a.txt", "folder1/b.txt"},
-			 true, new int[] { 
-			 	SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC, /* conflicting deletions are handled automatically */
-				SyncInfo.IN_SYNC});
-	}
-	
-	public void testOverrideAndUpdateOutgoingAddition() throws TeamException, CoreException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject(new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		IFolder newFolder = project.getFolder("newFolder");
-		newFolder.create(false, true, null);
-		buildResources(newFolder, new String[] {"newFile"}, false);
-		overrideAndUpdate(project, new String[] {"newFolder", "newFolder/newFile"}, true);
-		assertDoesNotExistInFileSystem(newFolder);
-	}
-	
-	public void testProjectClose() throws TeamException, CoreException {
-		IProject project = createProject(new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		setContentsAndEnsureModified(project.getFile("file1.txt"));
-		assertSyncEquals("testProjectClose sync check", project,
-				new String[] { "file1.txt"},
-				true, new int[] { 
-							  SyncInfo.OUTGOING | SyncInfo.CHANGE,
-					});
-		
-		project.close(null);
-		assertProjectRemoved(getWorkspaceSubscriber(), project);
-	}
-	
-	public void testUpdateBinaryConflict() throws TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// Create a shared project with a binary file
-		IProject project = createProject(new String[] { "binary.gif"});
-		assertIsBinary(project.getFile("binary.gif"));
-		
-		// Checkout a copy, modify the binary file and commit
-		IProject copy = checkoutCopy(project, "-copy");
-		assertIsBinary(copy.getFile("binary.gif"));
-		setContentsAndEnsureModified(copy.getFile("binary.gif"));
-		commitProject(copy);
-		
-		// Modify the same binary file and ensure sync is correct
-		setContentsAndEnsureModified(project.getFile("binary.gif"));
-		assertSyncEquals("testProjectClose sync check", project,
-			new String[] { "binary.gif"},
-			true, new int[] { 
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-		});
-		
-		// Perform an update and ensure the binary conflict is skipped
-		update(project, new String[] { "binary.gif"});
-		assertSyncEquals("testProjectClose sync check", project,
-			new String[] { "binary.gif"},
-			true, new int[] { 
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-		});
-	}
-
-	private void assertIsBinary(IFile local) throws CVSException {
-		ICVSFile file = CVSWorkspaceRoot.getCVSFileFor((IFile)local);
-		byte[] syncBytes = file.getSyncBytes();
-		if (syncBytes != null) {
-			assertTrue(ResourceSyncInfo.isBinary(syncBytes));
-		}
-	}
-	
-	public void testNestedMarkAsMerged() throws CoreException, InvocationTargetException, InterruptedException {
-		// Create a project and checkout a copy
-		IProject project = createProject(new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		IProject copy = checkoutCopy(project, "-copy");
-		// Add the same resources to both projects to create conflicting additions
-		buildResources(project, new String[] { "folder2/", "folder2/file.txt", "folder2/file2.txt"}, false);
-		addResources(copy, new String[] { "folder2/", "folder2/file.txt", "folder2/file2.txt"}, true);
-		assertSyncEquals("testNestedMarkAsMerged sync check", project,
-				new String[] { "folder2/", "folder2/file.txt", "folder2/file.txt"},
-				true, new int[] { 
-					SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-					SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-					SyncInfo.CONFLICTING | SyncInfo.ADDITION
-				});
-		markAsMerged(getSubscriber(), project, new String[] {"folder2/file.txt"});
-		assertSyncEquals("testNestedMarkAsMerged sync check", project,
-				new String[] { "folder2/", "folder2/file.txt", "folder2/file2.txt"},
-				true, new int[] { 
-					SyncInfo.IN_SYNC,
-					SyncInfo.OUTGOING | SyncInfo.CHANGE,
-					SyncInfo.CONFLICTING | SyncInfo.ADDITION
-		});
-	}
-	
-	public void testMarkAsMergedOnBinaryFile() throws TeamException, CoreException, InvocationTargetException, InterruptedException {
-		// Create a project and checkout a copy
-		IProject project = createProject(new String[] { "file1.txt"});
-		IProject copy = checkoutCopy(project, "-copy");
-		// Add the same binary file to both projects to create a conflicting addition
-		buildResources(project, new String[] {"binary.gif"}, false);
-		addResources(copy, new String[] {"binary.gif"}, true);
-		assertIsBinary(copy.getFile("binary.gif"));
-		assertSyncEquals("testMarkAsMergedOnBinaryFile sync check", project,
-				new String[] {"binary.gif"},
-				true, new int[] { 
-						SyncInfo.CONFLICTING | SyncInfo.ADDITION
-		});
-		markAsMerged(getSubscriber(), project, new String[] {"binary.gif"});
-		assertSyncEquals("testMarkAsMergedOnBinaryFile sync check", project,
-				new String[] {"binary.gif"},
-				true, new int[] { 
-				SyncInfo.OUTGOING | SyncInfo.CHANGE
-		});
-		assertIsBinary(project.getFile("binary.gif"));
-		// Unmanage the file and do it again
-		// This tests the case were the contents are already cached locally
-		CVSWorkspaceRoot.getCVSFileFor(project.getFile("binary.gif")).unmanage(DEFAULT_MONITOR);
-		assertSyncEquals("testMarkAsMergedOnBinaryFile sync check", project,
-				new String[] {"binary.gif"},
-				true, new int[] { 
-				SyncInfo.CONFLICTING | SyncInfo.ADDITION
-		});
-		markAsMerged(getSubscriber(), project, new String[] {"binary.gif"});
-		assertSyncEquals("testMarkAsMergedOnBinaryFile sync check", project,
-				new String[] {"binary.gif"},
-				true, new int[] { 
-				SyncInfo.OUTGOING | SyncInfo.CHANGE
-		});
-		assertIsBinary(project.getFile("binary.gif"));
-	}
-	
-	/**
-	 * Bug 48467
-	 * 
-	 * Files imported into CVS may have revision number 1.1.1.1.
-	 * A subsequent commit will raise the revision to 1.2.
-	 * We had code that would ignore the new sync bytes in the
-	 * sync view because the new revision was shorter than the old one.
-	 */
-	public void testSyncAfterImport() throws CoreException {
-		// First, use "cvs import" to add a project to CVS
-		String[] resources = new String[] { "file.txt" };
-		IProject project = getUniqueTestProject(getName());
-		buildResources(project, resources, true);
-		importProject(project);
-		
-		// Now, check out the project
-		IProject copy = getWorkspace().getRoot().getProject(project.getName() + "copy");
-		checkout(getRepository(), copy, project.getName(), null, DEFAULT_MONITOR);
-		ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(copy.getFile("file.txt"));
-		assertTrue("File in wrong state", cvsFile.isManaged() && cvsFile.getSyncInfo().getRevision().equals("1.1.1.1"));
-		
-		// Check out another and commit a change to the file
-		IProject anotherCopy = checkoutCopy(copy, "another");
-		cvsFile = CVSWorkspaceRoot.getCVSFileFor(anotherCopy.getFile("file.txt"));
-		assertTrue("File in wrong state", cvsFile.isManaged() && cvsFile.getSyncInfo().getRevision().equals("1.1.1.1"));
-		setContentsAndEnsureModified(anotherCopy.getFile("file.txt"));
-		commitProject(anotherCopy);
-		
-		// Assert that the change shows up in original
-		assertSyncEquals("testSyncAfterImport sync check", copy,
-				new String[] {"file.txt"},
-				true, new int[] { 
-				SyncInfo.INCOMING | SyncInfo.CHANGE
-		});
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncInfoSource.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncInfoSource.java
deleted file mode 100644
index 6eddc52..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncInfoSource.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.ccvs.core.subscriber;
-
-import java.util.*;
-
-import junit.framework.AssertionFailedError;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.Subscriber;
-import org.eclipse.team.core.synchronize.SyncInfo;
-import org.eclipse.team.internal.ccvs.core.*;
-
-/**
- * This class acts as the source for the sync info used by the subscriber tests.
- * The purpose is to allow the sync info to be obtained directly from the subscriber 
- * or through the sync set visible in the sync view.
- */
-public class SyncInfoSource {
-
-	protected static IProgressMonitor DEFAULT_MONITOR = new NullProgressMonitor();
-	protected List mergeSubscribers = new ArrayList();
-	protected List compareSubscribers = new ArrayList();
-	
-	public CVSMergeSubscriber createMergeSubscriber(IProject project, CVSTag root, CVSTag branch) {
-		CVSMergeSubscriber subscriber = new CVSMergeSubscriber(new IResource[] { project }, root, branch);
-		mergeSubscribers.add(subscriber);
-		return subscriber;
-	}
-	
-	public CVSCompareSubscriber createCompareSubscriber(IProject project, CVSTag tag) {
-		CVSCompareSubscriber subscriber = new CVSCompareSubscriber(new IResource[] { project }, tag);
-		compareSubscribers.add(subscriber);
-		return subscriber;
-	}
-	
-	/**
-	 * Return the sync info for the given subscriber for the given resource.
-	 */
-	public SyncInfo getSyncInfo(Subscriber subscriber, IResource resource) throws TeamException {
-		return subscriber.getSyncInfo(resource);
-	}
-	
-	/**
-	 * Refresh the subscriber for the given resource
-	 */
-	public void refresh(Subscriber subscriber, IResource resource) throws TeamException {
-		subscriber.refresh(new IResource[] { resource}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-	}
-	
-	protected void assertProjectRemoved(Subscriber subscriber, IProject project) throws TeamException {
-		IResource[] roots = subscriber.roots();
-		for (int i = 0; i < roots.length; i++) {
-			IResource resource = roots[i];
-			if (resource.equals(project)) {
-				throw new AssertionFailedError();
-			}
-		}
-	}
-
-	public void tearDown() {
-		for (Iterator it = mergeSubscribers.iterator(); it.hasNext(); ) {
-			CVSMergeSubscriber s = (CVSMergeSubscriber) it.next();
-			s.cancel();
-		}
-	}
-
-	/**
-	 * Recalculate a sync info from scratch
-	 */
-	public void reset(Subscriber subscriber) throws TeamException {
-		// Do nothing
-		
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncSetTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncSetTests.java
deleted file mode 100644
index 039ddce..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncSetTests.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.core.subscriber;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.synchronize.SyncInfo;
-import org.eclipse.team.internal.core.subscribers.SubscriberSyncInfoSet;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-
-public class SyncSetTests extends CVSSyncSubscriberTest {
-	
-	public SyncSetTests() {
-		super();
-	}
-	
-	public SyncSetTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(SyncSetTests.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new SyncSetTests(testName));
-		}
-	}
-
-	class TestSyncInfo extends SyncInfo {
-		protected int calculateKind() throws TeamException {
-				return 0;
-		}
-		public TestSyncInfo() throws TeamException {
-			super(ResourcesPlugin.getWorkspace().getRoot(), null, null, null);
-		}
-	}
-
-	/**
-	 * Test that ensures that SyncSet can be modified concurrently. This is a quick test
-	 * that doesn't validate the actual contents of the sync set.
-	 */
-	public void testConcurrentAccessToSyncSet() throws Throwable {
-		final SubscriberSyncInfoSet set = new SubscriberSyncInfoSet(null);
-		final boolean[] done = {false};
-		final IStatus[] error = {null};
-		
-		for(int numJobs = 0; numJobs < 10; numJobs++) {		
-			Job job = new Job("SyncSetTests" + numJobs) {
-				public IStatus run(IProgressMonitor monitor) {
-					while(! done[0]) {
-						try {
-							set.add(new TestSyncInfo());
-							set.getSyncInfos(ResourcesPlugin.getWorkspace().getRoot(), IResource.DEPTH_INFINITE);
-							set.getSyncInfo(ResourcesPlugin.getWorkspace().getRoot());
-							set.getSyncInfos();
-						} catch (Exception e) {
-							error[0] = new Status(IStatus.ERROR, "this", 1, "", e);
-							return error[0];						
-						}
-					}
-					return Status.OK_STATUS;
-				}
-			};
-			
-			job.addJobChangeListener(new JobChangeAdapter() {
-				public void done(IJobChangeEvent event) {
-					if(event.getResult() != Status.OK_STATUS) {
-						error[0] = event.getResult();
-					}
-				}
-			});		
-			
-			job.schedule();
-		}
-		
-		for(int i = 0; i < 10000; i++) {
-			set.add(new TestSyncInfo());
-			set.getSyncInfos(ResourcesPlugin.getWorkspace().getRoot(), IResource.DEPTH_INFINITE);
-			set.getSyncInfo(ResourcesPlugin.getWorkspace().getRoot());
-			set.getSyncInfos();
-			set.members(ResourcesPlugin.getWorkspace().getRoot());
-			set.clear();		
-		}
-		done[0] = true;
-		if(error[0] != null) {
-			throw error[0].getException();
-		}	
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestCommitOperation.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestCommitOperation.java
deleted file mode 100644
index 40dc2a7..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestCommitOperation.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.team.tests.ccvs.core.subscriber;
-
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.synchronize.SyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitOperation;
-
-class TestCommitOperation extends SubscriberCommitOperation {
-	
-	private boolean prompted;
-
-	public TestCommitOperation(IDiffElement[] elements, boolean override) {
-		super(null, elements, override);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ui.actions.TeamOperation#canRunAsJob()
-	 */
-	protected boolean canRunAsJob() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitOperation#promptForComment(org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager, org.eclipse.core.resources.IResource[])
-	 */
-	protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
-		return "dummy comment";
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitOperation#promptForConflicts(org.eclipse.team.core.synchronize.SyncInfoSet)
-	 */
-	protected int promptForConflicts(SyncInfoSet syncSet) {
-		this.prompted = true;
-		return 0; // ok to commit all conflicts
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitOperation#promptForResourcesToBeAdded(org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager, org.eclipse.core.resources.IResource[])
-	 */
-	protected IResource[] promptForResourcesToBeAdded(RepositoryManager manager, IResource[] unadded) {
-		return unadded;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitOperation#promptForConflictHandling(org.eclipse.team.core.synchronize.SyncInfoSet)
-	 */
-	protected boolean promptForConflictHandling(SyncInfoSet syncSet) {
-		return true;
-	}
-	
-	public boolean isPrompted() {
-		return this.prompted;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMergeUpdateOperation.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMergeUpdateOperation.java
deleted file mode 100644
index c82f0bb..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMergeUpdateOperation.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.subscriber;
-
-import junit.framework.Assert;
-
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.synchronize.SyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.subscriber.MergeUpdateOperation;
-
-
-class TestMergeUpdateOperation extends MergeUpdateOperation {
-	boolean allowOverwrite = false;
-
-	public TestMergeUpdateOperation(IDiffElement[] elements, boolean allowOverwrite) {
-		super(null, elements, false /* prompt before update */);
-		this.allowOverwrite = allowOverwrite;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberOperation#promptForOverwrite(org.eclipse.team.core.synchronize.SyncInfoSet)
-	 */
-	protected boolean promptForOverwrite(SyncInfoSet syncSet) {
-		if (allowOverwrite) return true;
-		if (syncSet.isEmpty()) return true;
-		IResource[] resources = syncSet.getResources();
-		Assert.fail(resources[0].getFullPath().toString() + " failed to merge properly");
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ui.actions.TeamOperation#canRunAsJob()
-	 */
-	protected boolean canRunAsJob() {
-		return false;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndUpdateOperation.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndUpdateOperation.java
deleted file mode 100644
index fbce4c7..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndUpdateOperation.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.team.tests.ccvs.core.subscriber;
-
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.team.core.synchronize.SyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.subscriber.OverrideAndUpdateSubscriberOperation;
-
-public class TestOverrideAndUpdateOperation extends OverrideAndUpdateSubscriberOperation {	
-
-	private boolean prompted = false; 
-	
-	protected TestOverrideAndUpdateOperation(IDiffElement[] elements) {
-		super(null, elements);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ui.actions.TeamOperation#canRunAsJob()
-	 */
-	protected boolean canRunAsJob() {
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberOperation#promptForOverwrite(org.eclipse.team.core.synchronize.SyncInfoSet)
-	 */
-	protected boolean promptForOverwrite(SyncInfoSet syncSet) {
-		TestOverrideAndUpdateOperation.this.prompted = true;
-		return true;
-	}
-	
-	public boolean isPrompted() {
-		return this.prompted;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestUpdateOperation.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestUpdateOperation.java
deleted file mode 100644
index 3f072bb..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestUpdateOperation.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.team.tests.ccvs.core.subscriber;
-
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.team.core.synchronize.SyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceUpdateOperation;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-class TestUpdateOperation extends WorkspaceUpdateOperation {
-
-	protected TestUpdateOperation(IDiffElement[] elements) {
-		super(null, elements, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ui.actions.TeamOperation#canRunAsJob()
-	 */
-	protected boolean canRunAsJob() {
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateOperation#warnAboutFailedResources(org.eclipse.team.core.synchronize.SyncInfoSet)
-	 */
-	protected void warnAboutFailedResources(SyncInfoSet syncSet) {
-		return;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberOperation#promptForOverwrite(org.eclipse.team.core.synchronize.SyncInfoSet)
-	 */
-	protected boolean promptForOverwrite(SyncInfoSet syncSet) {
-		EclipseTest.fail("Should never prompt on update, simply update nodes that are valid.");
-		return false;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/AllUITests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/AllUITests.java
deleted file mode 100644
index 0dcdb67..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/AllUITests.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.team.tests.ccvs.ui;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class AllUITests extends EclipseTest {
-
-	public AllUITests() {
-		super();
-	}
-
-	public AllUITests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(CheckoutOperationTests.suite());
-		suite.addTest(CompareOperationTests.suite());
-		suite.addTest(MiscOperationsTests.suite());
-		return suite;
-	}
-	
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSOperationTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSOperationTest.java
deleted file mode 100644
index 08b8782..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSOperationTest.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.team.tests.ccvs.ui;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.ui.operations.CVSOperation;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public abstract class CVSOperationTest extends EclipseTest {
-	
-	protected CVSOperationTest() {
-		super();
-	}
-
-	protected CVSOperationTest(String name) {
-		super(name);
-	}
-
-	protected void run(CVSOperation op) throws CVSException {
-		executeHeadless(op);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CheckoutOperationTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CheckoutOperationTests.java
deleted file mode 100644
index f54f50d..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CheckoutOperationTests.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.ui;
-
-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.CVSOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.CheckoutMultipleProjectsOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.CheckoutSingleProjectOperation;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-public class CheckoutOperationTests extends CVSOperationTest { 
-
-	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		
-		CVSOperation op = new CheckoutMultipleProjectsOperation(
-			null /* shell */, 
-			new ICVSRemoteFolder[] { (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(movedProject) },
-			null /*target location*/);
-		run(op);
-		
-		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		
-		CVSOperation op = new CheckoutMultipleProjectsOperation(
-			null /* shell */, 
-			new ICVSRemoteFolder[] { (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project.getFolder("folder1")) },
-			null /*target location*/);
-		run(op);
-		
-		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		
-		CVSOperation op = new CheckoutMultipleProjectsOperation(
-			null /* shell */, 
-			new ICVSRemoteFolder[] { 
-				(ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(movedProject1),
-				(ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(movedProject2)
-			},
-			null /*target location*/);
-		run(op);
-	}
-	
-	public void testCheckoutAs() throws TeamException, CoreException, IOException {
-		IProject project = createProject("testCheckoutAs", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		IProject copy = ResourcesPlugin.getWorkspace().getRoot().getProject(project.getName() + "-copy");
-		
-		// checkout the project to the default location		
-		CVSOperation op = new CheckoutSingleProjectOperation(
-			null /* shell */, 
-			(ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project),
-			copy,
-			null /*target location*/,
-			false);
-		run(op);
-		
-		assertEquals(project, copy);
-	}
-
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java
deleted file mode 100644
index d0c86cf..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.*;
-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.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.operations.RemoteCompareOperation;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class CompareOperationTests extends CVSOperationTest {
-
-	public class TestRemoteCompareOperation extends RemoteCompareOperation {
-		private ICVSRemoteFolder leftTree, rightTree;
-
-		public TestRemoteCompareOperation(IWorkbenchPart part, ICVSRemoteResource resource, CVSTag tag) {
-			super(part, resource, tag);
-		}
-		
-		/*
-		 * Override to prevent compare editor from opening and to capture the results
-		 */
-		protected void openCompareEditor(ICVSRemoteFolder leftTree, ICVSRemoteFolder rightTree) {
-			this.leftTree = leftTree;
-			this.rightTree = rightTree;
-		}
-
-		public ICVSRemoteFolder getLeftTree() {
-			return leftTree;
-		}
-
-		public ICVSRemoteFolder getRightTree() {
-			return rightTree;
-		}
-
-	}
-	
-	public CompareOperationTests() {
-		super();
-	}
-
-	public CompareOperationTests(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(CompareOperationTests.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new CompareOperationTests(testName));
-		}
-	}
-	
-
-	/**
-	 * Assert that the revisions of any files in the remote tree match the revisions in the local tree
-	 */
-
-	private void assertRevisionsMatch(ICVSRemoteFolder folder, IProject project, String[] filePathsWithRevisions, String[] filePathsWithoutRevisions) throws CoreException {
-		if (filePathsWithRevisions == null) filePathsWithRevisions = new String[0];
-		if (filePathsWithoutRevisions == null) filePathsWithoutRevisions = new String[0];
-		IResource[] filesWithRevisions = getResources(project, filePathsWithRevisions);
-		IResource[] filesWithoutRevisions = getResources(project, filePathsWithoutRevisions);
-		ICVSRemoteFile[] files= getAllFiles(folder);
-		assertTrue("The number of remote files with differences does not match the expected number", files.length == (filePathsWithoutRevisions.length + filePathsWithRevisions.length));
-		for (int i = 0; i < files.length; i++) {
-			ICVSRemoteFile remoteFile = files[i];
-			for (int j = 0; j < filesWithRevisions.length; j++) {
-				IResource local = filesWithRevisions[j];
-				ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile)local);
-				if (cvsFile.getRepositoryRelativePath().equals(remoteFile.getRepositoryRelativePath())) {
-					ResourceSyncInfo info = cvsFile.getSyncInfo();
-					assertNotNull(info);
-					String localRevision = info.getRevision();
-					assertNotNull(localRevision);
-					String remoteRevision = files[i].getRevision();
-					assertNotNull(remoteRevision);
-					assertEquals("Revisions do not match for " + local.getProjectRelativePath(), localRevision, remoteRevision);
-				}
-			}
-			for (int j = 0; j < filesWithoutRevisions.length; j++) {
-				IResource local = filesWithoutRevisions[j];
-				ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile)local);
-				if (cvsFile.getRepositoryRelativePath().equals(remoteFile.getRepositoryRelativePath())) {
-					ResourceSyncInfo info = cvsFile.getSyncInfo();
-					assertNotNull(info);
-					String localRevision = info.getRevision();
-					assertNotNull(localRevision);
-					// Cannot assert anything about the remote revision
-				}
-			}
-		}
-	}
-	
-	private ICVSRemoteFile[] getAllFiles(ICVSRemoteFolder folder) {
-		List result = new ArrayList();
-		ICVSRemoteResource[] children = ((RemoteFolder)folder).getChildren();
-		if (children != null) {
-			for (int i = 0; i < children.length; i++) {
-				ICVSRemoteResource resource = children[i];
-				if (resource.isContainer()) {
-					result.addAll(Arrays.asList(getAllFiles((ICVSRemoteFolder)resource)));
-				} else {
-					result.add(resource);
-				}
-			}
-		}
-		return (ICVSRemoteFile[]) result.toArray(new ICVSRemoteFile[result.size()]);
-	}
-
-	public void testCompareWithLatest() throws TeamException, CoreException {
-		// Create a test project
-		IProject project = createProject(new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		CVSTag v1 = new CVSTag("v1", CVSTag.VERSION);
-		tagProject(project, v1, false);
-		
-		// Checkout and modify a copy (and commit the changes)
-		IProject copy = checkoutCopy(project, "-copy");
-		setContentsAndEnsureModified(copy.getFile("folder1/a.txt"));
-		addResources(copy, new String[] { "folder1/newFile", "folder2/folder3/add.txt" }, false);
-		deleteResources(copy, new String[] {"folder1/b.txt"}, false);
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
-		// Run the compare operation of the project folder
-		ICVSRemoteResource remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(project);
-		TestRemoteCompareOperation op = new TestRemoteCompareOperation(null, remoteResource, v1);
-		run(op);
-		assertRevisionsMatch(op.getRightTree(), project, new String[] {"folder1/a.txt", "folder1/b.txt"}, null);
-		assertRevisionsMatch(op.getLeftTree(), copy, new String[] {"folder1/a.txt" }, new String[] {"folder1/newFile", "folder2/folder3/add.txt" } /* files with no revision */);
-		
-		
-		// Run the compare operation of the project folder the other way
-		remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(project);
-		remoteResource = ((ICVSRemoteFolder)remoteResource).forTag(v1);
-		op = new TestRemoteCompareOperation(null, remoteResource, CVSTag.DEFAULT);
-		run(op);
-		assertRevisionsMatch(op.getLeftTree(), project, new String[] {"folder1/a.txt"}, new String[] {"folder1/b.txt"});
-		assertRevisionsMatch(op.getRightTree(), copy, new String[] {"folder1/a.txt", "folder1/newFile", "folder2/folder3/add.txt" }, null /* files with no revision */);
-		
-		// Run the compare operation of a subfolder
-		remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(project.getFolder("folder1"));
-		op = new TestRemoteCompareOperation(null, remoteResource, v1);
-		run(op);
-		assertRevisionsMatch(op.getRightTree(), project, new String[] {"folder1/a.txt", "folder1/b.txt"}, null);
-		assertRevisionsMatch(op.getLeftTree(), copy, new String[] {"folder1/a.txt"}, new String[] {"folder1/newFile" } /* files with no revision */);
-		
-		// Run the operation on a single file
-		remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(copy.getFile("folder1/a.txt"));
-		op = new TestRemoteCompareOperation(null, remoteResource, v1);
-		run(op);
-		assertRevisionsMatch(op.getRightTree(), project, new String[] {"folder1/a.txt"}, null);
-		assertRevisionsMatch(op.getLeftTree(), copy, new String[] {"folder1/a.txt" }, null /* files with no revision */);
-		
-		// Run the operation on a single file using RemoteCompareOperation.getTag
-		// to determine the tag
-		remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(copy.getFile("folder1/a.txt"));
-		op = new TestRemoteCompareOperation(null, remoteResource, RemoteCompareOperation.getTag(CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("folder1/a.txt"))));
-		run(op);
-		assertRevisionsMatch(op.getRightTree(), project, new String[] {"folder1/a.txt"}, null);
-		assertRevisionsMatch(op.getLeftTree(), copy, new String[] {"folder1/a.txt" }, null /* files with no revision */);
-		
-	}
-
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MenuEnablementTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MenuEnablementTest.java
deleted file mode 100644
index 4c0efec..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MenuEnablementTest.java
+++ /dev/null
@@ -1,497 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.*;
-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.*;
-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 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/src/org/eclipse/team/tests/ccvs/ui/MiscOperationsTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MiscOperationsTests.java
deleted file mode 100644
index 505219c..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MiscOperationsTests.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 junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-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.ui.operations.DisconnectOperation;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-/**
- * Miscellaneous operation tests
- */
-public class MiscOperationsTests extends CVSOperationTest {
-
-	public MiscOperationsTests() {
-		super();
-	}
-
-	public MiscOperationsTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(MiscOperationsTests.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new MiscOperationsTests(testName));
-		}
-	}
-	
-	public void testDisconnect() throws TeamException, CoreException {
-		IProject project = createProject(new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// First, disconnect but leave the CVS folders
-		run(new DisconnectOperation(null, new IProject[] {project }, false));
-		assertNull(RepositoryProvider.getProvider(project));
-		assertTrue(project.getFolder("CVS").exists());
-		
-		// Next, disconnect and purge the CVS folders
-		RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
-		run(new DisconnectOperation(null, new IProject[] {project }, true));
-		assertNull(RepositoryProvider.getProvider(project));
-		assertTrue(project.getFolder("folder1").exists());
-		assertTrue(project.getFile("file1.txt").exists());
-		assertTrue(!project.getFolder("CVS").exists());
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java
deleted file mode 100644
index b33b9fb..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.AssertionFailedError;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.Subscriber;
-import org.eclipse.team.core.subscribers.SubscriberSyncInfoCollector;
-import org.eclipse.team.core.synchronize.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.ui.subscriber.CompareParticipant;
-import org.eclipse.team.internal.ccvs.ui.subscriber.MergeSynchronizeParticipant;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.team.internal.ui.synchronize.*;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-import org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource;
-import org.eclipse.team.ui.TeamUI;
-import org.eclipse.team.ui.synchronize.*;
-import org.eclipse.team.ui.synchronize.subscribers.SubscriberParticipant;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.IPage;
-
-/**
- * SyncInfoSource that obtains SyncInfo from the SynchronizeView's SyncSet.
- */
-public class SynchronizeViewTestAdapter extends SyncInfoSource {
-
-	public SynchronizeViewTestAdapter() {
-			IWorkbenchPage activePage = TeamUIPlugin.getActivePage();
-			try {
-				activePage.showView(ISynchronizeView.VIEW_ID);
-			} catch (PartInitException e) {
-				throw new AssertionFailedError("Cannot show sync view in active page");
-			}
-	}
-	
-	public SyncInfo getSyncInfo(Subscriber subscriber, IResource resource) throws TeamException {
-		// Wait for the collector
-		SyncInfoSet set = getCollector(subscriber).getSyncInfoTree();
-		// Obtain the sync info from the viewer to ensure that the 
-		// entire chain has the proper state
-		SyncInfo info = internalGetSyncInfo(subscriber, resource);
-		// Do a sanity check on the collected sync info
-		if (info == null) {
-			info = subscriber.getSyncInfo(resource);
-			if ((info != null && info.getKind() != SyncInfo.IN_SYNC)) {
-				throw new AssertionFailedError(
-						"Sync state for " 
-						+ resource.getFullPath() 
-						+ " was "
-						+ SyncInfo.kindToString(info.getKind())
-						+ " but resource was not collected");
-			}
-		} else {
-			SyncInfo realInfo = subscriber.getSyncInfo(resource);
-			if (info.getKind() != realInfo.getKind()) {
-				throw new AssertionFailedError(
-						"Collected sync state for " 
-						+ resource.getFullPath() 
-						+ " was "
-						+ SyncInfo.kindToString(info.getKind())
-						+ " but the real state was "
-						+ SyncInfo.kindToString(realInfo.getKind()));
-			}
-		}
-		return info;
-	}
-	
-	private SubscriberParticipant getParticipant(Subscriber subscriber) {
-		// show the sync view
-		ISynchronizeParticipant[] participants = TeamUI.getSynchronizeManager().getSynchronizeParticipants();
-		for (int i = 0; i < participants.length; i++) {
-			ISynchronizeParticipant participant = participants[i];
-			if(participant instanceof SubscriberParticipant) {
-				if(((SubscriberParticipant)participant).getSubscriber() == subscriber) {
-					return (SubscriberParticipant)participant;
-				}
-			}
-		}
-		return null;
-	}
-	
-	private SubscriberSyncInfoCollector getCollector(Subscriber subscriber) {
-		SubscriberParticipant participant = getParticipant(subscriber);
-		if (participant == null) return null;
-		participant.setMode(SubscriberParticipant.BOTH_MODE);
-		SubscriberSyncInfoCollector syncInfoCollector = participant.getSubscriberSyncInfoCollector();
-		EclipseTest.waitForSubscriberInputHandling(syncInfoCollector);
-		return syncInfoCollector;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource#assertProjectRemoved(org.eclipse.team.core.subscribers.TeamSubscriber, org.eclipse.core.resources.IProject)
-	 */
-	protected void assertProjectRemoved(Subscriber subscriber, IProject project) throws TeamException {		
-		super.assertProjectRemoved(subscriber, project);
-		SyncInfoTree set = getCollector(subscriber).getSyncInfoTree();
-		if (set.hasMembers(project)) {
-			throw new AssertionFailedError("The sync set still contains resources from the deleted project " + project.getName());	
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource#createMergeSubscriber(org.eclipse.core.resources.IProject, org.eclipse.team.internal.ccvs.core.CVSTag, org.eclipse.team.internal.ccvs.core.CVSTag)
-	 */
-	public CVSMergeSubscriber createMergeSubscriber(IProject project, CVSTag root, CVSTag branch) {
-		CVSMergeSubscriber mergeSubscriber = super.createMergeSubscriber(project, root, branch);
-		ISynchronizeManager synchronizeManager = TeamUI.getSynchronizeManager();
-		SubscriberParticipant participant = new MergeSynchronizeParticipant(mergeSubscriber);
-		synchronizeManager.addSynchronizeParticipants(
-				new ISynchronizeParticipant[] {participant});		
-		IWorkbenchPage activePage = TeamUIPlugin.getActivePage();
-		try {
-			ISynchronizeView view = (ISynchronizeView)activePage.showView(ISynchronizeView.VIEW_ID);
-			view.display(participant);
-		} catch (PartInitException e) {
-			throw new AssertionFailedError("Cannot show sync view in active page");
-		}
-		return mergeSubscriber;
-	}
-	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource#createCompareSubscriber(org.eclipse.core.resources.IProject, org.eclipse.team.internal.ccvs.core.CVSTag)
-	 */
-	public CVSCompareSubscriber createCompareSubscriber(IProject project, CVSTag tag) {
-		CVSCompareSubscriber s = super.createCompareSubscriber(project, tag);
-		ISynchronizeManager synchronizeManager = TeamUI.getSynchronizeManager();
-		SubscriberParticipant participant = new CompareParticipant(s);
-		synchronizeManager.addSynchronizeParticipants(
-				new ISynchronizeParticipant[] {participant});	
-		IWorkbenchPage activePage = TeamUIPlugin.getActivePage();
-		try {
-			ISynchronizeView view = (ISynchronizeView)activePage.showView(ISynchronizeView.VIEW_ID);
-			view.display(participant);
-		} catch (PartInitException e) {
-			throw new AssertionFailedError("Cannot show sync view in active page");
-		}
-		return s;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource#tearDown()
-	 */
-	public void tearDown() {
-		ISynchronizeParticipant[] participants = TeamUI.getSynchronizeManager().getSynchronizeParticipants();
-		for (int i = 0; i < participants.length; i++) {
-			ISynchronizeParticipant participant = participants[i];
-			if(participant.getId().equals(CVSMergeSubscriber.ID)) {
-				TeamUI.getSynchronizeManager().removeSynchronizeParticipants(new ISynchronizeParticipant[] {participant});
-			}
-		}
-		// Process all async events that may have been generated above
-		while (Display.getCurrent().readAndDispatch()) {};
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource#refresh(org.eclipse.team.core.subscribers.TeamSubscriber, org.eclipse.core.resources.IResource)
-	 */
-	public void refresh(Subscriber subscriber, IResource resource) throws TeamException {
-		super.refresh(subscriber, resource);
-		// Getting the collector waits for the subscriber input handlers
-		getCollector(subscriber);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource#reset()
-	 */
-	public void reset(Subscriber subscriber) throws TeamException {
-		super.reset(subscriber);
-		getCollector(subscriber).reset();
-	}
-	
-	private SyncInfo internalGetSyncInfo(Subscriber subscriber, IResource resource) {
-		try {
-			SubscriberParticipant participant = getParticipant(subscriber);
-			IWorkbenchPage activePage = TeamUIPlugin.getActivePage();
-			ISynchronizeView view = (ISynchronizeView)activePage.showView(ISynchronizeView.VIEW_ID);
-			IPage page = ((SynchronizeView)view).getPage(participant);
-			if (page instanceof SubscriberParticipantPage) {
-				SubscriberParticipantPage subscriberPage = (SubscriberParticipantPage)page;
-				ISelection selection = subscriberPage.getViewerAdvisor().getSelection(new Object[] { resource });
-				if (!selection.isEmpty() && selection instanceof StructuredSelection) {
-					StructuredSelection ss = (StructuredSelection)selection;
-					Object o = ss.getFirstElement();
-					if (o instanceof SyncInfoModelElement) {
-						return ((SyncInfoModelElement)o).getSyncInfo();
-					}
-				}
-			}
-		} catch (PartInitException e) {
-			throw new AssertionFailedError("Cannot show sync view in active page");
-		}
-		return null;
-	}
-}
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 f1ccd45..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/test.xml
+++ /dev/null
@@ -1,61 +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="ui-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.AllCoreTests"/>
-    </ant>
-    
-    <!-- Session Test ** CVS Provider ** -->
-    <ant target="ui-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.AllTests"/>
-    </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>
diff --git a/tests/org.eclipse.team.tests.cvs.core/toc.xml b/tests/org.eclipse.team.tests.cvs.core/toc.xml
deleted file mode 100644
index 59ebfce..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/toc.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<toc label="CVS Testing">
-        <topic label="End-To-End Use Cases" href="html/00002.html">
-        </topic>
-        <topic label="Unit Use-Cases" href="html/00003.html">
-            <topic label="Repositories View" href="html/00004.html">
-                <topic label="Check Out - prompts" href="html/00007.html">
-                </topic>
-            </topic>
-            <topic label="Comparing" href="html/00008.html">
-                <topic label="Remote resources" href="html/00009.html">
-                </topic>
-                <topic label="Compare with another branch or version" href="html/00039.html">
-                </topic>
-                <topic label="Reverting deleted resources" href="html/00040.html">
-                </topic>
-                <topic label="File Revisions" href="html/00041.html">
-                </topic>
-            </topic>
-            <topic label="Synchronizing" href="html/00010.html">
-                <topic label="Sync View operations and selection" href="html/00011.html">
-                </topic>
-                <topic label="Sync View modes and working sets" href="html/00016.html">
-                </topic>
-                <topic label="Refreshing with Remote" href="html/00048.html">
-                </topic>
-                <topic label="Decorations" href="html/00049.html">
-                </topic>
-            </topic>
-            <topic label="Merging" href="html/00012.html">
-                <topic label="Sync View operations and selection" href="html/00013.html">
-                </topic>
-                <topic label="Persistance and deletion" href="html/00022.html">
-                </topic>
-            </topic>
-            <topic label="Resource History" href="html/00014.html">
-                <topic label="Editor Linking" href="html/00018.html">
-                </topic>
-                <topic label="Annotate" href="html/00024.html">
-                </topic>
-            </topic>
-            <topic label="Concurrency" href="html/00020.html">
-                <topic label="Close and disconnect" href="html/00021.html">
-                </topic>
-            </topic>
-            <topic label="Restarting Workbench" href="html/00023.html">
-                <topic label="Crash Recovery" href="html/00019.html">
-                </topic>
-                <topic label="Synchronize View Settings" href="html/00025.html">
-                </topic>
-            </topic>
-            <topic label="Sharing" href="html/00026.html">
-                <topic label="Sharing as a subfolder" href="html/00027.html">
-                </topic>
-                <topic label="Reconnecting an existing project" href="html/00028.html">
-                </topic>
-                <topic label="Sharing a new project" href="html/00050.html">
-                </topic>
-            </topic>
-            <topic label="Patching" href="html/00029.html">
-                <topic label="Importing a zip over a shared project" href="html/00030.html">
-                </topic>
-            </topic>
-            <topic label="SSH2" href="html/00028a.html">
-                <topic label="Server version compatibiliity" href="html/00029a.html">
-                </topic>
-                <topic label="Proxies" href="html/00030a.html">
-                </topic>
-                <topic label="Generating keys" href="html/00031.html">
-                </topic>
-                <topic label="General use" href="html/00032.html">
-                </topic>
-            </topic>
-            <topic label="Annotate" href="html/00033.html">
-                <topic label="Show Annotation Action" href="html/00034.html">
-                </topic>
-            </topic>
-            <topic label="Label Decorations" href="html/00035.html">
-                <topic label="Enablement at startup" href="html/00036.html">
-                </topic>
-                <topic label="Customizations" href="html/00037.html">
-                </topic>
-                <topic label="Decorations in the Synchronize pages" href="html/00038.html">
-                </topic>
-            </topic>
-            <topic label="CVS Console" href="html/00042.html">
-                <topic label="Preferences" href="html/00043.html">
-                </topic>
-            </topic>
-            <topic label="Replacing" href="html/00044.html">
-                <topic label="With latest" href="html/00045.html">
-                </topic>
-                <topic label="With another branch of version" href="html/00046.html">
-                </topic>
-                <topic label="With file revision" href="html/00047.html">
-                </topic>
-            </topic>
-        </topic>
-</toc>