Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.team.core/.classpath7
-rw-r--r--bundles/org.eclipse.team.core/.cvsignore1
-rw-r--r--bundles/org.eclipse.team.core/.options6
-rw-r--r--bundles/org.eclipse.team.core/.project31
-rw-r--r--bundles/org.eclipse.team.core/about.html30
-rw-r--r--bundles/org.eclipse.team.core/build.properties14
-rw-r--r--bundles/org.eclipse.team.core/buildnotes_team.html529
-rw-r--r--bundles/org.eclipse.team.core/plugin.properties18
-rw-r--r--bundles/org.eclipse.team.core/plugin.xml160
-rw-r--r--bundles/org.eclipse.team.core/schema/fileTypes.exsd109
-rw-r--r--bundles/org.eclipse.team.core/schema/ignore.exsd108
-rw-r--r--bundles/org.eclipse.team.core/schema/projectSets.exsd116
-rw-r--r--bundles/org.eclipse.team.core/schema/repository.exsd104
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/DefaultRepositoryProviderType.java18
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/DeploymentProvider.java94
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/IDeploymentProviderManager.java94
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java39
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/IIgnoreInfo.java40
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/IMemento.java169
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java65
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.java46
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java631
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java159
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java619
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java94
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/package.html20
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/BackgroundEventHandler.java320
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/FastSyncInfoFilter.java163
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/FilteredSyncInfoCollector.java95
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/IComparisonCriteria.java52
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/IJobListener.java26
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResource.java72
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISyncInfoSetChangeEvent.java83
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISyncSetChangedListener.java37
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ITeamResourceChangeListener.java44
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/JobStatusHandler.java232
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/MutableSyncInfoSet.java246
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RemoteContentsCache.java256
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RemoteContentsCacheEntry.java232
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java401
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoFilter.java47
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java323
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamDelta.java86
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamSubscriber.java271
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamSubscriberSyncInfoCollector.java292
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/DescendantSynchronizationCache.java134
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SessionSynchronizationCache.java142
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SyncTreeSubscriber.java104
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationCache.java114
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationCacheRefreshOperation.java271
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationSyncBytesCache.java130
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/ILocalSyncElement.java201
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteResource.java85
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteSyncElement.java48
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/LocalSyncElement.java123
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/RemoteSyncElement.java441
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Assert.java106
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java59
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultMoveDeleteHook.java101
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DeploymentProviderManager.java447
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.java157
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java106
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/InfiniteSubProgressMonitor.java91
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/MoveDeleteManager.java116
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/NullSubProgressMonitor.java65
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java119
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Sorter.java67
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StringMatcher.java398
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamHookDispatcher.java60
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java112
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/XMLMemento.java407
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties119
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/DeploymentProviderDescriptor.java80
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/DeploymentProviderRegistry.java56
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/RegistryReader.java144
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/simpleAccess/SimpleAccessOperations.java267
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/CRLFtoLFInputStream.java155
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.java146
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingInputStream.java188
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java188
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/ProgressMonitorInputStream.java139
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/SizeConstrainedInputStream.java138
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/TimeoutInputStream.java277
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/TimeoutOutputStream.java289
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ContentComparator.java140
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java295
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncInfoStatistics.java107
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncInfoWorkingSetFilter.java110
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetChangedEvent.java159
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInput.java92
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInputFromSubscriber.java44
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInputFromSyncSet.java81
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/WorkingSetSyncSetInput.java45
-rw-r--r--bundles/org.eclipse.team.cvs.core/.classpath7
-rw-r--r--bundles/org.eclipse.team.cvs.core/.cvsignore1
-rw-r--r--bundles/org.eclipse.team.cvs.core/.options18
-rw-r--r--bundles/org.eclipse.team.cvs.core/.project22
-rw-r--r--bundles/org.eclipse.team.cvs.core/about.html81
-rw-r--r--bundles/org.eclipse.team.cvs.core/build.properties14
-rw-r--r--bundles/org.eclipse.team.cvs.core/buildnotes_cvs.html728
-rw-r--r--bundles/org.eclipse.team.cvs.core/doc/hglegal.htm14
-rw-r--r--bundles/org.eclipse.team.cvs.core/doc/ngibmcpy.gifbin1045 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.core/doc/org_eclipse_team_cvs_core.html15
-rw-r--r--bundles/org.eclipse.team.cvs.core/plugin.properties13
-rw-r--r--bundles/org.eclipse.team.cvs.core/plugin.xml204
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSAnnotateBlock.java131
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSCompareSubscriber.java181
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSException.java100
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java329
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java62
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java767
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java90
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSStatus.java68
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java358
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java322
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTag.java90
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java1502
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProviderType.java31
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSWorkspaceSubscriber.java292
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/DateUtil.java92
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/EditorsInfo.java95
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSDecoratorEnablementListener.java30
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFile.java182
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFileModificationValidator.java30
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java181
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSListener.java19
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteFile.java58
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteFolder.java57
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteResource.java83
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRepositoryLocation.java125
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java173
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResourceVisitor.java23
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRunnable.java42
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSStorage.java57
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IConnectionMethod.java51
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ILogEntry.java66
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java97
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IServerConnection.java48
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IUserAuthenticator.java123
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IUserInfo.java40
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/Policy.java132
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractMessageCommand.java36
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java265
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Add.java77
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AddStructureVisitor.java64
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Admin.java22
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Annotate.java31
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ByteCountOutputStream.java25
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CRLFDetectInputStream.java98
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CheckedInHandler.java54
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Checkout.java186
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CheckoutWithOverwrite.java64
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java768
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CommandOutputListener.java59
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Commit.java124
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CopyHandler.java61
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Diff.java64
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/DiffStructureVisitor.java53
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Editors.java29
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ExpandModules.java31
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/FileStructureVisitor.java118
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Import.java69
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java140
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Log.java40
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/MTHandler.java105
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModTimeHandler.java49
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.java53
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModuleExpansionHandler.java35
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NOOPCommand.java57
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NOOPVisitor.java43
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NewEntryHandler.java53
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NotifiedHandler.java55
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/PruneFolderVisitor.java106
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RDiff.java46
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java109
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemoteCommand.java60
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Remove.java36
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemoveEntryHandler.java61
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemovedHandler.java64
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Request.java256
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ResponseHandler.java187
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java1141
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/StaticHandler.java70
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Status.java21
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/StickyHandler.java77
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/SyncUpdate.java31
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Tag.java107
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/TagFileSender.java50
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/TemplateHandler.java97
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Update.java215
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdateMergableOnly.java118
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdateWithOverwrite.java64
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdatedHandler.java140
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ValidRequests.java28
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ValidRequestsHandler.java43
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Version.java87
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/AdminKSubstListener.java91
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/AnnotateListener.java99
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/CompareDiffListener.java119
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/DiffListener.java58
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/EditorsListener.java103
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ICommandOutputListener.java72
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IConsoleListener.java40
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IMessagePatterns.java36
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IStatusListener.java27
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IUpdateMessageListener.java51
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/LogEntry.java99
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/LogListener.java171
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ModuleDefinitionsListener.java71
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ModuleExpansion.java126
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/RDiffSummaryListener.java144
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ServerMessageLineMatcher.java99
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/StatusListener.java87
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/TagListener.java64
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/UpdateListener.java197
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSAuthenticationException.java51
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSCommunicationException.java78
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSRepositoryLocation.java1032
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSServerException.java77
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/Connection.java231
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/ExtConnection.java136
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/ExtConnectionMethod.java33
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/PServerConnection.java251
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/PServerConnectionMethod.java35
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/UserInfo.java64
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties346
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSEntryLineTag.java64
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSLocalSyncElement.java107
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java444
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java650
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java538
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java412
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java263
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java1727
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/FileContentCachingService.java133
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/FileModificationManager.java209
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFile.java667
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolder.java623
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderMemberFetcher.java332
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderSandbox.java101
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTree.java65
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java803
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteModule.java397
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteResource.java216
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java516
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java143
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java265
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/BaserevInfo.java86
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSBaseSynchronizationCache.java66
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSDescendantSynchronizationCache.java62
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSRefreshOperation.java110
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSSynchronizationCache.java52
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/DeferredResourceChangeHandler.java67
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/FolderSyncInfo.java315
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/MutableFolderSyncInfo.java63
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/MutableResourceSyncInfo.java166
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/NotifyInfo.java185
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java328
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ResourceSyncInfo.java951
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Assert.java104
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AssertionFailedException.java34
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/BuildCleanupListener.java147
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/CVSDateFormatter.java104
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/FileNameMatcher.java72
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/KnownRepositories.java232
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java340
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java110
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/ReplaceWithBaseVisitor.java130
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/ResourceStateChangeListeners.java155
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/StringMatcher.java398
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileChangeListener.java271
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileWriter.java612
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Util.java578
-rw-r--r--bundles/org.eclipse.team.cvs.ui/.classpath7
-rw-r--r--bundles/org.eclipse.team.cvs.ui/.cvsignore2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/.options7
-rw-r--r--bundles/org.eclipse.team.cvs.ui/.project32
-rw-r--r--bundles/org.eclipse.team.cvs.ui/about.html30
-rw-r--r--bundles/org.eclipse.team.cvs.ui/build.properties14
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/clear_co.gifbin162 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/collapseall.gifbin88 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/filter_history.gifbin159 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/newstream_wiz.gifbin217 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/refresh.gifbin182 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/synced.gifbin116 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/annotate.gifbin161 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/checkout.gifbin232 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/contents.gifbin173 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/history.gifbin214 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/cview16/annotate_view.gifbin182 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/cview16/console_view.gifbin171 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/cview16/cvs_persp.gifbin235 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/cview16/history_view.gifbin231 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/cview16/rep_editors_view.gifbin253 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/cview16/repo_rep.gifbin173 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/clear_co.gifbin91 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/filter_history.gifbin92 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/refresh.gifbin104 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/dtool16/contents.gifbin173 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/clear_co.gifbin122 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/collapseall.gifbin88 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/filter_history.gifbin128 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/refresh.gifbin144 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/synced.gifbin116 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/etool16/contents.gifbin173 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph1.gifbin170 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph2.gifbin159 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph3.gifbin145 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph4.gifbin114 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph5.gifbin99 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph6.gifbin132 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph7.gifbin182 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph8.gifbin160 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/obj16/branches_rep.gifbin123 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/obj16/module_rep.gifbin192 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/obj16/prjversions_rep.gifbin238 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/obj16/repository_rep.gifbin173 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/obj16/tag.gifbin108 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/obj16/versions_rep.gifbin242 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/confauto_ov.gifbin124 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/edited_ov.gifbin111 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/merged_ov.gifbin84 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/no_remotedir_ov.gifbin79 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/question_ov.gifbin79 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/wizards/cvs_synch.gifbin176 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/wizards/newconnect_wiz.gifbin244 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/wizards/newlocation_wiz.gifbin240 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/wizban/createpatch_wizban.gifbin3064 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/wizban/keywordsub_wizban.gifbin2900 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/wizban/mergestream_wizban.gifbin1896 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/wizban/newconnect_wizban.gifbin2539 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/icons/full/wizban/newlocation_wizban.gifbin2723 -> 0 bytes
-rw-r--r--bundles/org.eclipse.team.cvs.ui/plugin.properties197
-rw-r--r--bundles/org.eclipse.team.cvs.ui/plugin.xml995
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AdaptableHierarchicalResourceList.java102
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AdaptableResourceList.java62
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AddToVersionControlDialog.java218
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AlternateUserValidationDialog.java235
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AnnotateView.java343
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AvoidableMessageDialog.java63
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/BranchPromptDialog.java258
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSCompareEditorInput.java384
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSCompareRevisionsInput.java378
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecoratorConfiguration.java137
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecoratorPreferencesPage.java447
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFieldEditorPreferencePage.java76
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFilePropertiesPage.java144
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFolderPropertiesPage.java171
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSLightweightDecorator.java592
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSLocalCompareEditorInput.java88
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPerspective.java57
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPreferencesPage.java487
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java433
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectSetSerializer.java216
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPropertiesPage.java44
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java748
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CommitCommentArea.java268
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/Console.java514
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java101
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsolePreferencesPage.java156
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/EditorsDialog.java74
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/EditorsView.java207
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ExtMethodPreferencePage.java146
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/FileModificationValidator.java214
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryDropAdapter.java66
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilter.java74
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilterAction.java55
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilterDialog.java266
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryTableProvider.java401
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryView.java905
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ICVSUIConstants.java146
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IHelpContextIds.java132
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IRepositoryListener.java20
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IgnoreResourcesDialog.java258
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/KeyboardInteractiveDialog.java172
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ListSelectionArea.java201
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/MessageDialogWithToggle.java256
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/OverlayIconCache.java50
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/Policy.java129
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ReleaseCommentDialog.java173
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteAnnotationEditorInput.java48
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteAnnotationStorage.java35
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteFileEditorInput.java204
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteFileStorage.java80
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteRevisionQuickDiffProvider.java395
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResizableWizardDialog.java27
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResourceEditionNode.java158
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResourcePropertiesPage.java111
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/SimpleContentProvider.java47
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/SynchronizeProjectsDialog.java172
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagAsVersionDialog.java257
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagConfigurationDialog.java795
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagSelectionDialog.java325
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java438
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TextViewerAction.java41
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TimeoutProgressMonitorDialog.java88
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/UserValidationDialog.java191
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/VersionCollator.java64
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WatchEditPreferencePage.java116
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkInProgressPreferencePage.java49
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkbenchUserAuthenticator.java237
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkingSetSelectionArea.java309
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/XMLWriter.java116
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/AddAction.java128
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/AddToWorkspaceAction.java191
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/BranchAction.java193
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java489
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutAction.java56
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutAsAction.java63
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java192
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareRemoteResourcesAction.java77
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareRemoteWithTagAction.java74
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java128
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRevisionAction.java124
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java80
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ConfigureTagsFromRepoViewOnFolder.java102
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ContentAction.java88
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/EditAction.java78
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/EditorsAction.java106
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java55
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/IgnoreAction.java70
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/MergeAction.java35
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/MoveRemoteTagAction.java63
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/NewRepositoryAction.java52
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java116
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenRemoteFileAction.java124
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ReplaceWithRemoteAction.java112
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ReplaceWithTagAction.java111
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/RestoreFromRepositoryAction.java206
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.java39
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowAnnotationAction.java179
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowCVSPerspectiveAction.java37
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowEditorsAction.java70
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowHistoryAction.java87
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowResourceInHistoryAction.java76
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java52
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagAction.java160
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagInRepositoryAction.java50
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagLocalAction.java70
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UneditAction.java78
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java151
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UpdateAction.java87
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceAction.java616
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java175
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java89
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizardEndPage.java127
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizardStartPage.java159
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/ProjectElement.java114
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/TagElement.java49
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/TagRootElement.java111
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties1072
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/AllRootsElement.java42
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/BranchCategory.java105
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSAdapterFactory.java96
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSFileElement.java74
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSFolderElement.java82
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSModelElement.java109
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRemoteFilePropertySource.java159
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRemoteFolderPropertySource.java101
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRepositoryLocationPropertySource.java124
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRepositoryRootElement.java73
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSResourceElement.java39
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRootFolderElement.java66
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java136
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/GroupedByVersionCategory.java118
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/ModulesCategory.java93
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java130
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFileElement.java48
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java100
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java152
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteProjectsElement.java87
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteResourceElement.java32
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteVersionModule.java103
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RepositoryLocationSchedulingRule.java33
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java175
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSBlockingRunnableContext.java125
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSNonblockingRunnableContext.java114
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java320
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSSubscriberNonblockingContext.java30
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutIntoOperation.java458
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutMultipleProjectsOperation.java55
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java70
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutProjectOperation.java432
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutSingleProjectOperation.java63
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutToRemoteFolderOperation.java223
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/DisconnectOperation.java74
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.java153
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/HasProjectMetaFileOperation.java94
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ICVSRunnableContext.java46
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ITagOperation.java24
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/OverrideAndUpdateOperation.java46
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.java95
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteCompareOperation.java304
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteOperation.java38
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReplaceOperation.java129
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java159
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ShareProjectOperation.java178
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/SingleCommandOperation.java79
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagInRepositoryOperation.java114
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagOperation.java152
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOnlyMergableOperation.java76
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.java106
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/AddToBranchAction.java93
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSRepositoryPropertiesPage.java568
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSet.java103
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java479
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CommentHistoryContentHandler.java85
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CopyRepositoryNameAction.java64
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/NewCVSAnonEclipseConnection.java46
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/NewCVSRepositoryAction.java39
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectSelectionPage.java174
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java136
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshTagsAction.java73
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteProjectsView.java79
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteTagsView.java66
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java428
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java153
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java316
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesViewContentHandler.java219
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryManager.java958
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java467
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositorySorter.java110
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSLocalCompareConfiguration.java114
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java363
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSynchronizeViewCompareConfiguration.java104
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSynchronizeViewPage.java141
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNode.java68
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNodeBuilder.java99
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNodeRoot.java29
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareRevertAction.java100
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizePage.java55
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java164
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java160
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/OverrideAndCommitAction.java45
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/OverrideAndUpdateAction.java75
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java377
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java284
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberConfirmMergedAction.java91
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SyncInfoSetDetailsDialog.java195
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java72
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizePage.java55
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java40
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceUpdateAction.java100
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java372
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java415
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java209
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/ToolTipMessageDialog.java40
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CVSWizardPage.java343
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsLocationSelectionPage.java318
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsMainPage.java231
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsProjectSelectionPage.java288
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsWizard.java227
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ConfigurationWizardAutoconnectPage.java150
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ConfigurationWizardMainPage.java493
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileOperation.java126
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java541
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizard.java418
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardCommitCommentPage.java65
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardDirtyFilesPage.java95
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSelectionPage.java157
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSharedFilesPage.java95
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java291
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ModuleSelectionPage.java96
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/NewLocationWizard.java131
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RepositorySelectionPage.java128
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RestoreFromRepositoryFileSelectionPage.java586
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RestoreFromRepositoryWizard.java57
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java457
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardFinishPage.java44
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/UpdateWizard.java90
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/UpdateWizardPage.java161
-rw-r--r--examples/org.eclipse.team.examples.filesystem/.classpath7
-rw-r--r--examples/org.eclipse.team.examples.filesystem/.cvsignore1
-rw-r--r--examples/org.eclipse.team.examples.filesystem/.project29
-rw-r--r--examples/org.eclipse.team.examples.filesystem/about.html30
-rw-r--r--examples/org.eclipse.team.examples.filesystem/build.properties14
-rw-r--r--examples/org.eclipse.team.examples.filesystem/doc-html/hglegal.htm14
-rw-r--r--examples/org.eclipse.team.examples.filesystem/doc-html/ngibmcpy.gifbin1045 -> 0 bytes
-rw-r--r--examples/org.eclipse.team.examples.filesystem/doc-html/team_filesystem_ex.html35
-rw-r--r--examples/org.eclipse.team.examples.filesystem/icons/full/wizards/fsicon_wiz.gifbin173 -> 0 bytes
-rw-r--r--examples/org.eclipse.team.examples.filesystem/icons/full/wizban/newconnect_wizban.gifbin2615 -> 0 bytes
-rw-r--r--examples/org.eclipse.team.examples.filesystem/plugin.properties28
-rw-r--r--examples/org.eclipse.team.examples.filesystem/plugin.xml173
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileModificationValidator.java85
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemPlugin.java111
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemProvider.java165
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemRemoteResource.java211
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemSimpleAccessOperations.java310
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/Policy.java93
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/SimpleAccessOperations.java267
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/StreamUtil.java58
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/DeployAction.java48
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/FileSystemDeploymentProvider.java55
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/NullAction.java42
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/UnDeployAction.java54
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/messages.properties41
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ConfigurationWizard.java88
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/DisconnectAction.java46
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemAction.java65
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemMainPage.java301
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemPropertiesPage.java82
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/GetAction.java54
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.java57
-rw-r--r--examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java77
-rw-r--r--tests/org.eclipse.team.tests.core/.classpath7
-rw-r--r--tests/org.eclipse.team.tests.core/.cvsignore1
-rw-r--r--tests/org.eclipse.team.tests.core/.project45
-rw-r--r--tests/org.eclipse.team.tests.core/about.html30
-rw-r--r--tests/org.eclipse.team.tests.core/build-tests.xml42
-rw-r--r--tests/org.eclipse.team.tests.core/build.properties12
-rw-r--r--tests/org.eclipse.team.tests.core/plugin.xml108
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTeamTests.java41
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderBic.java64
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderNaish.java61
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderOtherSport.java37
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTests.java382
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTypeBic.java63
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderWithLinking.java57
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/StreamTests.java87
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TeamTest.java253
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/SyncInfoSetContentProviderTest.java262
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.java98
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java39
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/ContentProviderTestView.java67
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/TestTreeViewer.java47
-rw-r--r--tests/org.eclipse.team.tests.core/test.xml48
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/.classpath7
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/.cvsignore3
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/.project37
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/about.html30
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/cvsui_benchmark.bat42
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/readme.txt180
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_02_26.integration.all.xml6027
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_03_19.integration.all.xml4577
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_24.milestone5.all.xml12053
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_25.integration.commandline.xml1731
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_10.release2_0.commandline.xml1731
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_11.release2_0.all.xml12051
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20021127.all.xml12069
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20030129.all.xml12195
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/RC1.all.xml12195
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/teamui_benchmark.bat38
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/vcm1.0/2002_02_26.integration.all.xml10960
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/benchmark/vcmui_benchmark.bat43
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/book.css1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/build-tests.xml47
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/build.properties12
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00000.html19
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00001.html8
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00002.html5
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00003.html10
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00004.html5
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00005.html8
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00006.html19
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00007.html17
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00008.html9
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00009.html35
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00010.html6
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00011.html44
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00012.html7
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00013.html12
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00014.html9
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00015.html16
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00016.html16
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00017.html29
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00018.html20
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00019.html31
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00020.html6
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00021.html49
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00022.html18
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00023.html11
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00024.html41
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00025.html19
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00026.html11
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00027.html18
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00028.html37
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00028a.html10
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00029.html11
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00029a.html12
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00030.html29
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00030a.html11
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00031.html16
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/html/00032.html16
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Core Tests.launch19
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS UI Tests.launch151
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/launchConfigurations/One CVS Test.launch20
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/launchConfigurations/Test using Ant application.launch149
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/Benchmark Test.launch21
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/PrintDiffMain.launch9
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/plugin.xml138
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/readme.html90
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/repository.properties22
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkBig.zipbin2571090 -> 0 bytes
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkSmall.zipbin212938 -> 0 bytes
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkTiny.zipbin2826 -> 0 bytes
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/CVSROOT/modules65
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/docs/readme.html2
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/macros/macro11
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project1/f1/file-in-p1.txt1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project2/file-p2.txt1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.c1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.h1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/sub/file-sub.txt1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/common/common.txt1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/linux/linux.txt1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/pc/pc.txt1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project8/file-p8.txt1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/self-host.xml81
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllCoreTests.java36
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTests.java37
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSClientException.java21
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestLogListener.java59
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestSetup.java215
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSUITestSetup.java22
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CommandLineCVSClient.java81
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseCVSClient.java119
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java911
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/ICVSClient.java22
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/JUnitTestCase.java329
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnection.java119
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnectionMethod.java46
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestsUserAuthenticator.java39
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/AllTestsCompatibility.java33
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/BasicTest.java496
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/CompatibleTestSetup.java58
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ConflictTest.java95
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ModuleTest.java94
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/SameResultEnv.java490
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java35
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/BatchedTestSetup.java36
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseFolderTest.java95
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseSynchronizerTest.java750
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncBytesTest.java126
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncInfoTest.java183
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/AllTestsProvider.java39
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java551
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ConcurrencyTests.java98
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ImportTest.java185
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java561
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/LinkResourcesTest.java87
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ModuleTest.java287
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java375
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java272
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/WatchEditTest.java146
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/AllTestsTeamSubscriber.java37
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSMergeSubscriberTest.java482
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSSyncSubscriberTest.java230
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSWorkspaceSubscriberTest.java1308
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncInfoSource.java83
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncSetTests.java104
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestCommitAction.java35
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMarkAsMergedAction.java25
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMergeUpdateAction.java42
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndCommit.java47
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndUpdate.java35
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestUpdateAction.java39
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/AllUITests.java36
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSOperationTest.java30
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CheckoutOperationTests.java126
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java192
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/HeadlessCVSRunnableContext.java59
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MenuEnablementTest.java533
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MiscOperationsTests.java63
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java127
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/AllTests.java32
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ArgumentParser.java49
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/BenchmarkTestSetup.java55
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CVSUITestCase.java454
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CaseEntry.java38
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CommandTests.java237
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/DelimitedValuesWriter.java54
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/DummyPromptCondition.java24
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/EmptyPerspective.java54
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/FakeSelectionProvider.java42
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/GroupEntry.java28
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ICriteria.java23
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ILogEntryVisitor.java19
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogEntry.java124
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogEntryContainer.java63
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogFormatterUIMain.java188
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestCase.java107
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestResult.java264
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestRunner.java38
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/MergeRunsVisitor.java76
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PerformanceTimer.java55
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintCSVDiffVisitor.java102
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintCSVSummaryVisitor.java82
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintDiffMain.java154
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintDiffVisitor.java90
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintSummaryMain.java122
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintTextDiffVisitor.java147
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintTextSummaryVisitor.java109
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Result.java39
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/RootEntry.java48
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/SequenceGenerator.java63
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/SyncTests.java112
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/TaskEntry.java106
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Util.java23
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Utils.java774
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Waiter.java35
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/WorkflowTests.java156
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/test.xml61
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/toc.xml64
803 files changed, 0 insertions, 196039 deletions
diff --git a/bundles/org.eclipse.team.core/.classpath b/bundles/org.eclipse.team.core/.classpath
deleted file mode 100644
index 065ac06e1..000000000
--- a/bundles/org.eclipse.team.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/bundles/org.eclipse.team.core/.cvsignore b/bundles/org.eclipse.team.core/.cvsignore
deleted file mode 100644
index c5e82d745..000000000
--- a/bundles/org.eclipse.team.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/.options b/bundles/org.eclipse.team.core/.options
deleted file mode 100644
index c3440ea1b..000000000
--- a/bundles/org.eclipse.team.core/.options
+++ /dev/null
@@ -1,6 +0,0 @@
-# Debugging options for the org.eclipse.team.core plugin.
-
-# Turn on debugging for the plugin.
-org.eclipse.team.core/debug=false # Shows stream debugging information org.eclipse.team.core/streams=false
-org.eclipse.team.core/refreshjob=false
-org.eclipse.team.core/backgroundevents=false \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/.project b/bundles/org.eclipse.team.core/.project
deleted file mode 100644
index 693d30d67..000000000
--- a/bundles/org.eclipse.team.core/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.team.core</name>
- <comment></comment>
- <projects>
- <project>org.eclipse.core.resources</project>
- <project>org.eclipse.core.runtime</project>
- <project>org.eclipse.core.runtime.compatibility</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.team.core/about.html b/bundles/org.eclipse.team.core/about.html
deleted file mode 100644
index 9db411aab..000000000
--- a/bundles/org.eclipse.team.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/bundles/org.eclipse.team.core/build.properties b/bundles/org.eclipse.team.core/build.properties
deleted file mode 100644
index 975c3f914..000000000
--- a/bundles/org.eclipse.team.core/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
-bin.includes = about.html,plugin.xml,plugin.properties,*.jar,.options
-source.team.jar=src/
-src.includes=about.html,schema/
diff --git a/bundles/org.eclipse.team.core/buildnotes_team.html b/bundles/org.eclipse.team.core/buildnotes_team.html
deleted file mode 100644
index 2c2e4a7c0..000000000
--- a/bundles/org.eclipse.team.core/buildnotes_team.html
+++ /dev/null
@@ -1,529 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<title>Eclipse Team Plugin - Build notes</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">
-
-<table border="0" cellspacing="5" cellpadding="2" width="100%">
- <tbody>
- <tr>
- <td align="left" width="72%"> <font class="indextop"> Eclipse Team</font><br><font class="indexsub"> build notes</font></td>
- </tr>
- </tbody>
-</table>
-
-<table border="0" cellspacing="5" cellpadding="2" width="100%">
- <tbody>
- <tr><td>Here are the build notes for the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-vcm-home/main.html">Team Plugin</a>
- which includes changes to <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.core/">org.eclipse.team.core</a>,
- <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.ui/">org.eclipse.team.ui</a>, <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.ftp/">org.eclipse.team.ftp</a>, <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.examples.filesystem/">org.eclipse.team.examples.filesystem</a>,
- <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.webdav/">org.eclipse.team.webdav</a>.
-</td></tr>
-
-<tr><td align="left" valign="top" colspan="2" bgcolor="#0080c0" width="100%"><b><font face="Arial,Helvetica"><font color="#ffffff">3.0 Builds</font></font></b></td>
-</tr><tr>
- <td>
- <!-- ####### START OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <h4><img src="http://dev.eclipse.org/images/Adarrow.gif" nosave="" border=0 height=16 width=16 alt="">September
- 23rd 2003 - 3.0 (I20030923)</h4>
- <h4>Interesting changes</h4>
- <ul>
- <li>More actions have been added to the view: copy/paste/rename/delete.
- <li>The Synchronize View displays a Busy Pointer icon when performing
- work in the background that affects the view.
- <li>A status bar that shows the number of conflicting/incoming/outgoing
- changes is located at the top of the Synchronize View. The numbers
- reflect both the entire changes in the workspace or when a working
- set is enabled, the changes in the working set versus those in the
- workspace. This is a hint that changes in the workspace are being
- filtered out by a working set.
- <li>Conflicts are propagated to the parent folders in the Synchronize
- View. This will make it harder to forget or miss important conflicting
- changes.
- </ul>
- <h4>Breaking API changes</h4>
- <p>None</p>
- <h4>Fixed bugs</h4>
- <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-08-29&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a>
- bugzilla query to list all fixed bugs in this build.</p>
- <h4><img src="http://dev.eclipse.org/images/Adarrow.gif" nosave="" border=0 height=16 width=16 alt="">September
- 9th 2003 - 3.0 (I20030909)</h4>
- <h4>Interesting changes</h4>
- <ul>
- <li>The Synchronize View now supports stepping through all differences in step with the compare editor. You can use the
- next/previous arrows to browse all changes.
- </ul>
- <h4>Breaking API changes</h4>
- <p>None</p>
- <h4>Fixed bugs</h4>
- <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-08-29&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a>
- bugzilla query to list all fixed bugs in this build.</p>
- <!-- ####### END OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <!-- ####### START OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <h4><img src="http://dev.eclipse.org/images/Adarrow.gif" nosave="" border=0 height=16 width=16 alt="">
- August 26th 2003 - 3.0 (I20030819)</h4>
- <h4>Interesting changes</h4>
- <ul>
- <li>The mode filters in the Synchronize View are saved as user preferences and the preference to use incoming/outgoing mode has been removed.</li>
- </ul>
- <h4>Breaking API changes</h4>
- <p>None</p>
- <h4>Fixed bugs (? fixed)</h4>
- <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-08-19&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a>
- bugzilla query to list all fixed bugs in this build.</p>
- <!-- ####### END OF 3.0 BUILD SUBMISSIONS BLOCK --><strong></strong>
- <!-- ####### START OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <h4><img src="http://dev.eclipse.org/images/Adarrow.gif" nosave="" border=0 height=16 width=16 alt="">
- August 19th 2003 - 3.0 (I20030819)</h4>
- <h4>Interesting changes</h4>
- <ul>
- <li>We have received new Synchronize View action icons.</li>
- <li>Cancellation support in the stream classes can be configured. This is to allow certain communications (e.g. logins) to not be interrupted.</li>
- <li>Fixed a couple of bugs with SyncSets not being concurrent safe.</li>
- </ul>
- <h4>Breaking API changes</h4>
- <p>None</p>
- <h4>Fixed bugs (7 fixed)</h4>
- <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-08-07&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a>
- bugzilla query to list all fixed bugs in this build.</p>
- <!-- ####### END OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <!-- ####### START OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <h4><img src="http://dev.eclipse.org/images/Adarrow.gif" nosave="" border=0 height=16 width=16 alt="">
- August 6th 2003 - 3.0 (I20030806)</h4>
- <h4>Interesting changes</h4>
- <ul>
- <li>The new Synchronize View now calculates all changes in a separate
- thread. This improves startup times and provides better responsiveness
- when synchronizing resources.</li>
- <li>The Synchronize View API is starting to take shape. For an advanced
- preview look at the <strong>org.eclipse.team.core.subscribers</strong>
- and <strong>org.eclipse.team.ui.sync </strong>packages.</li>
- <li>A Team Synchronize perspective has been created and is the default
- when synchronizing. This can be configured via the Synchronize View
- preferences. </li>
- </ul>
- <h4>Breaking API changes</h4>
- <p>None</p>
- <h4>Fixed bugs (27 fixed)</h4>
- <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-07-18&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a>
- bugzilla query to list all fixed bugs in this build.</p>
- <!-- ####### END OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <br>
- <br>
- </td>
- </tr>
-
-<tr><td align="left" valign="top" colspan="2" bgcolor="#0080c0" width="100%"><b><font face="Arial,Helvetica"><font color="#ffffff">
-Archive for 2.0 and 2.1 Builds</font></font></b></td>
-</tr><tr><td>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-<p class="MsoNormal">Team build I20020909 &#8211; September 9, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020910</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">The ability to export/import target sites has been added along
-with properties pages for target sites and deployed projects.</p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-<p class="MsoNormal">Team build I20020517 &#8211; May 17 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020517</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">This build introduces Target Management support. Target
-management consists of a set of core API, in combination with one or more
-target providers. Initially, we are providing a WebDAV target provider in
-the plug-in org.eclipse.team.webdav. Target management operations appear
-in the navigator under the "Deploy" sub-menu.</p>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020430 &#8211; April 30 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020430</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">No major changes</p>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020423 &#8211; April 23 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020423</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">Initial release of team project set support. There is
- now an import and export wizard that allows one to create a file containing
- a list (and location) of team shared projects. This file may be imported
-into another workspace, re-creating the entire set of projects.</p>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style=""> </h1>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020418 &#8211; April 18 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020418</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">No significant changes to the core Team support in this
- build.</p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020409 &#8211; April 9 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020409</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">No significant changes to the core Team support in this
- build.</p>
- <br>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020402 &#8211; April 2 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020402</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">Team plug-ins are now turned <b>on</b> by default. The
- old VCM plug-ins are still included in the build but are turned off.<br>
- The global ignore and text/binary APIs have changed substantially. The
- facilities are now provided as static methods on the class org.eclipse.team.core.Team.
- See that class's Javadoc for more details.<br>
- <br>
- </p>
-
-<p class="MsoNormal"><br>
- </p>
-
-<div class="Section1">
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020312 &#8211; March 12 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020312</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal"></p>
-
-<p class="MsoNormal">Team plug-ins are now turned <b>on</b> by default. The
- old VCM plug-ins are still included in the build but are turned off.</p>
-
-<p class="MsoNormal"><br>
- The Decorations extension point has been removed from org.eclipse.team.ui.
- Please use the generic workbench decoration facility in the future.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020305 &#8211; March 5 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020305</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">No changes to the core team support in this drop.</p>
-
-<p class="MsoNormal"><br>
- All Team plug-ins are turned off by default. If you wish to use Team
- support,</p>
-
-<ol style="margin-top: 0in;" start="1" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml&nbsp;</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml&nbsp;</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml&nbsp;</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml&nbsp;</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml&nbsp;</li>
-
-</ol>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020226 &#8211; February 26, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020226</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal"></p>
-
-<p class="MsoNormal"></p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]--><!--[endif]--></p>
-
-<p class="MsoNormal">No changes in this drop.</p>
-
-<p class="MsoNormal"><br>
- All Team plug-ins are turned off by default. If you wish to use Team
- support,</p>
-
-<ol style="margin-top: 0in;" start="1" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml&nbsp;</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml&nbsp;</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml&nbsp;</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml&nbsp;</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml&nbsp;</li>
-
-</ol>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build I20020214 &#8211; February 14, 2002<o:p></o:p></p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020214<o:p></o:p></p>
-
-<h2>What's new in this drop<o:p></o:p></h2>
-
-<p class="MsoNormal">Bug fixes:<o:p></o:p></p>
-
-<p class="MsoNormal">Change in semantics to validateEdit (9802)<o:p></o:p></p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">All Team plug-ins are turned off by default. If you
-wish to use Team support,<o:p></o:p></p>
-
-<ol style="margin-top: 0in;" start="1" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml <o:p></o:p></li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml <o:p></o:p></li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml <o:p></o:p></li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml <o:p></o:p></li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml <o:p></o:p></li>
-
-</ol>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build V2_0_6 &#8211; February 12, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020212</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">48 bugs fixed.</p>
-
-<p class="MsoNormal">Global ignore facility added to the core team support.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">All Team plug-ins are turned off by default. If you
-wish to use Team support,</p>
-
-<ol style="margin-top: 0in;" start="6" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml</li>
-
-</ol>
-
-<p class="MsoNormal" style="margin-left: 0.25in;"><!--[if !supportEmptyParas]-->
- &nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">Please report any problems to the VCM team, and use
-the VCM component for bug tracking.</p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build V2_0_5 &#8211; February 5, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020205</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">41 bugs fixed.</p>
-
-<p class="MsoNormal">CVS operations move from the CVS submenu to the Team
- submenu.</p>
-
-<p class="MsoNormal">Proper plugin.xml files will be included with this build.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">All Team plug-ins are turned off by default. If you
-wish to use Team support,</p>
-
-<ol style="margin-top: 0in;" start="11" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml</li>
-
-</ol>
-
-<p class="MsoNormal" style="margin-left: 0.25in;"><!--[if !supportEmptyParas]-->
- &nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">Please report any problems to the VCM team, and use
-the VCM component for bug tracking.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">Run <a
- href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;resolution=FIXED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfield=bug_status&amp;chfieldfr%20">
- this</a> query to determine which bugs have been fixed since January
- 29<sup> th</sup>. If you wish to narrow the search, edit the query and
- change the dates.</p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build V2_0_4 &#8211; January 29, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020129</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">Merge support has been added</p>
-
-<p class="MsoNormal">Numerous bug fixes</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">All Team plug-ins are turned off by default. If you
-wish to use Team support,</p>
-
-<ol style="margin-top: 0in;" start="16" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml</li>
-
-</ol>
-
-<p class="MsoNormal" style="margin-left: 0.25in;"><!--[if !supportEmptyParas]-->
- &nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">Please report any problems to the VCM team, and use
-the VCM component for bug tracking.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">Run <a
- href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;resolution=FIXED&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;priority=P4&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id%20">
- this</a> query to determine which bugs have been fixed since January
- 15<sup> th</sup>. If you wish to narrow the search, edit the query and
- change the dates.</p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; Team Support</h1>
-
-<p class="MsoNormal">Team build V2_0_2 &#8211; January 15, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020115</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">This is the initial release for the Team support plug-ins.
- Team support is intended to be an eventual replacement for the VCM codebase.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">The plug-ins are turned off by default. If you wish
-to use Team support,</p>
-
-<ol style="margin-top: 0in;" start="21" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml</li>
-
-</ol>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">Please report any problems to the VCM team, and use
-the VCM component for bug tracking.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
-
-<p class="MsoNormal">Run <a
- href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;resolution=FIXED&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;priority=P4&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugi%20">
- this</a> query to determine which bugs have been fixed since January
- 7<sup> th</sup>. If you wish to narrow the search, edit the query and
- change the dates.</p>
-
-<h1 style=""><!--[if !supportEmptyParas]--> &nbsp;<!--[endif]--><o:p></o:p></h1>
- </div>
-
-</td>
-</tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/bundles/org.eclipse.team.core/plugin.properties b/bundles/org.eclipse.team.core/plugin.properties
deleted file mode 100644
index 2f89eff07..000000000
--- a/bundles/org.eclipse.team.core/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=Team Support Core
-providerName=Eclipse.org
-FileTypesRegistry=File Types Registry
-GlobalIgnoreRegistry=Global Ignore Registry
-TeamProjectSets=Team Project Sets
-Targets=Target Provider and Location Factories
-Repository=Repository Providers
-Deployment=Deployment Providers \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/plugin.xml b/bundles/org.eclipse.team.core/plugin.xml
deleted file mode 100644
index bcde56282..000000000
--- a/bundles/org.eclipse.team.core/plugin.xml
+++ /dev/null
@@ -1,160 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.team.core"
- name="%pluginName"
- version="3.0.0"
- provider-name="%providerName"
- class="org.eclipse.team.internal.core.TeamPlugin">
-
- <runtime>
- <library name="team.jar">
- <export name="*"/>
- <packages prefixes="org.eclipse.team.core, org.eclipse.team.internal.core"/>
- </library>
- </runtime>
- <requires>
- <import plugin="org.eclipse.core.resources"/>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.core.runtime.compatibility"/>
- </requires>
-
-
- <extension-point id="fileTypes" name="%FileTypesRegistry" schema="schema/fileTypes.exsd"/>
- <extension-point id="ignore" name="%GlobalIgnoreRegistry" schema="schema/ignore.exsd"/>
- <extension-point id="projectSets" name="%TeamProjectSets" schema="schema/projectSets.exsd"/>
- <extension-point id="repository" name="%Repository" schema="schema/repository.exsd"/>
- <extension-point id="deployment" name="%Deployment" schema="schema/deployment.exsd"/>
- <extension-point id="subscriber" name="%Subscriber"/>
-
-<!-- Define common known file types -->
- <extension
- point="org.eclipse.team.core.fileTypes">
- <fileTypes
- type="text"
- extension="txt">
- </fileTypes>
- <fileTypes
- type="text"
- extension="properties">
- </fileTypes>
- <fileTypes
- type="text"
- extension="xml">
- </fileTypes>
- <fileTypes
- type="text"
- extension="xsl">
- </fileTypes>
- <fileTypes
- type="text"
- extension="html">
- </fileTypes>
- <fileTypes
- type="text"
- extension="htm">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="jpg">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="jpeg">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="gif">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="png">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="ico">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="bmp">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="tif">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="tiff">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="doc">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="xls">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="pdf">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="ppt">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="zip">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="exe">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="dll">
- </fileTypes>
- <fileTypes
- type="binary"
- extension="so">
- </fileTypes>
- <fileTypes
- type="text"
- extension="project">
- </fileTypes>
- <fileTypes
- type="text"
- extension="options">
- </fileTypes>
- <fileTypes
- type="text"
- extension="emsd">
- </fileTypes>
- <fileTypes
- type="text"
- extension="mxsd">
- </fileTypes>
- </extension>
- <extension
- id="FileValidator"
- point="org.eclipse.core.resources.fileModificationValidator">
- <fileModificationValidator
- class="org.eclipse.team.internal.core.FileModificationValidatorManager">
- </fileModificationValidator>
- </extension>
- <extension
- id="MoveDeleteHook"
- point="org.eclipse.core.resources.moveDeleteHook">
- <moveDeleteHook
- class="org.eclipse.team.internal.core.MoveDeleteManager">
- </moveDeleteHook>
- </extension>
- <extension
- id="TeamHook"
- point="org.eclipse.core.resources.teamHook">
- <teamHook
- class="org.eclipse.team.internal.core.TeamHookDispatcher">
- </teamHook>
- </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.team.core/schema/fileTypes.exsd b/bundles/org.eclipse.team.core/schema/fileTypes.exsd
deleted file mode 100644
index 317418148..000000000
--- a/bundles/org.eclipse.team.core/schema/fileTypes.exsd
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.team.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.team.core" id="fileTypes" name="File Types"/>
- </appInfo>
- <documentation>
- This extension point is used to register information about whether particular file types should be considered to contain text or binary data.
-This information is important to some repository providers as it affects how the data is stored, compared and transmitted.
-&lt;p&gt;
-Providers may provide an extension for this extension point. No code beyond the XML extension declaration is required.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="fileTypes" 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="fileTypes">
- <complexType>
- <attribute name="extension" type="string" use="required">
- <annotation>
- <documentation>
- the file extension being identified by this contribution.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="type" type="string" use="required">
- <annotation>
- <documentation>
- one of either &quot;text&quot; or &quot;binary&quot;, identifying the contents of files matching the value of extension.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- Following is an example of a fileTypes extension:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.team.core.fileTypes&quot;&gt;
- &lt;fileTypes extension=&quot;txt&quot; type=&quot;text&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>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2002 IBM Corporation and others.
-All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.team.core/schema/ignore.exsd b/bundles/org.eclipse.team.core/schema/ignore.exsd
deleted file mode 100644
index a8bc4732a..000000000
--- a/bundles/org.eclipse.team.core/schema/ignore.exsd
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.team.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.team.core" id="ignore" name="Ignore"/>
- </appInfo>
- <documentation>
- This extension point is used to register information about whether particular resources should be ignored;
-that is, excluded from version configuration management operations.
-Providers may provide an extension for this extension point. No code beyond the XML extension declaration is required.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="ignore" 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="ignore">
- <complexType>
- <attribute name="pattern" type="string" use="required">
- <annotation>
- <documentation>
- the pattern against which resources will be compared.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="enabled" type="boolean" use="required">
- <annotation>
- <documentation>
- one of &quot;true&quot; or &quot;false&quot;, determines whether this ignore pattern is enabled.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- Following is an example of an ignore extension:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.team.core.ignore&quot;&gt;
- &lt;ignore pattern=&quot;*.class&quot; enabled=&quot;true&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>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2002 IBM Corporation and others.
-All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.team.core/schema/projectSets.exsd b/bundles/org.eclipse.team.core/schema/projectSets.exsd
deleted file mode 100644
index a4b6c51aa..000000000
--- a/bundles/org.eclipse.team.core/schema/projectSets.exsd
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.team.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.team.core" id="projectSets" name="Project Sets"/>
- </appInfo>
- <documentation>
- This extension point is used to register a handler for creating and reading project sets.
-Project sets are lightweight, portable method of sharing a particular lineup of team-shared projects in a workspace.
-A project set file may be used to provide team memebers with a simple way of creating a workspace with a particular lineup of projects form one or more team providers.
-&lt;p&gt;
-Providers may provide an extension for this extension point.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="projectSets" 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="projectSets">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- the nature id of the provider for which this handler creates and reads project sets.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- the fully qualified name of a class implementing &lt;samp&gt;org.eclipse.team.core.IProjectSerializer&lt;/samp&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.team.core.IProjectSetSerializer"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- Following is an example of a projectSets extension:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.team.core.projectSets&quot;&gt;
- &lt;projectSets
- id=&quot;org.eclipse.team.cvs.core.cvsnature&quot;
- class=&quot;org.eclipse.team.cvs.core.CVSProjectSetSerializer&quot;&gt;
- &lt;/projectSets&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>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2002 IBM Corporation and others.
-All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.team.core/schema/repository.exsd b/bundles/org.eclipse.team.core/schema/repository.exsd
deleted file mode 100644
index 87f464f03..000000000
--- a/bundles/org.eclipse.team.core/schema/repository.exsd
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.team.core.org.eclipse.team.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.team.core.org.eclipse.team.core" id="repository" name="Team Repository Provider"/>
- </appInfo>
- <documentation>
- The Team plugin contains the notion of Repositories. The job of a repository is to provide support for sharing resources between Team members. Repositories are configured on a per-project basis. Only one repository can be mapped to a project at a time.
-&lt;p&gt;
-Repositories that extend this extension point can provide implementations for common repository specific rules for resource modifications, moving and deleting. See the following interfaces for more details &lt;code&gt;IFileModificationValidator&lt;/code&gt; and &lt;code&gt;MoveDeleteHook&lt;/code&gt;.
-&lt;/p&gt;
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="repository"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="repository">
- <complexType>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
- an optional identifier of the extension instance
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- the fully-qualified name of a subclass of
- &lt;samp&gt;org.eclipse.team.core.RepositoryProvider&lt;/samp&gt;.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 2.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- &lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.team.core.repository&quot;&gt;
- &lt;repository
- class=&quot;org.eclipse.myprovider.MyRepositoryProvider&quot;
- id=&quot;org.eclipse.myprovider.myProviderID&quot;&gt;
- &lt;/repository&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- The value of the class attribute must represent a subclass of &lt;samp&gt;org.eclipse.team.core.RepositoryProvider&lt;/samp&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- The provided implementation of RepositoryProvider provides helper methods and common code for mapping and unmapping providers to projects.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2002 IBM Corporation and others.
-All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/DefaultRepositoryProviderType.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/DefaultRepositoryProviderType.java
deleted file mode 100644
index 4fabc2bda..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/DefaultRepositoryProviderType.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.core;
-
-/*
- */
-public final class DefaultRepositoryProviderType extends RepositoryProviderType {
-
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/DeploymentProvider.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/DeploymentProvider.java
deleted file mode 100644
index aa6bae1a5..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/DeploymentProvider.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.core;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.internal.core.registry.DeploymentProviderDescriptor;
-
-/**
- * A deployment provider allows synchronization of workspace resources with a remote location. At a minimum
- * it allows pushing resources in the workspace to a remote location and pulling resources from a
- * remote location into the workspace.
- * <p>
- * The difference between a deployment provider and repository provider is the following:
- * <ul>
- * <li>a deployment provider doesn't have full control of workspace resources whereas the repository
- * provider can hook into the IMoveDeleteHook and IFileModificationValidator.
- * <li>multiple deployment providers can be mapped to the same folder whereas there is only one
- * repository provider per project.
- * <li>a deployment provider can be mapped to any folder as long as the mapping is not overlapping
- * whereas the repository provider must be mapped at the project.
- * </ul>
- * </p>
- * @see RepositoryProvider
- * @see IDeploymentProviderManager
- * @since 3.0
- */
-public abstract class DeploymentProvider implements IExecutableExtension, IAdaptable {
-
- private String id;
- private IContainer container;
- private String name;
-
- public String getID() {
- return id;
- }
-
- public String getName() {
- return this.name;
- }
-
- public IContainer getMappedContainer() {
- return this.container;
- }
-
- abstract public void init();
-
- abstract public void dispose();
-
- public void setContainer(IContainer container) {
- this.container = container;
- }
-
- abstract public void saveState(IMemento memento);
-
- abstract public void restoreState(IMemento memento);
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
- */
- public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
- // TODO: This doesn't work well since the Provider is created programmatically
- // when initially mapped
- this.id = config.getAttribute(DeploymentProviderDescriptor.ATT_ID);
- this.name = config.getAttribute(DeploymentProviderDescriptor.ATT_NAME);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- return null;
- }
-
- /**
- * Returns whether a resource can be mapped to multiple deployment providers
- * of this type. Even if this method returns <code>false</code>, a resource can
- * still be mapped to multiple providers whose id differs. By default,
- * multiple mappings are not supported. Subclasses must override this method
- * to change this behavior.
- * @return whether multiple mappings to providers of this type are supported
- */
- public boolean isMultipleMappingsSupported() {
- return false;
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IDeploymentProviderManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IDeploymentProviderManager.java
deleted file mode 100644
index 6591e1c46..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IDeploymentProviderManager.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.core;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-
-/**
- * Manages deployment providers. Clients can programatically map and unmap deployment
- * providers to containers.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @see RepositoryProvider
- * @see DeploymentProvider
- * @since 3.0
- */
-public interface IDeploymentProviderManager {
- /**
- * Maps a container to the the given provider. Mappings are persisted across
- * workbench sessions.
- *
- * @param container the container to be mapped to the given provider
- * @param provider the provider to be mapped to the container
- * @throws TeamException
- */
- public void map(IContainer container, DeploymentProvider provider) throws TeamException;
-
- /**
- * Unmaps the given provider from the container.
- *
- * @param container the container to be unmapped from the given provider
- * @param provider the provider to unmap from the container
- * @throws TeamException
- */
- public void unmap(IContainer container, DeploymentProvider provider) throws TeamException;
-
- /**
- * Returns the providers associated with the given resource. This loads the providers
- * if not already loaded, and can be long running. To check the existance of
- * a particular mapping call {@link #getMappedTo(IResource, String)} instead.
- * This method returns an empty array if there are no mappings.
- *
- * @param resource the resource whose mappings are to be retreived
- * @return the mappings for the resource
- */
- public DeploymentProvider[] getMappings(IResource resource);
-
- /**
- * Returns the providers with the given id associated with the given resource.
- * This loads the providers if not already loaded, and can be long running.
- * To check the existance of a particular mapping call
- * {@link #getMappedTo(IResource, String)} instead.
- * This method returns an empty array if there are no mappings. This method will
- * only return either an empty array or an array of length 1 if the provider
- * of the given type does not support multiple mappings
- * (@see DeploymentProvider#isMultipleMappingsSupported()).
- * @param resource the resource whose mappings are to be retreived
- * @param id the id of the provider
- * @return the mappings for the resource
- */
- public DeploymentProvider[] getMappings(IResource resource, String id);
-
- /**
- * Returns <code>true</code> if the resource is mapped to the provider with
- * the given id, and <code>false</code> otherwise. This method is fast running
- * and won't load the provider.
- *
- * @param resource the resource for which to check the mapping
- * @param id the id of the provider
- * @return <code>true</code> if the resource is mapped to the provider with
- * the given id, and <code>false</code> otherwise.
- */
- public boolean getMappedTo(IResource resource, String id);
-
- /**
- * Return an array of all the resource roots that are mapped
- * to a deployment providers with the given
- * id. If id is <code>null</code>, the roots of all deployment providers
- * are returned.
- * @param id a deployment provider id or <code>null</code>
- * @return all roots that are mapped to deployment providers with
- * the given id
- */
- public IResource[] getDeploymentProviderRoots(String id);
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java
deleted file mode 100644
index eaab301ba..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.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.core;
-
-/**
- * A file type info specifies both the file extension and the
- * corresponding file type.
- *
- * @since 2.0
- */
-public interface IFileTypeInfo {
- /**
- * Returns the string specifying the file extension
- *
- * @return the file extension
- */
- public String getExtension();
-
- /**
- * Returns the file type for files ending with the corresponding
- * extension.
- *
- * Valid values are:
- * Team.UNKNOWN
- * Team.TEXT
- * Team.BINARY
- *
- * @return the file type
- */
- public int getType();
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IIgnoreInfo.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IIgnoreInfo.java
deleted file mode 100644
index 86bf1ba9a..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IIgnoreInfo.java
+++ /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
- *******************************************************************************/
-package org.eclipse.team.core;
-
-/**
- * An ignore info specifies both the pattern and the enabled state
- * of a globally ignored pattern.
- *
- * @since 2.0
- */
-public interface IIgnoreInfo {
- /**
- * Return the string specifying the pattern of this ignore. The string
- * may include the wildcard characters '*' and '?'. If you wish to
- * include either of these characters verbatim (i.e. you do not wish
- * them to expand to wildcards), you must escape them with a backslash '\'.
- * <p>
- * If you are using string literals in Java to represent the patterns, don't
- * forget escape characters are represented by "\\".
- *
- * @return the pattern represented by this ignore info
- */
- public String getPattern();
- /**
- * Return whether or not this ignore info is enabled. A disabled ignore
- * info remains in the global ignore list, but no attempt is made to match
- * with it to determine resource ignore state.
- *
- * @return whether the ignore info is enabled
- */
- public boolean getEnabled();
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IMemento.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IMemento.java
deleted file mode 100644
index 9e4a1cb0d..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IMemento.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-/**
- * Interface to a memento used for saving the important state of an object
- * in a form that can be persisted in the file system.
- * <p>
- * Mementos were designed with the following requirements in mind:
- * <ol>
- * <li>Certain objects need to be saved and restored across platform sessions.
- * </li>
- * <li>When an object is restored, an appropriate class for an object might not
- * be available. It must be possible to skip an object in this case.</li>
- * <li>When an object is restored, the appropriate class for the object may be
- * different from the one when the object was originally saved. If so, the
- * new class should still be able to read the old form of the data.</li>
- * </ol>
- * </p>
- * <p>
- * Mementos meet these requirements by providing support for storing a
- * mapping of arbitrary string keys to primitive values, and by allowing
- * mementos to have other mementos as children (arranged into a tree).
- * A robust external storage format based on XML is used.
- * </p><p>
- * The key for an attribute may be any alpha numeric value. However, the
- * value of <code>TAG_ID</code> is reserved for internal use.
- * </p><p>
- * This interface is not intended to be implemented or extended by clients.
- * </p>
- *
- * @see IPersistableElement
- * @see IElementFactory
- */
-public interface IMemento {
- /**
- * Special reserved key used to store the memento id
- * (value <code>"org.eclipse.ui.id"</code>).
- *
- * @see #getID()
- */
- public static final String TAG_ID = "IMemento.internal.id"; //$NON-NLS-1$
- /**
- * Creates a new child of this memento with the given type.
- * <p>
- * The <code>getChild</code> and <code>getChildren</code> methods
- * are used to retrieve children of a given type.
- * </p>
- *
- * @param type the type
- * @return a new child memento
- * @see #getChild
- * @see #getChildren
- */
- public IMemento createChild(String type);
- /**
- * Creates a new child of this memento with the given type and id.
- * The id is stored in the child memento (using a special reserved
- * key, <code>TAG_ID</code>) and can be retrieved using <code>getId</code>.
- * <p>
- * The <code>getChild</code> and <code>getChildren</code> methods
- * are used to retrieve children of a given type.
- * </p>
- *
- * @param type the type
- * @param id the child id
- * @return a new child memento with the given type and id
- * @see #getID
- */
- public IMemento createChild(String type, String id);
- /**
- * Returns the first child with the given type id.
- *
- * @param type the type id
- * @return the first child with the given type
- */
- public IMemento getChild(String type);
- /**
- * Returns all children with the given type id.
- *
- * @param type the type id
- * @return the list of children with the given type
- */
- public IMemento[] getChildren(String type);
- /**
- * Returns the floating point value of the given key.
- *
- * @param key the key
- * @return the value, or <code>null</code> if the key was not found or was found
- * but was not a floating point number
- */
- public Float getFloat(String key);
- /**
- * Returns the id for this memento.
- *
- * @return the memento id, or <code>null</code> if none
- * @see #createChild(java.lang.String,java.lang.String)
- */
- public String getID();
- /**
- * Returns the integer value of the given key.
- *
- * @param key the key
- * @return the value, or <code>null</code> if the key was not found or was found
- * but was not an integer
- */
- public Integer getInteger(String key);
- /**
- * Returns the string value of the given key.
- *
- * @param key the key
- * @return the value, or <code>null</code> if the key was not found
- */
- public String getString(String key);
- /**
- * Returns the data of the Text node of the memento. Each memento is allowed
- * only one Text node.
- *
- * @return the data of the Text node of the memento, or <code>null</code>
- * if the memento has no Text node.
- * @since 2.0
- */
- public String getTextData();
- /**
- * Sets the value of the given key to the given floating point number.
- *
- * @param key the key
- * @param value the value
- */
- public void putFloat(String key, float value);
- /**
- * Sets the value of the given key to the given integer.
- *
- * @param key the key
- * @param value the value
- */
- public void putInteger(String key, int value);
- /**
- * Copy the attributes and children from <code>memento</code>
- * to the receiver.
- *
- * @param memento the IMemento to be copied.
- */
- public void putMemento(IMemento memento);
- /**
- * Sets the value of the given key to the given string.
- *
- * @param key the key
- * @param value the value
- */
- public void putString(String key, String value);
- /**
- * Sets the memento's Text node to contain the given data. Creates the Text node if
- * none exists. If a Text node does exist, it's current contents are replaced.
- * Each memento is allowed only one text node.
- *
- * @param data the data to be placed on the Text node
- * @since 2.0
- */
- public void putTextData(String data);
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java
deleted file mode 100644
index f088238db..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.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.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * IProjectSetSerializer manages the serializing and deserializing
- * of references to projects. Given a project, it can produce a
- * UTF-8 encoded String which can be stored in a file.
- * Given this String, it can create in the workspace an IProject.
- *
- * @since 2.0
- */
-
-public interface IProjectSetSerializer {
-
- /**
- * For every IProject in providerProjects, return an opaque
- * UTF-8 encoded String to act as a reference to that project.
- * The format of the String is specific to the provider.
- * The format of the String must be such that
- * IProjectSetSerializer.addToWorskpace() will be able to
- * consume it and recreate a corresponding project.
- * @see IProjectSetSerializer#addToWorkspace(String[] referenceStrings, String filename, Object context, IProgressMonitor monitor)
- *
- * @param providerProjects an array of projects that the serializer should create
- * text references for
- * @param context a UI context object. This object will either be a
- * com.ibm.swt.widgets.Shell or it will be null.
- * @param monitor a progress monitor
- * @return String[] an array of serialized reference strings uniquely identifying the projects
- * @throws TeamException
- */
- public String[] asReference(IProject[] providerProjects, Object context, IProgressMonitor monitor) throws TeamException;
-
- /**
- * For every String in referenceStrings, create in the workspace a
- * corresponding IProject. Return an Array of the resulting IProjects.
- * Result is unspecified in the case where an IProject of that name
- * already exists. In the case of failure, a TeamException must be thrown.
- * The opaque strings in referenceStrings are guaranteed to have been previously
- * produced by IProjectSetSerializer.asReference().
- * @see IProjectSetSerializer#asReference(IProject[] providerProjects, Object context, IProgressMonitor monitor)
- *
- * @param referenceStrings an array of referene strings uniquely identifying the projects
- * @param filename the name of the file that the references were read from. This is included
- * in case the provider needs to deduce relative paths
- * @param context a UI context object. This object will either be a
- * com.ibm.swt.widgets.Shell or it will be null.
- * @param monitor a progress monitor
- * @return IProject[] an array of projects that were created
- * @throws TeamException
- */
- public IProject[] addToWorkspace(String[] referenceStrings, String filename, Object context, IProgressMonitor monitor) throws TeamException;
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.java
deleted file mode 100644
index b8a66559e..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.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.core;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * This class represents provisional API. A provider is not required to
- * implement this API. Implementers, and those who reference it, do so with the
- * awareness that this class may be removed or substantially changed at future
- * times without warning.
- * <p>
- * The intention is that this class will eventually replace <code>IProjectSetSerializer</code>.
- * At the current time it only complements this API by providing a notification
- * mechanism for informing repository providers when a project set has been
- * created.
- *
- * @see IProjectSetSerializer
- * @see RepositoryProviderType
- *
- * @since 2.1
- */
-public abstract class ProjectSetCapability {
- /**
- * Notify the provider that a project set has been created at path. Only
- * providers identified as having projects in the project set will be
- * notified. The project set may or may not be created in a workspace
- * project (thus may not be a resource).
- *
- * @param File
- * the project set file that was created
- */
- public void projectSetCreated(File file, Object context, IProgressMonitor monitor) {
- //default is to do nothing
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java
deleted file mode 100644
index ec686faa9..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java
+++ /dev/null
@@ -1,631 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.team.IMoveDeleteHook;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.team.internal.core.Policy;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * A concrete subclass of <code>RepositoryProvider</code> is created for each
- * project that is associated with a repository provider. The lifecycle of these
- * instances is is similar to that of the platform's 'nature' mechanism.
- * <p>
- * To create a repository provider and have it registered with the platform, a client
- * must minimally:
- * <ol>
- * <li>extend <code>RepositoryProvider</code>
- * <li>define a repository extension in <code>plugin.xml</code>.
- * Here is an example extension point definition:
- *
- * <code>
- * <br>&lt;extension point="org.eclipse.team.core.repository"&gt;
- * <br>&nbsp;&lt;repository
- * <br>&nbsp;&nbsp;class="org.eclipse.myprovider.MyRepositoryProvider"
- * <br>&nbsp;&nbsp;id="org.eclipse.myprovider.myProviderID"&gt;
- * <br>&nbsp;&lt;/repository&gt;
- * <br>&lt;/extension&gt;
- * </code>
- * </ol></p>
- * <p>
- * Once a repository provider is registered with Team, then you
- * can associate a repository provider with a project by invoking <code>RepositoryProvider.map()</code>.
- * </p>
- * @see RepositoryProvider#map(IProject, String)
- *
- * @since 2.0
- */
-public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
-
- private final static String TEAM_SETID = "org.eclipse.team.repository-provider"; //$NON-NLS-1$
-
- private final static QualifiedName PROVIDER_PROP_KEY =
- new QualifiedName("org.eclipse.team.core", "repository"); //$NON-NLS-1$ //$NON-NLS-2$
-
- private final static List AllProviderTypeIds = initializeAllProviderTypes();
-
- // the project instance that this nature is assigned to
- private IProject project;
-
- // lock to ensure that map/unmap and getProvider support concurrency
- private static final ILock mappingLock = Platform.getJobManager().newLock();
-
- /**
- * Instantiate a new RepositoryProvider with concrete class by given providerID
- * and associate it with project.
- *
- * @param project the project to be mapped
- * @param id the ID of the provider to be mapped to the project
- * @throws TeamException if
- * <ul>
- * <li>There is no provider by that ID.</li>
- * <li>The project is already associated with a repository provider and that provider
- * prevented its unmapping.</li>
- * </ul>
- * @see RepositoryProvider#unmap(IProject)
- */
- public static void map(IProject project, String id) throws TeamException {
- try {
- // Obtain a scheduling rule on the project before obtaining the
- // mappingLock. This is required because a caller of getProvider
- // may hold a scheduling rule before getProvider is invoked but
- // getProvider itself does not (and can not) obtain a scheduling rule.
- // Thus, the locking order is always scheduling rule followed by
- // mappingLock.
- Platform.getJobManager().beginRule(project, null);
- try {
- mappingLock.acquire();
- RepositoryProvider existingProvider = null;
-
- if(project.getPersistentProperty(PROVIDER_PROP_KEY) != null)
- existingProvider = getProvider(project); // get the real one, not the nature one
-
- //if we already have a provider, and its the same ID, we're ok
- //if the ID's differ, unmap the existing.
- if(existingProvider != null) {
- if(existingProvider.getID().equals(id))
- return; //nothing to do
- else
- unmap(project);
- }
-
- // Create the provider as a session property before adding the persistant
- // property to ensure that the provider can be instantiated
- RepositoryProvider provider = mapNewProvider(project, id);
-
- //mark it with the persistent ID for filtering
- try {
- project.setPersistentProperty(PROVIDER_PROP_KEY, id);
- } catch (CoreException outer) {
- // couldn't set the persistant property so clear the session property
- try {
- project.setSessionProperty(PROVIDER_PROP_KEY, null);
- } catch (CoreException inner) {
- // something is seriously wrong
- TeamPlugin.log(IStatus.ERROR, Policy.bind("RepositoryProvider.couldNotClearAfterError", project.getName(), id), inner);//$NON-NLS-1$
- }
- throw outer;
- }
-
- provider.configure(); //xxx not sure if needed since they control with wiz page and can configure all they want
-
- //adding the nature would've caused project description delta, so trigger one
- project.touch(null);
- } finally {
- mappingLock.release();
- }
- } catch (CoreException e) {
- throw TeamPlugin.wrapException(e);
- } finally {
- Platform.getJobManager().endRule(project);
- }
- }
-
- /*
- * Instantiate the provider denoted by ID and store it in the session property.
- * Return the new provider instance. If a TeamException is thrown, it is
- * guaranteed that the session property will not be set.
- *
- * @param project
- * @param id
- * @return RepositoryProvider
- * @throws TeamException we can't instantiate the provider, or if the set
- * session property fails from core
- */
- private static RepositoryProvider mapNewProvider(IProject project, String id) throws TeamException {
- RepositoryProvider provider = newProvider(id); // instantiate via extension point
-
- if(provider == null)
- throw new TeamException(Policy.bind("RepositoryProvider.couldNotInstantiateProvider", project.getName(), id)); //$NON-NLS-1$
-
- // validate that either the provider supports linked resources or the project has no linked resources
- if (!provider.canHandleLinkedResources()) {
- try {
- IResource[] members = project.members();
- for (int i = 0; i < members.length; i++) {
- IResource resource = members[i];
- if (resource.isLinked()) {
- throw new TeamException(new Status(IStatus.ERROR, TeamPlugin.ID, IResourceStatus.LINKING_NOT_ALLOWED, Policy.bind("RepositoryProvider.linkedResourcesExist", project.getName(), id), null)); //$NON-NLS-1$
- }
- }
- } catch (CoreException e) {
- throw TeamPlugin.wrapException(e);
- }
- }
-
- //store provider instance as session property
- try {
- project.setSessionProperty(PROVIDER_PROP_KEY, provider);
- provider.setProject(project);
- } catch (CoreException e) {
- throw TeamPlugin.wrapException(e);
- }
- return provider;
- }
-
- private static RepositoryProvider mapExistingProvider(IProject project, String id) throws TeamException {
- try {
- // Obtain the mapping lock before creating the instance so we can make sure
- // that a disconnect is not happening at the same time
- mappingLock.acquire();
- try {
- // Ensure that the persistant property is still set
- // (i.e. an unmap may have come in since we checked it last
- String currentId = project.getPersistentProperty(PROVIDER_PROP_KEY);
- if (currentId == null) {
- // The provider has been unmapped
- return null;
- }
- if (!currentId.equals(id)) {
- // A provider has been disconnected and another connected
- // Since mapping creates the session property, we
- // can just return it
- return lookupProviderProp(project);
- }
- } catch (CoreException e) {
- throw TeamPlugin.wrapException(e);
- }
- return mapNewProvider(project, id);
- } finally {
- mappingLock.release();
- }
- }
- /**
- * Disassoociates project with the repository provider its currently mapped to.
- * @param project
- * @throws TeamException The project isn't associated with any repository provider.
- */
- public static void unmap(IProject project) throws TeamException {
- try{
- // See the map(IProject, String) method for a description of lock ordering
- Platform.getJobManager().beginRule(project, null);
- try {
- mappingLock.acquire();
- String id = project.getPersistentProperty(PROVIDER_PROP_KEY);
-
- //If you tried to remove a non-existant nature it would fail, so we need to as well with the persistent prop
- if(id == null) {
- throw new TeamException(Policy.bind("RepositoryProvider.No_Provider_Registered", project.getName())); //$NON-NLS-1$
- }
-
- //This will instantiate one if it didn't already exist,
- //which is ok since we need to call deconfigure() on it for proper lifecycle
- RepositoryProvider provider = getProvider(project);
- if (provider == null) {
- // There is a persistant property but the provider cannot be obtained.
- // The reason could be that the provider's plugin is no longer available.
- // Better log it just in case this is unexpected.
- TeamPlugin.log(IStatus.ERROR, Policy.bind("RepositoryProvider.couldNotInstantiateProvider", project.getName(), id), null); //$NON-NLS-1$
- }
-
- if (provider != null) provider.deconfigure();
-
- project.setSessionProperty(PROVIDER_PROP_KEY, null);
- project.setPersistentProperty(PROVIDER_PROP_KEY, null);
-
- if (provider != null) provider.deconfigured();
-
- //removing the nature would've caused project description delta, so trigger one
- project.touch(null);
- } finally {
- mappingLock.release();
- }
- } catch (CoreException e) {
- throw TeamPlugin.wrapException(e);
- } finally {
- Platform.getJobManager().endRule(project);
- }
- }
-
- /*
- * Return the provider mapped to project, or null if none;
- */
- private static RepositoryProvider lookupProviderProp(IProject project) throws CoreException {
- return (RepositoryProvider) project.getSessionProperty(PROVIDER_PROP_KEY);
- }
-
-
- /**
- * Default constructor required for the resources plugin to instantiate this class from
- * the nature extension definition.
- */
- public RepositoryProvider() {
- }
-
- /**
- * Configures the provider for the given project. This method is called after <code>setProject</code>.
- * If an exception is generated during configuration
- * of the project, the provider will not be assigned to the project.
- *
- * @throws CoreException if the configuration fails.
- */
- abstract public void configureProject() throws CoreException;
-
- /**
- * Configures the nature for the given project. This is called by <code>RepositoryProvider.map()</code>
- * the first time a provider is mapped to a project. It is not intended to be called by clients.
- *
- * @throws CoreException if this method fails. If the configuration fails the provider will not be
- * associated with the project.
- *
- * @see RepositoryProvider#configureProject()
- */
- final public void configure() throws CoreException {
- try {
- configureProject();
- } catch(CoreException e) {
- try {
- RepositoryProvider.unmap(getProject());
- } catch(TeamException e2) {
- throw new CoreException(new Status(IStatus.ERROR, TeamPlugin.ID, 0, Policy.bind("RepositoryProvider_Error_removing_nature_from_project___1") + getID(), e2)); //$NON-NLS-1$
- }
- throw e;
- }
- }
-
- /**
- * Method deconfigured is invoked after a provider has been unmaped. The
- * project will no longer have the provider associated with it when this
- * method is invoked. It is a last chance for the provider to clean up.
- */
- protected void deconfigured() {
- }
-
- /**
- * Answer the id of this provider instance. The id should be the repository provider's
- * id as defined in the provider plugin's plugin.xml.
- *
- * @return the nature id of this provider
- */
- abstract public String getID();
-
- /**
- * Returns an <code>IFileModificationValidator</code> for pre-checking operations
- * that modify the contents of files.
- * Returns <code>null</code> if the provider does not wish to participate in
- * file modification validation.
- *
- * @see org.eclipse.core.resources.IFileModificationValidator
- */
-
- public IFileModificationValidator getFileModificationValidator() {
- return null;
- }
-
- /**
- * Returns an <code>IMoveDeleteHook</code> for handling moves and deletes
- * that occur withing projects managed by the provider. This allows providers
- * to control how moves and deletes occur and includes the ability to prevent them.
- * <p>
- * Returning <code>null</code> signals that the default move and delete behavior is desired.
- *
- * @see org.eclipse.core.resources.team.IMoveDeleteHook
- */
- public IMoveDeleteHook getMoveDeleteHook() {
- return null;
- }
-
- /**
- * Returns a brief description of this provider. The exact details of the
- * representation are unspecified and subject to change, but the following
- * may be regarded as typical:
- *
- * "SampleProject:org.eclipse.team.cvs.provider"
- *
- * @return a string description of this provider
- */
- public String toString() {
- return Policy.bind("RepositoryProvider.toString", getProject().getName(), getID()); //$NON-NLS-1$
- }
-
- /**
- * Returns all known (registered) RepositoryProvider ids.
- *
- * @return an array of registered repository provider ids.
- */
- final public static String[] getAllProviderTypeIds() {
- IProjectNatureDescriptor[] desc = ResourcesPlugin.getWorkspace().getNatureDescriptors();
- Set teamSet = new HashSet();
-
- teamSet.addAll(AllProviderTypeIds); // add in all the ones we know via extension point
-
- //fall back to old method of nature ID to find any for backwards compatibility
- for (int i = 0; i < desc.length; i++) {
- String[] setIds = desc[i].getNatureSetIds();
- for (int j = 0; j < setIds.length; j++) {
- if(setIds[j].equals(TEAM_SETID)) {
- teamSet.add(desc[i].getNatureId());
- }
- }
- }
- return (String[]) teamSet.toArray(new String[teamSet.size()]);
- }
-
- /**
- * Returns the provider for a given IProject or <code>null</code> if a provider is not associated with
- * the project or if the project is closed or does not exist. This method should be called if the caller
- * is looking for <b>any</b> repository provider. Otherwise call <code>getProvider(project, id)</code>
- * to look for a specific repository provider type.
- * </p>
- * @param project the project to query for a provider
- * @return the repository provider associated with the project
- */
- final public static RepositoryProvider getProvider(IProject project) {
- try {
- if(project.isAccessible()) {
-
- //-----------------------------
- //First, look for the session property
- RepositoryProvider provider = lookupProviderProp(project);
- if(provider != null)
- return provider;
-
- // -----------------------------
- //Next, check if it has the ID as a persistent property, if yes then instantiate provider
- String id = project.getPersistentProperty(PROVIDER_PROP_KEY);
- if(id != null)
- return mapExistingProvider(project, id);
-
- //Couldn't find using new method, fall back to lookup using natures for backwards compatibility
- //-----------------------------
- IProjectDescription projectDesc = project.getDescription();
- String[] natureIds = projectDesc.getNatureIds();
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- // for every nature id on this project, find it's natures sets and check if it is
- // in the team set.
- for (int i = 0; i < natureIds.length; i++) {
- IProjectNatureDescriptor desc = workspace.getNatureDescriptor(natureIds[i]);
- // The descriptor can be null if the nature doesn't exist
- if (desc != null) {
- String[] setIds = desc.getNatureSetIds();
- for (int j = 0; j < setIds.length; j++) {
- if(setIds[j].equals(TEAM_SETID)) {
- return getProvider(project, natureIds[i]);
- }
- }
- }
- }
- }
- } catch(CoreException e) {
- if (!isAcceptableException(e)) {
- TeamPlugin.log(e);
- }
- }
- return null;
- }
-
- /*
- * Return whether the given exception is acceptable during a getProvider().
- * If the exception is acceptable, it is assumed that there is no provider
- * on the project.
- */
- private static boolean isAcceptableException(CoreException e) {
- return e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND;
- }
-
- /**
- * Returns a provider of type with the given id if associated with the given project
- * or <code>null</code> if the project is not associated with a provider of that type
- * or the nature id is that of a non-team repository provider nature.
- *
- * @param project the project to query for a provider
- * @param id the repository provider id
- * @return the repository provider
- */
- final public static RepositoryProvider getProvider(IProject project, String id) {
- try {
- if(project.isAccessible()) {
- String existingID = project.getPersistentProperty(PROVIDER_PROP_KEY);
-
- if(id.equals(existingID)) {
- //if the IDs are the same then they were previously mapped
- //see if we already instantiated one
- RepositoryProvider provider = lookupProviderProp(project); //throws core, we will reuse the catching already here
- if(provider != null)
- return provider;
- //otherwise instantiate and map a new one
- RepositoryProvider newProvider = mapExistingProvider(project, id);
- if (newProvider!= null && newProvider.getID().equals(id)) {
- return newProvider;
- } else {
- // The id changed before we could create the desired provider
- return null;
- }
- }
-
- //couldn't find using new method, fall back to lookup using natures for backwards compatibility
- //-----------------------------
-
- // if the nature id given is not in the team set then return
- // null.
- IProjectNatureDescriptor desc = ResourcesPlugin.getWorkspace().getNatureDescriptor(id);
- if(desc == null) //for backwards compat., may not have any nature by that ID
- return null;
-
- String[] setIds = desc.getNatureSetIds();
- for (int i = 0; i < setIds.length; i++) {
- if(setIds[i].equals(TEAM_SETID)) {
- return (RepositoryProvider)project.getNature(id);
- }
- }
- }
- } catch(CoreException e) {
- if (!isAcceptableException(e)) {
- TeamPlugin.log(e);
- }
- }
- return null;
- }
-
- /**
- * Returns whether the given project is shared or not. This is a lightweight
- * method in that it will not instantiate a provider instance (as
- * <code>getProvider</code> would) if one is not already instantiated.
- *
- * Note that IProject.touch() generates a project description delta. This, in combination
- * with isShared() can be used to be notified of sharing/unsharing of projects.
- *
- * @param project the project being tested.
- * @return boolean
- *
- * @see #getProvider(IProject)
- *
- * @since 2.1
- */
- public static boolean isShared(IProject project) {
- if (!project.isAccessible()) return false;
- try {
- if (lookupProviderProp(project) != null) return true;
- return project.getPersistentProperty(PROVIDER_PROP_KEY) != null;
- } catch (CoreException e) {
- TeamPlugin.log(e);
- return false;
- }
- }
-
- /*
- * @see IProjectNature#getProject()
- */
- public IProject getProject() {
- return project;
- }
-
- /*
- * @see IProjectNature#setProject(IProject)
- */
- public void setProject(IProject project) {
- this.project = project;
- }
-
- private static List initializeAllProviderTypes() {
- List allIDs = new ArrayList();
-
- TeamPlugin plugin = TeamPlugin.getPlugin();
- if (plugin != null) {
- IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.REPOSITORY_EXTENSION);
- if (extension != null) {
- IExtension[] extensions = extension.getExtensions();
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement [] configElements = extensions[i].getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- String extensionId = configElements[j].getAttribute("id"); //$NON-NLS-1$
- allIDs.add(extensionId);
- }
- }
- }
- }
- return allIDs;
- }
-
- private static RepositoryProvider newProvider(String id) {
- TeamPlugin plugin = TeamPlugin.getPlugin();
- if (plugin != null) {
- IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.REPOSITORY_EXTENSION);
- if (extension != null) {
- IExtension[] extensions = extension.getExtensions();
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement [] configElements = extensions[i].getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- String extensionId = configElements[j].getAttribute("id"); //$NON-NLS-1$
- if (extensionId != null && extensionId.equals(id)) {
- try {
- return (RepositoryProvider) configElements[j].createExecutableExtension("class"); //$NON-NLS-1$
- } catch (CoreException e) {
- TeamPlugin.log(e);
- } catch (ClassCastException e) {
- String className = configElements[j].getAttribute("class"); //$NON-NLS-1$
- TeamPlugin.log(IStatus.ERROR, Policy.bind("RepositoryProvider.invalidClass", id, className), e); //$NON-NLS-1$
- }
- return null;
- }
- }
- }
- }
- }
- return null;
- }
-
- /**
- * Method validateCreateLink is invoked by the Platform Core TeamHook when a
- * linked resource is about to be added to the provider's project. It should
- * not be called by other clients and it should not need to be overridden by
- * subclasses (although it is possible to do so in special cases).
- * Subclasses can indicate that they support linked resources by overridding
- * the <code>canHandleLinkedResources()</code> method.
- *
- * @param resource see <code>org.eclipse.core.resources.team.TeamHook</code>
- * @param updateFlags see <code>org.eclipse.core.resources.team.TeamHook</code>
- * @param location see <code>org.eclipse.core.resources.team.TeamHook</code>
- * @return IStatus see <code>org.eclipse.core.resources.team.TeamHook</code>
- *
- * @see RepositoryProvider#canHandleLinkedResources()
- *
- * @since 2.1
- */
- public IStatus validateCreateLink(IResource resource, int updateFlags, IPath location) {
- if (canHandleLinkedResources()) {
- return Team.OK_STATUS;
- } else {
- return new Status(IStatus.ERROR, TeamPlugin.ID, IResourceStatus.LINKING_NOT_ALLOWED, Policy.bind("RepositoryProvider.linkedResourcesNotSupported", getProject().getName(), getID()), null); //$NON-NLS-1$
- }
- }
-
- /**
- * Method canHandleLinkedResources should be overridden by subclasses who
- * support linked resources. At a minimum, supporting linked resources
- * requires changes to the move/delete hook
- * (see org.eclipe.core.resources.team.IMoveDeleteHook). This method is
- * called after the RepositoryProvider is instantiated but before
- * <code>setProject()</code> is invoked so it will not have access to any
- * state determined from the <code>setProject()</code> method.
- * @return boolean
- *
- * @see org.eclipse.core.resources.team.IMoveDeleteHook
- *
- * @since 2.1
- */
- public boolean canHandleLinkedResources() {
- return false;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- return null;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java
deleted file mode 100644
index cb3afd176..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.core.Policy;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * This class represents provisional API. A provider is not required to implement this API.
- * Implementers, and those who reference it, do so with the awareness that this class may be
- * removed or substantially changed at future times without warning.
- * <p>
- * This class represents things you can ask/do with a type of provider. This
- * is in the absence of a project, as opposed to RepositoryProvider which
- * requires a concrete project in order to be instantiated.
- * <p>
- * A repository provider type class is asscoaited with it's provider ID along with it's
- * corresponding repository provider class. To add a
- * repository provider type and have it registered with the platform, a client
- * must minimally:
- * <ol>
- * <li>extend <code>RepositoryProviderType</code>
- * <li>add the typeClass field to the repository extension in <code>plugin.xml</code>.
- * Here is an example extension point definition:
- *
- * <code>
- * <br>&lt;extension point="org.eclipse.team.core.repository"&gt;
- * <br>&nbsp;&lt;repository
- * <br>&nbsp;&nbsp;class="org.eclipse.myprovider.MyRepositoryProvider"
- * <br>&nbsp;&nbsp;typeClass="org.eclipse.myprovider.MyRepositoryProviderType"
- * <br>&nbsp;&nbsp;id="org.eclipse.myprovider.myProviderID"&gt;
- * <br>&nbsp;&lt;/repository&gt;
- * <br>&lt;/extension&gt;
- * </code>
- * </ol></p>
- *
- * <p>
- * Once a repository provider type is registered with Team, then you
- * can access the singleton instance of the class by invoking <code>RepositoryProviderType.getProviderType()</code>.
- * </p>
- *
- * @see RepositoryProviderType#getProviderType(String)
- *
- * @since 2.1
- */
-
-public abstract class RepositoryProviderType {
- private static Map allProviderTypes = new HashMap();
-
- private String id;
-
- public RepositoryProviderType() {
- }
-
- /**
- * Return the RepositoryProviderType for the given provider ID.
- *
- * @param id the ID of the provider
- * @return RepositoryProviderType
- *
- * @see #getID()
- */
- public static RepositoryProviderType getProviderType(String id) {
- RepositoryProviderType type = (RepositoryProviderType) allProviderTypes.get(id);
-
- if(type != null)
- return type;
-
- //If there isn't one in the table, we'll try to create one from the extension point
- //Its possible that newProviderType() will return null, but in that case it will have also logged the error so just return the result
- return newProviderType(id);
- }
-
- private void setID(String id) {
- this.id = id;
- }
-
- private static RepositoryProviderType newProviderType(String id) {
- TeamPlugin plugin = TeamPlugin.getPlugin();
- if (plugin != null) {
- IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.REPOSITORY_EXTENSION);
- if (extension != null) {
- IExtension[] extensions = extension.getExtensions();
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement [] configElements = extensions[i].getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- String extensionId = configElements[j].getAttribute("id"); //$NON-NLS-1$
-
- if (extensionId != null && extensionId.equals(id)) {
- try {
- RepositoryProviderType providerType;
- //Its ok not to have a typeClass extension. In this case, a default instance will be created.
- if(configElements[j].getAttribute("typeClass") == null) { //$NON-NLS-1$
- providerType = new DefaultRepositoryProviderType();
- } else {
- providerType = (RepositoryProviderType) configElements[j].createExecutableExtension("typeClass"); //$NON-NLS-1$
- }
-
- providerType.setID(id);
- allProviderTypes.put(id, providerType);
- return providerType;
- } catch (CoreException e) {
- TeamPlugin.log(e);
- } catch (ClassCastException e) {
- String className = configElements[j].getAttribute("typeClass"); //$NON-NLS-1$
- TeamPlugin.log(IStatus.ERROR, Policy.bind("RepositoryProviderType.invalidClass", id, className), e); //$NON-NLS-1$
- }
- return null;
- }
- }
- }
- }
- }
- return null;
- }
-
- /**
- * Answer the id of this provider type. The id will be the repository
- * provider type's id as defined in the provider plugin's plugin.xml.
- *
- * @return the id of this provider type
- */
- public final String getID() {
- return this.id;
- }
-
- /**
- * Answers the ProjectSetCapability that is intended to implement methods to import and
- * create project sets. If the provider doesn't wish to provide this
- * feature, return null.
- * <p>
- * Note that at the current time, the <code>IProjectSetSerializer</code> is still used to import
- * and export project sets. The <code>ProjectSetCapability</code> only provides a mechanism
- * by which repository providers can be notified when a project set is created and exported.
- * In the future, it is intended that IProjectSetSerializer be replaced by <code>IProjectSetSerializer</code>.
- *
- * @return ProjectSetCapability
- */
-
- public ProjectSetCapability getProjectSetCapability() {
- return null;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java
deleted file mode 100644
index cc8b7416b..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java
+++ /dev/null
@@ -1,619 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.io.DataInputStream;
-import java.io.EOFException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.SortedMap;
-import java.util.StringTokenizer;
-import java.util.TreeMap;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.internal.core.DeploymentProviderManager;
-import org.eclipse.team.internal.core.Policy;
-import org.eclipse.team.internal.core.StringMatcher;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * The Team class provides a global point of reference for the global ignore set
- * and the text/binary registry.
- *
- * WVCM: how does the IProjectSetSerializer fit into the 3.0 team api?
- *
- * @since 2.0
- */
-public final class Team {
-
- private static final String PREF_TEAM_IGNORES = "ignore_files"; //$NON-NLS-1$
- private static final String PREF_TEAM_TYPES = "file_types"; //$NON-NLS-1$
- private static final String PREF_TEAM_SEPARATOR = "\n"; //$NON-NLS-1$
- public static final Status OK_STATUS = new Status(Status.OK, TeamPlugin.ID, Status.OK, Policy.bind("ok"), null); //$NON-NLS-1$
-
- // File type constants
- public static final int UNKNOWN = 0;
- public static final int TEXT = 1;
- public static final int BINARY = 2;
-
- // Keys: file extensions. Values: Integers
- private static SortedMap globalTypes, pluginTypes;
-
- // The ignore list that is read at startup from the persisted file
- private static SortedMap globalIgnore, pluginIgnore;
- private static StringMatcher[] ignoreMatchers;
-
- // Deployment provider manager
- private static IDeploymentProviderManager deploymentManager;
-
- private static class FileTypeInfo implements IFileTypeInfo {
- private String extension;
- private int type;
-
- public FileTypeInfo(String extension, int type) {
- this.extension = extension;
- this.type = type;
- }
- public String getExtension() {
- return extension;
- }
- public int getType() {
- return type;
- }
- }
-
- /**
- * Return the type of the given IStorage.
- *
- * Valid return values are:
- * Team.TEXT
- * Team.BINARY
- * Team.UNKNOWN
- *
- * @param storage the IStorage
- * @return whether the given IStorage is TEXT, BINARY, or UNKNOWN
- */
- public static int getType(IStorage storage) {
- String extension = getFileExtension(storage.getName());
- if (extension == null) return UNKNOWN;
- SortedMap table = getFileTypeTable();
- Integer integer = (Integer)table.get(extension);
- if (integer == null) return UNKNOWN;
- return integer.intValue();
- }
-
- /**
- * Returns whether the given file should be ignored.
- *
- * This method answers true if the file matches one of the global ignore
- * patterns, or if the file is marked as derived.
- *
- * @param file the file
- * @return whether the file should be ignored
- */
- public static boolean isIgnoredHint(IResource resource) {
- if (resource.isDerived()) return true;
- return matchesEnabledIgnore(resource);
- }
-
- /**
- * Returns whether the given file should be ignored.
- * @deprecated use isIgnoredHint(IResource) instead
- */
- public static boolean isIgnoredHint(IFile file) {
- if (file.isDerived()) return true;
- return matchesEnabledIgnore(file);
- }
-
- private static boolean matchesEnabledIgnore(IResource resource) {
- StringMatcher[] matchers = getStringMatchers();
- for (int i = 0; i < matchers.length; i++) {
- if (matchers[i].match(resource.getName())) return true;
- }
- return false;
- }
-
- /**
- * Returns whether the given file should be ignored.
- * @deprecated use isIgnoredHint instead
- */
- public static boolean isIgnored(IFile file) {
- return matchesEnabledIgnore(file);
- }
-
- private static IFileTypeInfo[] getFileTypeInfo(SortedMap map) {
- List result = new ArrayList();
- Iterator e = map.keySet().iterator();
- while (e.hasNext()) {
- String string = (String)e.next();
- int type = ((Integer)map.get(string)).intValue();
- result.add(new FileTypeInfo(string, type));
- }
- return (IFileTypeInfo[])result.toArray(new IFileTypeInfo[result.size()]);
- }
-
- /**
- * Return all known file types.
- *
- * @return all known file types
- */
- public static IFileTypeInfo[] getAllTypes() {
- return getFileTypeInfo(getFileTypeTable());
- }
-
- /**
- * Returns the list of global ignores.
- */
- public synchronized static IIgnoreInfo[] getAllIgnores() {
- if (globalIgnore == null) {
- globalIgnore = new TreeMap();
- pluginIgnore = new TreeMap();
- ignoreMatchers = null;
- try {
- readIgnoreState();
- } catch (TeamException e) {
- TeamPlugin.log(IStatus.ERROR, Policy.bind("Team.Error_loading_ignore_state_from_disk_1"), e); //$NON-NLS-1$
- }
- initializePluginIgnores(pluginIgnore, globalIgnore);
- }
- IIgnoreInfo[] result = getIgnoreInfo(globalIgnore);
- return result;
- }
-
- private static IIgnoreInfo[] getIgnoreInfo(Map gIgnore) {
- IIgnoreInfo[] result = new IIgnoreInfo[gIgnore.size()];
- Iterator e = gIgnore.keySet().iterator();
- int i = 0;
- while (e.hasNext() ) {
- final String pattern = (String)e.next();
- final boolean enabled = ((Boolean)gIgnore.get(pattern)).booleanValue();
- result[i++] = new IIgnoreInfo() {
- private String p = pattern;
- private boolean e = enabled;
- public String getPattern() {
- return p;
- }
- public boolean getEnabled() {
- return e;
- }
- };
- }
- return result;
- }
-
- private synchronized static StringMatcher[] getStringMatchers() {
- if (ignoreMatchers==null) {
- IIgnoreInfo[] ignorePatterns = getAllIgnores();
- Vector matchers = new Vector(ignorePatterns.length);
- for (int i = 0; i < ignorePatterns.length; i++) {
- if (ignorePatterns[i].getEnabled()) {
- matchers.add(new StringMatcher(ignorePatterns[i].getPattern(), true, false));
- }
- }
- ignoreMatchers = new StringMatcher[matchers.size()];
- matchers.copyInto(ignoreMatchers);
- }
- return ignoreMatchers;
- }
-
- private synchronized static SortedMap getFileTypeTable() {
- if (globalTypes == null) loadTextState();
- return globalTypes;
- }
-
- /**
- * Set the file type for the give extension to the given type.
- *
- * Valid types are:
- * Team.TEXT
- * Team.BINARY
- * Team.UNKNOWN
- *
- * @param extension the file extension
- * @param type the file type
- */
- public static void setAllTypes(String[] extensions, int[] types) {
- if (pluginTypes == null) {
- loadTextState();
- }
- globalTypes = new TreeMap();
- for (int i = 0; i < extensions.length; i++) {
- globalTypes.put(extensions[i], new Integer(types[i]));
- }
- // Now set into preferences
- StringBuffer buf = new StringBuffer();
- Iterator e = globalTypes.keySet().iterator();
- while (e.hasNext()) {
- String extension = (String)e.next();
- boolean isCustom = (!pluginTypes.containsKey(extension)) ||
- !((Integer)pluginTypes.get(extension)).equals(pluginTypes.get(extension));
- if (isCustom) {
- buf.append(extension);
- buf.append(PREF_TEAM_SEPARATOR);
- Integer type = (Integer)globalTypes.get(extension);
- buf.append(type);
- buf.append(PREF_TEAM_SEPARATOR);
- }
-
- }
- TeamPlugin.getPlugin().getPluginPreferences().setValue(PREF_TEAM_TYPES, buf.toString());
- }
-
- /**
- * Add patterns to the list of global ignores.
- */
- public static void setAllIgnores(String[] patterns, boolean[] enabled) {
- globalIgnore = new TreeMap();
- ignoreMatchers = null;
- for (int i = 0; i < patterns.length; i++) {
- globalIgnore.put(patterns[i], new Boolean(enabled[i]));
- }
- // Now set into preferences
- StringBuffer buf = new StringBuffer();
- Iterator e = globalIgnore.keySet().iterator();
- while (e.hasNext()) {
- String pattern = (String)e.next();
- boolean isCustom = (!pluginIgnore.containsKey(pattern)) ||
- !((Boolean)pluginIgnore.get(pattern)).equals(globalIgnore.get(pattern));
- if (isCustom) {
- buf.append(pattern);
- buf.append(PREF_TEAM_SEPARATOR);
- boolean en = ((Boolean)globalIgnore.get(pattern)).booleanValue();
- buf.append(en);
- buf.append(PREF_TEAM_SEPARATOR);
- }
-
- }
- TeamPlugin.getPlugin().getPluginPreferences().setValue(PREF_TEAM_IGNORES, buf.toString());
- }
-
- /*
- * TEXT
- *
- * Reads the text patterns currently defined by extensions.
- */
- private static void initializePluginPatterns(Map pTypes, Map fTypes) {
- TeamPlugin plugin = TeamPlugin.getPlugin();
- if (plugin != null) {
- IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.FILE_TYPES_EXTENSION);
- if (extension != null) {
- IExtension[] extensions = extension.getExtensions();
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- String ext = configElements[j].getAttribute("extension"); //$NON-NLS-1$
- if (ext != null) {
- String type = configElements[j].getAttribute("type"); //$NON-NLS-1$
- // If the extension doesn't already exist, add it.
- if (!fTypes.containsKey(ext)) {
- if (type.equals("text")) { //$NON-NLS-1$
- pTypes.put(ext, new Integer(TEXT));
- fTypes.put(ext, new Integer(TEXT));
- } else if (type.equals("binary")) { //$NON-NLS-1$
- fTypes.put(ext, new Integer(BINARY));
- pTypes.put(ext, new Integer(BINARY));
- }
- }
- }
- }
- }
- }
- }
- }
-
- /*
- * TEXT
- *
- * Read the saved file type state from the given input stream.
- *
- * @param dis the input stream to read the saved state from
- * @throws IOException if an I/O problem occurs
- */
- private static void readTextState(DataInputStream dis) throws IOException {
- int extensionCount = 0;
- try {
- extensionCount = dis.readInt();
- } catch (EOFException e) {
- // Ignore the exception, it will occur if there are no
- // patterns stored in the state file.
- return;
- }
- for (int i = 0; i < extensionCount; i++) {
- String extension = dis.readUTF();
- int type = dis.readInt();
- globalTypes.put(extension, new Integer(type));
- }
- }
-
- /*
- * TEXT
- *
- * Load the file type registry saved state. This loads the previously saved
- * contents, as well as discovering any values contributed by plug-ins.
- */
- private static void loadTextState() {
- globalTypes = new TreeMap();
- boolean old = loadBackwardCompatibleTextState();
- if (!old) loadTextPreferences();
- pluginTypes = new TreeMap();
- initializePluginPatterns(pluginTypes, globalTypes);
- if (old) TeamPlugin.getPlugin().savePluginPreferences();
- }
-
- private static void loadTextPreferences() {
- Preferences pref = TeamPlugin.getPlugin().getPluginPreferences();
- if (!pref.contains(PREF_TEAM_TYPES)) return;
- String prefTypes = pref.getString(PREF_TEAM_TYPES);
- StringTokenizer tok = new StringTokenizer(prefTypes, PREF_TEAM_SEPARATOR);
- String extension, integer;
- try {
- while (true) {
- extension = tok.nextToken();
- if (extension.length()==0) return;
- integer = tok.nextToken();
- globalTypes.put(extension, Integer.valueOf(integer));
- }
- } catch (NoSuchElementException e) {
- return;
- }
-
- }
- /*
- * If the workspace is an old 2.0 one, read the old file and delete it
- */
- private static boolean loadBackwardCompatibleTextState() {
- // File name of the persisted file type information
- String STATE_FILE = ".fileTypes"; //$NON-NLS-1$
- IPath pluginStateLocation = TeamPlugin.getPlugin().getStateLocation().append(STATE_FILE);
- File f = pluginStateLocation.toFile();
- if (!f.exists()) return false;
- try {
- DataInputStream dis = new DataInputStream(new FileInputStream(f));
- try {
- readTextState(dis);
- } finally {
- dis.close();
- }
- } catch (IOException ex) {
- TeamPlugin.log(Status.ERROR, ex.getMessage(), ex);
- return false;
- }
- f.delete();
- return true;
- }
-
- /*
- * IGNORE
- *
- * Reads the ignores currently defined by extensions.
- */
- private static void initializePluginIgnores(SortedMap pIgnore, SortedMap gIgnore) {
- TeamPlugin plugin = TeamPlugin.getPlugin();
- if (plugin != null) {
- IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.IGNORE_EXTENSION);
- if (extension != null) {
- IExtension[] extensions = extension.getExtensions();
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement [] configElements = extensions[i].getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- String pattern = configElements[j].getAttribute("pattern"); //$NON-NLS-1$
- if (pattern != null) {
- String selected = configElements[j].getAttribute("enabled"); //$NON-NLS-1$
- if (selected == null) {
- // Check for selected because this used to be the field name
- selected = configElements[j].getAttribute("selected"); //$NON-NLS-1$
- }
- boolean enabled = selected != null && selected.equalsIgnoreCase("true"); //$NON-NLS-1$
- // if this ignore doesn't already exist, add it to the global list
- pIgnore.put(pattern, new Boolean(enabled));
- if (!gIgnore.containsKey(pattern)) {
- gIgnore.put(pattern, new Boolean(enabled));
- }
- }
- }
- }
- }
- }
- }
-
- /*
- * IGNORE
- *
- * Reads global ignore preferences and populates globalIgnore
- */
- private static void readIgnoreState() throws TeamException {
- if (readBackwardCompatibleIgnoreState()) return;
- Preferences pref = TeamPlugin.getPlugin().getPluginPreferences();
- if (!pref.contains(PREF_TEAM_IGNORES)) return;
- String prefIgnores = pref.getString(PREF_TEAM_IGNORES);
- StringTokenizer tok = new StringTokenizer(prefIgnores, PREF_TEAM_SEPARATOR);
- String pattern, enabled;
- try {
- while (true) {
- pattern = tok.nextToken();
- if (pattern.length()==0) return;
- enabled = tok.nextToken();
- globalIgnore.put(pattern, new Boolean(enabled));
- }
- } catch (NoSuchElementException e) {
- return;
- }
- }
-
- /*
- * For backward compatibility, we still look at if we have .globalIgnores
- */
- private static boolean readBackwardCompatibleIgnoreState() throws TeamException {
- String GLOBALIGNORE_FILE = ".globalIgnores"; //$NON-NLS-1$
- IPath pluginStateLocation = TeamPlugin.getPlugin().getStateLocation().append(GLOBALIGNORE_FILE);
- File f = pluginStateLocation.toFile();
- if (!f.exists()) return false;
- try {
- DataInputStream dis = new DataInputStream(new FileInputStream(f));
- try {
- int ignoreCount = 0;
- try {
- ignoreCount = dis.readInt();
- } catch (EOFException e) {
- // Ignore the exception, it will occur if there are no ignore
- // patterns stored in the provider state file.
- return false;
- }
- for (int i = 0; i < ignoreCount; i++) {
- String pattern = dis.readUTF();
- boolean enabled = dis.readBoolean();
- globalIgnore.put(pattern, new Boolean(enabled));
- }
- } finally {
- dis.close();
- }
- f.delete();
- } catch (FileNotFoundException e) {
- // not a fatal error, there just happens not to be any state to read
- } catch (IOException ex) {
- throw new TeamException(new Status(IStatus.ERROR, TeamPlugin.ID, 0, Policy.bind("Team.readError"), ex)); //$NON-NLS-1$
- }
- return true;
- }
- /**
- * Initialize the registry, restoring its state.
- *
- * This method is called by the plug-in upon startup, clients should not call this method
- */
- public static void startup() throws CoreException {
- // Register a delta listener that will tell the provider about a project move
- ResourcesPlugin.getWorkspace().addResourceChangeListener(new IResourceChangeListener() {
- public void resourceChanged(IResourceChangeEvent event) {
- IResourceDelta[] projectDeltas = event.getDelta().getAffectedChildren();
- for (int i = 0; i < projectDeltas.length; i++) {
- IResourceDelta delta = projectDeltas[i];
- IResource resource = delta.getResource();
- // Only consider project additions that are moves
- if (delta.getKind() != IResourceDelta.ADDED) continue;
- if ((delta.getFlags() & IResourceDelta.MOVED_FROM) == 0) continue;
- // Only consider projects that have a provider
- if (!RepositoryProvider.isShared(resource.getProject())) continue;
- RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject());
- if (provider == null) continue;
- // Only consider providers whose project is not mapped properly already
- if (provider.getProject().equals(resource.getProject())) continue;
- // Tell the provider about it's new project
- provider.setProject(resource.getProject());
- }
- }
- }, IResourceChangeEvent.POST_CHANGE);
- ResourcesPlugin.getWorkspace().addResourceChangeListener((DeploymentProviderManager)getDeploymentManager(), IResourceChangeEvent.PRE_AUTO_BUILD);
- }
-
- /**
- * Shut down the registry, persisting its state.
- *
- * This method is called by the plug-in upon shutdown, clients should not call this method
- */
- public static void shutdown() {
- TeamPlugin.getPlugin().savePluginPreferences();
- }
- public static IProjectSetSerializer getProjectSetSerializer(String id) {
- TeamPlugin plugin = TeamPlugin.getPlugin();
- if (plugin != null) {
- IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.PROJECT_SET_EXTENSION);
- if (extension != null) {
- IExtension[] extensions = extension.getExtensions();
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement [] configElements = extensions[i].getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- String extensionId = configElements[j].getAttribute("id"); //$NON-NLS-1$
- if (extensionId != null && extensionId.equals(id)) {
- try {
- return (IProjectSetSerializer)configElements[j].createExecutableExtension("class"); //$NON-NLS-1$
- } catch (CoreException e) {
- TeamPlugin.log(e);
- return null;
- }
- }
- }
- }
- }
- }
- return null;
- }
- private static TeamException wrapException(String message, CoreException e) {
- MultiStatus status = new MultiStatus(TeamPlugin.ID, 0, message, e);
- status.merge(e.getStatus());
- return new TeamException(status);
- }
-
- private static String getFileExtension(String name) {
- if (name == null) return null;
- int index = name.lastIndexOf('.');
- if (index == -1)
- return null;
- if (index == (name.length() - 1))
- return ""; //$NON-NLS-1$
- return name.substring(index + 1);
- }
-
- /**
- * @return
- */
- public static IIgnoreInfo[] getDefaultIgnores() {
- SortedMap gIgnore = new TreeMap();
- SortedMap pIgnore = new TreeMap();
- initializePluginIgnores(pIgnore, gIgnore);
- return getIgnoreInfo(gIgnore);
- }
-
- /**
- * @return
- */
- public static IFileTypeInfo[] getDefaultTypes() {
- SortedMap gTypes = new TreeMap();
- SortedMap pTypes = new TreeMap();
- initializePluginPatterns(pTypes, gTypes);
- return getFileTypeInfo(gTypes);
- }
-
- /**
- * Returns the deployment manager.
- * @return the deployment manager
- * @since 3.0
- */
- public static IDeploymentProviderManager getDeploymentManager() {
- if(deploymentManager == null) {
- deploymentManager = new DeploymentProviderManager();
- }
- return deploymentManager;
- }
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java
deleted file mode 100644
index 7566126b3..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.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.core;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * This exception is thrown by the team provider API. It represents a failure in an API call.
- * Since some API calls take multiple arguments, the exception is capable of returning multiple
- * statuses. The API definition determinies if the exception represents a single or multiple status
- * response; this can also be tested on the exception instance itself.
- * <p>
- * To determine the exact cause of the failure the caller should look at each status in detail.</p>
- *
- * @since 2.0
- */
-public class TeamException extends CoreException {
-
- // The operation completed successfully.
- public static final int OK = 0;
-
- // The operation failed because the resource is not checked-in.
- public static final int NOT_CHECKED_IN = -1;
-
- // The operation failed because the resource is not checked-out.
- public static final int NOT_CHECKED_OUT = -2;
-
- // The corresponding remote resource no longer exists or was never created.
- public static final int NO_REMOTE_RESOURCE = -3;
-
- // The provider suffered an IO failure, the operation may be retried.
- public static final int IO_FAILED = -4;
-
- // The user is not authorized to execute the attempted operation.
- public static final int NOT_AUTHORIZED = -5;
-
- // The provider was unable to complete the operation for an unspecified reason.
- public static final int UNABLE = -6;
-
- // The operation cannot be performed due to a conflict with other work.
- public static final int CONFLICT = -7;
-
- public TeamException(IStatus status) {
- super(status);
- }
-
- public TeamException(String message, Throwable e) {
- super(new Status(IStatus.ERROR, TeamPlugin.ID, 0, message, e));
- }
-
- public TeamException(String message) {
- this(message, null);
- }
-
- protected TeamException(CoreException e) {
- super(asStatus(e));
- }
-
- private static Status asStatus(CoreException e) {
- IStatus status = e.getStatus();
- return new Status(status.getSeverity(), status.getPlugin(), status.getCode(), status.getMessage(), e);
- }
-
- public static TeamException asTeamException(CoreException e) {
- if (e instanceof TeamException) {
- return (TeamException)e;
- }
- return new TeamException(e);
- }
-
- /*
- * Static helper methods for creating exceptions
- */
- public static TeamException asTeamException(InvocationTargetException e) {
- Throwable target = e.getTargetException();
- if (target instanceof TeamException) {
- return (TeamException) target;
- }
- return new TeamException(new Status(IStatus.ERROR, TeamPlugin.ID, UNABLE, target.getMessage() != null ? target.getMessage() : "", target)); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/package.html b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/package.html
deleted file mode 100644
index 998490f0d..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/package.html
+++ /dev/null
@@ -1,20 +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">
- <title>Package-level Javadoc</title>
-</head>
-<body>
-Application programming interfaces for defining and working with repository providers.
-<h2>
-Package Specification</h2>
-This package specifies the API for defining repository providers. A repository
-provider supports the sharing of projects in the local Eclipse workspace
-with remote locations managed by a particular type of repository system.
-Additional facilites included in this API exist for the mapping and unmapping of a
-repository provider to a project, the deifnition of a project set serializer for
-sharing workspace setup, and the management of global ignore patterns and content type
-determination for files.
-</body>
-</html> \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/BackgroundEventHandler.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/BackgroundEventHandler.java
deleted file mode 100644
index f1827a795..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/BackgroundEventHandler.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.*;
-
-/**
- * This class provides the infrastucture for processing/dispatching of events in the
- * background. This is useful to allow blocking operations to be more responsive by
- * delegating event processing and UI updating to background job.
- * <p>
- * This is also useful for scheduling changes that require a workspace lock but can't
- * be performed in a change delta.
- * </p>
- * @since 3.0
- */
-public abstract class BackgroundEventHandler {
-
- // Events that need to be processed
- private List awaitingProcessing = new ArrayList();
-
- // The job that runs when events need to be processed
- private Job eventHandlerJob;
-
- // Indicate if the event handler has been shutdown
- private boolean shutdown;
-
- // Accumulate exceptions that occur
- private ExceptionCollector errors;
-
- // time the last dispath took
- private long processingEventsDuration = 0L;
-
- // time between event dispatches
- private long DISPATCH_DELAY = 1500;
-
- // time to wait for messages to be queued
- private long WAIT_DELAY = 1000;
-
- private String jobName;
-
- /**
- * Resource event class. The type is specific to subclasses.
- */
- public static class Event {
- IResource resource;
- int type;
- int depth;
- public Event(IResource resource, int type, int depth) {
- this.resource = resource;
- this.type = type;
- this.depth = depth;
- }
- public int getDepth() {
- return depth;
- }
- public IResource getResource() {
- return resource;
- }
- public int getType() {
- return type;
- }
- public String toString() {
- StringBuffer buffer = new StringBuffer();
- buffer.append("resource: "); //$NON-NLS-1$
- buffer.append(resource.getFullPath());
- buffer.append(" type: "); //$NON-NLS-1$
- buffer.append(getTypeString());
- buffer.append(" depth: "); //$NON-NLS-1$
- buffer.append(getDepthString());
- return buffer.toString();
- }
- protected String getDepthString() {
- switch (depth) {
- case IResource.DEPTH_ZERO :
- return "DEPTH_ZERO"; //$NON-NLS-1$
- case IResource.DEPTH_ONE :
- return "DEPTH_ONE"; //$NON-NLS-1$
- case IResource.DEPTH_INFINITE :
- return "DEPTH_INFINITE"; //$NON-NLS-1$
- default :
- return "INVALID"; //$NON-NLS-1$
- }
- }
- protected String getTypeString() {
- return String.valueOf(type);
- }
- }
-
- protected BackgroundEventHandler(String jobName, String errorTitle) {
- this.jobName = jobName;
- errors =
- new ExceptionCollector(
- errorTitle,
- TeamPlugin.ID,
- IStatus.ERROR,
- null /* don't log */
- );
- createEventHandlingJob();
- schedule();
- }
-
- /**
- * Create the job used for processing the events in the queue. The job stops working when
- * the queue is empty.
- */
- protected void createEventHandlingJob() {
- eventHandlerJob = new Job(getName()) {
- public IStatus run(IProgressMonitor monitor) {
- return processEvents(monitor);
- }
- public boolean shouldRun() {
- return ! isQueueEmpty();
- }
- public boolean shouldSchedule() {
- return ! isQueueEmpty();
- }
- };
- eventHandlerJob.addJobChangeListener(new JobChangeAdapter() {
- public void done(IJobChangeEvent event) {
- jobDone(event);
- }
- });
- eventHandlerJob.setPriority(Job.SHORT);
- }
-
- /**
- * This method is invoked when the processing job completes. The
- * default behavior of the handler is to restart the job if the queue
- * is no longer empty and to clear the queue if the handler was shut down.
- */
- protected void jobDone(IJobChangeEvent event) {
- if (isShutdown()) {
- // The handler has been shutdown. Clean up the queue.
- synchronized(this) {
- awaitingProcessing.clear();
- }
- } else if (! isQueueEmpty()) {
- // An event squeaked in as the job was finishing. Reschedule the job.
- schedule();
- }
- }
-
- /**
- * Schedule the job to process the events now.
- */
- protected void schedule() {
- eventHandlerJob.schedule();
- }
-
- /**
- * Shutdown the event handler. Any events on the queue will be removed from the queue
- * and will not be processed.
- */
- public void shutdown() {
- shutdown = true;
- eventHandlerJob.cancel();
- }
-
- /**
- * @return Returns whether the handle has been shutdown.
- */
- public boolean isShutdown() {
- return shutdown;
- }
-
- /**
- * Queue the event and start the job if it's not already doing work. If the job is
- * already running then notify in case it was waiting.
- */
- protected synchronized void queueEvent(Event event) {
- if (Policy.DEBUG_BACKGROUND_EVENTS) {
- System.out.println("Event queued on " + getName() + ":" + event.toString()); //$NON-NLS-1$ //$NON-NLS-2$
- }
- awaitingProcessing.add(event);
- if (!isShutdown() && eventHandlerJob != null) {
- if(eventHandlerJob.getState() == Job.NONE) {
- schedule();
- } else {
- notify();
- }
- }
- }
-
- protected String getName() {
- return jobName;
- }
-
- /**
- * Get the next resource to be calculated.
- * @return Event to be processed
- */
- private synchronized Event nextElement() {
- if (isShutdown() || isQueueEmpty()) {
- return null;
- }
- return (Event) awaitingProcessing.remove(0);
- }
-
- /**
- * Return whether there are unprocessed events on the event queue.
- * @return whether there are unprocessed events on the queue
- */
- protected synchronized boolean isQueueEmpty() {
- return awaitingProcessing.isEmpty();
- }
-
- /**
- * Process events from the events queue and dispatch results. This method does not
- * directly check for or handle cancelation of the provided monitor. However,
- * it does invoke <code>processEvent(Event)</code> which may check for and handle
- * cancelation by shuting down the receiver.
- */
- protected IStatus processEvents(IProgressMonitor monitor) {
- errors.clear();
- try {
- // It's hard to know how much work is going to happen
- // since the queue can grow. Use the current queue size as a hint to
- // an infinite progress monitor
- monitor.beginTask(null, 100);
- IProgressMonitor subMonitor = Policy.infiniteSubMonitorFor(monitor, 90);
- subMonitor.beginTask(null, 1024);
-
- Event event;
- processingEventsDuration = System.currentTimeMillis();
- while ((event = nextElement()) != null && ! isShutdown()) {
- try {
- processEvent(event, subMonitor);
- if (Policy.DEBUG_BACKGROUND_EVENTS) {
- System.out.println("Event processed on " + getName() + ":" + event.toString()); //$NON-NLS-1$ //$NON-NLS-2$
- }
- if(isReadyForDispath()) {
- dispatchEvents(Policy.subMonitorFor(subMonitor, 1));
- processingEventsDuration = System.currentTimeMillis();
- }
- } catch (CoreException e) {
- // handle exception but keep going
- handleException(e);
- }
- }
- } finally {
- monitor.done();
- }
- return errors.getStatus();
- }
-
- /**
- * Notify clients of processed events.
- */
- protected abstract void dispatchEvents(IProgressMonitor monitor) throws TeamException;
-
- /**
- * Returns <code>true</code> if processed events should be dispatched and
- * <code>false</code> otherwise. Events are dispatched at regular intervals
- * to avoid fine grain events causing the UI to be too jumpy. Also, if the
- * events queue is empty we will wait a small amount of time to allow
- * pending events to be queued. The queueEvent notifies when events are
- * queued.
- * @return <code>true</code> if processed events should be dispatched and
- * <code>false</code> otherwise
- */
- private boolean isReadyForDispath() {
- long duration = System.currentTimeMillis() - processingEventsDuration;
- if(duration >= DISPATCH_DELAY) {
- return true;
- }
- synchronized(this) {
- if(! isQueueEmpty()) {
- return false;
- }
- try {
- wait(WAIT_DELAY);
- } catch (InterruptedException e) {
- // just continue
- }
- }
- return isQueueEmpty();
- }
-
- /**
- * Handle the exception by recording it in the errors list.
- * @param e
- */
- protected void handleException(CoreException e) {
- errors.handleException(e);
-
- }
-
- /**
- * Process the event in the context of a running background job. Subclasses may
- * (but are not required to) check the provided monitor for cancelation and shut down the
- * receiver by invoking the <code>shutdown()</code> method.
- *
- * @param event
- * @param monitor
- */
- protected abstract void processEvent(Event event, IProgressMonitor monitor) throws CoreException;
-
- /**
- * @return Returns the eventHandlerJob.
- */
- public Job getEventHandlerJob() {
- return eventHandlerJob;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/FastSyncInfoFilter.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/FastSyncInfoFilter.java
deleted file mode 100644
index 7efec87e9..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/FastSyncInfoFilter.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.team.core.subscribers;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A specialized <code>SyncInfoFilter</code> that does not require a progress monitor.
- * This enables these filters to be used when determining menu enablement or other
- * operations that must be short running.
- *
- * @see SyncInfoSet
- * @since 3.0
- */
-public class FastSyncInfoFilter extends SyncInfoFilter {
-
- public static FastSyncInfoFilter getDirectionAndChangeFilter(int direction, int change) {
- return new AndSyncInfoFilter(new FastSyncInfoFilter[]{new SyncInfoDirectionFilter(direction), new SyncInfoChangeTypeFilter(change)});
- }
-
- public static abstract class CompoundSyncInfoFilter extends FastSyncInfoFilter {
- protected FastSyncInfoFilter[] filters;
- public CompoundSyncInfoFilter(FastSyncInfoFilter[] filters) {
- this.filters = filters;
- }
- }
-
- /**
- * Selects SyncInfo which match all child filters
- */
- public static class AndSyncInfoFilter extends CompoundSyncInfoFilter {
- public AndSyncInfoFilter(FastSyncInfoFilter[] filters) {
- super(filters);
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.ccvs.syncviews.views.SyncSetFilter#select(org.eclipse.team.core.sync.SyncInfo)
- */
- public boolean select(SyncInfo info) {
- for (int i = 0; i < filters.length; i++) {
- FastSyncInfoFilter filter = filters[i];
- if (!filter.select(info)) {
- return false;
- }
- }
- return true;
- }
-
- }
-
- public static class AutomergableFilter extends FastSyncInfoFilter {
- public boolean select(SyncInfo info) {
- return (info.getKind() & SyncInfo.AUTOMERGE_CONFLICT) != 0;
- }
- }
-
- public static class PseudoConflictFilter extends FastSyncInfoFilter {
- public boolean select(SyncInfo info) {
- return info.getKind() != 0 && (info.getKind() & SyncInfo.PSEUDO_CONFLICT) == 0;
- }
- }
-
- /**
- * Selects SyncInfo that match any of the child filters.
- */
- public static class OrSyncInfoFilter extends CompoundSyncInfoFilter {
- public OrSyncInfoFilter(FastSyncInfoFilter[] filters) {
- super(filters);
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.ccvs.syncviews.views.SyncSetFilter#select(org.eclipse.team.core.sync.SyncInfo)
- */
- public boolean select(SyncInfo info) {
- for (int i = 0; i < filters.length; i++) {
- FastSyncInfoFilter filter = filters[i];
- if (filter.select(info)) {
- return true;
- }
- }
- return false;
- }
- }
-
- public static class SyncInfoChangeTypeFilter extends FastSyncInfoFilter {
-
- private int[] changeFilters = new int[]{SyncInfo.ADDITION, SyncInfo.DELETION, SyncInfo.CHANGE};
-
- public SyncInfoChangeTypeFilter(int[] changeFilters) {
- this.changeFilters = changeFilters;
- }
-
- public SyncInfoChangeTypeFilter(int change) {
- this(new int[]{change});
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.team.ccvs.syncviews.views.SyncSetFilter#select(org.eclipse.team.core.sync.SyncInfo)
- */
- public boolean select(SyncInfo info) {
- int syncKind = info.getKind();
- for (int i = 0; i < changeFilters.length; i++) {
- int filter = changeFilters[i];
- if ((syncKind & SyncInfo.CHANGE_MASK) == filter)
- return true;
- }
- return false;
- }
-
- }
-
- public static class SyncInfoDirectionFilter extends FastSyncInfoFilter {
-
- int[] directionFilters = new int[] {SyncInfo.OUTGOING, SyncInfo.INCOMING, SyncInfo.CONFLICTING};
-
- public SyncInfoDirectionFilter(int[] directionFilters) {
- this.directionFilters = directionFilters;
- }
-
- public SyncInfoDirectionFilter(int direction) {
- this(new int[] { direction });
- }
-
- /* (non-Javadoc)
- * @see SyncSetFilter#select(org.eclipse.team.core.sync.SyncInfo)
- */
- public boolean select(SyncInfo info) {
- int syncKind = info.getKind();
- for (int i = 0; i < directionFilters.length; i++) {
- int filter = directionFilters[i];
- if ((syncKind & SyncInfo.DIRECTION_MASK) == filter)
- return true;
- }
- return false;
- }
- }
-
- /**
- * Return true if the provided SyncInfo matches the filter. The default
- * behavior it to include resources whose syncKind is non-zero.
- *
- * @param info
- * @return
- */
- public boolean select(SyncInfo info) {
- return info.getKind() != 0;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.SyncInfoFilter#select(org.eclipse.team.core.subscribers.SyncInfo, org.eclipse.core.runtime.IProgressMonitor)
- */
- public final boolean select(SyncInfo info, IProgressMonitor monitor) {
- return select(info);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/FilteredSyncInfoCollector.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/FilteredSyncInfoCollector.java
deleted file mode 100644
index 04f99b14d..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/FilteredSyncInfoCollector.java
+++ /dev/null
@@ -1,95 +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.team.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.subscribers.SyncSetInputFromSyncSet;
-import org.eclipse.team.internal.core.subscribers.WorkingSetSyncSetInput;
-
-/**
- * Collects changes from a provided sync info set and creates another set based on
- * the provided filters.
- *
- * @see TeamSubscriberSyncInfoCollector
- *
- * @since 3.0
- */
-public final class FilteredSyncInfoCollector {
-
- private WorkingSetSyncSetInput workingSetInput;
- private SyncSetInputFromSyncSet filteredInput;
- private SyncInfoSet source;
-
- public FilteredSyncInfoCollector(SyncInfoSet source, IResource[] workingSet, SyncInfoFilter filter) {
- this.source = source;
-
- // TODO: optimize and don't use working set if no roots are passed in
- workingSetInput = new WorkingSetSyncSetInput(source);
- workingSetInput.setWorkingSet(workingSet);
- filteredInput = new SyncSetInputFromSyncSet(workingSetInput.getSyncSet());
- if(filter == null) {
- setFilter(new SyncInfoFilter() {
- public boolean select(SyncInfo info, IProgressMonitor monitor) {
- return true;
- }
- }, null);
- } else {
- setFilter(filter, null);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.synchronize.sets.SyncInfoSetDelegator#getSyncInfoSet()
- */
- public SyncInfoSet getSyncInfoSet() {
- if(filteredInput != null) {
- return filteredInput.getSyncSet();
- } else {
- return workingSetInput.getSyncSet();
- }
- }
-
- public void setWorkingSet(IResource[] resources) {
- workingSetInput.setWorkingSet(resources);
- }
-
- public IResource[] getWorkingSet() {
- return workingSetInput.getWorkingSet();
- }
-
- public void setFilter(SyncInfoFilter filter, IProgressMonitor monitor) {
- filteredInput.setFilter(filter);
- try {
- filteredInput.reset(monitor);
- } catch (TeamException e) {
- }
- }
-
- public SyncInfoFilter getFilter() {
- if(filteredInput != null) {
- return filteredInput.getFilter();
- }
- return null;
- }
-
- public SyncInfoSet getWorkingSetSyncInfoSet() {
- return workingSetInput.getSyncSet();
- }
-
- public void dispose() {
- workingSetInput.disconnect();
- if(filteredInput != null) {
- filteredInput.disconnect();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/IComparisonCriteria.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/IComparisonCriteria.java
deleted file mode 100644
index 4441bbd38..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/IComparisonCriteria.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.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-
-/**
- * An <code>IComparisonCriteria</code> is provided by a <code>TeamSubscriber</code>
- * and used by a <code>SyncInfo</code> to calculate the sync
- * state of the workspace resources. Subscribers should provide a criteria
- * best suited for their environment. For example, an FTP subscriber could choose to use file
- * size or file timestamps as comparison criterias whereas a CVS workspace subscriber would
- * use file revision numbers.
- *
- * @see SyncInfo
- * @see TeamSubscriber
- * @since 3.0
- */
-public interface IComparisonCriteria {
-
- /**
- * Returns <code>true</code> if the local resource
- * matches the remote resource based on this criteria and <code>false</code>
- * otherwise. Comparing should be fast and based on cached information.
- *
- * @param resource the local resource to be compared
- * @param remote the remote resources to be compared
- * @return <code>true</code> if local and remote are equal based on this criteria and <code>false</code>
- * otherwise.
- */
- public boolean compare(IResource local, ISubscriberResource remote);
-
- /**
- * Returns <code>true</code> if the base resource
- * matches the remote resource based on this criteria and <code>false</code>
- * otherwise. Comparing should be fast and based on cached information.
- *
- * @param base the base resource to be compared
- * @param remote the remote resources to be compared
- * @return <code>true</code> if base and remote are equal based on this criteria and <code>false</code>
- * otherwise.
- */
- public boolean compare(ISubscriberResource base, ISubscriberResource remote);
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/IJobListener.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/IJobListener.java
deleted file mode 100644
index 67fba2326..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/IJobListener.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.team.core.subscribers;
-
-import org.eclipse.core.runtime.QualifiedName;
-
-/**
- * This interface allows interested parties to receive notification
- * when work has started or stopped for a given job type. The <code>started</code>
- * method is invoked when the first job is started for the given <code>jobType</code>.
- * The <code>finish</code> method is called when the last job of a given type stops.
- * Several jobs for the job type may start and stop in the interum without causing
- * notification to the listener.
- */
-public interface IJobListener {
- public void started(QualifiedName jobType);
- public void finished(QualifiedName jobType);
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResource.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResource.java
deleted file mode 100644
index b477c02bb..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResource.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-
-/**
- * This interface provides access to a remote resource that is controlled
- * by a particular subscriber. It is used by <code>SyncInfo</code> instances
- * to provide access to the base and remote resources that correspond to
- * a locla resource.
- *
- * @see SyncInfo
- * @since 3.0
- */
-public interface ISubscriberResource {
-
- /**
- * Answers the name of the subscriber resource. The name may be
- * displayed to the user.
- *
- * @return name of the subscriber resource.
- */
- public String getName();
-
- /**
- * Answers if the remote element may have children.
- *
- * @return <code>true</code> if the remote element may have children and
- * <code>false</code> otherwise.
- */
- public boolean isContainer();
-
- /**
- * Return an instance of IStorage or <code>null</code> if the subscriber resource
- * does not have contents (i.e. is a folder). Since the <code>ISorage#getContents()</code>
- * method does not accept an IProgressMonitor, this method must ensure that the contents
- * access by the resulting IStorage is cached locally (hence the IProgressMonitor
- * argument to this method). Implementations of this method should
- * ensure that the resulting IStorage is accessing locally cached contents and is not
- * contacting the server.
- * @return
- */
- public IStorage getStorage(IProgressMonitor monitor) throws TeamException;
-
- /**
- * Return a content identifier that is used to differentiate versions
- * or revisions of the same resource.
- *
- * @return a String that identifies the version of the subscriber resource
- * @throws TeamException
- */
- public String getContentIdentifier() throws TeamException;
-
- /**
- * Returns whether the subscriber resource is equal to the provided object.
- * @param object
- * @return
- */
- public boolean equals(Object object);
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISyncInfoSetChangeEvent.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISyncInfoSetChangeEvent.java
deleted file mode 100644
index 942ac34af..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISyncInfoSetChangeEvent.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-
-/**
- * An event generated when a {@link ISyncInfoSet} collection is changed. The
- * mix of return types, SyncInfo and IResource, is a result of an optimization
- * included in {@link ISyncInfoSet} collections that doesn't maintain SyncInfo objects
- * for in-sync resources.
- *
- * @see SyncInfoSet#addSyncSetChangedListener(ISyncSetChangedListener)
- * @see ISyncSetChangedListener
- * @since 3.0
- */
-public interface ISyncInfoSetChangeEvent {
- /**
- * Returns newly added out-of-sync <code>SyncInfo</code> elements.
- *
- * @return newly added <code>SyncInfo</code> elements or an empty list if this event
- * doesn't contain added resources.
- */
- public SyncInfo[] getAddedResources();
-
- /**
- * Returns parent resources of all newly added elements.
- *
- * @return parents of all newly added elements. or an empty list if this event
- * doesn't contain added resources.
- */
- public IResource[] getAddedRoots();
-
- /**
- * Returns changed <code>SyncInfo</code> elements. The returned elements
- * are still out-of-sync.
- *
- * @return changed <code>SyncInfo</code> elements or an empty list if this event
- * doesn't contain changes resources.
- */
- public SyncInfo[] getChangedResources();
-
- /**
- * Returns removed <code>SyncInfo</code> elements. The returned elements
- * are all in-sync resources.
- *
- * @return removed <code>SyncInfo</code> elements or an empty list if this event
- * doesn't contain removed resources.
- */
- public IResource[] getRemovedResources();
-
- /**
- * Returns parent resources of all newly removed elements.
- *
- * @return parents of all newly removed elements. or an empty list if this event
- * doesn't contain added resources.
- */
- public IResource[] getRemovedRoots();
-
- /**
- * Returns the {@link ISyncInfoSet} that generated these events.
- *
- * @return the {@link ISyncInfoSet} that generated these events.
- */
- public SyncInfoSet getSet();
-
- /**
- * Returns <code>true</code> if the associated set has been reset and <code>false</code>
- * otherwise. A sync info set is reset when changes in the set are all recalculated.
- *
- * @return <code>true</code> if the associated set has been reset and <code>false</code>
- * otherwise.
- */
- public boolean isReset();
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISyncSetChangedListener.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISyncSetChangedListener.java
deleted file mode 100644
index 5ecce0b9e..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISyncSetChangedListener.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.core.subscribers;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * Classes which implement this interface provide methods that deal with the
- * events that are generated as a {@link ISyncInfoSet} changes.
- * <p>
- * After creating an instance of a class that implements this interface it can
- * be added to a sync info set using the <code>addSyncSetChangedListener</code>
- * method and removed using the <code>removeSyncSetChangedListener</code>
- * method.
- * </p>
- *
- * @see ISyncInfoSetChangeEvent
- * @since 3.0
- */
-public interface ISyncSetChangedListener {
-
- /**
- * Sent when a {@link ISyncInfoSet} changes. For example, when a resource's
- * synchronization state changes.
- *
- * @param event an event containing information about the change.
- */
- public void syncSetChanged(ISyncInfoSetChangeEvent event, IProgressMonitor monitor);
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ITeamResourceChangeListener.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ITeamResourceChangeListener.java
deleted file mode 100644
index 2b943b917..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ITeamResourceChangeListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.core.subscribers;
-
-
-import java.util.EventListener;
-
-/**
- * A resource state change listener is notified of changes to resources
- * regarding their team state.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see ITeamManager#addResourceStateChangeListener(IResourceStateChangeListener)
- */
-public interface ITeamResourceChangeListener extends EventListener{
-
- /**
- * Notifies this listener that some resources' team properties have
- * changed. The changes have already happened. For example, a resource's
- * base revision may have changed. The resource tree is open for modification
- * when this method is invoked, so markers can be created, etc.
- * <p>
- * Note: This method is called by Team core; it is not intended to be
- * called directly by clients.
- * </p>
- *
- * @param deltas detailing the kinds of team changes
- *
- * [Note: The changed state event is purposely vague. For now it is only
- * a hint to listeners that they should query the provider to determine the
- * resources new sync info.]
- */
- public void teamResourceChanged(TeamDelta[] deltas);
-}
-
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/JobStatusHandler.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/JobStatusHandler.java
deleted file mode 100644
index 9927b094e..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/JobStatusHandler.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.core.subscribers;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-
-/**
- * This class is reponsible for notifying listeners when jobs registered
- * with the handler start and stop. Start is invoked when the first registered job starts
- * anf finish is invoked when the last registered job finishes.
- */
-public class JobStatusHandler extends JobChangeAdapter {
-
- private static Map handlers = new HashMap();
-
- private QualifiedName jobType;
- private Set jobs = new HashSet();
- private List listeners = new ArrayList();
-
- /*
- * Private class used to safely notify listeners of job type starts and
- * finishes. Subclass override the notify(IJobListener) method to
- * fire specific events inside an ISafeRunnable.
- */
- private abstract class Notification implements ISafeRunnable {
- private IJobListener listener;
- public void handleException(Throwable exception) {
- // don't log the exception....it is already being logged in Platform#run
- }
- public void run(IJobListener listener) {
- this.listener = listener;
- Platform.run(this);
- }
- public void run() throws Exception {
- notify(listener);
- }
- /**
- * Subsclasses overide this method to send an event safely to a lsistener
- * @param listener
- */
- protected abstract void notify(IJobListener listener);
- }
-
- /**
- * Associate the job with the given jobType and schedule the job for
- * immediate start.
- * @param job
- * @param jobType
- */
- public static void schedule(Job job, QualifiedName jobType) {
- JobStatusHandler handler;
- synchronized (handlers) {
- handler = getHandler(jobType);
- if (handler == null) {
- handler = createHandler(jobType);
- }
- }
- handler.schedule(job);
- }
-
- /**
- * Add a listener for the given job type.
- * @param listener
- * @param jobType
- */
- public static void addJobListener(IJobListener listener, QualifiedName jobType) {
- synchronized (handlers) {
- JobStatusHandler handler = getHandler(jobType);
- if (handler == null) {
- handler = createHandler(jobType);
- }
- handler.addJobListener(listener);
- }
- }
-
- /**
- * Remove a previously registered listener for the given job type.
- * @param listener
- * @param jobType
- */
- public static void removeJobListener(IJobListener listener, QualifiedName jobType) {
- synchronized (handlers) {
- JobStatusHandler handler = getHandler(jobType);
- if (handler != null) {
- handler.removeJobListener(listener);
- }
- }
- }
-
- /**
- * Return whether a job of the given type is currently running.
- * @param jobType
- * @return
- */
- public static boolean hasRunningJobs(QualifiedName jobType) {
- JobStatusHandler handler = getHandler(jobType);
- if (handler != null) {
- return handler.hasRunningJobs();
- }
- return false;
- }
-
- private static JobStatusHandler getHandler(QualifiedName jobType) {
- return (JobStatusHandler)handlers.get(jobType);
- }
-
- private static JobStatusHandler createHandler(QualifiedName jobType) {
- JobStatusHandler existing = getHandler(jobType);
- if (existing != null) return existing;
- JobStatusHandler newHandler = new JobStatusHandler(jobType);
- handlers.put(jobType, newHandler);
- return newHandler;
- }
-
- protected JobStatusHandler(QualifiedName jobType) {
- super();
- this.jobType = jobType;
- }
-
- public void schedule(Job job) {
- job.addJobChangeListener(this);
- job.schedule();
- }
-
- public void done(IJobChangeEvent event) {
- jobDone(event.getJob());
-
- }
-
- public void addJobListener(IJobListener listener) {
- synchronized (listeners) {
- listeners.add(listener);
- }
- }
- public void removeJobListener(IJobListener listener) {
- synchronized (listeners) {
- listeners.remove(listener);
- }
- }
-
- private void fireNotification(Notification notification) {
- // Get a snapshot of the listeners so the list doesn't change while we're firing
- IJobListener[] listenerArray;
- synchronized (listeners) {
- listenerArray = (IJobListener[]) listeners.toArray(new IJobListener[listeners.size()]);
- }
- // Notify each listener in a safe manner (i.e. so their exceptions don't kill us)
- for (int i = 0; i < listenerArray.length; i++) {
- IJobListener listener = listenerArray[i];
- notification.run(listener);
- }
- }
-
- private void jobStarted(Job job) {
- if (recordJob(job)) {
- fireStartNotification();
- }
- }
-
- /*
- * Record the job and return true if it's the first job of that type
- */
- private boolean recordJob(Job job) {
- if (!jobs.add(job)) {
- // The job was already in the set.
- return false;
- }
- return jobs.size() == 1;
- }
-
- /*
- * Remove the job and return true if it is the last job for the type
- */
- private boolean removeJob(Job job) {
- if (!jobs.remove(job)) {
- // The job wasn't in the list.
- return false;
- }
- return jobs.isEmpty();
- }
-
- private void fireStartNotification() {
- fireNotification(new Notification() {
- public void notify(IJobListener listener) {
- listener.started(getJobType());
- }
- });
- }
-
- private void jobDone(Job job) {
- if (removeJob(job)) {
- fireEndNotification();
- }
- }
-
- private void fireEndNotification() {
- fireNotification(new Notification() {
- public void notify(IJobListener listener) {
- listener.finished(getJobType());
- }
- });
- }
-
- public boolean hasRunningJobs() {
- return !jobs.isEmpty();
- }
-
- /**
- * @return Returns the jobType.
- */
- public QualifiedName getJobType() {
- return jobType;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.IJobChangeListener#aboutToRun(org.eclipse.core.runtime.jobs.IJobChangeEvent)
- */
- public void aboutToRun(IJobChangeEvent event) {
- jobStarted(event.getJob());
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/MutableSyncInfoSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/MutableSyncInfoSet.java
deleted file mode 100644
index ed85610ba..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/MutableSyncInfoSet.java
+++ /dev/null
@@ -1,246 +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.team.core.subscribers;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.SyncInfoDirectionFilter;
-import org.eclipse.team.internal.core.Policy;
-import org.eclipse.team.internal.core.subscribers.SyncSetChangedEvent;
-
-public class MutableSyncInfoSet extends SyncInfoSet {
-
- public MutableSyncInfoSet() {
- super();
- }
-
- public MutableSyncInfoSet(SyncInfo[] infos) {
- super(infos);
- }
-
- public synchronized void remove(IResource local) {
- IPath path = local.getFullPath();
- SyncInfo info = (SyncInfo)resources.remove(path);
- changes.removed(local, info);
- if (info != null) {
- statistics.remove(info);
- }
- removeFromParents(local, local);
- }
-
- public void removeAll(IResource[] resources) {
- for (int i = 0; i < resources.length; i++) {
- remove(resources[i]);
- }
- }
-
- public synchronized void add(SyncInfo info) {
- internalAdd(info);
- }
-
- public void addAll(SyncInfoSet set) {
- SyncInfo[] infos = set.members();
- for (int i = 0; i < infos.length; i++) {
- add(infos[i]);
- }
- }
-
- public synchronized void changed(SyncInfo info) {
- internalAddSyncInfo(info);
- changes.changed(info);
- }
-
- /**
- * Reset the sync set so it is empty
- */
- public synchronized void clear() {
- resources.clear();
- parents.clear();
- changes.reset();
- statistics.clear();
- }
-
- public synchronized void removeAllChildren(IResource resource) {
- // The parent map contains a set of all out-of-sync children
- Set allChildren = (Set)parents.get(resource.getFullPath());
- if (allChildren == null) return;
- IResource [] removed = (IResource[]) allChildren.toArray(new IResource[allChildren.size()]);
- for (int i = 0; i < removed.length; i++) {
- remove(removed[i]);
- }
- }
-
- /**
- * This method is invoked by a SyncSetInput provider when the
- * provider is starting to provide new input to the SyncSet
- */
- public void beginInput() {
- synchronized(this) {
- resetChanges();
- }
- }
-
- /**
- * This method is invoked by a SyncSetInput provider when the
- * provider is done providing new input to the SyncSet
- */
- public void endInput(IProgressMonitor monitor) {
- fireChanges(monitor);
- }
-
- private void fireChanges(final IProgressMonitor monitor) {
- // Use a synchronized block to ensure that the event we send is static
- final SyncSetChangedEvent event;
- synchronized(this) {
- event = changes;
- resetChanges();
- }
- // Ensure that the list of listeners is not changed while events are fired.
- // Copy the listeners so that addition/removal is not blocked by event listeners
- if(event.isEmpty() && ! event.isReset()) return;
- ISyncSetChangedListener[] allListeners;
- synchronized(listeners) {
- allListeners = (ISyncSetChangedListener[]) listeners.toArray(new ISyncSetChangedListener[listeners.size()]);
- }
- // Fire the events using an ISafeRunnable
- monitor.beginTask(null, 100 * allListeners.length);
- for (int i = 0; i < allListeners.length; i++) {
- final ISyncSetChangedListener listener = allListeners[i];
- Platform.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // don't log the exception....it is already being logged in Platform#run
- }
- public void run() throws Exception {
- listener.syncSetChanged(event, Policy.subMonitorFor(monitor, 100));
-
- }
- });
- }
- monitor.done();
- }
-
- private boolean removeFromParents(IResource resource, IResource parent) {
- if (parent.getType() == IResource.ROOT) {
- return false;
- }
- // this flag is used to indicate if the parent was removed from the set
- boolean removedParent = false;
- if (parent.getType() == IResource.FILE) {
- // the file will be removed
- removedParent = true;
- } else {
- Set children = (Set)parents.get(parent.getFullPath());
- if (children != null) {
- children.remove(resource);
- if (children.isEmpty()) {
- parents.remove(parent.getFullPath());
- removedParent = true;
- }
- }
- }
- // if the parent wasn't removed and the resource was, record it
- if (!removeFromParents(resource, parent.getParent()) && removedParent) {
- changes.removedRoot(parent);
- }
- return removedParent;
- }
-
- /**
- * Removes all conflicting nodes from this set.
- */
- public void removeConflictingNodes() {
- rejectNodes(new SyncInfoDirectionFilter(SyncInfo.CONFLICTING));
- }
- /**
- * Removes all outgoing nodes from this set.
- */
- public void removeOutgoingNodes() {
- rejectNodes(new SyncInfoDirectionFilter(SyncInfo.OUTGOING));
- }
- /**
- * Removes all incoming nodes from this set.
- */
- public void removeIncomingNodes() {
- rejectNodes(new SyncInfoDirectionFilter(SyncInfo.INCOMING));
- }
-
- /**
- * Removes all nodes from this set that are not auto-mergeable conflicts
- */
- public void removeNonMergeableNodes() {
- SyncInfo[] infos = members();
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- if ((info.getKind() & SyncInfo.MANUAL_CONFLICT) != 0) {
- remove(info.getLocal());
- } else if ((info.getKind() & SyncInfo.DIRECTION_MASK) != SyncInfo.CONFLICTING) {
- remove(info.getLocal());
- }
- }
- }
-
- /**
- * Indicate whether the set has nodes matching the given filter
- */
- public boolean hasNodes(FastSyncInfoFilter filter) {
- SyncInfo[] infos = members();
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- if (info != null && filter.select(info)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Removes all nodes from this set that do not match the given filter
- */
- public void selectNodes(FastSyncInfoFilter filter) {
- SyncInfo[] infos = members();
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- if (info == null || !filter.select(info)) {
- remove(info.getLocal());
- }
- }
- }
-
- /**
- * Removes all nodes from this set that match the given filter
- */
- public void rejectNodes(FastSyncInfoFilter filter) {
- SyncInfo[] infos = members();
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- if (info != null && filter.select(info)) {
- remove(info.getLocal());
- }
- }
- }
-
- /**
- * Return all nodes in this set that match the given filter
- */
- public SyncInfo[] getNodes(FastSyncInfoFilter filter) {
- List result = new ArrayList();
- SyncInfo[] infos = members();
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- if (info != null && filter.select(info)) {
- result.add(info);
- }
- }
- return (SyncInfo[]) result.toArray(new SyncInfo[result.size()]);
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RemoteContentsCache.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RemoteContentsCache.java
deleted file mode 100644
index 20d4e04b8..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RemoteContentsCache.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.Policy;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * This class implements a caching facility that can be used by TeamProviders to cache contents
- */
-public class RemoteContentsCache {
-
- // Directory to cache file contents
- private static final String CACHE_DIRECTORY = ".cache"; //$NON-NLS-1$
- // Maximum lifespan of local cache file, in milliseconds
- private static final long CACHE_FILE_LIFESPAN = 60*60*1000; // 1hr
-
- // Map of registered cahces indexed by local name of a QualifiedName
- private static Map caches = new HashMap(); // String (local name) > RemoteContentsCache
-
- private String name;
- private Map cacheEntries;
- private long lastCacheCleanup;
- private int cacheDirSize;
-
- // Lock used to serialize the writting of cache contents
- private ILock lock = Platform.getJobManager().newLock();
-
- /**
- * Enables the use of remote contents caching for the given cacheId. The cache ID must be unique.
- * A good candidate for this ID is the plugin ID of the plugin peforming the caching.
- *
- * @param cacheId the unique Id of the cache being enabled
- * @throws TeamException if the cache area on disk could not be properly initialized
- */
- public static synchronized void enableCaching(String cacheId) {
- if (isCachingEnabled(cacheId)) return;
- RemoteContentsCache cache = new RemoteContentsCache(cacheId);
- try {
- cache.createCacheDirectory();
- } catch (TeamException e) {
- // Log the exception and continue
- TeamPlugin.log(e);
- }
- caches.put(cacheId, cache);
- }
-
- /**
- * Returns whether caching has been enabled for the given Id. A cache should only be enabled once.
- * It is conceivable that a cache be persisted over workbench invocations thus leading to a cahce that
- * is enabled on startup without intervention by the owning plugin.
- *
- * @param cacheId the unique Id of the cache
- * @return true if caching for the given Id is enabled
- */
- public static boolean isCachingEnabled(String cacheId) {
- return getCache(cacheId) != null;
- }
-
- /**
- * Disable the cache, dispoing of any file contents in the cache.
- *
- * @param cacheId the unique Id of the cache
- * @throws TeamException if the cached contents could not be deleted from disk
- */
- public static void disableCache(String cacheId) {
- RemoteContentsCache cache = getCache(cacheId);
- if (cache == null) {
- // There is no cache to dispose of
- return;
- }
- caches.remove(cacheId);
- try {
- cache.deleteCacheDirectory();
- } catch (TeamException e) {
- // Log the exception and continue
- TeamPlugin.log(e);
- }
- }
-
- /**
- * Return the cache for the given id or null if caching is not enabled for the given id.
- * @param cacheId
- * @return
- */
- public static synchronized RemoteContentsCache getCache(String cacheId) {
- return (RemoteContentsCache)caches.get(cacheId);
- }
-
- private RemoteContentsCache(String name) {
- this.name = name;
- }
-
- /**
- * Return whether the cache contains an entry for the given id. Register a hit if it does.
- * @param id the id of the cache entry
- * @return true if there are contents cached for the id
- */
- public boolean hasEntry(String id) {
- return internalGetCacheEntry(id) != null;
- }
-
- protected IPath getCachePath() {
- return getStateLocation().append(CACHE_DIRECTORY).append(name);
- }
-
- private IPath getStateLocation() {
- return TeamPlugin.getPlugin().getStateLocation();
- }
-
- private void clearOldCacheEntries() {
- long current = new Date().getTime();
- if ((lastCacheCleanup!=-1) && (current - lastCacheCleanup < CACHE_FILE_LIFESPAN)) return;
- List stale = new ArrayList();
- for (Iterator iter = cacheEntries.values().iterator(); iter.hasNext();) {
- RemoteContentsCacheEntry entry = (RemoteContentsCacheEntry) iter.next();
- long lastHit = entry.getLastAccessTimeStamp();
- if ((current - lastHit) > CACHE_FILE_LIFESPAN){
- stale.add(entry);
- }
- }
- for (Iterator iter = stale.iterator(); iter.hasNext();) {
- RemoteContentsCacheEntry entry = (RemoteContentsCacheEntry) iter.next();
- entry.dispose();
- }
- }
-
- private void purgeFromCache(String id) {
- RemoteContentsCacheEntry entry = (RemoteContentsCacheEntry)cacheEntries.get(id);
- File f = entry.getFile();
- try {
- deleteFile(f);
- } catch (TeamException e) {
- // Ignore the deletion failure.
- // A failure only really matters when purging the directory on startup
- }
- cacheEntries.remove(id);
- }
-
- private void createCacheDirectory() throws TeamException {
- IPath cacheLocation = getCachePath();
- File file = cacheLocation.toFile();
- if (file.exists()) {
- deleteFile(file);
- }
- if (! file.mkdirs()) {
- throw new TeamException(Policy.bind("RemoteContentsCache.fileError", file.getAbsolutePath())); //$NON-NLS-1$
- }
- cacheEntries = new HashMap();
- lastCacheCleanup = -1;
- cacheDirSize = 0;
- }
-
- private void deleteCacheDirectory() throws TeamException {
- cacheEntries = null;
- lastCacheCleanup = -1;
- cacheDirSize = 0;
- IPath cacheLocation = getCachePath();
- File file = cacheLocation.toFile();
- if (file.exists()) {
- try {
- deleteFile(file);
- } catch (TeamException e) {
- // Don't worry about problems deleting.
- // The only case that matters is when the cache directory is created
- }
- }
- }
-
- private void deleteFile(File file) throws TeamException {
- if (file.isDirectory()) {
- File[] children = file.listFiles();
- for (int i = 0; i < children.length; i++) {
- deleteFile(children[i]);
- }
- }
- if (! file.delete()) {
- throw new TeamException(Policy.bind("RemoteContentsCache.fileError", file.getAbsolutePath())); //$NON-NLS-1$
- }
- }
-
- /**
- * Purge the given cache entry from the cache. This method should only be invoked from
- * an instance of RemoteContentsCacheEntry after it has set it's state to DISPOSED.
- * @param entry
- */
- protected void purgeFromCache(RemoteContentsCacheEntry entry) {
- purgeFromCache(entry.getId());
- }
-
- private RemoteContentsCacheEntry internalGetCacheEntry(String id) {
- RemoteContentsCacheEntry entry = (RemoteContentsCacheEntry)cacheEntries.get(id);
- if (entry != null) {
- entry.registerHit();
- }
- return entry;
- }
-
- /**
- * @param id the id that uniquely identifes the remote resource that is cached.
- * @return
- */
- public synchronized RemoteContentsCacheEntry getCacheEntry(String id) {
- if (cacheEntries == null) {
- // This probably means that the cache has been disposed
- throw new IllegalStateException(Policy.bind("RemoteContentsCache.cacheDisposed", name)); //$NON-NLS-1$
- }
- RemoteContentsCacheEntry entry = internalGetCacheEntry(id);
- if (entry == null) {
- // cache miss
- entry = createCacheEntry(id);
- }
- return entry;
- }
-
- private RemoteContentsCacheEntry createCacheEntry(String id) {
- clearOldCacheEntries();
- String filePath = String.valueOf(cacheDirSize++);
- RemoteContentsCacheEntry entry = new RemoteContentsCacheEntry(this, id, filePath);
- cacheEntries.put(id, entry);
- return entry;
- }
-
- public String getName() {
- return name;
- }
-
- /**
- * Provide access to the lock for the cache. This method should only be used by a cache entry.
- * @return Returns the lock.
- */
- protected ILock getLock() {
- return lock;
- }
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RemoteContentsCacheEntry.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RemoteContentsCacheEntry.java
deleted file mode 100644
index d34568898..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RemoteContentsCacheEntry.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.core.subscribers;
-
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Date;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.Policy;
-
-/**
- * This class provides the implementation for the ICacheEntry
- */
-public class RemoteContentsCacheEntry {
-
- public static final int UNINITIALIZED = 0;
- public static final int READY = 1;
- public static final int DISPOSED = 2;
-
- private String id;
- private String filePath;
- private RemoteContentsCache cache;
- private byte[] syncBytes;
- private int state = UNINITIALIZED;
- private long lastAccess;
-
- public RemoteContentsCacheEntry(RemoteContentsCache cache, String id, String filePath) {
- state = UNINITIALIZED;
- this.cache = cache;
- this.id = id;
- this.filePath = filePath;
- registerHit();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ICacheEntry#getContents()
- */
- public InputStream getContents() throws TeamException {
- if (state != READY) return null;
- registerHit();
- File ioFile = getFile();
- try {
- try {
- if (ioFile.exists()) {
- return new FileInputStream(ioFile);
- }
- } catch (IOException e) {
- // Try to purge the cache and continue
- cache.purgeFromCache(this);
- throw e;
- }
- } catch (IOException e) {
- // We will end up here if we couldn't read or delete the cache file
- throw new TeamException(Policy.bind("RemoteContentsCache.fileError", ioFile.getAbsolutePath()), e); //$NON-NLS-1$
- }
- // This can occur when there is no remote contents
- return new ByteArrayInputStream(new byte[0]);
- }
-
- protected File getFile() {
- return new File(cache.getCachePath().toFile(), filePath);
- }
-
- /**
- * Set the contents of for this cache entry. This method supports concurrency by only allowing
- * one cache entry to be written at a time. In the case of two concurrent writes to the same cache entry,
- * the contents from the first write is used and the content from subsequent writes is ignored.
- * @param stream an InputStream that provides the contents to be cached
- * @param monitor a progress monitor
- * @throws TeamException if the entry is DISPOSED or an I/O error occurres
- */
- public void setContents(InputStream stream, IProgressMonitor monitor) throws TeamException {
- // Use a lock to only allow one write at a time
- try {
- beginOperation();
- internalSetContents(stream, monitor);
- } finally {
- endOperation();
- }
- }
-
- private synchronized void endOperation() {
- cache.getLock().release();
- }
-
- private synchronized void beginOperation() {
- cache.getLock().acquire();
- }
-
- private void internalSetContents(InputStream stream, IProgressMonitor monitor) throws TeamException {
- // if the state is DISPOSED then there is a problem
- if (state == DISPOSED) {
- throw new TeamException(Policy.bind("RemoteContentsCacheEntry.3", cache.getName(), id)); //$NON-NLS-1$
- }
- // Otherwise, the state is UNINITIALIZED or READY so we can proceed
- registerHit();
- File ioFile = getFile();
- try {
-
- // Open the cache file for writing
- OutputStream out;
- try {
- if (state == UNINITIALIZED) {
- out = new BufferedOutputStream(new FileOutputStream(ioFile));
- } else {
- // If the entry is READY, the contents must have been read in another thread.
- // We still need to red the contents but they can be ignored since presumably they are the same
- out = new ByteArrayOutputStream();
- }
- } catch (FileNotFoundException e) {
- throw new TeamException(Policy.bind("RemoteContentsCache.fileError", ioFile.getAbsolutePath()), e); //$NON-NLS-1$
- }
-
- // Transfer the contents
- try {
- try {
- byte[] buffer = new byte[1024];
- int read;
- while ((read = stream.read(buffer)) >= 0) {
- Policy.checkCanceled(monitor);
- out.write(buffer, 0, read);
- }
- } finally {
- out.close();
- }
- } catch (IOException e) {
- // Make sure we don't leave the cache file around as it may not have the right contents
- cache.purgeFromCache(this);
- throw e;
- }
-
- // Mark the cache entry as ready
- state = READY;
- } catch (IOException e) {
- throw new TeamException(Policy.bind("RemoteContentsCache.fileError", ioFile.getAbsolutePath()), e); //$NON-NLS-1$
- } finally {
- try {
- stream.close();
- } catch (IOException e1) {
- // Ignore close errors
- }
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ICacheEntry#getSyncBytes(byte[])
- */
- public byte[] getSyncBytes() {
- return syncBytes;
- }
-
- /**
- * Set the sync bytes associated with the cached remote contents.
- * This method is sychronized to ensure atomic setting of the bytes.
- * @param bytes
- */
- public synchronized void setSyncBytes(byte[] bytes) {
- syncBytes = bytes;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ICacheEntry#getState()
- */
- public int getState() {
- return state;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ICacheEntry#getSize()
- */
- public long getSize() {
- if (state != READY) return 0;
- File ioFile = getFile();
- if (ioFile.exists()) {
- return ioFile.length();
- }
- return 0;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ICacheEntry#getLastAccessTimeStamp()
- */
- public long getLastAccessTimeStamp() {
- return lastAccess;
- }
-
- /**
- * Registers a hit on this cache entry. This updates the last access timestamp.
- * Thsi method is intended to only be invokded from inside this class or the cahce itself.
- * Other clients should not use it.
- */
- protected void registerHit() {
- lastAccess = new Date().getTime();
- }
-
- public void dispose() {
- // Use a lock to avoid changing state while another thread may be writting
- try {
- beginOperation();
- state = DISPOSED;
- cache.purgeFromCache(this);
- } finally {
- endOperation();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ICacheEntry#getId()
- */
- public String getId() {
- return id;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java
deleted file mode 100644
index 3188b0145..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.Assert;
-import org.eclipse.team.internal.core.Policy;
-
-/**
- * Describes the relative synchronization of a <b>remote</b>
- * resource and a <b>local</b> resource using a <b>base</b>
- * resource for comparison.
- * <p>
- * Differences between the base and local resources
- * are classified as <b>outgoing changes</b>; if there is
- * a difference, the local resource is considered the
- * <b>outgoing resource</b>.
- * </p>
- * <p>
- * Differences between the base and remote resources
- * are classified as <b>incoming changes</b>; if there is
- * a difference, the remote resource is considered the
- * <b>incoming resource</b>.
- * </p>
- * <p>
- * Differences between the local and remote resources
- * determine the <b>sync status</b>. The sync status does
- * not take into account the common resource.
- * </p>
- * <p>
- * Note that under this parse of the world, a resource
- * can have both incoming and outgoing changes at the
- * same time, but may nevertheless be in sync!
- * <p>
- * [Issue: "Gender changes" are also an interesting aspect...
- * ]
- * </p>
- *
- * @since 3.0
- */
-public class SyncInfo implements IAdaptable {
-
- /*====================================================================
- * Constants defining synchronization types:
- *====================================================================*/
-
- /**
- * Sync constant (value 0) indicating element is in sync.
- */
- public static final int IN_SYNC = 0;
-
- /**
- * Sync constant (value 1) indicating that one side was added.
- */
- public static final int ADDITION = 1;
-
- /**
- * Sync constant (value 2) indicating that one side was deleted.
- */
- public static final int DELETION = 2;
-
- /**
- * Sync constant (value 3) indicating that one side was changed.
- */
- public static final int CHANGE = 3;
-
- /**
- * Bit mask for extracting the change type.
- */
- public static final int CHANGE_MASK = CHANGE;
-
- /*====================================================================
- * Constants defining synchronization direction:
- *====================================================================*/
-
- /**
- * Sync constant (value 4) indicating a change to the local resource.
- */
- public static final int OUTGOING = 4;
-
- /**
- * Sync constant (value 8) indicating a change to the remote resource.
- */
- public static final int INCOMING = 8;
-
- /**
- * Sync constant (value 12) indicating a change to both the remote and local resources.
- */
- public static final int CONFLICTING = 12;
-
- /**
- * Bit mask for extracting the synchronization direction.
- */
- public static final int DIRECTION_MASK = CONFLICTING;
-
- /*====================================================================
- * Constants defining synchronization conflict types:
- *====================================================================*/
-
- /**
- * Sync constant (value 16) indication that both the local and remote resources have changed
- * relative to the base but their contents are the same.
- */
- public static final int PSEUDO_CONFLICT = 16;
-
- /**
- * Sync constant (value 32) indicating that both the local and remote resources have changed
- * relative to the base but their content changes do not conflict (e.g. source file changes on different
- * lines). These conflicts could be merged automatically.
- */
- public static final int AUTOMERGE_CONFLICT = 32;
-
- /**
- * Sync constant (value 64) indicating that both the local and remote resources have changed relative
- * to the base and their content changes conflict (e.g. local and remote resource have changes on
- * same lines). These conflicts can only be correctly resolved by the user.
- */
- public static final int MANUAL_CONFLICT = 64;
-
- /**
- * Sync constant (value 128) indicating that the local resource is not controlled
- * by the subscriber. This can occur for either an OUTGOING | ADDITION or a CONFLICTING | ADDITION.
- * Uncontrolled resources may be excluded from the operations of ITeamOperation (except control).
- */
- public static final int UNCONTROLLED = 128;
-
- /*====================================================================
- * Members:
- *====================================================================*/
- private IResource local;
- private ISubscriberResource base;
- private ISubscriberResource remote;
- private TeamSubscriber subscriber;
-
- private int syncKind;
-
- /**
- * Construct a sync info object.
- */
- public SyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote, TeamSubscriber subscriber) throws TeamException {
- this.local = local;
- this.base = base;
- this.remote = remote;
- this.subscriber = subscriber;
- this.syncKind = calculateKind();
- }
-
- /**
- * Returns the state of the local resource. Note that the
- * resource may or may not exist.
- *
- * @return a resource
- */
- public IResource getLocal() {
- return local;
- }
-
- /**
- * Returns the content identifier for the local resource or <code>null</code> if
- * it doesn't have one. For example, in CVS this would be the revision number.
- *
- * @return String that could be displayed to the user to identify this resource.
- */
- public String getLocalContentIdentifier() {
- return null;
- }
-
- /**
- * Returns the remote resource handle for the base resource,
- * or <code>null</code> if the base resource does not exist.
- * <p>
- * [Note: The type of the common resource may be different from the types
- * of the local and remote resources.
- * ]
- * </p>
- *
- * @return a remote resource handle, or <code>null</code>
- */
- public ISubscriberResource getBase() {
- return base;
- }
-
- /**
- * Returns the handle for the remote resource,
- * or <code>null</code> if the remote resource does not exist.
- * <p>
- * [Note: The type of the remote resource may be different from the types
- * of the local and common resources.
- * ]
- * </p>
- *
- * @return a remote resource handle, or <code>null</code>
- */
- public ISubscriberResource getRemote() {
- return remote;
- }
-
- /**
- * Returns the subscriber that created and maintains this sync info
- * object.
- */
- public TeamSubscriber getSubscriber() {
- return subscriber;
- }
-
- /**
- * Returns the kind of synchronization for this node.
- * @return
- */
- public int getKind() {
- return syncKind;
- }
-
- static public boolean isInSync(int kind) {
- return kind == IN_SYNC;
- }
-
- static public int getDirection(int kind) {
- return kind & DIRECTION_MASK;
- }
-
- static public int getChange(int kind) {
- return kind & CHANGE_MASK;
- }
-
- public boolean equals(Object other) {
- if(other == this) return true;
- if(other instanceof SyncInfo) {
- return equalNodes(this, (SyncInfo)other);
- }
- return false;
- }
-
- private boolean equalNodes(SyncInfo node1, SyncInfo node2) {
- if(node1 == null || node2 == null) {
- return false;
- }
-
- // First, ensure the local resources are equals
- IResource local1 = null;
- if (node1.getLocal() != null)
- local1 = node1.getLocal();
- IResource local2 = null;
- if (node2.getLocal() != null)
- local2 = node2.getLocal();
- if (!equalObjects(local1, local2)) return false;
-
- // Next, ensure the base resources are equal
- ISubscriberResource base1 = null;
- if (node1.getBase() != null)
- base1 = node1.getBase();
- ISubscriberResource base2 = null;
- if (node2.getBase() != null)
- base2 = node2.getBase();
- if (!equalObjects(base1, base2)) return false;
-
- // Finally, ensure the remote resources are equal
- ISubscriberResource remote1 = null;
- if (node1.getRemote() != null)
- remote1 = node1.getRemote();
- ISubscriberResource remote2 = null;
- if (node2.getRemote() != null)
- remote2 = node2.getRemote();
- if (!equalObjects(remote1, remote2)) return false;
-
- return true;
- }
-
- private boolean equalObjects(Object o1, Object o2) {
- if (o1 == null && o2 == null) return true;
- if (o1 == null || o2 == null) return false;
- return o1.equals(o2);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IResource.class) {
- return getLocal();
- }
- return null;
- }
-
- public String toString() {
- return getLocal().getName() + " " + kindToString(getKind()); //$NON-NLS-1$
- }
-
- public static String kindToString(int kind) {
- String label = ""; //$NON-NLS-1$
- if(kind==IN_SYNC) {
- label = Policy.bind("RemoteSyncElement.insync"); //$NON-NLS-1$
- } else {
- switch(kind & DIRECTION_MASK) {
- case CONFLICTING: label = Policy.bind("RemoteSyncElement.conflicting"); break; //$NON-NLS-1$
- case OUTGOING: label = Policy.bind("RemoteSyncElement.outgoing"); break; //$NON-NLS-1$
- case INCOMING: label = Policy.bind("RemoteSyncElement.incoming"); break; //$NON-NLS-1$
- }
- switch(kind & CHANGE_MASK) {
- case CHANGE: label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.change")); break; //$NON-NLS-1$ //$NON-NLS-2$
- case ADDITION: label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.addition")); break; //$NON-NLS-1$ //$NON-NLS-2$
- case DELETION: label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.deletion")); break; //$NON-NLS-1$ //$NON-NLS-2$
- }
- if((kind & MANUAL_CONFLICT) != 0) {
- label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.manual")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- if((kind & AUTOMERGE_CONFLICT) != 0) {
- label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.auto")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- return Policy.bind("RemoteSyncElement.delimit", label); //$NON-NLS-1$
- }
-
- protected int calculateKind() throws TeamException {
- int description = IN_SYNC;
-
- IComparisonCriteria criteria = subscriber.getDefaultComparisonCriteria();
-
- boolean localExists = local.exists();
-
- if (subscriber.isThreeWay()) {
- if (base == null) {
- if (remote == null) {
- if (!localExists) {
- description = IN_SYNC;
- } else {
- description = OUTGOING | ADDITION;
- }
- } else {
- if (!localExists) {
- description = INCOMING | ADDITION;
- } else {
- description = CONFLICTING | ADDITION;
- if (criteria.compare(local, remote)) {
- description |= PSEUDO_CONFLICT;
- }
- }
- }
- } else {
- if (!localExists) {
- if (remote == null) {
- description = CONFLICTING | DELETION | PSEUDO_CONFLICT;
- } else {
- if (criteria.compare(base, remote))
- description = OUTGOING | DELETION;
- else
- description = CONFLICTING | CHANGE;
- }
- } else {
- if (remote == null) {
- if (criteria.compare(local, base))
- description = INCOMING | DELETION;
- else
- description = CONFLICTING | CHANGE;
- } else {
- boolean ay = criteria.compare(local, base);
- boolean am = criteria.compare(base, remote);
- if (ay && am) {
- // in-sync
- } else if (ay && !am) {
- description = INCOMING | CHANGE;
- } else if (!ay && am) {
- description = OUTGOING | CHANGE;
- } else {
- if(! criteria.compare(local, remote)) {
- description = CONFLICTING | CHANGE;
- }
- }
- }
- }
- }
- } else { // two compare without access to base contents
- if (remote == null) {
- if (!localExists) {
- Assert.isTrue(false);
- // shouldn't happen
- } else {
- description= DELETION;
- }
- } else {
- if (!localExists) {
- description= ADDITION;
- } else {
- if (! criteria.compare(local, remote))
- description= CHANGE;
- }
- }
- }
- return description;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoFilter.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoFilter.java
deleted file mode 100644
index 9ba9b27dc..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoFilter.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.team.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.core.subscribers.*;
-
-/**
- * A <code>SyncInfoFilter</code> tests a <code>SyncInfo</code> for inclusion
- * typically in a <code>SyncInfoSet</code>.
- *
- */
-public abstract class SyncInfoFilter {
-
- /**
- * Filter that selects those <code>SyncInfo</code> whose contents do not match.
- */
- public static class ContentComparisonSyncInfoFilter extends SyncInfoFilter {
- ContentComparator criteria = new ContentComparator(false);
- public boolean select(SyncInfo info, IProgressMonitor monitor) {
- ISubscriberResource remote = info.getRemote();
- IResource local = info.getLocal();
- if (remote == null) return local.exists();
- if (!local.exists()) return true;
- return !criteria.compare(local, remote, monitor);
- }
- }
-
- /**
- * Return true if the provided SyncInfo matches the filter.
- *
- * @param info the sync info to be tested
- * @param monitor a progress monitor
- * @return
- */
- public abstract boolean select(SyncInfo info, IProgressMonitor monitor);
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java
deleted file mode 100644
index d573751e1..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers;
-
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.internal.core.TeamPlugin;
-import org.eclipse.team.internal.core.subscribers.SyncInfoStatistics;
-import org.eclipse.team.internal.core.subscribers.SyncSetChangedEvent;
-
-/**
- * A dynamic collection of {@link SyncInfo} objects. This data structure is optimized
- * for fast retrieval of out-of-sync resources . There are
- * generally two methods for obtaining instances of this collection:
- * <ul>
- * <li>Create a {@link SyncInfoCollector} to dynamically collect changes from a team
- * subscriber and reference its sync info set.
- * <li>Create a set with a pre-defined set of sync info objects.
- * </ul>
- * <p>
- * This set generates a {@link ISyncInfoSetChangeEvent} every time it is modified.
- * </p>
- * @see TeamSubscriberSyncInfoCollector
- * @see MutableSyncInfoSet
- * @since 3.0
- */
-public class SyncInfoSet {
- // fields used to hold resources of interest
- // {IPath -> SyncInfo}
- protected Map resources = Collections.synchronizedMap(new HashMap());
-
- // {IPath -> Set of deep out of sync child IResources}
- // Weird thing is that the child set will include the parent if the parent is out of sync
- protected Map parents = Collections.synchronizedMap(new HashMap());
-
- // fields used for change notification
- protected SyncSetChangedEvent changes;
- protected Set listeners = Collections.synchronizedSet(new HashSet());
-
- // keep track of number of sync kinds in the set
- protected SyncInfoStatistics statistics = new SyncInfoStatistics();
-
- /**
- * Don't directly allow creating an empty immutable set.
- */
- protected SyncInfoSet() {
- resetChanges();
- }
-
- /**
- * Create a new set that will contain the provided sync infos.
- * @param infos a list of <code>SyncInfo</code> that are added to
- * the new set.
- */
- public SyncInfoSet(SyncInfo[] infos) {
- this();
- for (int i = 0; i < infos.length; i++) {
- internalAdd(infos[i]);
- }
- }
-
- /**
- * Registers the given listener for sync info set notifications. Has
- * no effect if an identical listener is already registered.
- *
- * @param listener listener to register
- */
- public void addSyncSetChangedListener(ISyncSetChangedListener listener) {
- synchronized(listeners) {
- listeners.add(listener);
- }
- }
-
- /**
- * Deregisters the given listener for participant notifications. Has
- * no effect if listener is not already registered.
- *
- * @param listener listener to deregister
- */
- public void removeSyncSetChangedListener(ISyncSetChangedListener listener) {
- synchronized(listeners) {
- listeners.remove(listener);
- }
- }
-
- /**
- * Return an array of all the resources that are known to be out-of-sync
- * @return
- */
- public synchronized SyncInfo[] members() {
- return (SyncInfo[]) resources.values().toArray(new SyncInfo[resources.size()]);
- }
-
- /**
- * Return the immediate children of the given resource who are either out-of-sync
- * or contain out-of-sync resources.
- *
- * @param resource
- * @return
- */
- public synchronized IResource[] members(IResource resource) {
- if (resource.getType() == IResource.FILE) return new IResource[0];
- IContainer parent = (IContainer)resource;
- if (parent.getType() == IResource.ROOT) return getRoots(parent);
- // OPTIMIZE: could be optimized so that we don't traverse all the deep
- // children to find the immediate ones.
- Set children = new HashSet();
- IPath path = parent.getFullPath();
- Set possibleChildren = (Set)parents.get(path);
- if(possibleChildren != null) {
- for (Iterator it = possibleChildren.iterator(); it.hasNext();) {
- Object next = it.next();
- IResource element = (IResource)next;
- IPath childPath = element.getFullPath();
- IResource modelObject = null;
- if(childPath.segmentCount() == (path.segmentCount() + 1)) {
- modelObject = element;
-
- } else if (childPath.segmentCount() > path.segmentCount()) {
- IContainer childFolder = parent.getFolder(new Path(childPath.segment(path.segmentCount())));
- modelObject = childFolder;
- }
- if (modelObject != null) {
- children.add(modelObject);
- }
- }
- }
- return (IResource[]) children.toArray(new IResource[children.size()]);
- }
-
-
- /**
- * Return wether the given resource has any children in the sync set
- * @param resource
- * @return
- */
- public boolean hasMembers(IResource resource) {
- if (resource.getType() == IResource.FILE) return false;
- IContainer parent = (IContainer)resource;
- if (parent.getType() == IResource.ROOT) return !resources.isEmpty();
- IPath path = parent.getFullPath();
- Set allDescendants = (Set)parents.get(path);
- return (allDescendants != null && !allDescendants.isEmpty());
- }
-
- /**
- * Return the out-of-sync descendants of the given resource. If the given resource
- * is out of sync, it will be included in the result.
- *
- * @param container
- * @return
- */
- public synchronized SyncInfo[] getOutOfSyncDescendants(IResource resource) {
- if (resource.getType() == IResource.FILE) {
- SyncInfo info = getSyncInfo(resource);
- if (info == null) {
- return new SyncInfo[0];
- } else {
- return new SyncInfo[] { info };
- }
- }
- // if it's the root then return all out of sync resources.
- if(resource.getType() == IResource.ROOT) {
- return members();
- }
- // for folders return all children deep.
- IContainer container = (IContainer)resource;
- IPath path = container.getFullPath();
- Set children = (Set)parents.get(path);
- if (children == null) return new SyncInfo[0];
- List infos = new ArrayList();
- for (Iterator iter = children.iterator(); iter.hasNext();) {
- IResource child = (IResource) iter.next();
- SyncInfo info = getSyncInfo(child);
- if(info != null) {
- infos.add(info);
- } else {
- TeamPlugin.log(IStatus.INFO, "missing sync info: " + child.getFullPath(), null); //$NON-NLS-1$
- }
- }
- return (SyncInfo[]) infos.toArray(new SyncInfo[infos.size()]);
- }
-
- public synchronized IResource[] getResources() {
- SyncInfo[] infos = members();
- List resources = new ArrayList();
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- resources.add(info.getLocal());
- }
- return (IResource[]) resources.toArray(new IResource[resources.size()]);
- }
-
- public synchronized SyncInfo getSyncInfo(IResource resource) {
- return (SyncInfo)resources.get(resource.getFullPath());
- }
-
- public int size() {
- return resources.size();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.ISyncInfoSet#dispose()
- */
- public void dispose() {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.ISyncInfoSet#countFor(int, int)
- */
- public long countFor(int kind, int mask) {
- return statistics.countFor(kind, mask);
- }
-
- /**
- * Returns true if there are any conflicting nodes in the set, and
- * false otherwise.
- */
- public boolean hasConflicts() {
- return countFor(SyncInfo.CONFLICTING, SyncInfo.DIRECTION_MASK) > 0;
- }
-
- /**
- * Returns true if this sync set has incoming changes.
- * Note that conflicts are not considered to be incoming changes.
- */
- public boolean hasIncomingChanges() {
- return countFor(SyncInfo.INCOMING, SyncInfo.DIRECTION_MASK) > 0;
- }
-
- /**
- * Returns true if this sync set has outgoing changes.
- * Note that conflicts are not considered to be outgoing changes.
- */
- public boolean hasOutgoingChanges() {
- return countFor(SyncInfo.OUTGOING, SyncInfo.DIRECTION_MASK) > 0;
- }
-
- /**
- * Returns true if this sync set has auto-mergeable conflicts.
- */
- public boolean hasAutoMergeableConflicts() {
- return countFor(SyncInfo.AUTOMERGE_CONFLICT, 0) > 0;
- }
-
- public boolean isEmpty() {
- return resources.isEmpty();
- }
-
- protected void resetChanges() {
- changes = new SyncSetChangedEvent(this);
- }
-
- protected void internalAdd(SyncInfo info) {
- internalAddSyncInfo(info);
- changes.added(info);
- IResource local = info.getLocal();
- addToParents(local, local);
- }
-
- protected void internalAddSyncInfo(SyncInfo info) {
- IResource local = info.getLocal();
- IPath path = local.getFullPath();
- SyncInfo oldSyncInfo = (SyncInfo)resources.put(path, info);
- if(oldSyncInfo == null) {
- statistics.add(info);
- } else {
- statistics.remove(oldSyncInfo);
- statistics.add(info);
- }
- }
-
- private boolean addToParents(IResource resource, IResource parent) {
- if (parent.getType() == IResource.ROOT) {
- return false;
- }
- // this flag is used to indicate if the parent was previosuly in the set
- boolean addedParent = false;
- if (parent.getType() == IResource.FILE) {
- // the file is new
- addedParent = true;
- } else {
- Set children = (Set)parents.get(parent.getFullPath());
- if (children == null) {
- children = new HashSet();
- parents.put(parent.getFullPath(), children);
- // this is a new folder in the sync set
- addedParent = true;
- }
- children.add(resource);
- }
- // if the parent already existed and the resource is new, record it
- if (!addToParents(resource, parent.getParent()) && addedParent) {
- changes.addedRoot(parent);
- }
- return addedParent;
- }
-
- private IResource[] getRoots(IContainer root) {
- Set possibleChildren = parents.keySet();
- Set children = new HashSet();
- for (Iterator it = possibleChildren.iterator(); it.hasNext();) {
- Object next = it.next();
- IResource element = ((IWorkspaceRoot)root).findMember((IPath)next);
- if (element != null) {
- children.add(element.getProject());
- }
- }
- return (IResource[]) children.toArray(new IResource[children.size()]);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamDelta.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamDelta.java
deleted file mode 100644
index bf80569f8..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamDelta.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.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-
-/**
- * A team delta represents changes in the team state.
- *
- * @see IResource
- * @see ITeamProvider
- */
-public class TeamDelta {
-
- /*====================================================================
- * Constants defining the kinds of team changes to resources:
- *====================================================================*/
-
- /**
- * Delta kind constant indicating that the resource has not been changed in any way
- * @see IResourceDelta#getKind
- */
- public static final int NO_CHANGE = 0;
-
- /**
- * Delta kind constant (bit mask) indicating that the synchronization state of a resource has changed.
- */
- public static final int SYNC_CHANGED = 0x1;
-
- /**
- * Delta kind constant (bit mask) indicating that a team provider has been configured on the resource.
- * @see IResourceDelta#getKind
- */
- public static final int ROOT_ADDED = 0x2;
-
- /**
- * Delta kind constant (bit mask) indicating that a team provider has been de-configured on the resource.
- * @see IResourceDelta#getKind
- */
- public static final int ROOT_REMOVED = 0x4;
-
- private TeamSubscriber subscriber;
- private int flags;
- private IResource resource;
-
- public TeamDelta(TeamSubscriber subscriber, int flags, IResource resource) {
- this.subscriber = subscriber;
- this.flags = flags;
- this.resource = resource;
- }
-
- public int getFlags() {
- return flags;
- }
-
- public IResource getResource() {
- return resource;
- }
-
- public TeamSubscriber getSubscriber() {
- return subscriber;
- }
-
- /**
- * Returns an array of deltas for the resources with TeamDelta.SYNC_CHANGED
- * as the change type.
- * @param resources the resources whose sync info has changed
- * @return
- */
- public static TeamDelta[] asSyncChangedDeltas(TeamSubscriber subscriber, IResource[] resources) {
- TeamDelta[] deltas = new TeamDelta[resources.length];
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- deltas[i] = new TeamDelta(subscriber, TeamDelta.SYNC_CHANGED, resource);
- }
- return deltas;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamSubscriber.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamSubscriber.java
deleted file mode 100644
index 0ae5698da..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamSubscriber.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.core.subscribers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * A TeamSubscriber provides synchronization between local resources and a
- * remote location that is used to share those resources.
- *
- * A TeamSubscriber is only required to send out change notification any time the sync
- * state of a resoure changes but the local state does not. For instance,
- * if the contents of a file have been modified or a file or folder has
- * been deleted, the TeamSubscriber may or may not send out a TeamDelta.SYNC_CHANGED
- * event. Also, if a project is deleted or closed, the TeamSubscriber is not required to
- * issue a TeamDelta.ROOT_REMOVED event. It is up to clients to requery the subscriber
- * when the state of a resource changes locally by listening to IResource deltas.
- *
- * [Note: How can we allow the refresh() operation to optimize the sync
- * calculation based on the currently configured compare criteria?]
- */
-abstract public class TeamSubscriber {
-
- public static final QualifiedName SUBSCRIBER_JOB_TYPE = new QualifiedName(TeamPlugin.ID, "subcriber_job"); //$NON-NLS-1$
-
- private List listeners = new ArrayList(1);
-
- /**
- * Return the description of this subscription, in a format that is
- * suitable for display to an end user. The description should contain
- * enough details to understand the connection type of this subscriber.
- *
- * @return String representing the description of this subscription.
- */
- abstract public String getDescription();
-
- /**
- * Returns <code>true</code> if this resource is supervised by this
- * subscriber. A supervised resource is one for which this subscriber
- * maintains the synchronization state. Supervised resources are the only
- * resources returned when <code>members(IResource)</code> was invoked with the parent
- * of the resource. Returns <code>false</code> in all
- * other cases.
- *
- * @return <code>true</code> if this resource is supervised, and <code>false</code>
- * otherwise
- */
- abstract public boolean isSupervised(IResource resource) throws TeamException;
-
- /**
- * Returns all non-transient member resources of the given resource. The
- * result will include entries for resources that exist either in the
- * workspace or are implicated in an incoming change. Returns an empty list
- * if the given resource exists neither in the workspace nor in the
- * corresponding team stream, or if the given resource is transient.
- * <p>
- * This is a fast operation; the repository is not contacted.
- * </p>
- * <p>
- * [Issue1 : Is there any filtering on the members? Just the ones that
- * changed in some way, or *every member*? ]
- * </p>
- *
- * @param resource
- * the resource
- * @return a list of member resources
- * @exception CoreException
- * if this request fails. Reasons include:
- */
- abstract public IResource[] members(IResource resource) throws TeamException;
-
- /**
- * Returns the list of root resources this subscriber considers for
- * synchronization. A client should call this method first then can safely
- * call <code>members</code> to navigate the resources managed by this
- * subscriber.
- *
- * @return a list of resources
- * @throws TeamException
- */
- abstract public IResource[] roots();
-
- /**
- * Returns synchronization info for the given resource, or <code>null</code>
- * if there is no synchronization info because the subscriber does not
- * apply to this resource.
- * <p>
- * Note that sync info may be returned for non-existing or for resources
- * which have no corresponding remote resource.
- * </p>
- * <p>
- * This method may take some time; it depends on the comparison criteria
- * that is used to calculate the synchronization state (e.g. using content
- * or only timestamps).
- * </p>
- *
- * @param resource
- * the resource of interest
- * @return sync info
- */
- abstract public SyncInfo getSyncInfo(IResource resource) throws TeamException;
-
- /**
- * Refreshes the resource hierarchy from the given resources and their
- * children (to the specified depth) from the corresponding resources in
- * the remote location. Resources are ignored in the following cases:
- * <ul>
- * <li>if they do not exist either in the workspace or in the
- * corresponding remote location</li>
- * <li>if the given resource is marked as derived (see
- * IResource#isDerived())</li>
- * <li>if the given resource is not managed by this subscriber</li>
- * <li>if the given resource is a closed project (they are ineligible for
- * synchronization)</li>
- * <p>
- * Typical synchronization operations use the statuses computed by this
- * method as the basis for determining what to do. It is possible for the
- * actual sync status of the resource to have changed since the current
- * local sync status was refreshed. Operations typically skip resources
- * with stale sync information. The chances of stale information being used
- * can be reduced by running this method (where feasible) before doing
- * other operations. Note that this will of course affect performance.
- * </p>
- * <p>
- * The depth parameter controls whether refreshing is performed on just the
- * given resource (depth= <code>DEPTH_ZERO</code>), the resource and its
- * children (depth= <code>DEPTH_ONE</code>), or recursively to the
- * resource and all its descendents (depth= <code>DEPTH_INFINITE</code>).
- * Use depth <code>DEPTH_ONE</code>, rather than depth <code>DEPTH_ZERO</code>,
- * to ensure that new members of a project or folder are detected.
- * </p>
- * <p>
- * This method might change resources; any changes will be reported in a
- * subsequent resource change event indicating changes to server sync
- * status.
- * </p>
- * <p>
- * This method contacts the server and is therefore long-running; progress
- * and cancellation are provided by the given progress monitor.
- * </p>
- *
- * @param resources
- * the resources
- * @param depth
- * valid values are <code>DEPTH_ZERO</code>,<code>DEPTH_ONE</code>,
- * or <code>DEPTH_INFINITE</code>
- * @param monitor
- * progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return status with code <code>OK</code> if there were no problems;
- * otherwise a description (possibly a multi-status) consisting of
- * low-severity warnings or informational messages.
- * @exception CoreException
- * if this method fails. Reasons include:
- * <ul>
- * <li>The server could not be contacted.</li>
- * </ul>
- */
- abstract public void refresh(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException;
-
- /**
- * Returns the comparison criteria that will be used by the sync info
- * created by this subscriber.
- */
- abstract public IComparisonCriteria getDefaultComparisonCriteria();
-
- /**
- * Answers <code>true</code> if the base tree is maintained by this
- * subscriber. If the base tree is not considered than the subscriber can
- * be considered as not supported three-way comparisons. Instead
- * comparisons are made between the local and remote only without
- * consideration for the base.
- */
- abstract public boolean isThreeWay();
-
- /**
- * Adds a listener to this team subscriber. Has no effect if an identical
- * listener is already registered.
- * <p>
- * Team resource change listeners are informed about state changes that
- * affect the resources supervised by this subscriber.
- * </p>
- *
- * @param listener
- * a team resource change listener
- */
- public void addListener(ITeamResourceChangeListener listener) {
- synchronized (listeners) {
- if (!listeners.contains(listener)) {
- listeners.add(listener);
- }
- }
- }
-
- /**
- * Removes a listener previously registered with this team subscriber. Has
- * no affect if an identical listener is not registered.
- *
- * @param listener
- * a team resource change listener
- */
- public void removeListener(ITeamResourceChangeListener listener) {
- synchronized (listeners) {
- listeners.remove(listener);
- }
- }
-
- /**
- * Return an array of all out-of-sync resources (getKind() != 0) that occur
- * under the given resources to the specified depth. The purpose of this
- * method is to provide subscribers a means of optimizing the determination
- * of all out-of-sync out-of-sync descendants of a set of resources.
- * <p>
- * A return value of an empty array indicates that there are no out-of-sync
- * resources supervised by the subscriber. A return of <code>null</code>
- * indicates that the subscriber does not support this operation in an
- * optimized fashion. In this case, the caller can determine the
- * out-of-sync resources by traversing the resource structure form the
- * roots of the subscriber (@see <code>getRoots()</code>).
- * </p>
- *
- * @param resources
- * @param depth
- * @param monitor
- * @return
- */
- public SyncInfo[] getAllOutOfSync(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException {
- return null;
- }
-
- /**
- * Fires a team resource change event to all registered listeners Only
- * listeners registered at the time this method is called are notified.
- * Listener notification makes use of an ISafeRunnable to ensure that
- * client exceptions do not effect the notification to other clients.
- */
- protected void fireTeamResourceChange(final TeamDelta[] deltas) {
- ITeamResourceChangeListener[] allListeners;
- // Copy the listener list so we're not calling client code while synchronized
- synchronized (listeners) {
- allListeners = (ITeamResourceChangeListener[]) listeners.toArray(new ITeamResourceChangeListener[listeners.size()]);
- }
- // Notify the listeners safely so all will receive notification
- for (int i = 0; i < allListeners.length; i++) {
- final ITeamResourceChangeListener listener = allListeners[i];
- Platform.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // don't log the exception....it is already being logged in
- // Platform#run
- }
- public void run() throws Exception {
- listener.teamResourceChanged(deltas);
- }
- });
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamSubscriberSyncInfoCollector.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamSubscriberSyncInfoCollector.java
deleted file mode 100644
index 481ee2c5f..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/TeamSubscriberSyncInfoCollector.java
+++ /dev/null
@@ -1,292 +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.team.core.subscribers;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.Assert;
-import org.eclipse.team.internal.core.Policy;
-import org.eclipse.team.internal.core.subscribers.SubscriberEventHandler;
-import org.eclipse.team.internal.core.subscribers.SyncSetInputFromSubscriber;
-
-/**
- * This collector maintains a {@link SyncInfoSet} for a particular team subscriber keeping
- * it up-to-date with both incoming changes and outgoing changes as they occur for
- * resources in the workspace. The collector can be configured to consider all the subscriber's
- * roots or only a subset.
- * <p>
- * The advantage of this collector is that it processes both resource and team
- * subscriber deltas in a background thread.
- * </p>
- * @since 3.0
- */
-public final class TeamSubscriberSyncInfoCollector implements IResourceChangeListener, ITeamResourceChangeListener {
-
- private SyncSetInputFromSubscriber set;
- private SubscriberEventHandler eventHandler;
- private TeamSubscriber subscriber;
- private IResource[] roots;
-
- /**
- * Create a collector on the subscriber that collects out-of-sync resources
- * for all roots of the subscriber.
- * @param subscriber the TeamSubscriber
- */
- public TeamSubscriberSyncInfoCollector(TeamSubscriber subscriber) {
- this(subscriber, null /* use the subscriber roots */);
- }
-
- /**
- * Create a collector that collects out-of-sync resources that are children of
- * the given roots. If the roots are <code>null</code>, then all out-of-sync resources
- * from the subscriber are collected. An empty array of roots will cause no resources
- * to be collected.
- * @param subscriber the TeamSubscriber
- * @param roots the roots of the out-of-sync resources to be collected
- */
- public TeamSubscriberSyncInfoCollector(TeamSubscriber subscriber, IResource[] roots) {
- this.roots = roots;
- this.subscriber = subscriber;
- Assert.isNotNull(subscriber);
- set = new SyncSetInputFromSubscriber(subscriber);
- eventHandler = new SubscriberEventHandler(set);
-
- ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
- subscriber.addListener(this);
- }
-
- /**
- * Return the set that provides access to the out-of-sync resources for the collector's
- * subscriber. The set will contain only those resources that are children of the roots
- * of the collector unless the roots of the colletor has been set to <code>null</code>
- * in which case all out-of-sync resources from the subscriber are collected.
- * @return a SyncInfoSet containing out-of-sync resources
- */
- public SyncInfoSet getSyncInfoSet() {
- return set.getSyncSet();
- }
-
- /**
- * This causes the calling thread to wait any background collection of out-of-sync resources
- * to stop before returning.
- * @param monitor a progress monitor
- */
- public void waitForCollector(IProgressMonitor monitor) {
- monitor.worked(1);
- // wait for the event handler to process changes.
- while(eventHandler.getEventHandlerJob().getState() != Job.NONE) {
- monitor.worked(1);
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- }
- }
- monitor.worked(1);
- }
-
- /**
- * Clears this collector's <code>SyncInfoSet</code> and causes it to be recreated from the
- * associated <code>TeamSubscriber</code>. The reset may occur in the background. If the
- * caller wishes to wait for the reset to complete, they should call \
- * {@link waitForCollector(IProgressMonitor)}.
- * @param monitor a progress monitor
- * @throws TeamException
- */
- public void reset(IProgressMonitor monitor) throws TeamException {
- monitor.beginTask(null, 100);
- set.reset(Policy.subMonitorFor(monitor, 100));
- // TODO: This is a problem
- eventHandler.initialize(getRoots());
- monitor.done();
- }
-
- /**
- * Returns the <code>TeamSubscriber</code> associated with this collector.
- *
- * @return the <code>TeamSubscriber</code> associated with this collector.
- */
- public TeamSubscriber getTeamSubscriber() {
- return subscriber;
- }
-
- /**
- * Disposes of the background job associated with this collector and deregisters
- * all it's listeners. This method must be called when the collector is no longer
- * referenced and could be garbage collected.
- */
- public void dispose() {
- eventHandler.shutdown();
-
- set.disconnect();
-
- getTeamSubscriber().removeListener(this);
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
- }
-
- /**
- * Process the resource delta and posts all necessary events to the background
- * event handler.
- *
- * @param delta the resource delta to analyse
- */
- private void processDelta(IResourceDelta delta) {
- IResource resource = delta.getResource();
- int kind = delta.getKind();
-
- if (resource.getType() == IResource.PROJECT) {
- // Handle a deleted project
- if (((kind & IResourceDelta.REMOVED) != 0)) {
- eventHandler.remove(resource);
- return;
- }
- // Handle a closed project
- if ((delta.getFlags() & IResourceDelta.OPEN) != 0 && !((IProject) resource).isOpen()) {
- eventHandler.remove(resource);
- return;
- }
- // Only interested in projects mapped to the provider
- if (!isAncestorOfRoot(resource)) {
- // If the project has any entries in the sync set, remove them
- if (getSyncInfoSet().hasMembers(resource)) {
- eventHandler.remove(resource);
- }
- return;
- }
- }
-
- boolean visitChildren = false;
- if (isDescendantOfRoot(resource)) {
- visitChildren = true;
- // If the resource has changed type, remove the old resource handle
- // and add the new one
- if ((delta.getFlags() & IResourceDelta.TYPE) != 0) {
- eventHandler.remove(resource);
- eventHandler.change(resource, IResource.DEPTH_INFINITE);
- }
-
- // Check the flags for changes the SyncSet cares about.
- // Notice we don't care about MARKERS currently.
- int changeFlags = delta.getFlags();
- if ((changeFlags & (IResourceDelta.OPEN | IResourceDelta.CONTENT)) != 0) {
- eventHandler.change(resource, IResource.DEPTH_ZERO);
- }
-
- // Check the kind and deal with those we care about
- if ((delta.getKind() & (IResourceDelta.REMOVED | IResourceDelta.ADDED)) != 0) {
- eventHandler.change(resource, IResource.DEPTH_ZERO);
- }
- }
-
- // Handle changed children
- if (visitChildren || isAncestorOfRoot(resource)) {
- IResourceDelta[] affectedChildren = delta.getAffectedChildren(IResourceDelta.CHANGED | IResourceDelta.REMOVED | IResourceDelta.ADDED);
- for (int i = 0; i < affectedChildren.length; i++) {
- processDelta(affectedChildren[i]);
- }
- }
- }
-
- private boolean isAncestorOfRoot(IResource parent) {
- // Always traverse into projects in case a root was removed
- if (parent.getType() == IResource.ROOT) return true;
- IResource[] roots = getRoots();
- for (int i = 0; i < roots.length; i++) {
- IResource resource = roots[i];
- if (parent.getFullPath().isPrefixOf(resource.getFullPath())) {
- return true;
- }
- }
- return false;
- }
-
- private boolean isDescendantOfRoot(IResource resource) {
- IResource[] roots = getRoots();
- for (int i = 0; i < roots.length; i++) {
- IResource root = roots[i];
- if (root.getFullPath().isPrefixOf(resource.getFullPath())) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Return the roots that are being considered by this collector.
- * By default, the collector is interested in the roots of its
- * subscriber. However, the set can be reduced using {@link setRoots(IResource)).
- * @return
- */
- public IResource[] getRoots() {
- if (roots == null) {
- return getTeamSubscriber().roots();
- } else {
- return roots;
- }
- }
-
- /*
- * Returns whether the collector is configured to collect for
- * all roots of the subscriber or not
- * @return <code>true</code> if the collector is considering all
- * roots of the subscriber and <code>false</code> otherwise
- */
- private boolean isAllRootsIncluded() {
- return roots == null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- processDelta(event.getDelta());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.team.core.sync.ITeamResourceChangeListener#teamResourceChanged(org.eclipse.team.core.sync.TeamDelta[])
- */
- public void teamResourceChanged(TeamDelta[] deltas) {
- for (int i = 0; i < deltas.length; i++) {
- switch (deltas[i].getFlags()) {
- case TeamDelta.SYNC_CHANGED :
- if (isAllRootsIncluded() || isDescendantOfRoot(deltas[i].getResource())) {
- eventHandler.change(deltas[i].getResource(), IResource.DEPTH_ZERO);
- }
- break;
- case TeamDelta.ROOT_REMOVED :
- eventHandler.remove(deltas[i].getResource());
- break;
- case TeamDelta.ROOT_ADDED :
- if (isAllRootsIncluded() || isDescendantOfRoot(deltas[i].getResource())) {
- eventHandler.change(deltas[i].getResource(), IResource.DEPTH_INFINITE);
- }
- break;
- }
- }
- }
-
- /**
- * Set the roots that are to be considered by the collector. The provided
- * resources should be either a subset of the roots of the collector's subscriber
- * of children of those roots. Other resources can be provided but will be ignored.
- * Setting the roots to <code>null</code> will cause the roots of the subscriber
- * to be used
- * @param roots The roots to be considered or <code>null</code>.
- */
- public void setRoots(IResource[] roots) {
- this.roots = roots;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/DescendantSynchronizationCache.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/DescendantSynchronizationCache.java
deleted file mode 100644
index e71317f68..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/DescendantSynchronizationCache.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers.utils;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.TeamException;
-
-/**
- * A descendant sychronization cache stores the remote synchronization bytes.
- * It does so in an optimal way by storing the bytes only for those resources
- * whose remote differ from the base bytes stored in the base synchronization cache.
- */
-public abstract class DescendantSynchronizationCache extends SynchronizationCache {
- SynchronizationCache baseCache, remoteCache;
-
- public DescendantSynchronizationCache(SynchronizationCache baseCache, SynchronizationCache remoteCache) {
- this.baseCache = baseCache;
- this.remoteCache = remoteCache;
- }
-
- /**
- * This method will dispose the remote cache but not the base cache.
- *
- * @see org.eclipse.team.core.subscribers.helpers.SynchronizationCache#dispose()
- */
- public void dispose() {
- remoteCache.dispose();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.AbstractSynchronizationCache#getSyncBytes(org.eclipse.core.resources.IResource)
- */
- public byte[] getSyncBytes(IResource resource) throws TeamException {
- byte[] remoteBytes = remoteCache.getSyncBytes(resource);
- byte[] baseBytes = baseCache.getSyncBytes(resource);
- if (baseBytes == null) {
- // There is no base so use the remote bytes
- return remoteBytes;
- }
- if (remoteBytes == null) {
- if (isRemoteKnown(resource)) {
- // The remote is known to not exist
- // TODO: The check for NO_REMOTE does not take into consideration the line-of-descent
- return remoteBytes;
- } else {
- // The remote was either never queried or was the same as the base.
- // In either of these cases, the base bytes are used.
- return baseBytes;
- }
- }
- if (isDescendant(resource, baseBytes, remoteBytes)) {
- // Only use the remote bytes if they are later on the same line-of-descent as the base
- return remoteBytes;
- }
- // Use the base sbytes since the remote bytes must be stale (i.e. are
- // not on the same line-of-descent
- return baseBytes;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.AbstractSynchronizationCache#setSyncBytes(org.eclipse.core.resources.IResource, byte[])
- */
- public boolean setSyncBytes(IResource resource, byte[] bytes) throws TeamException {
- byte[] baseBytes = baseCache.getSyncBytes(resource);
- if (baseBytes != null && equals(baseBytes, bytes)) {
- // Remove the existing bytes so the base will be used (thus saving space)
- return remoteCache.removeSyncBytes(resource, IResource.DEPTH_ZERO);
- } else {
- return remoteCache.setSyncBytes(resource, bytes);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.AbstractSynchronizationCache#removeSyncBytes(org.eclipse.core.resources.IResource, int)
- */
- public boolean removeSyncBytes(IResource resource, int depth) throws TeamException {
- return remoteCache.removeSyncBytes(resource, depth);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.AbstractSynchronizationCache#isRemoteKnown(org.eclipse.core.resources.IResource)
- */
- public boolean isRemoteKnown(IResource resource) throws TeamException {
- return remoteCache.isRemoteKnown(resource);
- }
-
- /**
- * This method indicates whether the remote bytes are a later revision or version
- * on the same line-of-descent as the base. A line of descent may be a branch or a fork
- * (depending on the terminology used by the versioing server).
- * @param resource the local resource
- * @param baseBytes the base bytes for the local resoource
- * @param remoteBytes the remote bytes for the local resoource
- * @return whether the remote bytes are later on the same line-of-descent as the base bytes
- */
- protected abstract boolean isDescendant(IResource resource, byte[] baseBytes, byte[] remoteBytes) throws TeamException;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.AbstractSynchronizationCache#setRemoteDoesNotExist(org.eclipse.core.resources.IResource)
- */
- public boolean setRemoteDoesNotExist(IResource resource) throws TeamException {
- return remoteCache.setRemoteDoesNotExist(resource);
- }
-
- /**
- * @return Returns the baseCache.
- */
- protected SynchronizationCache getBaseCache() {
- return baseCache;
- }
-
- /**
- * @return Returns the remoteCache.
- */
- protected SynchronizationCache getRemoteCache() {
- return remoteCache;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#members(org.eclipse.core.resources.IResource)
- */
- public IResource[] members(IResource resource) throws TeamException {
- return getRemoteCache().members(resource);
- }
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SessionSynchronizationCache.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SessionSynchronizationCache.java
deleted file mode 100644
index fd70b7e71..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SessionSynchronizationCache.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.team.core.subscribers.utils;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.Assert;
-
-/**
- * This cache keeps the sync butes in memory and does not persist them
- * over workbench invocations.
- */
-public class SessionSynchronizationCache extends SynchronizationCache {
-
- private static final byte[] NO_REMOTE = new byte[0];
-
- private Map syncBytesCache = new HashMap();
- private Map membersCache = new HashMap();
-
- private Map getSyncBytesCache() {
- return syncBytesCache;
- }
-
- private byte[] internalGetSyncBytes(IResource resource) {
- return (byte[])getSyncBytesCache().get(resource);
- }
-
- private void internalAddToParent(IResource resource) {
- IContainer parent = resource.getParent();
- if (parent == null) return;
- List members = (List)membersCache.get(parent);
- if (members == null) {
- members = new ArrayList();
- membersCache.put(parent, members);
- }
- members.add(resource);
- }
-
- private void internalSetSyncInfo(IResource resource, byte[] bytes) {
- getSyncBytesCache().put(resource, bytes);
- internalAddToParent(resource);
- }
-
- private void internalRemoveFromParent(IResource resource) {
- IContainer parent = resource.getParent();
- List members = (List)membersCache.get(parent);
- if (members != null) {
- members.remove(resource);
- if (members.isEmpty()) {
- membersCache.remove(parent);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#dispose()
- */
- public void dispose() {
- syncBytesCache.clear();
- membersCache.clear();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#getSyncBytes(org.eclipse.core.resources.IResource)
- */
- public byte[] getSyncBytes(IResource resource) throws TeamException {
- byte[] syncBytes = internalGetSyncBytes(resource);
- if (syncBytes != null && equals(syncBytes, NO_REMOTE)) {
- // If it is known that there is no remote, return null
- return null;
- }
- return syncBytes;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#setSyncBytes(org.eclipse.core.resources.IResource, byte[])
- */
- public boolean setSyncBytes(IResource resource, byte[] bytes) throws TeamException {
- Assert.isNotNull(bytes);
- byte[] oldBytes = internalGetSyncBytes(resource);
- if (oldBytes != null && equals(oldBytes, bytes)) return false;
- internalSetSyncInfo(resource, bytes);
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#removeSyncBytes(org.eclipse.core.resources.IResource, int)
- */
- public boolean removeSyncBytes(IResource resource, int depth) throws TeamException {
- if (getSyncBytesCache().containsKey(resource)) {
- if (depth != IResource.DEPTH_ZERO) {
- IResource[] members = members(resource);
- for (int i = 0; i < members.length; i++) {
- IResource child = members[i];
- removeSyncBytes(child, (depth == IResource.DEPTH_INFINITE) ? IResource.DEPTH_INFINITE: IResource.DEPTH_ZERO);
- }
- }
- getSyncBytesCache().remove(resource);
- internalRemoveFromParent(resource);
- return true;
- }
- return false;
- }
-
- /**
- * Return the children of the given resource that have sync bytes in this cache.
- * @param resource the parent resource
- * @return the memebrs who have sync bytes in this cache
- */
- public IResource[] members(IResource resource) {
- List members = (List)membersCache.get(resource);
- if (members == null) {
- return new IResource[0];
- }
- return (IResource[]) members.toArray(new IResource[members.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#isRemoteKnown(org.eclipse.core.resources.IResource)
- */
- public boolean isRemoteKnown(IResource resource) throws TeamException {
- return internalGetSyncBytes(resource) != null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#setRemoteDoesNotExist(org.eclipse.core.resources.IResource)
- */
- public boolean setRemoteDoesNotExist(IResource resource) throws TeamException {
- return setSyncBytes(resource, NO_REMOTE);
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SyncTreeSubscriber.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SyncTreeSubscriber.java
deleted file mode 100644
index 400927599..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SyncTreeSubscriber.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.core.subscribers.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-
-/**
- * A specialization of TeamSubscriber that provides some additional logic for creating
- * <code>SyncInfo</code> from <code>ISubscriberResource</code> instances.
- * The <code>members()</code> also assumes that remote
- * instances are stored in the <code>ISynchronizer</code>.
- */
-public abstract class SyncTreeSubscriber extends TeamSubscriber {
-
- public abstract ISubscriberResource getRemoteResource(IResource resource) throws TeamException;
-
- public abstract ISubscriberResource getBaseResource(IResource resource) throws TeamException;
-
- /**
- * Return whether the given local resource has a corresponding remote resource
- * @param resource the local resource
- * @return <code>true</code> if the locla resource has a corresponding remote
- */
- protected abstract boolean hasRemote(IResource resource) throws TeamException;
-
- public SyncInfo getSyncInfo(IResource resource) throws TeamException {
- if (!isSupervised(resource)) return null;
- ISubscriberResource remoteResource = getRemoteResource(resource);
- ISubscriberResource baseResource;
- if (isThreeWay()) {
- baseResource= getBaseResource(resource);
- } else {
- baseResource = null;
- }
- return getSyncInfo(resource, baseResource, remoteResource);
- }
-
- /**
- * Method that creates an instance of SyncInfo for the provider local, base and remote.
- * Can be overiden by subclasses.
- * @param local
- * @param base
- * @param remote
- * @param monitor
- * @return
- */
- protected SyncInfo getSyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote) throws TeamException {
- return new SyncInfo(local, base, remote, this);
- }
-
- public IResource[] members(IResource resource) throws TeamException {
- if(resource.getType() == IResource.FILE) {
- return new IResource[0];
- }
- try {
- // Filter and return only phantoms associated with the remote synchronizer.
- IResource[] members;
- try {
- members = ((IContainer)resource).members(true /* include phantoms */);
- } catch (CoreException e) {
- if (!isSupervised(resource) || e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND) {
- // The resource is no longer supervised or doesn't exist in any form
- // so ignore the exception and return that there are no members
- return new IResource[0];
- }
- throw e;
- }
- List filteredMembers = new ArrayList(members.length);
- for (int i = 0; i < members.length; i++) {
- IResource member = members[i];
-
- // TODO: consider that there may be several sync states on this resource. There
- // should instead be a method to check for the existance of a set of sync types on
- // a resource.
- if(member.isPhantom() && !hasRemote(member)) {
- continue;
- }
-
- // TODO: Is this a valid use of isSupervised
- if (isSupervised(resource)) {
- filteredMembers.add(member);
- }
- }
- return (IResource[]) filteredMembers.toArray(new IResource[filteredMembers.size()]);
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationCache.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationCache.java
deleted file mode 100644
index 9e6867853..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationCache.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers.utils;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.TeamException;
-
-/**
- * This class defines the API for a synchronization bytes cache. Synchronization
- * bytes are associated with a local resource handle.
- * It also has API that differentiates the case of no existing remote for
- * a local resource from that of the remote state never having been queried
- * for that local resource.
- */
-public abstract class SynchronizationCache {
-
- /**
- * Dispose of any cached sync bytes when this cache is no longer needed.
- */
- public abstract void dispose();
-
- /**
- * Return the remote sync bytes cached for the given local resource.
- * A return value of <code>null</code> can mean either that the
- * remote has never been fetched or that it doesn't exist. The method
- * <code>isRemoteKnown(IResource)</code> should be used to differentiate
- * these two cases.
- * @param resource the local resource
- * @return the synchronization bytes for a corresponding remote resource
- * @throws TeamException
- */
- public abstract byte[] getSyncBytes(IResource resource) throws TeamException;
-
- /**
- * Set the remote sync bytes for the given resource. The bytes should never be
- * <code>null</code>. If it is known that the remote does not exist,
- * <code>setRemoteDoesNotExist(IResource)</code> should be invoked. If the sync
- * bytes for the remote are stale and should be removed, <code>removeSyncBytes()</code>
- * should be called.
- * @param resource the local resource
- * @param bytes the synchronization bytes for a corresponding remote resource
- * @return <code>true</code> if the sync bytes changed
- * @throws TeamException
- */
- public abstract boolean setSyncBytes(IResource resource, byte[] bytes) throws TeamException;
-
- /**
- * Remove the remote bytes cached for the given local resource. After this
- * operation <code>isRemoteKnown(resource)</code> will return <code>false</code>
- * and <code>getSyncBytes(resource)</code> will return <code>null</code> for the
- * resource (and potentially it's children depending on the value of the depth parameter.
- * @param resource the local resource
- * @parem depth the depth of the operation (@see IResource)
- * @return <code>true</code> if there were bytes present which were removed
- * @throws TeamException
- */
- public abstract boolean removeSyncBytes(IResource resource, int depth) throws TeamException;
-
- /**
- * Return true if the remote resources associated with the given local
- * resource has been fetched. This method is useful for those cases when
- * there are no sync bytes for a remote resource and the client wants to
- * know if this means that the remote does exist (i.e. this method returns
- * <code>true</code>) or the remote has not been fetched (i.e. this method returns
- * <code>false</code>).
- * @param resource the local resource
- * @throws TeamException
- */
- public abstract boolean isRemoteKnown(IResource resource) throws TeamException;
-
- /**
- * This method should be invoked by a client to indicate that it is known that
- * there is no remote resource associated with the local resource. After this method
- * is invoked, <code>isRemoteKnown(resource)</code> will return <code>true</code> and
- * <code>getSyncBytes(resource)</code> will return <code>null</code>.
- * @param resource the local resource
- * @return <code>true</code> if this changes the remote sync bytes
- */
- public abstract boolean setRemoteDoesNotExist(IResource resource) throws TeamException;
-
- /**
- * Return the children of the given resource that have sync bytes in this cache.
- * @param resource the parent resource
- * @return the memebrs who have sync bytes in this cache
- */
- public abstract IResource[] members(IResource resource) throws TeamException;
-
- /**
- * Helper method to compare two byte arrays for equality
- * @param syncBytes1 the first byte array
- * @param syncBytes2 the second byte array
- * @return whetehr the two arrays are equal (i.e. same content)
- */
- protected boolean equals(byte[] syncBytes1, byte[] syncBytes2) {
- if (syncBytes1 == null) {
- return syncBytes2 == null;
- } else if (syncBytes2 == null) {
- return false;
- }
- if (syncBytes1.length != syncBytes2.length) return false;
- for (int i = 0; i < syncBytes1.length; i++) {
- if (syncBytes1[i] != syncBytes2[i]) return false;
- }
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationCacheRefreshOperation.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationCacheRefreshOperation.java
deleted file mode 100644
index 9245012ef..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationCacheRefreshOperation.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.core.subscribers.utils;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.ISubscriberResource;
-import org.eclipse.team.internal.core.Assert;
-import org.eclipse.team.internal.core.Policy;
-
-/**
- * This abstract superclass provides the logic for refreshing the synchronization bytes for
- * remote resources that correspond to local resources. This class provides the logic to traverse
- * the local and remote resource trees in order to cache the remote synchronization bytes in
- * a <code>SynchronizationCache</code>. It also accumulates and returns all local resources
- * for which the corresponding remote has changed.
- */
-public abstract class SynchronizationCacheRefreshOperation {
-
- protected abstract SynchronizationCache getSynchronizationCache();
-
- public IResource[] refresh(IResource[] resources, int depth, boolean cacheFileContentsHint, IProgressMonitor monitor) throws TeamException {
- List changedResources = new ArrayList();
- monitor.beginTask(null, 100 * resources.length);
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- IResource[] changed = refresh(resource, depth, cacheFileContentsHint, Policy.subMonitorFor(monitor, 100));
- changedResources.addAll(Arrays.asList(changed));
- }
- monitor.done();
- if (changedResources == null) return new IResource[0];
- return (IResource[]) changedResources.toArray(new IResource[changedResources.size()]);
- }
-
- protected IResource[] refresh(IResource resource, int depth, boolean cacheFileContentsHint, IProgressMonitor monitor) throws TeamException {
- IResource[] changedResources = null;
- monitor.beginTask(null, 100);
- ISchedulingRule rule = resource.getProject();
- try {
- // Get a scheduling rule on the project since CVS may obtain a lock higher then
- // the resource itself.
- Platform.getJobManager().beginRule(rule, monitor);
- if (!resource.getProject().isAccessible()) {
- // The project is closed so silently skip it
- return new IResource[0];
- }
-
- monitor.setTaskName(Policy.bind("SynchronizationCacheRefreshOperation.0", resource.getFullPath().makeRelative().toString())); //$NON-NLS-1$
-
- // build the remote tree only if an initial tree hasn't been provided
- ISubscriberResource tree = getRemoteTree(resource, depth, cacheFileContentsHint, Policy.subMonitorFor(monitor, 70));
-
- // update the known remote handles
- IProgressMonitor sub = Policy.infiniteSubMonitorFor(monitor, 30);
- try {
- sub.beginTask(null, 64);
- changedResources = collectChanges(resource, tree, depth, sub);
- } finally {
- sub.done();
- }
- } finally {
- Platform.getJobManager().endRule(rule);
- monitor.done();
- }
- if (changedResources == null) return new IResource[0];
- return changedResources;
- }
-
- public IResource[] collectChanges(IResource local, ISubscriberResource remote, int depth, IProgressMonitor monitor) throws TeamException {
- List changedResources = new ArrayList();
- collectChanges(local, remote, changedResources, depth, monitor);
- return (IResource[]) changedResources.toArray(new IResource[changedResources.size()]);
- }
-
- protected void collectChanges(IResource local, ISubscriberResource remote, Collection changedResources, int depth, IProgressMonitor monitor) throws TeamException {
- SynchronizationCache cache = getSynchronizationCache();
- byte[] newRemoteBytes = getRemoteSyncBytes(local, remote);
- boolean changed;
- if (newRemoteBytes == null) {
- changed = cache.setRemoteDoesNotExist(local);
- } else {
- changed = cache.setSyncBytes(local, newRemoteBytes);
- }
- if (changed) {
- changedResources.add(local);
- }
- if (depth == IResource.DEPTH_ZERO) return;
- Map children = mergedMembers(local, remote, monitor);
- for (Iterator it = children.keySet().iterator(); it.hasNext();) {
- IResource localChild = (IResource) it.next();
- ISubscriberResource remoteChild = (ISubscriberResource)children.get(localChild);
- collectChanges(localChild, remoteChild, changedResources,
- depth == IResource.DEPTH_INFINITE ? IResource.DEPTH_INFINITE : IResource.DEPTH_ZERO,
- monitor);
- }
-
- // Look for resources that have sync bytes but are not in the resources we care about
- IResource[] resources = getChildrenWithSyncBytes(local);
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (!children.containsKey(resource)) {
- // These sync bytes are stale. Purge them
- cache.removeSyncBytes(resource, IResource.DEPTH_INFINITE);
- changedResources.add(resource);
- }
- }
- }
-
- /**
- * Return all the children of the local resource, including phantoms, that have synchronozation bytes
- * associated with them in the synchronization cache of this operation.
- * @param local the local resource
- * @return all children that have sychronization bytes.
- * @throws TeamException
- */
- protected IResource[] getChildrenWithSyncBytes(IResource local) throws TeamException {
- try {
- if (local.getType() != IResource.FILE && (local.exists() || local.isPhantom())) {
- IResource[] allChildren = ((IContainer)local).members(true /* include phantoms */);
- List childrenWithSyncBytes = new ArrayList();
- for (int i = 0; i < allChildren.length; i++) {
- IResource resource = allChildren[i];
- if (getSynchronizationCache().getSyncBytes(resource) != null) {
- childrenWithSyncBytes.add(resource);
- }
- }
- return (IResource[]) childrenWithSyncBytes.toArray(
- new IResource[childrenWithSyncBytes.size()]);
- }
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- return new IResource[0];
- }
-
- protected Map mergedMembers(IResource local, ISubscriberResource remote, IProgressMonitor progress) throws TeamException {
-
- // {IResource -> IRemoteResource}
- Map mergedResources = new HashMap();
-
- ISubscriberResource[] remoteChildren;
- if (remote == null) {
- remoteChildren = new ISubscriberResource[0];
- } else {
- remoteChildren = getRemoteChildren(remote, progress);
- }
-
-
- IResource[] localChildren = getLocalChildren(local);
-
- if (remoteChildren.length > 0 || localChildren.length > 0) {
- Set allSet = new HashSet(20);
- Map localSet = null;
- Map remoteSet = null;
-
- if (localChildren.length > 0) {
- localSet = new HashMap(10);
- for (int i = 0; i < localChildren.length; i++) {
- IResource localChild = localChildren[i];
- String name = localChild.getName();
- localSet.put(name, localChild);
- allSet.add(name);
- }
- }
-
- if (remoteChildren.length > 0) {
- remoteSet = new HashMap(10);
- for (int i = 0; i < remoteChildren.length; i++) {
- ISubscriberResource remoteChild = remoteChildren[i];
- String name = remoteChild.getName();
- remoteSet.put(name, remoteChild);
- allSet.add(name);
- }
- }
-
- Iterator e = allSet.iterator();
- while (e.hasNext()) {
- String keyChildName = (String) e.next();
-
- if (progress != null) {
- if (progress.isCanceled()) {
- throw new OperationCanceledException();
- }
- // XXX show some progress?
- }
-
- IResource localChild =
- localSet != null ? (IResource) localSet.get(keyChildName) : null;
-
- ISubscriberResource remoteChild =
- remoteSet != null ? (ISubscriberResource) remoteSet.get(keyChildName) : null;
-
- if (localChild == null) {
- // there has to be a remote resource available if we got this far
- Assert.isTrue(remoteChild != null);
- boolean isContainer = remoteChild.isContainer();
- localChild = getResourceChild(local /* parent */, keyChildName, isContainer);
- }
- mergedResources.put(localChild, remoteChild);
- }
- }
- return mergedResources;
- }
-
- /**
- * Get the remote sync bytes from the given remote resource handle.
- * @param local the local resource
- * @param remote the corresponding remote resource
- * @return the synchronization bytes for the remote resource.
- */
- protected abstract byte[] getRemoteSyncBytes(IResource local, ISubscriberResource remote) throws TeamException;
-
- /**
- * Get the remote children of the given remote resource handle.
- * @param remote the remote resource
- * @param progress a progress monitor
- * @return an array of the children of the renmote resource.
- */
- protected abstract ISubscriberResource[] getRemoteChildren(ISubscriberResource remote, IProgressMonitor progress) throws TeamException;
-
- /**
- * Get the local children that are of interest to the subscriber for the given local resource.
- * @param parent the local resource
- * @return the children of the local resource
- */
- protected abstract IResource[] getLocalChildren(IResource parent) throws TeamException;
-
- /**
- * Get the root of the remote tree corresponding to the given resource. This method may build the tree
- * or may just return the root, in which the remote tree will be built during the collectChanges phase.
- * @param resource the local resource
- * @param depth the depth of the refresh
- * @param cacheFileContentsHint a hint that indicates that remote contents may be needed
- * when comparing local and remote resources.
- * @param monitor a progress monitor
- * @return the remote resource corresponding to the given local resource
- */
- protected abstract ISubscriberResource getRemoteTree(IResource resource, int depth, boolean cacheFileContentsHint, IProgressMonitor monitor) throws TeamException;
-
- /**
- * Create a corresponding local resource handle for a remote resource that does not yet have a
- * corresponding local resource taht exists.
- * @param parent the local parent
- * @param childName the name of the local resource
- * @param isContainer the type of resource (file or folder)
- * @return a local resource handle
- */
- protected IResource getResourceChild(IResource parent, String childName, boolean isContainer) {
- if (parent.getType() == IResource.FILE) {
- return null;
- }
- if (isContainer) {
- return ((IContainer) parent).getFolder(new Path(childName));
- } else {
- return ((IContainer) parent).getFile(new Path(childName));
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationSyncBytesCache.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationSyncBytesCache.java
deleted file mode 100644
index 69f3fe066..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/utils/SynchronizationSyncBytesCache.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.Assert;
-
-/**
- * This class provides a concrete synchronization cache that uses the
- * <code>org.eclipse.core.resources.ISynchronizer</code>.
- */
-public class SynchronizationSyncBytesCache extends SynchronizationCache {
-
- private static final byte[] NO_REMOTE = new byte[0];
-
- protected QualifiedName syncName;
-
- public SynchronizationSyncBytesCache(QualifiedName name) {
- syncName = name;
- getSynchronizer().add(syncName);
- }
-
- public void dispose() {
- getSynchronizer().remove(getSyncName());
- }
-
- protected ISynchronizer getSynchronizer() {
- return ResourcesPlugin.getWorkspace().getSynchronizer();
- }
-
- public QualifiedName getSyncName() {
- return syncName;
- }
-
- public byte[] getSyncBytes(IResource resource) throws TeamException {
- byte[] syncBytes = internalGetSyncBytes(resource);
- if (syncBytes != null && equals(syncBytes, NO_REMOTE)) {
- // If it is known that there is no remote, return null
- return null;
- }
- return syncBytes;
- }
-
- private byte[] internalGetSyncBytes(IResource resource) throws TeamException {
- try {
- return getSynchronizer().getSyncInfo(getSyncName(), resource);
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
-
- public boolean setSyncBytes(IResource resource, byte[] bytes) throws TeamException {
- Assert.isNotNull(bytes);
- byte[] oldBytes = internalGetSyncBytes(resource);
- if (oldBytes != null && equals(oldBytes, bytes)) return false;
- try {
- getSynchronizer().setSyncInfo(getSyncName(), resource, bytes);
- return true;
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
-
- public boolean removeSyncBytes(IResource resource, int depth) throws TeamException {
- if (resource.exists() || resource.isPhantom()) {
- try {
- if (depth != IResource.DEPTH_ZERO || internalGetSyncBytes(resource) != null) {
- getSynchronizer().flushSyncInfo(getSyncName(), resource, depth);
- return true;
- }
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
- return false;
- }
-
- public boolean isRemoteKnown(IResource resource) throws TeamException {
- return internalGetSyncBytes(resource) != null;
- }
-
- /**
- * This method should be invoked by a client to indicate that it is known that
- * there is no remote resource associated with the local resource. After this method
- * is invoked, <code>isRemoteKnown(resource)</code> will return <code>true</code> and
- * <code>getSyncBytes(resource)</code> will return <code>null</code>.
- * @return <code>true</code> if this changes the remote sync bytes
- */
- public boolean setRemoteDoesNotExist(IResource resource) throws TeamException {
- return setSyncBytes(resource, NO_REMOTE);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#members(org.eclipse.core.resources.IResource)
- */
- public IResource[] members(IResource resource) throws TeamException {
- if(resource.getType() == IResource.FILE) {
- return new IResource[0];
- }
- try {
- // Filter and return only resources that have sync bytes in the cache.
- IResource[] members = ((IContainer)resource).members(true /* include phantoms */);
- List filteredMembers = new ArrayList(members.length);
- for (int i = 0; i < members.length; i++) {
- IResource member = members[i];
- if(getSyncBytes(member) != null) {
- filteredMembers.add(member);
- }
- }
- return (IResource[]) filteredMembers.toArray(new IResource[filteredMembers.size()]);
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/ILocalSyncElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/ILocalSyncElement.java
deleted file mode 100644
index 29c63a64b..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/ILocalSyncElement.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.sync;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-
-/**
- * <b>Note:</b> This class/interface is part of an interim API that is still under
- * development and expected to change significantly before reaching stability.
- * It is being made available at this early stage to solicit feedback from pioneering
- * adopters on the understanding that any code that uses this API will almost
- * certainly be broken (repeatedly) as the API evolves.
- *
- * A <code>ILocalSyncElement</code> describes the relative synchronization of a <b>local</b>
- * resource using a <b>base</b> resource for comparison.
- * <p>
- * Differences between the base and local resources are classified as <b>outgoing changes</b>;
- * if there is a difference, the local resource is considered the <b>outgoing resource</b>. </p>
- *
- * @see IRemoteSyncElement
- *
- * @since 2.0
- */
-public interface ILocalSyncElement {
-
- /*====================================================================
- * Constants defining synchronization types:
- *====================================================================*/
-
- /**
- * Sync constant (value 0) indicating element is in sync.
- */
- public static final int IN_SYNC = 0;
-
- /**
- * Sync constant (value 1) indicating that one side was added.
- */
- public static final int ADDITION = 1;
-
- /**
- * Sync constant (value 2) indicating that one side was deleted.
- */
- public static final int DELETION = 2;
-
- /**
- * Sync constant (value 3) indicating that one side was changed.
- */
- public static final int CHANGE = 3;
-
- /**
- * Bit mask for extracting the change type.
- */
- public static final int CHANGE_MASK = CHANGE;
-
- /*====================================================================
- * Constants defining synchronization direction:
- *====================================================================*/
-
- /**
- * Sync constant (value 4) indicating a change to the local resource.
- */
- public static final int OUTGOING = 4;
-
- /**
- * Sync constant (value 8) indicating a change to the remote resource.
- */
- public static final int INCOMING = 8;
-
- /**
- * Sync constant (value 12) indicating a change to both the remote and local resources.
- */
- public static final int CONFLICTING = 12;
-
- /**
- * Bit mask for extracting the synchronization direction.
- */
- public static final int DIRECTION_MASK = CONFLICTING;
-
- /*====================================================================
- * Constants defining synchronization conflict types:
- *====================================================================*/
-
- /**
- * Sync constant (value 16) indication that both the local and remote resources have changed
- * relative to the base but their contents are the same.
- */
- public static final int PSEUDO_CONFLICT = 16;
-
- /**
- * Sync constant (value 32) indicating that both the local and remote resources have changed
- * relative to the base but their content changes do not conflict (e.g. source file changes on different
- * lines). These conflicts could be merged automatically.
- */
- public static final int AUTOMERGE_CONFLICT = 32;
-
- /**
- * Sync constant (value 64) indicating that both the local and remote resources have changed relative
- * to the base and their content changes conflict (e.g. local and remote resource have changes on
- * same lines). These conflicts can only be correctly resolved by the user.
- */
- public static final int MANUAL_CONFLICT = 64;
-
- /*====================================================================
- * Constants defining synchronization granularity:
- *====================================================================*/
-
- /**
- * Constant (value 1) to only consider timestamp comparisons (e.g. isDirty) when
- * calculating the synchronization kind. This is the faster sync compare option but it can result in false
- * conflicts.
- */
- public static final int GRANULARITY_TIMESTAMP = 1;
-
- /**
- * Constant (value 2) indicating to consider file contents when calculating the synchronization kind. This
- * synchronization mode will perform a content comparison only after timestamp operations (isDirty)
- * indicate a change. This mode allows conflicts types to be correctly identified.
- */
- public static final int GRANULARITY_CONTENTS = 2;
-
- /**
- * Constant (value 4) indicating to consider file contents (potentially ignoring whitespace)
- * when calculating the synchronization kind. This synchronization mode will perform a content
- * comparison only after timestamp operations (isDirty) indicate a change.
- * This mode allows conflicts types to be correctly identified.
- */
- public static final int GRANULARITY_CONTENTS_IGNORE_WHITESPACE = 4;
-
- /**
- * Answer a string that describes the simple name of the sync node, which is suitable
- * for display to a user. The name will be used in UI operations, so it is expected that
- * implementations will cache this value.
- *
- * @return String the simple name that identifies the resource within its parent container.
- */
- public String getName();
-
- /**
- * Answer if the sync node is a container and may have children.
- *
- * @return boolean <code>true</code> if the remote resource is a container, and <code>
- * false</code> if it is not.
- */
- public boolean isContainer();
-
- /**
- * Answers the local sync element of this node. Returns a non-existing local
- * resource handle if the local resource does not exist in the workspace.
- *
- * @return IResource the local resource handle in this node. There should always be a local
- * resource available, however the resource may not exist.
- */
- public IResource getLocal();
-
- /**
- * Answers the base sync element of this node. Returns <code>null</code>
- * if there is no base (e.g. conflicting add).
- *
- * @return IRemoteResource the base resource in this node, or <code>null</code> is there
- * is none.
- */
- public IRemoteResource getBase();
-
- /**
- * Answers and array of <code>ILocalSyncElement</code> elements that are immediate
- * children of this sync element, in no particular order. The returned sync nodes are
- * a combination of the nodes represented by the sync element (e.g. local, base, remote).
- *
- * @param monitor a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- *
- * @return ILocalSyncElement[] array of immediate children of this sync node.
- *
- * @throws TeamException
- */
- public ILocalSyncElement[] members(IProgressMonitor monitor) throws TeamException;
-
- /**
- * Performs a synchronization calculation on the given element based on the local and base
- * resources. Returns an integer describing the synchronization state of this element.
- *
- * @param granularity the granularity at which the elements of this sync element
- * should be compared. On of <code>GRANULARITY_TIMESTAMP</code>, or
- * <code>GRANULARITY_CONTENTS</code>.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- *
- * @return int an integer describing the synchronization state of this element.
- */
- public int getSyncKind(int granularity, IProgressMonitor progress);
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteResource.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteResource.java
deleted file mode 100644
index 5bd09c677..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteResource.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.sync;
-
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-
-/**
- * <b>Note:</b> This class/interface is part of an interim API that is still under
- * development and expected to change significantly before reaching stability.
- * It is being made available at this early stage to solicit feedback from pioneering
- * adopters on the understanding that any code that uses this API will almost
- * certainly be broken (repeatedly) as the API evolves.
- *
- * Interface for resources that are not local.
- *
- * @since 2.0
- */
-public interface IRemoteResource extends IAdaptable {
-
- /**
- * Answers a string that describes the name of the remote resource. The name may be
- * displayed to the user.
- *
- * @return name of the remote resource.
- */
- public String getName();
-
- /**
- * Answers and array of <code>IRemoteResource</code> elements that are immediate
- * children of this remote resource, in no particular order.
- *
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- *
- * @return array of immediate children of this remote resource.
- */
- public IRemoteResource[] members(IProgressMonitor progress) throws TeamException;
-
- /**
- * Returns a stream over the contents of this remote element.
- *
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- */
- public InputStream getContents(IProgressMonitor progress) throws TeamException;
-
- /**
- * Answers if the remote element may have children.
- *
- * @return <code>true</code> if the remote element may have children and
- * <code>false</code> otherwise.
- */
- public boolean isContainer();
-
- public String getComment() throws TeamException;
-
- public String getContentIdentifier() throws TeamException;
-
- public String getCreatorDisplayName() throws TeamException;
-
- /**
- * Returns an IStorage that contains (or provides access to) the buffered
- * contents of the remote resource. Returns <code>null</code> if the remote
- * resource does not have contents (i.e. is not a file).
- *
- * @param monitor
- * @return
- * @throws TeamException
- */
- public IStorage getBufferedStorage(IProgressMonitor monitor) throws TeamException;
-}
-
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteSyncElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteSyncElement.java
deleted file mode 100644
index 03e8ad866..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteSyncElement.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.core.sync;
-
-
-/**
- * <b>Note:</b> This class/interface is part of an interim API that is still under
- * development and expected to change significantly before reaching stability.
- * It is being made available at this early stage to solicit feedback from pioneering
- * adopters on the understanding that any code that uses this API will almost
- * certainly be broken (repeatedly) as the API evolves.
- *
- * A <code>IRemoteSyncElement</code> describes the relative synchronization of a <b>local</b>
- * and <b>remote</b> resource using a <b>base</b> resource for comparison.
- * <p>
- * Differences between the base and remote resources are classified as <b>incoming changes</b>;
- * if there is a difference, the remote resource is considered the <b>incoming resource</b>. </p>
- *
- * @see ILocalSyncElement
- *
- * @since 2.0
- */
-public interface IRemoteSyncElement extends ILocalSyncElement {
-
- /**
- * Answer the remote sync element of this node. Returns <code>null</code>
- * if there is no remote.
- *
- * @return the remote resource in this sync element, or <code>null</code> is there
- * is none.
- */
- public IRemoteResource getRemote();
-
- /**
- * Answers <code>true</code> if the base tree is not to be considered during sync
- * comparisons and <code>false</code> if it should. If the base tree is ignored the
- * sync comparison can be based on isOutOfDate and isDirty methods only.
- */
- public boolean isThreeWay();
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/LocalSyncElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/LocalSyncElement.java
deleted file mode 100644
index 8a76bc721..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/LocalSyncElement.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.sync;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-
-/**
- * <b>Note:</b> This class/interface is part of an interim API that is still under
- * development and expected to change significantly before reaching stability.
- * It is being made available at this early stage to solicit feedback from pioneering
- * adopters on the understanding that any code that uses this API will almost
- * certainly be broken (repeatedly) as the API evolves.
- *
- * A standard abstract class that provides implementations for <code>ILocalSyncElement</code>
- * methods.
- *
- * @since 2.0
- */
-public abstract class LocalSyncElement implements ILocalSyncElement {
-
- /**
- * Creates a client specific sync element from a <b>local</b> and <b>base</b>
- * resources. The <b>base</b> resource may be <code>null</code> and should be
- * intialized by the client if available.
- *
- * @param local the local resource in the workbench. Will never be <code>null</code>.
- * @param base the base resource, may me <code>null</code>.
- * @param data client specific data.
- *
- * @return a client specific sync element.
- */
- public abstract ILocalSyncElement create(IResource local, IRemoteResource base, Object data);
-
- /**
- * Client data that is passed to every <code>create()</code> call.
- *
- * @return client specific data that will be passed to create.
- */
- protected abstract Object getData();
-
- /**
- * Client can decide is a specific element should be ignored from this sync element's
- * children.
- *
- * @param resource the resource to be queried.
- *
- * @return <code>true</code> if this element should be ignored and not considered an
- * immediate child of this element, and <code>false</code> otherwise.
- */
- protected abstract boolean isIgnored(IResource resource);
-
- /*
- * @see ILocalSyncElement#getSyncKind(int, IProgressMonitor)
- */
- public int getSyncKind(int granularity, IProgressMonitor progress) {
-
- // XXX not sure how local sync will be used?
- int sync = IN_SYNC;
- return sync;
- }
-
- /*
- * @see ILocalSyncElement#getName()
- */
- public String getName() {
- return getLocal().getName();
- }
-
- /*
- * @see ILocalSyncElement#isContainer()
- */
- public boolean isContainer() {
- return getLocal().getType() != IResource.FILE;
- }
-
- /*
- * @see ILocalSyncElement#members(IProgressMonitor)
- */
- public ILocalSyncElement[] members(IProgressMonitor monitor) throws TeamException {
- try {
- if(getLocal().getType() != IResource.FILE) {
- IResource[] members = ((IContainer)getLocal()).members();
- List syncElements = new ArrayList(5);
- for (int i = 0; i < members.length; i++) {
- IResource iResource = members[i];
- // the base is initialy set to null, however the concrete subclass should
- // initialize the base if one is available.
- if(!isIgnored(iResource)) {
- syncElements.add(create(iResource, null, getData()));
- }
- }
- return (ILocalSyncElement[]) syncElements.toArray(new ILocalSyncElement[syncElements.size()]);
- } else {
- return new ILocalSyncElement[0];
- }
- } catch(CoreException e) {
- throw new TeamException(e.getStatus());
- }
- }
-
- public boolean equals(Object other) {
- if(other == this) return true;
- if(other instanceof ILocalSyncElement) {
- return getLocal().equals(((ILocalSyncElement)other).getLocal());
- }
- return false;
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/RemoteSyncElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/RemoteSyncElement.java
deleted file mode 100644
index 420740d2e..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/RemoteSyncElement.java
+++ /dev/null
@@ -1,441 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.sync;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.Assert;
-import org.eclipse.team.internal.core.Policy;
-
-/**
- * <b>Note:</b> This class/interface is part of an interim API that is still under
- * development and expected to change significantly before reaching stability.
- * It is being made available at this early stage to solicit feedback from pioneering
- * adopters on the understanding that any code that uses this API will almost
- * certainly be broken (repeatedly) as the API evolves.
- *
- * A standard abstract class that provides implementations for interesting
- * <code>IRemoteSyncElement</code> methods. The <code>members</code> method
- * provided will create a unified tree based on the local, base, and remote
- * children. The <code>getSyncKind</code> method will calculate the relative
- * sync kind of the remote node.
- *
- * @since 2.0
- */
-public abstract class RemoteSyncElement extends LocalSyncElement implements IRemoteSyncElement {
-
- /**
- * Creates a client specific sync element from a <b>local</b>, <b>base</b>, and
- * <b>remote</b> resources. The <b>base</b> and <b>remote</b> resource may be
- * <code>null</code>.
- *
- * @param local the local resource in the workbench. Will never be <code>null</code>.
- * @param base the base resource, may me <code>null</code>.
- * @param remote the remote resource, may be <code>null</code>.
- * @param data client specific data.
- *
- * @return a client specific sync element.
- */
- public abstract IRemoteSyncElement create(boolean isThreeWay, IResource local, IRemoteResource base, IRemoteResource remote, Object data);
-
- /*
- * @see ILocalSyncElement#members()
- */
- public ILocalSyncElement[] members(IProgressMonitor progress) throws TeamException {
- // create union of the local, base, and remote trees
- IRemoteResource remote = getRemote();
- IRemoteResource base = getBase();
- IResource local = getLocal();
-
- IRemoteResource[] remoteChildren =
- remote != null ? remote.members(progress) : new IRemoteResource[0];
-
- IRemoteResource[] baseChildren =
- base != null ? base.members(progress) : new IRemoteResource[0];
-
- IResource[] localChildren;
- try {
- if( local.getType() != IResource.FILE && local.exists() ) {
- localChildren = ((IContainer)local).members();
- } else {
- localChildren = new IResource[0];
- }
- } catch(CoreException e) {
- throw new TeamException(e.getStatus());
- }
-
- if (remoteChildren.length > 0 || localChildren.length > 0) {
- List syncChildren = new ArrayList(10);
- Set allSet = new HashSet(20);
- Map localSet = null;
- Map remoteSet = null;
- Map baseSet = null;
-
- if (localChildren.length > 0) {
- localSet = new HashMap(10);
- for (int i = 0; i < localChildren.length; i++) {
- IResource localChild = localChildren[i];
- String name = localChild.getName();
- localSet.put(name, localChild);
- allSet.add(name);
- }
- }
-
- if (remoteChildren.length > 0) {
- remoteSet = new HashMap(10);
- for (int i = 0; i < remoteChildren.length; i++) {
- IRemoteResource remoteChild = remoteChildren[i];
- String name = remoteChild.getName();
- remoteSet.put(name, remoteChild);
- allSet.add(name);
- }
- }
-
- if (baseChildren.length > 0) {
- baseSet = new HashMap(10);
- for (int i = 0; i < baseChildren.length; i++) {
- IRemoteResource baseChild = baseChildren[i];
- String name = baseChild.getName();
- baseSet.put(name, baseChild);
- allSet.add(name);
- }
- }
-
- Iterator e = allSet.iterator();
- while (e.hasNext()) {
- String keyChildName = (String) e.next();
-
- if (progress != null) {
- if (progress.isCanceled()) {
- throw new OperationCanceledException();
- }
- // XXX show some progress?
- }
-
- IResource localChild =
- localSet != null ? (IResource) localSet.get(keyChildName) : null;
-
- IRemoteResource remoteChild =
- remoteSet != null ? (IRemoteResource) remoteSet.get(keyChildName) : null;
-
- IRemoteResource baseChild =
- baseSet != null ? (IRemoteResource) baseSet.get(keyChildName) : null;
-
-
- if (localChild == null) {
- // there has to be a remote resource available if we got this far
- Assert.isTrue(remoteChild != null || baseChild != null);
- boolean isContainer = remoteChild != null ? remoteChild.isContainer() : baseChild.isContainer();
-
- localChild = getResourceChild(local /* parent */, keyChildName, isContainer);
- }
-
- if(!localChild.exists() || !isIgnored(localChild)) {
- syncChildren.add(create(isThreeWay(), localChild, baseChild, remoteChild, getData()));
- }
- }
- return (IRemoteSyncElement[]) syncChildren.toArray(new IRemoteSyncElement[syncChildren.size()]);
- }
- else {
- return new IRemoteSyncElement[0];
- }
- }
-
- /*
- * @see ILocalSyncElement#getSyncKind(int, IProgressMonitor)
- */
- public int getSyncKind(int granularity, IProgressMonitor progress) {
- progress = Policy.monitorFor(progress);
- int description = IN_SYNC;
-
- IResource local = getLocal();
- IRemoteResource remote = getRemote();
- IRemoteResource base = getBase();
-
- boolean localExists = getLocal().exists();
-
- if (isThreeWay()) {
- if (base == null) {
- if (remote == null) {
- if (!localExists) {
- Assert.isTrue(false);
- } else {
- description = OUTGOING | ADDITION;
- }
- } else {
- if (!localExists) {
- description = INCOMING | ADDITION;
- } else {
- description = CONFLICTING | ADDITION;
- try {
- progress.beginTask(null, 60);
- if (isGranularityContents(granularity) &&
- compare(granularity, true, local, remote, Policy.subMonitorFor(progress, 30))) {
- description |= PSEUDO_CONFLICT;
- }
- } finally {
- progress.done();
- }
- }
- }
- } else {
- if (!localExists) {
- if (remote == null) {
- description = CONFLICTING | DELETION | PSEUDO_CONFLICT;
- } else {
- if (compare(granularity, false, base, remote, progress))
- description = OUTGOING | DELETION;
- else
- description = CONFLICTING | CHANGE;
- }
- } else {
- if (remote == null) {
- if (compare(granularity, false, local, base, progress))
- description = INCOMING | DELETION;
- else
- description = CONFLICTING | CHANGE;
- } else {
- progress.beginTask(null, 90);
- boolean ay = compare(granularity, false, local, base, Policy.subMonitorFor(progress, 30));
- boolean am = compare(granularity, false, base, remote, Policy.subMonitorFor(progress, 30));
- if (ay && am) {
- // in-sync
- } else if (ay && !am) {
- description = INCOMING | CHANGE;
- } else if (!ay && am) {
- description = OUTGOING | CHANGE;
- } else {
- description = CONFLICTING | CHANGE;
- if (isGranularityContents(granularity) &&
- compare(granularity, true, local, remote, Policy.subMonitorFor(progress, 30))) {
- description |= PSEUDO_CONFLICT;
- }
- }
- progress.done();
- }
- }
- }
- } else { // two compare without access to base contents
- if (remote == null) {
- if (!localExists) {
- Assert.isTrue(false);
- // shouldn't happen
- } else {
- description= DELETION;
- }
- } else {
- if (!localExists) {
- description= ADDITION;
- } else {
- if (! compare(granularity, false, local, remote, Policy.subMonitorFor(progress, 30)))
- description= CHANGE;
- }
- }
- }
- return description;
- }
-
- /**
- * Helper methods for comparisons that returns true if the resource contents are the same.
- *
- * If timestampDiff is true then the timestamps don't differ and there's no point checking the
- * contents.
- */
- protected boolean compare(int granularity, boolean force, IResource e1, IRemoteResource e2, IProgressMonitor monitor) {
- boolean timestampEquals;
- if (force) {
- timestampEquals = false;
- } else {
- timestampEquals = timestampEquals(e1, e2);
- }
- if (!timestampEquals && isGranularityContents(granularity)) {
- try {
- monitor.beginTask(null, 100);
- return contentsEqual(
- getContents(e1, Policy.subMonitorFor(monitor, 50)),
- getContents(e2, Policy.subMonitorFor(monitor, 50)),
- granularity == GRANULARITY_CONTENTS_IGNORE_WHITESPACE);
- } finally {
- monitor.done();
- }
- } else {
- return timestampEquals;
- }
- }
-
- protected boolean compare(int granularity, boolean force, IRemoteResource e1, IRemoteResource e2, IProgressMonitor monitor) {
- boolean timestampEquals;
- if (force) {
- timestampEquals = false;
- } else {
- timestampEquals = timestampEquals(e1, e2);
- }
- if (!timestampEquals && isGranularityContents(granularity)) {
- try {
- monitor.beginTask(null, 100);
- return contentsEqual(
- getContents(e1, Policy.subMonitorFor(monitor, 50)),
- getContents(e2, Policy.subMonitorFor(monitor, 50)),
- granularity == GRANULARITY_CONTENTS_IGNORE_WHITESPACE);
- } finally {
- monitor.done();
- }
- } else {
- return timestampEquals;
- }
- }
-
- protected abstract boolean timestampEquals(IResource e1, IRemoteResource e2);
- protected abstract boolean timestampEquals(IRemoteResource e1, IRemoteResource e2);
-
- protected boolean isGranularityContents(int granularity) {
- return granularity != GRANULARITY_TIMESTAMP;
- }
-
- private InputStream getContents(IResource resource, IProgressMonitor monitor) {
- try {
- if (resource instanceof IStorage)
- return new BufferedInputStream(((IStorage) resource).getContents());
- return null;
- } catch (CoreException e) {
- return null;
- }
- }
-
- private InputStream getContents(IRemoteResource remote, IProgressMonitor monitor) {
- try {
- if (!remote.isContainer())
- return new BufferedInputStream(remote.getContents(monitor));
- return null;
- } catch (TeamException exception) {
- // The remote node has gone away .
- return null;
- }
- }
-
- /**
- * Returns <code>true</code> if both input streams byte contents is identical.
- *
- * @param input1 first input to contents compare
- * @param input2 second input to contents compare
- * @return <code>true</code> if content is equal
- */
- private boolean contentsEqual(InputStream is1, InputStream is2, boolean ignoreWhitespace) {
- if (is1 == is2)
- return true;
-
- 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();
- while (ignoreWhitespace && isWhitespace(c1)) c1 = is1.read();
- int c2 = is2.read();
- while (ignoreWhitespace && isWhitespace(c2)) c2 = is2.read();
- if (c1 == -1 && c2 == -1)
- return true;
- if (c1 != c2)
- break;
-
- }
- } catch (IOException ex) {
- } finally {
- if (is1 != null) {
- try {
- is1.close();
- } catch (IOException ex) {
- }
- }
- if (is2 != null) {
- try {
- is2.close();
- } catch (IOException ex) {
- }
- }
- }
- return false;
- }
-
- /*
- * Skip all whitspace.
- */
- private boolean isWhitespace(int c) {
- if (c == -1) return false;
- return Character.isWhitespace((char)c);
- }
-
- /*
- * Returns a handle to a non-existing resource.
- */
- private IResource getResourceChild(IResource parent, String childName, boolean isContainer) {
- if (parent.getType() == IResource.FILE) {
- return null;
- }
- if (isContainer) {
- return ((IContainer) parent).getFolder(new Path(childName));
- } else {
- return ((IContainer) parent).getFile(new Path(childName));
- }
- }
-
- /*
- * @see Object#toString()
- */
- public String toString() {
- return getName() + kindToString(getSyncKind(GRANULARITY_TIMESTAMP, null));
- }
-
- static public String kindToString(int kind) {
- String label = ""; //$NON-NLS-1$
- if(kind==IN_SYNC) {
- label = Policy.bind("RemoteSyncElement.insync"); //$NON-NLS-1$
- } else {
- switch(kind & DIRECTION_MASK) {
- case CONFLICTING: label = Policy.bind("RemoteSyncElement.conflicting"); break; //$NON-NLS-1$
- case OUTGOING: label = Policy.bind("RemoteSyncElement.outgoing"); break; //$NON-NLS-1$
- case INCOMING: label = Policy.bind("RemoteSyncElement.incoming"); break; //$NON-NLS-1$
- }
- switch(kind & CHANGE_MASK) {
- case CHANGE: label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.change")); break; //$NON-NLS-1$ //$NON-NLS-2$
- case ADDITION: label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.addition")); break; //$NON-NLS-1$ //$NON-NLS-2$
- case DELETION: label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.deletion")); break; //$NON-NLS-1$ //$NON-NLS-2$
- }
- if((kind & MANUAL_CONFLICT) != 0) {
- label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.manual")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- if((kind & AUTOMERGE_CONFLICT) != 0) {
- label = Policy.bind("concatStrings", label, Policy.bind("RemoteSyncElement.auto")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- return Policy.bind("RemoteSyncElement.delimit", label); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Assert.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Assert.java
deleted file mode 100644
index 00689ac0b..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Assert.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.internal.core;
-
-
-
-public final class Assert {
- public static class AssertionFailedException extends RuntimeException {
- public AssertionFailedException() {
- }
- public AssertionFailedException(String detail) {
- super(Policy.bind("Assert.assertionFailed", detail)); //$NON-NLS-1$
- }
- }
-/* This class is not intended to be instantiated. */
-private Assert() {
-}
-/** Asserts that an argument is legal. If the given boolean is
- * not <code>true</code>, an <code>IllegalArgumentException</code>
- * is thrown.
- *
- * @param expression the outcode of the check
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- * @exception IllegalArgumentException if the legality test failed
- */
-public static boolean isLegal(boolean expression) {
- return isLegal(expression, ""); //$NON-NLS-1$
-}
-/** Asserts that an argument is legal. If the given boolean is
- * not <code>true</code>, an <code>IllegalArgumentException</code>
- * is thrown.
- * The given message is included in that exception, to aid debugging.
- *
- * @param expression the outcode of the check
- * @param message the message to include in the exception
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- * @exception IllegalArgumentException if the legality test failed
- */
-public static boolean isLegal(boolean expression, String message) {
- if (!expression)
- throw new IllegalArgumentException(message);
- return expression;
-}
-/** Asserts that the given object is not <code>null</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- *
- * @param object the value to test
- * @exception IllegalArgumentException if the object is <code>null</code>
- */
-public static void isNotNull(Object object) {
- if (object == null)
- throw new AssertionFailedException("null argument"); //$NON-NLS-1$
-}
-/** Asserts that the given object is not <code>null</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- * The given message is included in that exception, to aid debugging.
- *
- * @param object the value to test
- * @param message the message to include in the exception
- * @exception IllegalArgumentException if the object is <code>null</code>
- */
-public static void isNotNull(Object object, String message) {
- if (object == null)
- throw new AssertionFailedException("null argument:" /*non NLS*/ + message); //$NON-NLS-1$
-}
-/** Asserts that the given boolean is <code>true</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- *
- * @param expression the outcode of the check
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- */
-public static boolean isTrue(boolean expression) {
- return isTrue(expression, ""/*nonNLS*/); //$NON-NLS-1$
-}
-/** Asserts that the given boolean is <code>true</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- * The given message is included in that exception, to aid debugging.
- *
- * @param expression the outcode of the check
- * @param message the message to include in the exception
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- */
-public static boolean isTrue(boolean expression, String message) {
- if (!expression)
- throw new AssertionFailedException("assert failed:" /*non NLS*/ + message); //$NON-NLS-1$
- return expression;
-}
-/**
- * Indicates that the caller has not implemented the method.
- * Usually this is a temporary condition.
- */
-public static void notYetImplemented() {
-}
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java
deleted file mode 100644
index 90e5c154a..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.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.internal.core;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.Team;
-
-public class DefaultFileModificationValidator implements IFileModificationValidator {
- private static final Status OK = Team.OK_STATUS;
-
- private IStatus getDefaultStatus(IFile file) {
- return
- file.isReadOnly()
- ? new Status(IStatus.ERROR, TeamPlugin.ID, IResourceStatus.READ_ONLY_LOCAL, Policy.bind("FileModificationValidator.fileIsReadOnly", file.getFullPath().toString()), null) //$NON-NLS-1$
- : OK;
- }
-
- /**
- * @see IFileModificationValidator#validateEdit(IFile[], Object)
- */
- public IStatus validateEdit(IFile[] files, Object context) {
- if (files.length == 1) {
- return getDefaultStatus(files[0]);
- }
-
- IStatus[] stati = new Status[files.length];
- boolean allOK = true;
-
- for (int i = 0; i < files.length; i++) {
- stati[i] = getDefaultStatus(files[i]);
- if(! stati[i].isOK())
- allOK = false;
- }
-
- return new MultiStatus(TeamPlugin.ID,
- 0, stati,
- Policy.bind(
- allOK
- ? "FileModificationValidator.ok" //$NON-NLS-1$
- : "FileModificationValidator.someReadOnly" ), //$NON-NLS-1$
- null);
- }
-
- /**
- * @see IFileModificationValidator#validateSave(IFile)
- */
- public IStatus validateSave(IFile file) {
- return getDefaultStatus(file);
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultMoveDeleteHook.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultMoveDeleteHook.java
deleted file mode 100644
index 18dc39d63..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultMoveDeleteHook.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.team.IMoveDeleteHook;
-import org.eclipse.core.resources.team.IResourceTree;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A class which provides the default behavior for resource deletions and moves.
- * This class can be overridden by providers to change some or all of the behavior
- * related to resources deletions or moves.
- *
- * @see org.eclipse.team.core.ResourceProvider#getMoveDeleteHook()
- */
-
-public class DefaultMoveDeleteHook implements IMoveDeleteHook {
-
- /**
- * @see IMoveDeleteHook#deleteFile(IResourceTree, IFile, int, IProgressMonitor)
- */
- public boolean deleteFile(
- IResourceTree tree,
- IFile file,
- int updateFlags,
- IProgressMonitor monitor) {
- return false;
- }
-
- /**
- * @see IMoveDeleteHook#deleteFolder(IResourceTree, IFolder, int, IProgressMonitor)
- */
- public boolean deleteFolder(
- IResourceTree tree,
- IFolder folder,
- int updateFlags,
- IProgressMonitor monitor) {
- return false;
- }
-
- /**
- * @see IMoveDeleteHook#deleteProject(IResourceTree, IProject, int, IProgressMonitor)
- */
- public boolean deleteProject(
- IResourceTree tree,
- IProject project,
- int updateFlags,
- IProgressMonitor monitor) {
- return false;
- }
-
- /**
- * @see IMoveDeleteHook#moveFile(IResourceTree, IFile, IFile, int, IProgressMonitor)
- */
- public boolean moveFile(
- IResourceTree tree,
- IFile source,
- IFile destination,
- int updateFlags,
- IProgressMonitor monitor) {
- return false;
- }
-
- /**
- * @see IMoveDeleteHook#moveFolder(IResourceTree, IFolder, IFolder, int, IProgressMonitor)
- */
- public boolean moveFolder(
- IResourceTree tree,
- IFolder source,
- IFolder destination,
- int updateFlags,
- IProgressMonitor monitor) {
- return false;
- }
-
- /**
- * @see IMoveDeleteHook#moveProject(IResourceTree, IProject, IProjectDescription, int, IProgressMonitor)
- */
- public boolean moveProject(
- IResourceTree tree,
- IProject source,
- IProjectDescription description,
- int updateFlags,
- IProgressMonitor monitor) {
- return false;
- }
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DeploymentProviderManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DeploymentProviderManager.java
deleted file mode 100644
index 018c8a860..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DeploymentProviderManager.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.team.core.*;
-import org.eclipse.team.internal.core.registry.DeploymentProviderDescriptor;
-import org.eclipse.team.internal.core.registry.DeploymentProviderRegistry;
-import org.eclipse.team.internal.core.Policy;
-
-public class DeploymentProviderManager implements IDeploymentProviderManager, IResourceChangeListener {
-
- // key for remembering if state has been loaded for a project
- private final static QualifiedName STATE_LOADED_KEY = new QualifiedName("org.eclipse.team.core.deployment", "state_restored_key"); //$NON-NLS-1$ //$NON-NLS-2$
-
- // {project -> list of Mapping}
- private Map mappings = new HashMap(5);
-
- // registry for deployment provider extensions
- private DeploymentProviderRegistry registry;
-
- // lock to ensure that map/unmap and getProvider support concurrency
- private static final ILock mappingLock = Platform.getJobManager().newLock();
-
- // persistence constants
- private final static String CTX_PROVIDERS = "deploymentProviders"; //$NON-NLS-1$
- private final static String CTX_PROVIDER = "provider"; //$NON-NLS-1$
- private final static String CTX_ID = "id"; //$NON-NLS-1$
- private final static String CTX_PATH = "container_path"; //$NON-NLS-1$
- private final static String CTX_PROVIDER_DATA = "data"; //$NON-NLS-1$
- private final static String FILENAME = ".deployments"; //$NON-NLS-1$
-
- static class Mapping {
- private DeploymentProviderDescriptor descriptor;
- private DeploymentProvider provider;
- private IContainer container;
- private IMemento savedState;
-
- Mapping(DeploymentProviderDescriptor descriptor, IContainer container) {
- this.descriptor = descriptor;
- this.container = container;
- }
- public DeploymentProvider getProvider() throws TeamException {
- if(provider == null) {
- try {
- this.provider = descriptor.createProvider();
- this.provider.setContainer(container);
- this.provider.restoreState(savedState);
- this.savedState = null;
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
- return provider;
- }
- public void setProvider(DeploymentProvider provider) {
- this.provider = provider;
- this.savedState = null;
- }
- public IContainer getContainer() {
- return container;
- }
- public DeploymentProviderDescriptor getDescription() {
- return descriptor;
- }
- public void setProviderState(IMemento savedState) {
- this.savedState = savedState;
- }
- }
-
- public DeploymentProviderManager() {
- registry = new DeploymentProviderRegistry();
- }
-
- public void map(IContainer container, DeploymentProvider deploymentProvider) throws TeamException {
- try {
- mappingLock.acquire();
- if (!deploymentProvider.isMultipleMappingsSupported()) {
- // don't allow is overlapping deployment providers of the same type
- checkOverlapping(container, deploymentProvider.getID());
- }
-
- // extension point descriptor must exist
- DeploymentProviderDescriptor descriptor = registry.find(deploymentProvider.getID());
- if(descriptor == null) {
- throw new TeamException(Policy.bind("DeploymentProviderManager.10", deploymentProvider.getID())); //$NON-NLS-1$
- }
-
- // create the new mapping
- Mapping m = internalMap(container, descriptor);
- m.setProvider(deploymentProvider);
- deploymentProvider.setContainer(container);
- deploymentProvider.init();
-
- saveState(container.getProject());
- // TODO: what kind of event is generated when one is mapped?
- } finally {
- mappingLock.release();
- }
- }
-
- public void unmap(IContainer container, DeploymentProvider teamProvider) throws TeamException {
- try {
- mappingLock.acquire();
- IProject project = container.getProject();
- List projectMaps = internalGetMappings(container);
- Mapping[] m = internalGetMappingsFor(container, teamProvider.getID());
- for (int i = 0; i < m.length; i++) {
- Mapping mapping = m[i];
- if (mapping.getProvider() == teamProvider) {
- projectMaps.remove(mapping);
- if(projectMaps.isEmpty()) {
- mappings.remove(project);
- }
- }
- }
-
- // dispose of provider
- teamProvider.dispose();
- saveState(container.getProject());
-
- // TODO: what kind of event is sent when unmapped?
- } finally {
- mappingLock.release();
- }
- }
-
- public DeploymentProvider[] getMappings(IResource resource) {
- List projectMappings = internalGetMappings(resource);
- String fullPath = resource.getFullPath().toString();
- List result = new ArrayList();
- if(projectMappings != null) {
- for (Iterator it = projectMappings.iterator(); it.hasNext();) {
- Mapping m = (Mapping) it.next();
- if(fullPath.startsWith(m.getContainer().getFullPath().toString())) {
- try {
- // lazy initialize of provider must be supported
- // TODO: It is possible that the provider has been unmap concurrently
- result.add(m.getProvider());
- } catch (CoreException e) {
- TeamPlugin.log(e);
- }
- }
- }
- }
- return (DeploymentProvider[]) result.toArray(new DeploymentProvider[result.size()]);
- }
-
- public DeploymentProvider[] getMappings(IResource resource, String id) {
- Mapping[] m = internalGetMappingsFor(resource, id);
- List result = new ArrayList();
- for (int i = 0; i < m.length; i++) {
- Mapping mapping = m[i];
- try {
- // lazy initialize of provider must be supported
- // TODO: It is possible that the provider has been unmap concurrently
- result.add(mapping.getProvider());
- } catch (TeamException e) {
- TeamPlugin.log(e);
- }
- }
-
- DeploymentProvider[] providers = (DeploymentProvider[]) result.toArray(new DeploymentProvider[result.size()]);
- // Ensure that multiple providers are not mapped if it is not supported
- // by the provider type. This could occur if the deployment configuration
- // was loaded from a repository or modified manually
- if (providers.length > 1 && !providers[0].isMultipleMappingsSupported()) {
- // Log and ignore all but one of the mappings
- TeamPlugin.log(IStatus.WARNING, Policy.bind("DeploymentProviderManager.12", resource.getFullPath().toString(), id), null); //$NON-NLS-1$
- return new DeploymentProvider[] { providers[0] };
- }
- return providers;
- }
-
- public boolean getMappedTo(IResource resource, String id) {
- return internalGetMappingsFor(resource, id).length > 0;
- }
-
- private void checkOverlapping(IContainer container, String id) throws TeamException {
- List projectMappings = internalGetMappings(container);
- String fullPath = container.getFullPath().toString();
- if(projectMappings != null) {
- for (Iterator it = projectMappings.iterator(); it.hasNext();) {
- Mapping m = (Mapping) it.next();
- String first = m.getContainer().getFullPath().toString();
- if(fullPath.startsWith(first) || first.startsWith(fullPath)) {
- if (m.getDescription().getId().equals(id)) {
- throw new TeamException(Policy.bind("DeploymentProviderManager.13", container.getFullPath().toString(), m.getDescription().getId())); //$NON-NLS-1$
- }
- }
- }
- }
- }
-
- private Mapping internalMap(IContainer container, DeploymentProviderDescriptor description) {
- Mapping newMapping = new Mapping(description, container);
- return internalMap(container, newMapping);
- }
-
- private Mapping internalMap(IContainer container, Mapping newMapping) {
- IProject project = container.getProject();
- List projectMaps = (List)mappings.get(project);
- if(projectMaps == null) {
- projectMaps = new ArrayList();
- mappings.put(project, projectMaps);
- }
- projectMaps.add(newMapping);
- return newMapping;
- }
-
- /*
- * Loads all the mappings associated with the resource's project.
- */
- private List internalGetMappings(IResource resource) {
- try {
- mappingLock.acquire();
- IProject project = resource.getProject();
- List m = (List)mappings.get(project);
- try {
- if(project.getSessionProperty(STATE_LOADED_KEY) != null) {
- return m;
- }
- Mapping[] projectMappings = loadMappings(project);
- for (int i = 0; i < projectMappings.length; i++) {
- Mapping mapping = projectMappings[i];
- internalMap(mapping.getContainer(), mapping);
- }
-
- project.setSessionProperty(STATE_LOADED_KEY, new Object());
- } catch (TeamException e) {
- } catch (CoreException e) {
- }
- return (List)mappings.get(project);
- } finally {
- mappingLock.release();
- }
- }
-
- private Mapping[] internalGetMappingsFor(IResource resource, String id) {
- List projectMappings = internalGetMappings(resource);
- List result = new ArrayList();
- String fullPath = resource.getFullPath().toString();
- if(projectMappings != null) {
- for (Iterator it = projectMappings.iterator(); it.hasNext();) {
- Mapping m = (Mapping) it.next();
- // mapping can be initialize without having provider loaded yet!
- if(m.getDescription().getId().equals(id) && fullPath.startsWith(m.getContainer().getFullPath().toString())) {
- result.add(m);
- }
- }
- }
- return (Mapping[]) result.toArray(new Mapping[result.size()]);
- }
-
- /**
- * Saves a file containing the list of participant ids that are registered with this
- * manager. Each participant is also given the chance to save it's state.
- */
- private void saveState(IProject project) throws TeamException {
- File file = getNonsharedSettingsFile(project);
- try {
- XMLMemento xmlMemento = XMLMemento.createWriteRoot(CTX_PROVIDERS);
- List providers = (List)mappings.get(project);
- if(providers == null) {
- if (file.exists()) {
- file.delete();
- }
- } else {
- for (Iterator it2 = providers.iterator(); it2.hasNext(); ) {
- Mapping mapping = (Mapping) it2.next();
- IMemento node = xmlMemento.createChild(CTX_PROVIDER);
- node.putString(CTX_ID, mapping.getDescription().getId());
- node.putString(CTX_PATH, mapping.getContainer().getProjectRelativePath().toString());
- mapping.getProvider().saveState(node.createChild(CTX_PROVIDER_DATA));
- }
- Writer writer = new BufferedWriter(new FileWriter(file));
- try {
- xmlMemento.save(writer);
- } finally {
- writer.close();
- }
- }
- } catch (IOException e) {
- throw new TeamException(Policy.bind("DeploymentProviderManager.15", project.getName()), e); //$NON-NLS-1$
- } catch(CoreException ce) {
- throw TeamException.asTeamException(ce);
- }
- }
-
- /**
- * @param project
- * @return
- */
- private File getNonsharedSettingsFile(IProject project) {
- IPath metaPath = project.getPluginWorkingLocation(TeamPlugin.getPlugin().getDescriptor());
- metaPath = metaPath.append(FILENAME);
- File file = metaPath.toFile();
- return file;
- }
-
- /*
- * Load the mappings for the given project and return them.
- */
- private Mapping[] loadMappings(IProject project) throws TeamException, CoreException {
- File file = getNonsharedSettingsFile(project);
- if(! file.exists()) {
- // The file may have been deleted before our delta listener was loaded.
- // If there are any deployments stored in the meta data area, dispose of them
- // TODO: See if there were any before and dispose of them
- return new Mapping[0];
- }
- Reader reader;
- try {
- reader = new BufferedReader(new FileReader(file));
- } catch (FileNotFoundException e) {
- return new Mapping[0];
- }
- return loadMappings(project, reader);
- }
-
- private Mapping[] loadMappings(IProject project, Reader reader) throws TeamException {
- try {
- IMemento memento = XMLMemento.createReadRoot(reader);
- IMemento[] providers = memento.getChildren(CTX_PROVIDER);
- List projectMappings = new ArrayList();
- for (int i = 0; i < providers.length; i++) {
- IMemento memento2 = providers[i];
- String id = memento2.getString(CTX_ID);
- IPath location = new Path(memento2.getString(CTX_PATH));
-
- if(! project.exists(location)) {
- TeamPlugin.log(IStatus.ERROR, Policy.bind("DeploymentProviderManager.16", location.toString(), project.getName()), null); //$NON-NLS-1$
- }
- IResource resource = location.isEmpty() ? (IContainer)project : project.findMember(location);
- if (resource.getType() == IResource.FILE) {
- TeamPlugin.log(IStatus.ERROR, Policy.bind("DeploymentProviderManager.17", location.toString(), project.getName()), null); //$NON-NLS-1$
- }
- IContainer container = (IContainer)resource;
- DeploymentProviderDescriptor desc = registry.find(id);
- if(desc != null) {
- Mapping m = new Mapping(desc, container);
- m.setProviderState(memento2.getChild(CTX_PROVIDER_DATA));
- projectMappings.add(m);
- } else {
- TeamPlugin.log(IStatus.ERROR, Policy.bind("SynchronizeManager.9", id), null); //$NON-NLS-1$
- }
- }
- return (Mapping[]) projectMappings.toArray(new Mapping[projectMappings.size()]);
- } finally {
- try {
- reader.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.IDeploymentProviderManager#getDeploymentProviderRoots(java.lang.String)
- */
- public IResource[] getDeploymentProviderRoots(String id) {
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- Set roots = new HashSet();
- for (int i = 0; i < projects.length; i++) {
- IProject project = projects[i];
- List mappings = internalGetMappings(project);
- if (mappings != null) {
- for (Iterator iter = mappings.iterator(); iter.hasNext();) {
- Mapping mapping = (Mapping) iter.next();
- if (id == null || mapping.getDescription().getId().equals(id)) {
- roots.add(mapping.getContainer());
- }
- }
- }
- }
- return (IResource[]) roots.toArray(new IResource[roots.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- processDelta(event.getDelta());
- }
-
- private void processDelta(IResourceDelta delta) {
- IResource resource = delta.getResource();
- int kind = delta.getKind();
-
- if (resource.getType() == IResource.PROJECT) {
- // Handle a deleted project
- if (((kind & IResourceDelta.REMOVED) != 0)) {
- handleProjectRemoval((IProject)resource);
- return;
- }
- // Handle a closed project
- if ((delta.getFlags() & IResourceDelta.OPEN) != 0 && !((IProject) resource).isOpen()) {
- handleProjectClose((IProject)resource);
- return;
- }
- }
-
- if (((kind & IResourceDelta.REMOVED) != 0) && (resource.getType() == IResource.FOLDER)) {
- handleFolderRemoval((IFolder)resource);
- }
-
- // Handle changed children
- IResourceDelta[] affectedChildren = delta.getAffectedChildren(IResourceDelta.CHANGED | IResourceDelta.REMOVED | IResourceDelta.ADDED);
- for (int i = 0; i < affectedChildren.length; i++) {
- processDelta(affectedChildren[i]);
- }
- }
-
- private void handleFolderRemoval(IFolder folder) {
- DeploymentProvider[] providers = getMappings(folder);
- for (int i = 0; i < providers.length; i++) {
- DeploymentProvider provider = providers[i];
- try {
- unmap(folder, provider);
- } catch (TeamException e) {
- TeamPlugin.log(e);
- }
- }
- }
-
- private void handleProjectClose(IProject project) {
- mappings.remove(project);
- }
-
- private void handleProjectRemoval(IProject project) {
- mappings.remove(project);
- }
-
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.java
deleted file mode 100644
index 8fb182356..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.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.team.internal.core;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Collects exceptions and can be configured to ignore duplicates exceptions. Exceptions can be logged
- * and a MultiStatus containing all collected exceptions can be returned.
- *
- * @see org.eclipse.core.runtime.MultiStatus
- * @see org.eclipse.core.runtime.IStatus
- *
- * @since 3.0
- */
-public class ExceptionCollector {
-
- private Map exceptionBucket = new HashMap();
- private List statuses = new ArrayList();
- private String message;
- private String pluginId;
- private int severity;
- private ILog log;
- private boolean ignoreDuplicates = false;
-
- /**
- * Creates a collector and initializes the parameters for the top-level exception
- * that would be returned from <code>getStatus</code> is exceptions are collected.
- *
- * @param message a human-readable message, localized to the current locale
- * @param pluginId the unique identifier of the relevant plug-in
- * @param severity the severity; one of <code>OK</code>,
- * <code>ERROR</code>, <code>INFO</code>, or <code>WARNING</code>
- * @param code the plug-in-specific status code, or <code>OK</code>
- * @param log the log to output the exceptions to, or <code>null</code> if
- * exceptions should not be logged.
- */
- public ExceptionCollector(String message, String pluginId, int severity, ILog log) {
- this.message = message;
- this.pluginId = pluginId;
- this.severity = severity;
- this.log = log;
- }
-
- /**
- * Clears the exceptions collected.
- */
- public void clear() {
- statuses.clear();
- exceptionBucket.clear();
- }
-
- /**
- * Returns a status that represents the exceptions collected. If the collector
- * is empty <code>IStatus.OK</code> is returned. Otherwise a MultiStatus containing
- * all collected exceptions is returned.
- * @return a multistatus containing the exceptions collected or IStatus.OK if
- * the collector is empty.
- */
- public IStatus getStatus() {
- if(statuses.isEmpty()) {
- return Status.OK_STATUS;
- } else {
- MultiStatus multiStatus = new MultiStatus(pluginId, severity, message, null);
- Iterator it = statuses.iterator();
- while (it.hasNext()) {
- IStatus status = (IStatus) it.next();
- multiStatus.merge(status);
- }
- return multiStatus;
- }
- }
-
- /**
- * Returns whether duplicate exceptions are being ignored.
- * @return <code>true</code> if this collector is ignoring duplicate exceptions, and
- * <code>false</code> otherwise.
- */
- public boolean isIgnoreDuplicates() {
- return ignoreDuplicates;
- }
-
- /**
- * Sets whether duplicate exceptions are being ignored.
- * @param ignoreDuplicates <code>true</code> if this collector should ignore duplicate
- * exceptions, and <code>false</code> otherwise.
- */
- public void setIgnoreDuplicates(boolean ignoreDuplicates) {
- this.ignoreDuplicates = ignoreDuplicates;
- }
-
- /**
- * Add this exception to the collector. If a log was specified in the constructor
- * then the exception will be output to the log. You can retreive exceptions
- * using <code>getStatus</code>.
- *
- * @param exception the exception to collect
- */
- public void handleException(Exception e) {
- IStatus status = null;
- if(e instanceof CoreException) {
- status = ((CoreException)e).getStatus();
- }
- if(status != null) {
- logStatus(status);
- IStatus[] children = status.getChildren();
- for (int i = 0; i < children.length; i++) {
- IStatus status2 = children[i];
- logStatus(status2);
- }
- }
- }
-
- /**
- * Log and accumulate exceptions once for each {plugid,code} combination.
- */
- private void logStatus(IStatus status) {
- String pluginId = status.getPlugin();
- List codes = (List)exceptionBucket.get(pluginId);
- Integer code = new Integer(status.getCode());
- if(codes != null) {
- if(codes.contains(code) && isIgnoreDuplicates()) {
- return;
- }
- }
- // collect the status
- statuses.add(status);
-
- // update counts for this exception
- codes = new ArrayList(1);
- codes.add(code);
- exceptionBucket.put(pluginId, codes);
-
- // log if necessary
- if(log != null) {
- log.log(new Status(status.getSeverity(), pluginId, status.getCode(), message, status.getException()));
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java
deleted file mode 100644
index 7ad8a72c9..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.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.internal.core;
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFileModificationValidator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.team.core.RepositoryProvider;
-
-public class FileModificationValidatorManager implements IFileModificationValidator {
- private static final IFileModificationValidator DEFAULT_VALIDATOR =
- new DefaultFileModificationValidator();
-
- /*
- * @see IFileModificationValidator#validateEdit(IFile[], Object)
- * For all files, determine which provider.
- * Ask each provider once for its files.
- * Collect the resulting status' and return a MultiStatus.
- */
- public IStatus validateEdit(IFile[] files, Object context) {
- ArrayList returnStati = new ArrayList();
-
- //map provider to the files under that provider's control
- Map providersToFiles = new HashMap(files.length);
-
- //for each file, determine which provider, map providers to files
- for (int i = 0; i < files.length; i++) {
- IFile file = files[i];
- RepositoryProvider provider = RepositoryProvider.getProvider(file.getProject());
-
- if (!providersToFiles.containsKey(provider)) {
- providersToFiles.put(provider, new ArrayList());
- }
-
- ((ArrayList)providersToFiles.get(provider)).add(file);
- }
-
- Iterator providersIterator = providersToFiles.keySet().iterator();
-
- boolean allOK = true;
-
- //for each provider, validate its files
- while(providersIterator.hasNext()) {
- RepositoryProvider provider = (RepositoryProvider)providersIterator.next();
- ArrayList filesList = (ArrayList)providersToFiles.get(provider);
- IFile[] filesArray = (IFile[])filesList.toArray(new IFile[filesList.size()]);
- IFileModificationValidator validator = DEFAULT_VALIDATOR;
-
- //if no provider or no validator use the default validator
- if (provider != null) {
- IFileModificationValidator v = provider.getFileModificationValidator();
- if (v != null) validator = v;
- }
-
- IStatus status = validator.validateEdit(filesArray, context);
- if(!status.isOK())
- allOK = false;
-
- returnStati.add(status);
- }
-
- if (returnStati.size() == 1) {
- return (IStatus)returnStati.get(0);
- }
-
- return new MultiStatus(TeamPlugin.ID,
- 0,
- (IStatus[])returnStati.toArray(new IStatus[returnStati.size()]),
- Policy.bind(
- allOK
- ? "FileModificationValidator.ok" //$NON-NLS-1$
- : "FileModificationValidator.editFailed"), //$NON-NLS-1$
- null); //$NON-NLS-1$
- }
-
- /*
- * @see IFileModificationValidator#validateSave(IFile)
- */
- public IStatus validateSave(IFile file) {
- RepositoryProvider provider = RepositoryProvider.getProvider(file.getProject());
- IFileModificationValidator validator = DEFAULT_VALIDATOR;
-
- //if no provider or no validator use the default validator
- if (provider != null) {
- IFileModificationValidator v = provider.getFileModificationValidator();
- if (v != null) validator = v;
- }
-
- return validator.validateSave(file);
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/InfiniteSubProgressMonitor.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/InfiniteSubProgressMonitor.java
deleted file mode 100644
index 2f6baacdc..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/InfiniteSubProgressMonitor.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.internal.core;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * Provides an infinite progress monitor by subdividing by half repeatedly.
- *
- * The ticks parameter represents the number of ticks shown in the progress dialog
- * (or propogated up to a parent IProgressMonitor). The totalWork parameter provided
- * in actually a hint used to determine how work is translated into ticks.
- * The number of totalWork that can actually be worked is n*totalWork/2 where
- * 2^n = totalWork. What this means is that if you provide a totalWork of 32 (2^5) than
- * the maximum number of ticks is 5*32/2 = 80.
- *
- */
-public class InfiniteSubProgressMonitor extends SubProgressMonitor {
-
- int totalWork;
- int halfWay;
- int currentIncrement;
- int nextProgress;
- int worked;
-
- /**
- * Constructor for InfiniteSubProgressMonitor.
- * @param monitor
- * @param ticks
- */
- public InfiniteSubProgressMonitor(IProgressMonitor monitor, int ticks) {
- this(monitor, ticks, 0);
- }
-
- /**
- * Constructor for InfiniteSubProgressMonitor.
- * @param monitor
- * @param ticks
- * @param style
- */
- public InfiniteSubProgressMonitor(IProgressMonitor monitor, int ticks, int style) {
- super(monitor, ticks, style);
- }
-
- public void beginTask(String name, int totalWork) {
- super.beginTask(name, totalWork);
- this.totalWork = totalWork;
- this.halfWay = totalWork / 2;
- this.currentIncrement = 1;
- this.nextProgress = currentIncrement;
- this.worked = 0;
- }
-
- public void worked(int work) {
- if (worked >= totalWork) return;
- if (--nextProgress <= 0) {
- super.worked(1);
- worked++;
- if (worked >= halfWay) {
- // we have passed the current halfway point, so double the
- // increment and reset the halfway point.
- currentIncrement *= 2;
- halfWay += (totalWork - halfWay) / 2;
- }
- // reset the progress counter to another full increment
- nextProgress = currentIncrement;
- }
- }
-
- /**
- * Don't allow clearing of the subtask. This will stop the flickering
- * of the subtask in the progress dialogs.
- *
- * @see IProgressMonitor#subTask(String)
- */
- public void subTask(String name) {
- if(name != null && ! name.equals("")) { //$NON-NLS-1$
- super.subTask(name);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/MoveDeleteManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/MoveDeleteManager.java
deleted file mode 100644
index 694418e6b..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/MoveDeleteManager.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.team.IMoveDeleteHook;
-import org.eclipse.core.resources.team.IResourceTree;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.RepositoryProvider;
-
-public class MoveDeleteManager implements IMoveDeleteHook {
-
- private static final IMoveDeleteHook DEFAULT_HOOK = new DefaultMoveDeleteHook();
-
- private IMoveDeleteHook getHookFor(IResource resource) {
- IProject project = resource.getProject();
- RepositoryProvider provider = RepositoryProvider.getProvider(project);
- if(provider==null) {
- return DEFAULT_HOOK;
- }
- IMoveDeleteHook hook = provider.getMoveDeleteHook();
- if (hook == null) {
- return DEFAULT_HOOK;
- }
- return hook;
- }
-
- /*
- * @see IMoveDeleteHook#deleteFile(IResourceTree, IFile, int, IProgressMonitor)
- */
- public boolean deleteFile(
- IResourceTree tree,
- IFile file,
- int updateFlags,
- IProgressMonitor monitor) {
-
- return getHookFor(file).deleteFile(tree, file, updateFlags, monitor);
- }
-
- /*
- * @see IMoveDeleteHook#deleteFolder(IResourceTree, IFolder, int, IProgressMonitor)
- */
- public boolean deleteFolder(
- IResourceTree tree,
- IFolder folder,
- int updateFlags,
- IProgressMonitor monitor) {
-
- return getHookFor(folder).deleteFolder(tree, folder, updateFlags, monitor);
- }
-
- /*
- * @see IMoveDeleteHook#deleteProject(IResourceTree, IProject, int, IProgressMonitor)
- */
- public boolean deleteProject(
- IResourceTree tree,
- IProject project,
- int updateFlags,
- IProgressMonitor monitor) {
-
- return getHookFor(project).deleteProject(tree, project, updateFlags, monitor);
- }
-
- /*
- * @see IMoveDeleteHook#moveFile(IResourceTree, IFile, IFile, int, IProgressMonitor)
- */
- public boolean moveFile(
- IResourceTree tree,
- IFile source,
- IFile destination,
- int updateFlags,
- IProgressMonitor monitor) {
-
- return getHookFor(source).moveFile(tree, source, destination, updateFlags, monitor);
- }
-
- /*
- * @see IMoveDeleteHook#moveFolder(IResourceTree, IFolder, IFolder, int, IProgressMonitor)
- */
- public boolean moveFolder(
- IResourceTree tree,
- IFolder source,
- IFolder destination,
- int updateFlags,
- IProgressMonitor monitor) {
-
- return getHookFor(source).moveFolder(tree, source, destination, updateFlags, monitor);
- }
-
- /*
- * @see IMoveDeleteHook#moveProject(IResourceTree, IProject, IProjectDescription, int, IProgressMonitor)
- */
- public boolean moveProject(
- IResourceTree tree,
- IProject source,
- IProjectDescription description,
- int updateFlags,
- IProgressMonitor monitor) {
-
- return getHookFor(source).moveProject(tree, source, description, updateFlags, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/NullSubProgressMonitor.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/NullSubProgressMonitor.java
deleted file mode 100644
index 50edd1a6a..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/NullSubProgressMonitor.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.internal.core;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * This sub-progress monitor can be used to ignore progress indication for
- * methods but allow cancellation.
- * <p>
- * This implementation supports cancelation. The default implementations of the
- * other methods do nothing.
- * </p>
- * @see NullProgressMonitor
- * @see SubProgressMonitor
- */
-public class NullSubProgressMonitor extends SubProgressMonitor {
- /**
- * Constructor for InfiniteSubProgressMonitor.
- * @param monitor
- * @param ticks
- */
- public NullSubProgressMonitor(IProgressMonitor monitor) {
- super(monitor, 0, 0);
- }
-
- /**
- * @see IProgressMonitor#beginTask(String, int)
- */
- public void beginTask(String name, int totalWork) {
- }
-
- /**
- * @see IProgressMonitor#done()
- */
- public void done() {
- }
-
- /**
- * @see IProgressMonitor#internalWorked(double)
- */
- public void internalWorked(double work) {
- }
-
- /**
- * @see IProgressMonitor#subTask(String)
- */
- public void subTask(String name) {
- }
-
- /**
- * @see IProgressMonitor#worked(int)
- */
- public void worked(int work) {
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java
deleted file mode 100644
index 2e6a59fca..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.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.internal.core;
-
-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;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-public class Policy {
- protected static ResourceBundle bundle = null;
-
- //debug constants
- public static boolean DEBUG_STREAMS = false;
- public static boolean DEBUG_REFRESH_JOB = true;
- public static boolean DEBUG_BACKGROUND_EVENTS = false;
-
- static {
- //init debug options
- if (TeamPlugin.getPlugin().isDebugging()) {
- DEBUG_STREAMS = "true".equalsIgnoreCase(Platform.getDebugOption(TeamPlugin.ID + "/streams"));//$NON-NLS-1$ //$NON-NLS-2$
- DEBUG_REFRESH_JOB = "true".equalsIgnoreCase(Platform.getDebugOption(TeamPlugin.ID + "/refreshjob"));//$NON-NLS-1$ //$NON-NLS-2$
- DEBUG_BACKGROUND_EVENTS = "true".equalsIgnoreCase(Platform.getDebugOption(TeamPlugin.ID + "/backgroundevents"));//$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /**
- * 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;
- }
-
- public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new SubProgressMonitor(monitor, ticks);
- }
-
- public static IProgressMonitor infiniteSubMonitorFor(IProgressMonitor monitor, int ticks) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new InfiniteSubProgressMonitor(monitor, ticks);
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Sorter.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Sorter.java
deleted file mode 100644
index 475370c94..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Sorter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core;
-
-/**
- * The SortOperation takes a collection of objects and returns
- * a sorted collection of these objects. Concrete instances of this
- * class provide the criteria for the sorting of the objects based on
- * the type of the objects.
- */
-public abstract class Sorter {
- /**
- * Returns true is elementTwo is 'greater than' elementOne
- * This is the 'ordering' method of the sort operation.
- * Each subclass overides this method with the particular
- * implementation of the 'greater than' concept for the
- * objects being sorted.
- */
- public abstract boolean compare(Object elementOne, Object elementTwo);
- /**
- * Sort the objects in sorted collection and return that collection.
- */
- private Object[] quickSort(Object[] sortedCollection, int left, int right) {
- int originalLeft = left;
- int originalRight = right;
- Object mid = sortedCollection[ (left + right) / 2];
- do {
- while (compare(sortedCollection[left], mid))
- left++;
- while (compare(mid, sortedCollection[right]))
- right--;
- if (left <= right) {
- Object tmp = sortedCollection[left];
- sortedCollection[left] = sortedCollection[right];
- sortedCollection[right] = tmp;
- left++;
- right--;
- }
- } while (left <= right);
- if (originalLeft < right)
- sortedCollection = quickSort(sortedCollection, originalLeft, right);
- if (left < originalRight)
- sortedCollection = quickSort(sortedCollection, left, originalRight);
- return sortedCollection;
- }
- /**
- * Return a new sorted collection from this unsorted collection.
- * Sort using quick sort.
- */
- public Object[] sort(Object[] unSortedCollection) {
- int size = unSortedCollection.length;
- Object[] sortedCollection = new Object[size];
- //copy the array so can return a new sorted collection
- System.arraycopy(unSortedCollection, 0, sortedCollection, 0, size);
- if (size > 1)
- quickSort(sortedCollection, 0, size - 1);
- return sortedCollection;
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StringMatcher.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StringMatcher.java
deleted file mode 100644
index 5262fedaf..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StringMatcher.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.team.internal.core;
-
-
-import java.util.*;
-
-/**
- * A string pattern matcher, suppporting * and ? wildcards.
- * Note: code copied from org.eclipse.jdt.internal.core.util.StringMatcher on April 3, 2001
- * (version 0.1 - 010901H18 [rename jbl]).
- */
-public class StringMatcher {
- protected String fPattern;
- protected int fLength; // pattern length
- protected boolean fIgnoreWildCards;
- protected boolean fIgnoreCase;
- protected boolean fHasLeadingStar;
- protected boolean fHasTrailingStar;
- protected String fSegments[]; //the given pattern is split into * separated segments
-
- /* boundary value beyond which we don't need to search in the text */
- protected int fBound = 0;
-
-
- protected static final char fSingleWildCard = '\u0000';
-
- public static class Position {
- int start; //inclusive
- int end; //exclusive
- public Position(int start, int end) {
- this.start = start;
- this.end = end;
- }
- public int getStart() {
- return start;
- }
- public int getEnd() {
- return end;
- }
- }
- /**
- * Find the first occurrence of the pattern between <code>start</code)(inclusive)
- * and <code>end</code>(exclusive).
- * @param <code>text</code>, the String object to search in
- * @param <code>start</code>, the starting index of the search range, inclusive
- * @param <code>end</code>, the ending index of the search range, exclusive
- * @return an <code>StringMatcher.Position</code> object that keeps the starting
- * (inclusive) and ending positions (exclusive) of the first occurrence of the
- * pattern in the specified range of the text; return null if not found or subtext
- * is empty (start==end). A pair of zeros is returned if pattern is empty string
- * Note that for pattern like "*abc*" with leading and trailing stars, position of "abc"
- * is returned. For a pattern like"*??*" in text "abcdf", (1,3) is returned
- */
-
- public StringMatcher.Position find(String text, int start, int end) {
- if (fPattern == null|| text == null)
- throw new IllegalArgumentException();
-
- int tlen = text.length();
- if (start < 0)
- start = 0;
- if (end > tlen)
- end = tlen;
- if (end < 0 ||start >= end )
- return null;
- if (fLength == 0)
- return new Position(start, start);
- if (fIgnoreWildCards) {
- int x = posIn(text, start, end);
- if (x < 0)
- return null;
- return new Position(x, x+fLength);
- }
-
- int segCount = fSegments.length;
- if (segCount == 0)//pattern contains only '*'(s)
- return new Position (start, end);
-
- int curPos = start;
- int matchStart = -1;
- int i;
- for (i = 0; i < segCount && curPos < end; ++i) {
- String current = fSegments[i];
- int nextMatch = regExpPosIn(text, curPos, end, current);
- if (nextMatch < 0 )
- return null;
- if(i == 0)
- matchStart = nextMatch;
- curPos = nextMatch + current.length();
- }
- if (i < segCount)
- return null;
- return new Position(matchStart, curPos);
- }
- /**
- * StringMatcher constructor takes in a String object that is a simple
- * pattern which may contain '*' for 0 and many characters and
- * '?' for exactly one character.
- *
- * Literal '*' and '?' characters must be escaped in the pattern
- * e.g., "\*" means literal "*", etc.
- *
- * Escaping any other character (including the escape character itself),
- * just results in that character in the pattern.
- * e.g., "\a" means "a" and "\\" means "\"
- *
- * If invoking the StringMatcher with string literals in Java, don't forget
- * escape characters are represented by "\\".
- *
- * @param aPattern the pattern to match text with
- * @param ignoreCase if true, case is ignored
- * @param ignoreWildCards if true, wild cards and their escape sequences are ignored
- * (everything is taken literally).
- */
- public StringMatcher(String aPattern, boolean ignoreCase, boolean ignoreWildCards) {
- fIgnoreCase = ignoreCase;
- fIgnoreWildCards = ignoreWildCards;
- fLength = aPattern.length();
-
- /* convert case */
- if (fIgnoreCase) {
- fPattern = aPattern.toUpperCase();
- } else {
- fPattern = aPattern;
- }
-
- if (fIgnoreWildCards) {
- parseNoWildCards();
- } else {
- parseWildCards();
- }
- }
- /**
- * Given the starting (inclusive) and the ending (exclusive) poisitions in the
- * <code>text</code>, determine if the given substring matches with aPattern
- * @return true if the specified portion of the text matches the pattern
- * @param String <code>text</code>, a String object that contains the substring to match
- * @param int <code>start<code> marks the starting position (inclusive) of the substring
- * @param int <code>end<code> marks the ending index (exclusive) of the substring
- */
- public boolean match(String text, int start, int end) {
- if (null == text)
- throw new IllegalArgumentException();
-
- if (start > end)
- return false;
-
- if (fIgnoreWildCards)
- return (end - start == fLength) && fPattern.regionMatches(fIgnoreCase, 0, text, start, fLength);
- int segCount= fSegments.length;
- if (segCount == 0 && (fHasLeadingStar || fHasTrailingStar)) // pattern contains only '*'(s)
- return true;
- if (start == end)
- return fLength == 0;
- if (fLength == 0)
- return start == end;
-
- int tlen= text.length();
- if (start < 0)
- start= 0;
- if (end > tlen)
- end= tlen;
-
- int tCurPos= start;
- int bound= end - fBound;
- if ( bound < 0)
- return false;
- int i=0;
- String current= fSegments[i];
- int segLength= current.length();
-
- /* process first segment */
- if (!fHasLeadingStar){
- if(!regExpRegionMatches(text, start, current, 0, segLength)) {
- return false;
- } else {
- ++i;
- tCurPos= tCurPos + segLength;
- }
- }
- if ((fSegments.length == 1) && (!fHasLeadingStar) && (!fHasTrailingStar)) {
- // only one segment to match, no wildcards specified
- return tCurPos == end;
- }
- /* process middle segments */
- while (i < segCount) {
- current= fSegments[i];
- int currentMatch;
- int k= current.indexOf(fSingleWildCard);
- if (k < 0) {
- currentMatch= textPosIn(text, tCurPos, end, current);
- if (currentMatch < 0)
- return false;
- } else {
- currentMatch= regExpPosIn(text, tCurPos, end, current);
- if (currentMatch < 0)
- return false;
- }
- tCurPos= currentMatch + current.length();
- i++;
- }
-
- /* process final segment */
- if (!fHasTrailingStar && tCurPos != end) {
- int clen= current.length();
- return regExpRegionMatches(text, end - clen, current, 0, clen);
- }
- return i == segCount ;
- }
- /**
- * match the given <code>text</code> with the pattern
- * @return true if matched eitherwise false
- * @param <code>text</code>, a String object
- */
- public boolean match(String text) {
- return match(text, 0, text.length());
- }
- /**
- * This method parses the given pattern into segments seperated by wildcard '*' characters.
- * Since wildcards are not being used in this case, the pattern consists of a single segment.
- */
- private void parseNoWildCards() {
- fSegments = new String[1];
- fSegments[0] = fPattern;
- fBound = fLength;
- }
- /**
- * This method parses the given pattern into segments seperated by wildcard '*' characters.
- * @param p, a String object that is a simple regular expression with '*' and/or '?'
- */
- private void parseWildCards() {
- if(fPattern.startsWith("*"))//$NON-NLS-1$
- fHasLeadingStar = true;
- if(fPattern.endsWith("*")) {//$NON-NLS-1$
- /* make sure it's not an escaped wildcard */
- if (fLength > 1 && fPattern.charAt(fLength - 2) != '\\') {
- fHasTrailingStar = true;
- }
- }
-
- Vector temp = new Vector();
-
- int pos = 0;
- StringBuffer buf = new StringBuffer();
- while (pos < fLength) {
- char c = fPattern.charAt(pos++);
- switch (c) {
- case '\\':
- if (pos >= fLength) {
- buf.append(c);
- } else {
- char next = fPattern.charAt(pos++);
- /* if it's an escape sequence */
- if (next == '*' || next == '?' || next == '\\') {
- buf.append(next);
- } else {
- /* not an escape sequence, just insert literally */
- buf.append(c);
- buf.append(next);
- }
- }
- break;
- case '*':
- if (buf.length() > 0) {
- /* new segment */
- temp.addElement(buf.toString());
- fBound += buf.length();
- buf.setLength(0);
- }
- break;
- case '?':
- /* append special character representing single match wildcard */
- buf.append(fSingleWildCard);
- break;
- default:
- buf.append(c);
- }
- }
-
- /* add last buffer to segment list */
- if (buf.length() > 0) {
- temp.addElement(buf.toString());
- fBound += buf.length();
- }
-
- fSegments = new String[temp.size()];
- temp.copyInto(fSegments);
- }
- /**
- * @param <code>text</code>, a string which contains no wildcard
- * @param <code>start</code>, the starting index in the text for search, inclusive
- * @param <code>end</code>, the stopping point of search, exclusive
- * @return the starting index in the text of the pattern , or -1 if not found
- */
- protected int posIn(String text, int start, int end) {//no wild card in pattern
- int max = end - fLength;
-
- if (!fIgnoreCase) {
- int i = text.indexOf(fPattern, start);
- if (i == -1 || i > max)
- return -1;
- return i;
- }
-
- for (int i = start; i <= max; ++i) {
- if (text.regionMatches(true, i, fPattern, 0, fLength))
- return i;
- }
-
- return -1;
- }
- /**
- * @param <code>text</code>, a simple regular expression that may only contain '?'(s)
- * @param <code>start</code>, the starting index in the text for search, inclusive
- * @param <code>end</code>, the stopping point of search, exclusive
- * @param <code>p</code>, a simple regular expression that may contains '?'
- * @param <code>caseIgnored</code>, wether the pattern is not casesensitive
- * @return the starting index in the text of the pattern , or -1 if not found
- */
- protected int regExpPosIn(String text, int start, int end, String p) {
- int plen = p.length();
-
- int max = end - plen;
- for (int i = start; i <= max; ++i) {
- if (regExpRegionMatches(text, i, p, 0, plen))
- return i;
- }
- return -1;
- }
- /**
- *
- * @return boolean
- * @param <code>text</code>, a String to match
- * @param <code>start</code>, int that indicates the starting index of match, inclusive
- * @param <code>end</code> int that indicates the ending index of match, exclusive
- * @param <code>p</code>, String, String, a simple regular expression that may contain '?'
- * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive
- */
- protected boolean regExpRegionMatches(String text, int tStart, String p, int pStart, int plen) {
- while (plen-- > 0) {
- char tchar = text.charAt(tStart++);
- char pchar = p.charAt(pStart++);
-
- /* process wild cards */
- if (!fIgnoreWildCards) {
- /* skip single wild cards */
- if (pchar == fSingleWildCard) {
- continue;
- }
- }
- if (pchar == tchar)
- continue;
- if (fIgnoreCase) {
- char tc = Character.toUpperCase(tchar);
- if (tc == pchar)
- continue;
- }
- return false;
- }
- return true;
- }
- /**
- * @param <code>text</code>, the string to match
- * @param <code>start</code>, the starting index in the text for search, inclusive
- * @param <code>end</code>, the stopping point of search, exclusive
- * @param code>p</code>, a string that has no wildcard
- * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive
- * @return the starting index in the text of the pattern , or -1 if not found
- */
- protected int textPosIn(String text, int start, int end, String p) {
-
- int plen = p.length();
- int max = end - plen;
-
- if (!fIgnoreCase) {
- int i = text.indexOf(p, start);
- if (i == -1 || i > max)
- return -1;
- return i;
- }
-
- for (int i = start; i <= max; ++i) {
- if (text.regionMatches(true, i, p, 0, plen))
- return i;
- }
-
- return -1;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamHookDispatcher.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamHookDispatcher.java
deleted file mode 100644
index e93f80ffc..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamHookDispatcher.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.team.TeamHook;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.RepositoryProvider;
-
-/**
- * This class forwards TeamHook callbacks to the proper RepositoryProvider
- */
-public class TeamHookDispatcher extends TeamHook {
-
- /**
- * @see org.eclipse.core.resources.team.TeamHook#validateCreateLink(org.eclipse.core.resources.IFile, int, org.eclipse.core.runtime.IPath)
- */
- public IStatus validateCreateLink(IFile file, int updateFlags, IPath location) {
- RepositoryProvider provider = getProvider(file);
- if (provider == null) {
- return super.validateCreateLink(file, updateFlags, location);
- } else {
- return provider.validateCreateLink(file, updateFlags, location);
- }
- }
-
- /**
- * @see org.eclipse.core.resources.team.TeamHook#validateCreateLink(org.eclipse.core.resources.IFolder, int, org.eclipse.core.runtime.IPath)
- */
- public IStatus validateCreateLink(IFolder folder, int updateFlags, IPath location) {
- RepositoryProvider provider = getProvider(folder);
- if (provider == null) {
- return super.validateCreateLink(folder, updateFlags, location);
- } else {
- return provider.validateCreateLink(folder, updateFlags, location);
- }
- }
-
- /**
- * Method getProvider.
- * @param folder
- * @return RepositoryProvider
- */
- private RepositoryProvider getProvider(IResource resource) {
- return RepositoryProvider.getProvider(resource.getProject());
- }
-
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java
deleted file mode 100644
index 5b5d9140f..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.core.TeamException;
-
-/**
- * <code>TeamPlugin</code> is the plug-in runtime class for the Team
- * resource management plugin.
- * <p>
- *
- * @see Team
- * @see RepositoryProvider
- *
- * @since 2.0
- */
-final public class TeamPlugin extends Plugin {
-
- // The id of the core team plug-in
- public static final String ID = "org.eclipse.team.core"; //$NON-NLS-1$
-
- // The id of the providers extension point
- public static final String PROVIDER_EXTENSION = "repository-provider-type"; //$NON-NLS-1$
-
- // The id of the file types extension point
- public static final String FILE_TYPES_EXTENSION = "fileTypes"; //$NON-NLS-1$
-
- // The id of the global ignore extension point
- public static final String IGNORE_EXTENSION = "ignore"; //$NON-NLS-1$
- // The id of the project set extension point
- public static final String PROJECT_SET_EXTENSION = "projectSets"; //$NON-NLS-1$
- // The id of the targets extension point
- public static final String REPOSITORY_EXTENSION = "repository"; //$NON-NLS-1$
-
-
- // The one and only plug-in instance
- private static TeamPlugin plugin;
-
- /**
- * Constructs a plug-in runtime class for the given plug-in descriptor.
- */
- public TeamPlugin(IPluginDescriptor pluginDescriptor) {
- super(pluginDescriptor);
- plugin = this;
- }
-
- /**
- * @see Plugin#startup()
- */
- public void startup() throws CoreException {
- Policy.localize("org.eclipse.team.internal.core.messages"); //$NON-NLS-1$
- Team.startup();
- }
-
- /**
- * @see Plugin#shutdown()
- */
- public void shutdown() {
- Team.shutdown();
- }
-
- /**
- * Returns the Team plug-in.
- *
- * @return the single instance of this plug-in runtime class
- */
- public static TeamPlugin getPlugin() {
- return plugin;
- }
-
- /**
- * Log the given exception alloing with the provided message and severity indicator
- */
- public static void log(int severity, String message, Throwable e) {
- plugin.getLog().log(new Status(severity, ID, 0, message, e));
- }
-
- /**
- * Log the given CoreException in a manner that will include the stacktrace of
- * the exception in the log.
- */
- public static void log(CoreException e) {
- log(e.getStatus().getSeverity(), e.getMessage(), e);
- }
-
- /*
- * Static helper methods for creating exceptions
- */
- public static TeamException wrapException(Exception e) {
- return new TeamException(new Status(IStatus.ERROR, ID, 0, e.getMessage() != null ? e.getMessage() : "", e)); //$NON-NLS-1$
- }
-
- public static TeamException wrapException(CoreException e) {
- IStatus status = e.getStatus();
- return new TeamException(new Status(status.getSeverity(), ID, status.getCode(), status.getMessage(), e));
- }
-
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/XMLMemento.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/XMLMemento.java
deleted file mode 100644
index 8d8984c24..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/XMLMemento.java
+++ /dev/null
@@ -1,407 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.io.*;
-import java.util.ArrayList;
-
-import javax.xml.parsers.*;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.IMemento;
-import org.eclipse.team.core.TeamException;
-import org.w3c.dom.*;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * This class represents the default implementation of the
- * <code>IMemento</code> interface.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * [Note: This class has been copied from org.eclipse.ui to get a quick and
- * dirty xml input/output code. This should be purged once the settings
- * work is complete]
- * @see IMemento
- */
-public final class XMLMemento implements IMemento {
- private Document factory;
- private Element element;
-
- /**
- * Creates a <code>Document</code> from the <code>Reader</code>
- * and returns a memento on the first <code>Element</code> for reading
- * the document.
- * <p>
- * Same as calling createReadRoot(reader, null)
- * </p>
- *
- * @param reader the <code>Reader</code> used to create the memento's document
- * @return a memento on the first <code>Element</code> for reading the document
- * @throws <code>WorkbenchException</code> if IO problems, invalid format, or no element.
- */
- public static XMLMemento createReadRoot(Reader reader) throws TeamException {
- return createReadRoot(reader, null);
- }
-
- /**
- * Creates a <code>Document</code> from the <code>Reader</code>
- * and returns a memento on the first <code>Element</code> for reading
- * the document.
- *
- * @param reader the <code>Reader</code> used to create the memento's document
- * @param baseDir the directory used to resolve relative file names
- * in the XML document. This directory must exist and include the
- * trailing separator. The directory format, including the separators,
- * must be valid for the platform. Can be <code>null</code> if not
- * needed.
- * @return a memento on the first <code>Element</code> for reading the document
- * @throws <code>WorkbenchException</code> if IO problems, invalid format, or no element.
- */
- public static XMLMemento createReadRoot(Reader reader, String baseDir) throws TeamException {
- String messageKey = "XMLMemento.noElement"; //$NON-NLS-1$
- Exception exception = null;
-
- try {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder parser = factory.newDocumentBuilder();
- InputSource source = new InputSource(reader);
- if (baseDir != null)
- source.setSystemId(baseDir);
- Document document = parser.parse(source);
- NodeList list = document.getChildNodes();
- for (int i = 0; i < list.getLength(); i++) {
- Node node = list.item(i);
- if (node instanceof Element)
- return new XMLMemento(document, (Element) node);
- }
- } catch (ParserConfigurationException e) {
- exception = e;
- messageKey = "XMLMemento.parserConfigError"; //$NON-NLS-1$
- } catch (IOException e) {
- exception = e;
- messageKey = "XMLMemento.ioError"; //$NON-NLS-1$
- } catch (SAXException e) {
- exception = e;
- messageKey = "XMLMemento.formatError"; //$NON-NLS-1$
- }
-
- String problemText = null;
- if (exception != null)
- problemText = exception.getMessage();
- //if (problemText == null || problemText.length() == 0)
- // problemText = TeamException.getString(messageKey);
- throw new TeamException(problemText);
- }
-
- /**
- * Returns a root memento for writing a document.
- *
- * @param type the element node type to create on the document
- * @return the root memento for writing a document
- */
- public static XMLMemento createWriteRoot(String type) {
- Document document;
- try {
- document = DocumentBuilderFactory
- .newInstance()
- .newDocumentBuilder()
- .newDocument();
- Element element = document.createElement(type);
- document.appendChild(element);
- return new XMLMemento(document, element);
- }
- catch (ParserConfigurationException e) {
- throw new Error(e);
- }
- }
-
- /**
- * Creates a memento for the specified document and element.
- * <p>
- * Clients should use <code>createReadRoot</code> and
- * <code>createWriteRoot</code> to create the initial
- * memento on a document.
- * </p>
- *
- * @param document the document for the memento
- * @param element the element node for the memento
- */
- public XMLMemento(Document document, Element element) {
- super();
- this.factory = document;
- this.element = element;
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public IMemento createChild(String type) {
- Element child = factory.createElement(type);
- element.appendChild(child);
- return new XMLMemento(factory, child);
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public IMemento createChild(String type, String id) {
- Element child = factory.createElement(type);
- child.setAttribute(TAG_ID, id == null ? "" : id); //$NON-NLS-1$
- element.appendChild(child);
- return new XMLMemento(factory, child);
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public IMemento copyChild(IMemento child) {
- Element childElement = ((XMLMemento) child).element;
- Element newElement = (Element) factory.importNode(childElement, true);
- element.appendChild(newElement);
- return new XMLMemento(factory, newElement);
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public IMemento getChild(String type) {
-
- // Get the nodes.
- NodeList nodes = element.getChildNodes();
- int size = nodes.getLength();
- if (size == 0)
- return null;
-
- // Find the first node which is a child of this node.
- for (int nX = 0; nX < size; nX++) {
- Node node = nodes.item(nX);
- if (node instanceof Element) {
- Element element = (Element) node;
- if (element.getNodeName().equals(type))
- return new XMLMemento(factory, element);
- }
- }
-
- // A child was not found.
- return null;
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public IMemento[] getChildren(String type) {
-
- // Get the nodes.
- NodeList nodes = element.getChildNodes();
- int size = nodes.getLength();
- if (size == 0)
- return new IMemento[0];
-
- // Extract each node with given type.
- ArrayList list = new ArrayList(size);
- for (int nX = 0; nX < size; nX++) {
- Node node = nodes.item(nX);
- if (node instanceof Element) {
- Element element = (Element) node;
- if (element.getNodeName().equals(type))
- list.add(element);
- }
- }
-
- // Create a memento for each node.
- size = list.size();
- IMemento[] results = new IMemento[size];
- for (int x = 0; x < size; x++) {
- results[x] = new XMLMemento(factory, (Element) list.get(x));
- }
- return results;
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public Float getFloat(String key) {
- Attr attr = element.getAttributeNode(key);
- if (attr == null)
- return null;
- String strValue = attr.getValue();
- try {
- return new Float(strValue);
- } catch (NumberFormatException e) {
- TeamPlugin.log(IStatus.ERROR, "Memento problem - Invalid float for key: " //$NON-NLS-1$
- + key + " value: " + strValue, null); //$NON-NLS-1$
- return null;
- }
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public String getID() {
- return element.getAttribute(TAG_ID);
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public Integer getInteger(String key) {
- Attr attr = element.getAttributeNode(key);
- if (attr == null)
- return null;
- String strValue = attr.getValue();
- try {
- return new Integer(strValue);
- } catch (NumberFormatException e) {
- TeamPlugin.log(IStatus.ERROR, "Memento problem - invalid integer for key: " + key //$NON-NLS-1$
- + " value: " + strValue, null); //$NON-NLS-1$
- return null;
- }
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public String getString(String key) {
- Attr attr = element.getAttributeNode(key);
- if (attr == null)
- return null;
- return attr.getValue();
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public String getTextData() {
- Text textNode = getTextNode();
- if (textNode != null) {
- return textNode.getData();
- } else {
- return null;
- }
- }
-
- /**
- * Returns the Text node of the memento. Each memento is allowed only
- * one Text node.
- *
- * @return the Text node of the memento, or <code>null</code> if
- * the memento has no Text node.
- */
- private Text getTextNode() {
- // Get the nodes.
- NodeList nodes = element.getChildNodes();
- int size = nodes.getLength();
- if (size == 0)
- return null;
- for (int nX = 0; nX < size; nX++) {
- Node node = nodes.item(nX);
- if (node instanceof Text) {
- return (Text) node;
- }
- }
- // a Text node was not found
- return null;
- }
-
- /**
- * Places the element's attributes into the document.
- */
- private void putElement(Element element) {
- NamedNodeMap nodeMap = element.getAttributes();
- int size = nodeMap.getLength();
- for (int i = 0; i < size; i++) {
- Attr attr = (Attr) nodeMap.item(i);
- putString(attr.getName(), attr.getValue());
- }
-
- NodeList nodes = element.getChildNodes();
- size = nodes.getLength();
- for (int i = 0; i < size; i++) {
- Node node = nodes.item(i);
- if (node instanceof Element) {
- XMLMemento child = (XMLMemento) createChild(node.getNodeName());
- child.putElement((Element) node);
- }
- }
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public void putFloat(String key, float f) {
- element.setAttribute(key, String.valueOf(f));
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public void putInteger(String key, int n) {
- element.setAttribute(key, String.valueOf(n));
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public void putMemento(IMemento memento) {
- putElement(((XMLMemento) memento).element);
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public void putString(String key, String value) {
- if (value == null)
- return;
- element.setAttribute(key, value);
- }
-
- /* (non-Javadoc)
- * Method declared in IMemento.
- */
- public void putTextData(String data) {
- Text textNode = getTextNode();
- if (textNode == null) {
- textNode = factory.createTextNode(data);
- element.appendChild(textNode);
- } else {
- textNode.setData(data);
- }
- }
-
- /**
- * Saves this memento's document current values to the
- * specified writer.
- *
- * @param writer the writer used to save the memento's document
- * @throws IOException if there is a problem serializing the document to the stream.
- */
- public void save(Writer writer) throws IOException {
- Result result = new StreamResult(writer);
- Source source = new DOMSource(factory);
- try {
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
- transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
- transformer.transform(source, result);
- }
- catch (TransformerConfigurationException e) {
- throw (IOException) (new IOException().initCause(e));
- }
- catch (TransformerException e) {
- throw (IOException) (new IOException().initCause(e));
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties
deleted file mode 100644
index 019a109d5..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties
+++ /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
-###############################################################################
-ok=OK
-concatStrings={0} {1}
-
-Assert.assertionFailed=Assertion failed: {0}
-
-manager.providerAlreadyMapped=Error associating {0} with provider named {1}. The project is already associated with a provider.
-manager.errorFlushSync=Error flushing provider mapping information for {0}.
-manager.errorDeconfigure=Error deconfiguring provider named {0} from project {1}.
-manager.providerTypeInvalid=The provider type is not registered: {0}.
-manager.providerExtensionNotFound=TeamPlugin provider extension not found.
-manager.providerNoConfigElems=No configuration elements found for extension: {0}.
-manager.cannotInstantiateExt=Cannot instantiate extension: {0}.
-manager.errorSerialize=Error serializing provider mappings for {0}.
-manager.errorUnserializeProvider=Cannot unserialize association of {0} with provider of type: {1}. It is no longer a registered provider type.
-manager.errorUnserialize=Error un-serializing provider mappings {0}.
-manager.notTeamNature=Error setting nature: {0} is not a registered team nature.
-manager.errorSettingNature=Error setting nature {1} on project {0}.
-manager.errorRemovingNature=Error removing nature {1} on project {0}.
-
-manager.badClassType=Error creating validator decorator: bad class type
-manager.coreException=Error creating validator decorator: core exception
-
-FileModificationValidator.someReadOnly=Some files are read-only.
-FileModificationValidator.fileIsReadOnly=File {0} is read-only.
-FileModificationValidator.editFailed=Files are read-only.
-
-RepositoryProvider_Error_removing_nature_from_project___1=Error removing nature from project:
-RepositoryProvider_Too_many_providers_associated_with_project___2=Too many providers associated with project:
-RepositoryProviderTypeduplicate_provider_found_in_plugin.xml___1=duplicate provider found in plugin.xml:
-RepositoryProviderTypeRepositoryProvider_assigned_to_the_project_must_be_a_subclass_of_RepositoryProvider___2=RepositoryProvider assigned to the project must be a subclass of RepositoryProvider:
-RepositoryProviderTypeRepositoryProvider_not_registered_as_a_nature_id___3=RepositoryProvider not registered as a nature id: {0}.
-RepositoryProvider_providerTypeIdNotRegistered=Error configuring the RepositoryProvider the nature id is not registered as a valid RepositoryProviderType id.
-RepositoryProvider.couldNotInstantiateProvider=Could not instantiate provider {1} for project {0}.
-RepositoryProvider.No_Provider_Registered=No provider registered for {0}.
-RepositoryProvider.propertyMismatch=Inconsistent session/persistent property state looking up provider {1}.
-RepositoryProvider.linkedResourcesExist=Project ''{0}'' contains linked resources but the''{1}'' repository provider does not supported them.
-RepositoryProvider.linkedResourcesNotSupported=Project ''{0}'' is mapped to repository type ''{1}'' which does not support linked resources.
-RepositoryProvider.couldNotClearAfterError=A serious error has occurred trying to map project ''{0}'' to provider ''{1}''. Please restart Eclipse.
-RepositoryProvider.invalidClass=Class ''{1}'' registered for id ''{0}'' is not a subclass of RepositoryProvider.
-
-TeamPlugin_setting_global_ignore_7=setting global ignore
-
-Team.couldNotDelete=Could not delete previous state file ''{0}''.
-Team.couldNotRename=Could not rename new state file from ''{0}'' to ''{1}''.
-Team.writeError=An error occurred writing the state file ''{0}''.
-Team.readError=An error occurred reading the state file ''{0}''
-Team.Could_not_delete_state_file_1=Could not delete state file
-Team.Could_not_rename_state_file_2=Could not rename state file
-
-PollingInputStream.readTimeout=Timeout while reading from input stream
-PollingInputStream.closeTimeout=Timeout while closing input stream
-PollingOutputStream.writeTimeout=Timeout while writing to output stream
-PollingOutputStream.closeTimeout=Timeout while closing output stream
-TimeoutOutputStream.cannotWriteToStream=Cannot write to output stream
-
-TargetManager.Problems_mapping_project._Project_is_already_mapped._4=Problems mapping project. Project is already mapped.
-TargetManager.Problems_mapping_project=Problems mapping project {0}
-TargetManager.unableToUnmap=Unable to unmap project. It wasn't mapped to the location. {0}
-TargetManager.problemsUnmapping=Problems unmapping project {0}
-TargetManager.problemsGettingProvider=Problems getting default target provider for {0}
-
-Config.error=Error configuring the provider
-
-teamStatus.notCheckedOut=Not checked out.
-teamStatus.notCheckedIn=Not checked in.
-teamStatus.unmanagedResource=Unmanaged resource.
-teamStatus.noRemoteResource=Remote resource does not exist.
-teamStatus.ioFailed=An IO error occurred.
-teamStatus.conflict=A conflict occurred.
-
-multiStatus.errorsOccurred=Errors occurred.
-provider.configuration.missing=Required configuration value missing.
-provider.configuration.invalid=Configuration value is invalid.
-filetransfer.monitor={0} ({1}K of {2}K bytes)
-
-SynchronizedTargetProvider.invalidURLCombination=Could not form a valid URL from {0} and {1}
-
-RemoteSyncElement.delimit=[{0}]
-RemoteSyncElement.insync=in-sync
-RemoteSyncElement.conflicting=conflicting
-RemoteSyncElement.outgoing=outgoing
-RemoteSyncElement.incoming=incoming
-RemoteSyncElement.change=change
-RemoteSyncElement.addition=addition
-RemoteSyncElement.deletion=deletion
-RemoteSyncElement.manual={manual}
-RemoteSyncElement.auto={auto}
-
-Team.Error_loading_ignore_state_from_disk_1=Error loading ignore state from disk
-
-RemoteContentsCache.cacheNotEnabled=The cache for {0} is not enabled.
-RemoteContentsCache.cacheDisposed=The cache for {0} is disposed.
-RemoteContentsCache.fileError=An I/O error performing an operation on {0}.
-TeamProvider.10=Error restoring subscribers. Cannot find factory with id: {0}
-TeamProvider.11=Error saving subscribers. Cannot find factory with id: {0}
-ContentComparisonCriteria.2=Comparing content {0}
-ContentComparisonCriteria.3=\ ignoring whitespace
-
-SubscriberEventHandler.2=Calculating synchronization state for {0}.
-SubscriberEventHandler.jobName=Updating synchronization states for {0}.
-SubscriberEventHandler.errors=Errors have occured while calculating the synchronization state for {0}.
-RemoteContentsCacheEntry.3=Cache entry in {0} for {1} has been disposed
-DeploymentProviderManager.10=Cannot map provider {0}. It's extension point description cannot be found.
-DeploymentProviderManager.12=Resource {0} is mapped to multiple deployment providers of type {1}.
-DeploymentProviderManager.13={0} is already mapped to {1}
-DeploymentProviderManager.15=An I/O error occurred while persisting the deployment configurations for project {0}.
-DeploymentProviderManager.16=Previously deployed folder {0} in project {1} no longer exists.
-DeploymentProviderManager.17=Previously deployed resource {0} in project {1} is now a file and cannot be deployed.
-SynchronizationCacheRefreshOperation.0=Refreshing {0}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/DeploymentProviderDescriptor.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/DeploymentProviderDescriptor.java
deleted file mode 100644
index 980c73871..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/DeploymentProviderDescriptor.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core.registry;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.DeploymentProvider;
-
-public class DeploymentProviderDescriptor {
-
- public static final String ATT_ID = "id"; //$NON-NLS-1$
- public static final String ATT_NAME = "name"; //$NON-NLS-1$
- public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
- private String name;
- private String className;
- private String id;
- private String description;
-
- private IConfigurationElement configElement;
-
- /**
- * Create a new ViewDescriptor for an extension.
- */
- public DeploymentProviderDescriptor(IConfigurationElement e, String desc) throws CoreException {
- configElement = e;
- description = desc;
- loadFromExtension();
- }
-
-
- public IConfigurationElement getConfigurationElement() {
- return configElement;
- }
-
- public DeploymentProvider createProvider() throws CoreException {
- return (DeploymentProvider)configElement.createExecutableExtension(ATT_CLASS);
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- private void loadFromExtension() throws CoreException {
- String identifier = configElement.getAttribute(ATT_ID);
- name = configElement.getAttribute(ATT_NAME);
- className = configElement.getAttribute(ATT_CLASS);
-
- // Sanity check.
- if ((name == null) || (className == null) || (identifier == null)) {
- throw new CoreException(new Status(IStatus.ERROR, configElement.getDeclaringExtension().getDeclaringPluginDescriptor().getUniqueIdentifier(), 0, "Invalid extension (missing label or class name): " + id, //$NON-NLS-1$
- null));
- }
-
- id = identifier;
- }
-
- /**
- * Returns a string representation of this descriptor. For debugging
- * purposes only.
- */
- public String toString() {
- return "Team Provider(" + getId() + ")"; //$NON-NLS-2$ //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/DeploymentProviderRegistry.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/DeploymentProviderRegistry.java
deleted file mode 100644
index 09beff082..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/DeploymentProviderRegistry.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.registry;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-public class DeploymentProviderRegistry extends RegistryReader {
-
- private final static String PT_TEAMPROVIDER = "deployment"; //$NON-NLS-1$
- private Map providers = new HashMap();
- private String extensionId;
-
- public DeploymentProviderRegistry() {
- super();
- this.extensionId = PT_TEAMPROVIDER;
- readRegistry(Platform.getPluginRegistry(), TeamPlugin.ID, PT_TEAMPROVIDER);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.registry.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
- */
- protected boolean readElement(IConfigurationElement element) {
- if (element.getName().equals(extensionId)) {
- String descText = getDescription(element);
- DeploymentProviderDescriptor desc;
- try {
- desc = new DeploymentProviderDescriptor(element, descText);
- providers.put(desc.getId(), desc);
- } catch (CoreException e) {
- TeamPlugin.log(e);
- }
- return true;
- }
- return false;
- }
-
- public DeploymentProviderDescriptor[] getTeamProviderDescriptors() {
- return (DeploymentProviderDescriptor[])providers.values().toArray(new DeploymentProviderDescriptor[providers.size()]);
- }
-
- public DeploymentProviderDescriptor find(String id) {
- return (DeploymentProviderDescriptor)providers.get(id);
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/RegistryReader.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/RegistryReader.java
deleted file mode 100644
index afb5dbef1..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/registry/RegistryReader.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.registry;
-
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.internal.core.Sorter;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-public abstract class RegistryReader {
- protected static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
- protected static Hashtable extensionPoints = new Hashtable();
- /**
- * The constructor.
- */
- protected RegistryReader() {
- }
- /**
- * This method extracts description as a subelement of the given element.
- *
- * @return description string if defined, or empty string if not.
- */
- protected String getDescription(IConfigurationElement config) {
- IConfigurationElement[] children = config.getChildren(TAG_DESCRIPTION);
- if (children.length >= 1) {
- return children[0].getValue();
- }
- return ""; //$NON-NLS-1$
- }
- /**
- * Logs the error in the workbench log using the provided text and the
- * information in the configuration element.
- */
- protected void logError(IConfigurationElement element, String text) {
- IExtension extension = element.getDeclaringExtension();
- IPluginDescriptor descriptor = extension.getDeclaringPluginDescriptor();
- StringBuffer buf = new StringBuffer();
- buf.append("Plugin " + descriptor.getUniqueIdentifier() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-2$//$NON-NLS-1$
- buf.append("\n" + text); //$NON-NLS-1$
- TeamPlugin.log(IStatus.ERROR, buf.toString(), null);
- }
- /**
- * Logs a very common registry error when a required attribute is missing.
- */
- protected void logMissingAttribute(IConfigurationElement element, String attributeName) {
- logError(element, "Required attribute '" + attributeName + "' not defined"); //$NON-NLS-2$//$NON-NLS-1$
- }
-
- /**
- * Logs a very common registry error when a required child is missing.
- */
- protected void logMissingElement(IConfigurationElement element, String elementName) {
- logError(element, "Required sub element '" + elementName + "' not defined"); //$NON-NLS-2$//$NON-NLS-1$
- }
-
- /**
- * Logs a registry error when the configuration element is unknown.
- */
- protected void logUnknownElement(IConfigurationElement element) {
- logError(element, "Unknown extension tag found: " + element.getName()); //$NON-NLS-1$
- }
- /**
- * Apply a reproducable order to the list of extensions provided, such that
- * the order will not change as extensions are added or removed.
- */
- protected IExtension[] orderExtensions(IExtension[] extensions) {
- // By default, the order is based on plugin id sorted
- // in ascending order. The order for a plugin providing
- // more than one extension for an extension point is
- // dependent in the order listed in the XML file.
- Sorter sorter = new Sorter() {
- public boolean compare(Object extension1, Object extension2) {
- String s1 = ((IExtension) extension1).getDeclaringPluginDescriptor().getUniqueIdentifier();
- String s2 = ((IExtension) extension2).getDeclaringPluginDescriptor().getUniqueIdentifier();
- //Return true if elementTwo is 'greater than' elementOne
- return s2.compareToIgnoreCase(s1) > 0;
- }
- };
-
- Object[] sorted = sorter.sort(extensions);
- IExtension[] sortedExtension = new IExtension[sorted.length];
- System.arraycopy(sorted, 0, sortedExtension, 0, sorted.length);
- return sortedExtension;
- }
- /**
- * Implement this method to read element's attributes. If children should
- * also be read, then implementor is responsible for calling <code>readElementChildren</code>.
- * Implementor is also responsible for logging missing attributes.
- *
- * @return true if element was recognized, false if not.
- */
- protected abstract boolean readElement(IConfigurationElement element);
- /**
- * Read the element's children. This is called by the subclass' readElement
- * method when it wants to read the children of the element.
- */
- protected void readElementChildren(IConfigurationElement element) {
- readElements(element.getChildren());
- }
- /**
- * Read each element one at a time by calling the subclass implementation
- * of <code>readElement</code>.
- *
- * Logs an error if the element was not recognized.
- */
- protected void readElements(IConfigurationElement[] elements) {
- for (int i = 0; i < elements.length; i++) {
- if (!readElement(elements[i]))
- logUnknownElement(elements[i]);
- }
- }
- /**
- * Read one extension by looping through its configuration elements.
- */
- protected void readExtension(IExtension extension) {
- readElements(extension.getConfigurationElements());
- }
- /**
- * Start the registry reading process using the supplied plugin ID and
- * extension point.
- */
- public void readRegistry(IPluginRegistry registry, String pluginId, String extensionPoint) {
- String pointId = pluginId + "-" + extensionPoint; //$NON-NLS-1$
- IExtension[] extensions = (IExtension[]) extensionPoints.get(pointId);
- if (extensions == null) {
- IExtensionPoint point = registry.getExtensionPoint(pluginId, extensionPoint);
- if (point == null)
- return;
- extensions = point.getExtensions();
- extensionPoints.put(pointId, extensions);
- }
- for (int i = 0; i < extensions.length; i++)
- readExtension(extensions[i]);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/simpleAccess/SimpleAccessOperations.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/simpleAccess/SimpleAccessOperations.java
deleted file mode 100644
index db7d7fc06..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/simpleAccess/SimpleAccessOperations.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core.simpleAccess;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-
-/*
- * This class represents provisional API. Its here to allow experimentation with 3rd party tools
- * calling providers in a repository neutral manner.
- *
- * A provider is not required to implement this API.
- * Implementers, and those who reference it, do so with the awareness that this class may be
- * removed or substantially changed at future times without warning.
- *
- * The <code>SimpleAccessOperations</code> class exposes a basic repository model that
- * providers may implement to allow third-party plugins to perform repository operations
- * programmatically. For example, a code generation tool may want to get source
- * files before generating the code, and check-in the results. If a provider plugin does
- * not adhere to the <i>semantics</i> of the <code>SimpleAccessOperations</code> class
- * as described, they are free to opt out of implementing it.
- *
- * @since 2.0
- */
-public interface SimpleAccessOperations {
- /*
- * Updates the local resource to have the same content as the corresponding remote
- * resource. Where the local resource does not exist, this method will create it.
- * <p>
- * If the remote resource is a container (e.g. folder or project) this operation is equivalent
- * to getting each non-container member of the remote resource, thereby updating the
- * content of existing local members, creating local members to receive new remote resources,
- * and deleting local members that no longer have a corresponding remote resource.</p>
- * <p>
- * The method is applied to all resources satisfying the depth parameter, described above.</p>
- * <p>
- * Interrupting the method (via the progress monitor) may lead to partial, but consistent, results.</p>
- *
- * @param resources an array of local resources to update from the corresponding remote
- * resources.
- * @param depth the depth to traverse the given resources, taken from <code>IResource</code>
- * static constants.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamException if there is a problem getting one or more of the resources. The
- * exception will contain multiple statuses, one for each resource in the <code>resources</code>
- * array. Possible status codes include:
- * <ul>
- * <li>NO_REMOTE_RESOURCE</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- */
- public void get(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException;
-
- /*
- * Changes the state of the local resource from checked-in to checked-out and transfers the content
- * of the remote resource to the local resource.
- * <p>
- * Where no corresponding local resource exists in the workspace, one is created (including any
- * intermediate parent containers) to receive the contents of the remote resource.</p>
- * <p>
- * Implementations may optimistically only flag the state change locally and rely on resolving conflicts
- * during check-in, or they may pessimistically also checkout or lock the remote resource during a
- * local resource checkout to avoid conflicts. The provider API does not subscribe to either model
- * and supports each equally.</p>
- * <p>
- * Where checkout is applied to a resource that is already checked-out the method has no
- * effect.</p>
- *
- * @param resources the array of local resources to be checked-out.
- * @param depth the depth to traverse the given resources, taken from <code>IResource</code>
- * constants.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamProviderException if there is a problem checking-out one or more of the resources.
- * The exception will contain multiple statuses, one for each resource in the <code>resources</code>
- * array. Possible status codes include:
- * <ul>
- * <li>NOT_CHECKED_IN</li>
- * <li>NO_REMOTE_RESOURCE</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- * @see checkin(IResource[], int, IProgressMonitor)
- */
- public void checkout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException;
-
- /*
- * Transfers the content of the local resource to the corresponding remote resource, and changes the
- * state of the local resource from checked-out to checked-in.
- * <p>
- * If a remote resource does not exist this method creates a new remote resource with the same content
- * as the given local resource. The local resource is said to <i>correspond</i> to the new remote resource.</p>
- * <p>
- * Where providers deal with stores that check-out or lock resources this method is an opportunity
- * to transfer the content and make the corresponding remote check-in or unlock. It is envisaged that
- * where the server maintains resource versions, checkin creates a new version of the remote resource.</p>
- * <p>
- * Note that some providers may <em>require</em> that a resource is checked-out before it can be
- * checked-in. However, all providers must support the explicit checking out a resource before checking
- * it in (e.g., even if the check out is a no-op).</p>
- *
- * @param resources an array of local resources to be checked-in.
- * @param the depth to traverse the given resources, taken from <code>IResource</code>
- * constants.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamException if there is a problem checking-in one or more of the resources.
- * The exception will contain multiple statuses, one for each resource in the <code>resources</code>
- * array. Possible status codes include:
- * <ul>
- * <li>NOT_CHECKED_OUT</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- * @see checkout(IResource[], int, IProgressMonitor)
- */
- public void checkin(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException;
-
- /*
- * Changes the state of the local resource from checked-out to checked-in without updating the contents
- * of the remote resource.
- * <p>
- * Note that where the provider is a versioning provider, it is envisaged (though not required) that the
- * uncheckout operation does not create a new version.</p>
- * <p>
- * Note also that <code>uncheckout()</code> does not affect the content of the local resource. The
- * caller is required to perform a <code>get()</code> to revert the local resource if that is required
- * (otherwise the local resource will be left with the changes that were made while the remote resource
- * was checked-out. Furthermore, it is valid to call <code>uncheckout()</code> with an
- * <code>IResource</code> that does not exist locally.</p>
- *
- * @param resources an array of the local resources that are to be unchecked-out.
- * @param depth the depth to traverse the given resources, taken from <code>IResource</code>
- * constants.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamProviderException if there is a problem undoing the check-out of one or more of
- * the resources. The exception will contain multiple statuses, one for each resource in the
- * <code>resources</code> array. Possible status codes include:
- * <ul>
- * <li>NOT_CHECKED_OUT</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- * @see checkin(IResource)
- * @see uncheckout(IResource)
- */
- public void uncheckout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException;
-
- /*
- * Deletes the remote resource corresponding to the given local resource.
- * <p>
- * The notion of delete is simply to make the remote resource unavailable. Where the provider
- * supports versioning it is not specified whether the delete operation makes the version
- * temporarily or forever unavailable, or indeed whether the entire history is made unavailable.</p>
- * <p>
- * Note that the <code>IResource</code>'s passed as arguments may be non-existant in the
- * workbench, the typical case is when such a resource has been received in a core callback.</p>
- * <p>
- * The resource may be checked-in or checked-out prior to deletion. The local resource is not
- * deleted by this method.</p>
- * <p>
- * Resource deletions are inherently deep.</p>
- *
- * @param resources the array of resources whose corresponding remote resources are to be deleted.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamProviderException if there is a problem deleting one or more of
- * the resources. The exception will contain multiple statuses, one for each resource in the
- * <code>resources</code> array. Possible status codes include:
- * <ul>
- * <li>NO_REMOTE_RESOURCE</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- */
- public void delete(IResource[] resources, IProgressMonitor progress) throws TeamException;
-
- /*
- * Informs the provider that a local resource's name or path has changed.
- * <p>
- * Some providers, such as versioning providers, may require this information to track the resource
- * across name changes.</p>
- * <p>
- * Note that this method is always called <em>after</em> the local resource has been moved.</p>
- *
- * @param source the full name of the resource before it was moved.
- * @param target the resource that was moved.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamProviderException if there is a problem recording the move. The exception will
- * contain a single status. Possible status codes are:
- * <ul>
- * <li>NO_REMOTE_RESOURCE</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- */
- public void moved(IPath source, IResource target, IProgressMonitor progress) throws TeamException;
-
- /*
- * Implementor's Note:
- * The following methods are required to return promptly (i.e., they may be used to determine the state of
- * a resource in a UI where long delays are unacceptable). Implementations may cache these values
- * and update the cache on an explicit call to #refreshState().
- *
- * They are currently listed in the provider API, however, they may be moved to a new or different
- * interface in the future to better reflect their UI-orientation.
- */
-
- /*
- * Answers if the remote resource state is checked-out. If the resource has never been checked in this
- * method will return <code>true</code>.
- * <p>
- * It is undefined whether this method tests for a resource being checked out to this workspace
- * or any workspace.</p>
- *
- * @param resource the local resource to test.
- * @return <code>true</code> if the resource is checked-out and <code>false</code> if it is not.
- * @see checkout(IResource[], int, IProgressMonitor)
- */
- public boolean isCheckedOut(IResource resource);
-
- /*
- * Answers whether the resource has a corresponding remote resource.
- * <p>
- * Before a resource is checked-in, the resource will occur locally but not remotely, and calls to this
- * method will return <code>false</code>. Once a local resource is checked in (and assuming the local
- * local resource is not moved or the remote resource deleted) there will be a corresponding remote
- * resource and this method returns <code>true</code>.</p>
- *
- * @param resource the local resource to test.
- * @return <code>true</code> if the local resource has a corresponding remote resource,
- * and <code>false</code> otherwise.
- * @see checkin(IResource[], int, IProgressMonitor)
- * @see refreshState(IResource[], int, IProgressMonitor)
- */
- public boolean hasRemote(IResource resource);
-
- /*
- * Answer if the local resource currently has a different timestamp to the base timestamp
- * for this resource.
- *
- * @param resource the resource to test.
- * @return <code>true</code> if the resource has a different modification
- * timestamp, and <code>false</code> otherwise.
- */
- public boolean isDirty(IResource resource);
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/CRLFtoLFInputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/CRLFtoLFInputStream.java
deleted file mode 100644
index 9a52b0871..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/CRLFtoLFInputStream.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core.streams;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-
-/**
- * Converts CR/LFs in the underlying input stream to LF.
- *
- * Supports resuming partially completed operations after an InterruptedIOException
- * if the underlying stream does. Check the bytesTransferred field to determine how
- * much of the operation completed; conversely, at what point to resume.
- */
-public class CRLFtoLFInputStream extends FilterInputStream {
- private boolean pendingByte = false;
- private int lastByte = -1;
-
- /**
- * Creates a new filtered input stream.
- * @param in the underlying input stream
- */
- public CRLFtoLFInputStream(InputStream in) {
- super(in);
- }
-
- /**
- * Wraps the underlying stream's method.
- * Translates CR/LF sequences to LFs transparently.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public int read() throws IOException {
- if (! pendingByte) {
- lastByte = in.read(); // ok if this throws
- pendingByte = true; // remember the byte in case we throw an exception later on
- }
- if (lastByte == '\r') {
- lastByte = in.read(); // ok if this throws
- if (lastByte != '\n') {
- if (lastByte == -1) pendingByte = false;
- return '\r'; // leaves the byte pending for later
- }
- }
- pendingByte = false;
- return lastByte;
- }
-
- /**
- * Wraps the underlying stream's method.
- * Translates CR/LF sequences to LFs transparently.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public int read(byte[] buffer, int off, int len) throws IOException {
- // handle boundary cases cleanly
- if (len == 0) {
- return 0;
- } else if (len == 1) {
- int b = read();
- if (b == -1) return -1;
- buffer[off] = (byte) b;
- return 1;
- }
- // read some bytes from the stream
- // prefix with pending byte from last read if any
- int count = 0;
- if (pendingByte) {
- buffer[off] = (byte) lastByte;
- pendingByte = false;
- count = 1;
- }
- InterruptedIOException iioe = null;
- try {
- len = in.read(buffer, off + count, len - count);
- if (len == -1) {
- return (count == 0) ? -1 : count;
- }
- } catch (InterruptedIOException e) {
- len = e.bytesTransferred;
- iioe = e;
- }
- count += len;
- // strip out CR's in CR/LF pairs
- // pendingByte will be true iff previous byte was a CR
- int j = off;
- for (int i = off; i < off + count; ++i) { // invariant: j <= i
- lastByte = buffer[i];
- if (lastByte == '\r') {
- if (pendingByte) {
- buffer[j++] = '\r'; // write out orphan CR
- } else {
- pendingByte = true;
- }
- } else {
- if (pendingByte) {
- if (lastByte != '\n') buffer[j++] = '\r'; // if LF, don't write the CR
- pendingByte = false;
- }
- buffer[j++] = (byte) lastByte;
- }
- }
- if (iioe != null) {
- iioe.bytesTransferred = j - off;
- throw iioe;
- }
- return j - off;
- }
-
- /**
- * Calls read() to skip the specified number of bytes
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public long skip(long count) throws IOException {
- int actualCount = 0; // assumes count < Integer.MAX_INT
- try {
- while (count-- > 0 && read() != -1) actualCount++; // skip the specified number of bytes
- return actualCount;
- } catch (InterruptedIOException e) {
- e.bytesTransferred = actualCount;
- throw e;
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * Returns the number of bytes that can be read without blocking; accounts for
- * possible translation of CR/LF sequences to LFs in these bytes.
- * @throws IOException if an i/o error occurs
- */
- public int available() throws IOException {
- return in.available() / 2; // we can guarantee at least this amount after contraction
- }
-
- /**
- * Mark is not supported by the wrapper even if the underlying stream does, returns false.
- */
- public boolean markSupported() {
- return false;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.java
deleted file mode 100644
index 9c14ffb86..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.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.internal.core.streams;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-
-/**
- * Converts LFs in the underlying input stream to CR/LF.
- *
- * Supports resuming partially completed operations after an InterruptedIOException
- * if the underlying stream does. Check the bytesTransferred field to determine how
- * much of the operation completed; conversely, at what point to resume.
- */
-public class LFtoCRLFInputStream extends FilterInputStream {
- private boolean mustReturnLF = false;
-
- /**
- * Creates a new filtered input stream.
- * @param in the underlying input stream
- */
- public LFtoCRLFInputStream(InputStream in) {
- super(in);
- }
-
- /**
- * Wraps the underlying stream's method.
- * Translates LFs to CR/LF sequences transparently.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public int read() throws IOException {
- if (mustReturnLF) {
- mustReturnLF = false;
- return '\n';
- }
- int b = in.read(); // ok if this throws
- if (b == '\n') {
- mustReturnLF = true;
- b = '\r';
- }
- return b;
- }
-
- /**
- * Wraps the underlying stream's method.
- * Translates LFs to CR/LF sequences transparently.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public int read(byte[] buffer, int off, int len) throws IOException {
- // handle boundary cases cleanly
- if (len == 0) {
- return 0;
- } else if (len == 1) {
- int b = read();
- if (b == -1) return -1;
- buffer[off] = (byte) b;
- return 1;
- }
- // prefix with remembered \n from last read, but don't expand it a second time
- int count = 0;
- if (mustReturnLF) {
- mustReturnLF = false;
- buffer[off++] = '\n';
- --len;
- count = 1;
- if (len < 2) return count; // is there still enough room to expand more?
- }
- // read some bytes from the stream into the back half of the buffer
- // this guarantees that there is always room to expand
- len /= 2;
- int j = off + len;
- InterruptedIOException iioe = null;
- try {
- len = in.read(buffer, j, len);
- if (len == -1) {
- return (count == 0) ? -1 : count;
- }
- } catch (InterruptedIOException e) {
- len = e.bytesTransferred;
- iioe = e;
- }
- count += len;
- // copy bytes from the middle to the front of the array, expanding LF->CR/LF
- while (len-- > 0) {
- byte b = buffer[j++];
- if (b == '\n') {
- buffer[off++] = '\r';
- count++;
- }
- buffer[off++] = b;
- }
- if (iioe != null) {
- iioe.bytesTransferred = count;
- throw iioe;
- }
- return count;
- }
-
- /**
- * Calls read() to skip the specified number of bytes
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public long skip(long count) throws IOException {
- int actualCount = 0; // assumes count < Integer.MAX_INT
- try {
- while (count-- > 0 && read() != -1) actualCount++; // skip the specified number of bytes
- return actualCount;
- } catch (InterruptedIOException e) {
- e.bytesTransferred = actualCount;
- throw e;
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * Returns the number of bytes that can be read without blocking; accounts for
- * possible translation of LFs to CR/LF sequences in these bytes.
- * @throws IOException if an i/o error occurs
- */
- public int available() throws IOException {
- return in.available(); // we can guarantee at least this amount after expansion
- }
-
- /**
- * Mark is not supported by the wrapper even if the underlying stream does, returns false.
- */
- public boolean markSupported() {
- return false;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingInputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingInputStream.java
deleted file mode 100644
index 26b61275c..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingInputStream.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core.streams;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.team.internal.core.Policy;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * Polls a progress monitor periodically and handles timeouts over extended durations.
- * For this class to be effective, a high numAttempts should be specified, and the
- * underlying stream should time out frequently on reads (every second or so).
- *
- * Supports resuming partially completed operations after an InterruptedIOException
- * if the underlying stream does. Check the bytesTransferred field to determine how
- * much of the operation completed; conversely, at what point to resume.
- */
-public class PollingInputStream extends FilterInputStream {
- private static final boolean DEBUG = Policy.DEBUG_STREAMS;
- private int numAttempts;
- private IProgressMonitor monitor;
- private boolean cancellable;
-
- /**
- * Creates a new polling input stream.
- * @param in the underlying input stream
- * @param numAttempts the number of attempts before issuing an InterruptedIOException,
- * if 0, retries indefinitely until canceled
- * @param monitor the progress monitor to be polled for cancellation
- */
- public PollingInputStream(InputStream in, int numAttempts, IProgressMonitor monitor) {
- super(in);
- this.numAttempts = numAttempts;
- this.monitor = monitor;
- this.cancellable = true;
- }
-
- /**
- * Wraps the underlying stream's method.
- * It may be important to wait for an input stream to be closed because it
- * holds an implicit lock on a system resoure (such as a file) while it is
- * open. Closing a stream may take time if the underlying stream is still
- * servicing a previous request.
- * @throws OperationCanceledException if the progress monitor is canceled
- * @throws InterruptedIOException if the underlying operation times out numAttempts times
- * @throws IOException if an i/o error occurs
- */
- public void close() throws IOException {
- int attempts = 0;
- try {
- readPendingInput();
- } catch (IOException e) {
- // We shouldn't get an exception when we're getting the available input.
- // If we do, just log it so we can close.
- TeamPlugin.log(IStatus.ERROR, e.getMessage(), e);
- } finally {
- for (;;) {
- try {
- in.close();
- return;
- } catch (InterruptedIOException e) {
- if (checkCancellation()) throw new OperationCanceledException();
- if (++attempts == numAttempts)
- throw new InterruptedIOException(Policy.bind("PollingInputStream.closeTimeout")); //$NON-NLS-1$
- if (DEBUG) System.out.println("close retry=" + attempts); //$NON-NLS-1$
- }
- }
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * @throws OperationCanceledException if the progress monitor is canceled
- * @throws InterruptedIOException if the underlying operation times out numAttempts times
- * and no data was received, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public int read() throws IOException {
- int attempts = 0;
- for (;;) {
- if (checkCancellation()) throw new OperationCanceledException();
- try {
- return in.read();
- } catch (InterruptedIOException e) {
- if (++attempts == numAttempts)
- throw new InterruptedIOException(Policy.bind("PollingInputStream.readTimeout")); //$NON-NLS-1$
- if (DEBUG) System.out.println("read retry=" + attempts); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * @throws OperationCanceledException if the progress monitor is canceled
- * @throws InterruptedIOException if the underlying operation times out numAttempts times
- * and no data was received, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public int read(byte[] buffer, int off, int len) throws IOException {
- int attempts = 0;
- for (;;) {
- if (checkCancellation()) throw new OperationCanceledException();
- try {
- return in.read(buffer, off, len);
- } catch (InterruptedIOException e) {
- if (e.bytesTransferred != 0) return e.bytesTransferred; // keep partial transfer
- if (++attempts == numAttempts)
- throw new InterruptedIOException(Policy.bind("PollingInputStream.readTimeout")); //$NON-NLS-1$
- if (DEBUG) System.out.println("read retry=" + attempts); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * @throws OperationCanceledException if the progress monitor is canceled
- * @throws InterruptedIOException if the underlying operation times out numAttempts times
- * and no data was received, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public long skip(long count) throws IOException {
- int attempts = 0;
- for (;;) {
- if (checkCancellation()) throw new OperationCanceledException();
- try {
- return in.skip(count);
- } catch (InterruptedIOException e) {
- if (e.bytesTransferred != 0) return e.bytesTransferred; // keep partial transfer
- if (++attempts == numAttempts)
- throw new InterruptedIOException(Policy.bind("PollingInputStream.readTimeout")); //$NON-NLS-1$
- if (DEBUG) System.out.println("read retry=" + attempts); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Reads any pending input from the input stream so that
- * the stream can savely be closed.
- */
- protected void readPendingInput() throws IOException {
- byte[] buffer= new byte[2048];
- while (true) {
- int available = in.available();
- if (available < 1) break;
- if (available > buffer.length) available = buffer.length;
- if (in.read(buffer, 0, available) < 1) break;
- }
- }
-
- /**
- * Called to set whether cancellation will be checked by this stream. Turning cancellation checking
- * off can be very useful for protecting critical portions of a protocol that shouldn't be interrupted.
- * For example, it is often necessary to protect login sequences.
- * @param cancellable a flag controlling whether this stream will check for cancellation.
- */
- public void setIsCancellable(boolean cancellable) {
- this.cancellable = cancellable;
- }
-
- /**
- * Checked whether the monitor for this stream has been cancelled. If the cancellable
- * flag is <code>false</code> then the monitor is never cancelled.
- * @return <code>true</code> if the monitor has been cancelled and <code>false</code>
- * otherwise.
- */
- private boolean checkCancellation() {
- if(cancellable) {
- return monitor.isCanceled();
- } else {
- return false;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java
deleted file mode 100644
index ecbdb8eeb..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core.streams;
-
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.io.OutputStream;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.team.internal.core.Policy;
-
-/**
- * Polls a progress monitor periodically and handles timeouts over extended durations.
- * For this class to be effective, a high numAttempts should be specified, and the
- * underlying stream should time out frequently on writes (every second or so).
- *
- * Supports resuming partially completed operations after an InterruptedIOException
- * if the underlying stream does. Check the bytesTransferred field to determine how
- * much of the operation completed; conversely, at what point to resume.
- */
-public class PollingOutputStream extends FilterOutputStream {
- private static final boolean DEBUG = Policy.DEBUG_STREAMS;
- private int numAttempts;
- private IProgressMonitor monitor;
- private boolean cancellable;
-
- /**
- * Creates a new polling output stream.
- * @param in the underlying output stream
- * @param numAttempts the number of attempts before issuing an InterruptedIOException,
- * if 0, retries indefinitely until canceled
- * @param monitor the progress monitor to be polled for cancellation
- */
- public PollingOutputStream(OutputStream out, int numAttempts, IProgressMonitor monitor) {
- super(out);
- this.numAttempts = numAttempts;
- this.monitor = monitor;
- this.cancellable = true;
- }
-
- /**
- * Wraps the underlying stream's method.
- * @throws OperationCanceledException if the progress monitor is canceled
- * @throws InterruptedIOException if the underlying operation times out numAttempts times
- * and no data was sent, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public void write(int b) throws IOException {
- int attempts = 0;
- for (;;) {
- if (checkCancellation()) throw new OperationCanceledException();
- try {
- out.write(b);
- return;
- } catch (InterruptedIOException e) {
- if (++attempts == numAttempts)
- throw new InterruptedIOException(Policy.bind("PollingOutputStream.writeTimeout")); //$NON-NLS-1$
- if (DEBUG) System.out.println("write retry=" + attempts); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * @throws OperationCanceledException if the progress monitor is canceled
- * @throws InterruptedIOException if the underlying operation times out numAttempts times,
- * bytesTransferred will reflect the number of bytes sent
- * @throws IOException if an i/o error occurs
- */
- public void write(byte[] buffer, int off, int len) throws IOException {
- int count = 0;
- int attempts = 0;
- for (;;) {
- if (checkCancellation()) throw new OperationCanceledException();
- try {
- out.write(buffer, off, len);
- return;
- } catch (InterruptedIOException e) {
- int amount = e.bytesTransferred;
- if (amount != 0) { // keep partial transfer
- len -= amount;
- if (len <= 0) return;
- off += amount;
- count += amount;
- attempts = 0; // made some progress, don't time out quite yet
- }
- if (++attempts == numAttempts) {
- e = new InterruptedIOException(Policy.bind("PollingOutputStream.writeTimeout")); //$NON-NLS-1$
- e.bytesTransferred = count;
- throw e;
- }
- if (DEBUG) System.out.println("write retry=" + attempts); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * @throws OperationCanceledException if the progress monitor is canceled
- * @throws InterruptedIOException if the underlying operation times out numAttempts times,
- * bytesTransferred will reflect the number of bytes sent
- * @throws IOException if an i/o error occurs
- */
- public void flush() throws IOException {
- int count = 0;
- int attempts = 0;
- for (;;) {
- if (checkCancellation()) throw new OperationCanceledException();
- try {
- out.flush();
- return;
- } catch (InterruptedIOException e) {
- int amount = e.bytesTransferred;
- if (amount != 0) { // keep partial transfer
- count += amount;
- attempts = 0; // made some progress, don't time out quite yet
- }
- if (++attempts == numAttempts) {
- e = new InterruptedIOException(Policy.bind("PollingOutputStream.writeTimeout")); //$NON-NLS-1$
- e.bytesTransferred = count;
- throw e;
- }
- if (DEBUG) System.out.println("write retry=" + attempts); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Calls flush() then close() on the underlying stream.
- * @throws OperationCanceledException if the progress monitor is canceled
- * @throws InterruptedIOException if the underlying operation times out numAttempts times,
- * bytesTransferred will reflect the number of bytes sent during the flush()
- * @throws IOException if an i/o error occurs
- */
- public void close() throws IOException {
- int attempts = numAttempts - 1; // fail fast if flush() does times out
- try {
- out.flush();
- attempts = 0;
- } finally {
- for (;;) {
- try {
- out.close();
- return;
- } catch (InterruptedIOException e) {
- if (checkCancellation()) throw new OperationCanceledException();
- if (++attempts == numAttempts)
- throw new InterruptedIOException(Policy.bind("PollingOutputStream.closeTimeout")); //$NON-NLS-1$
- if (DEBUG) System.out.println("close retry=" + attempts); //$NON-NLS-1$
- }
- }
- }
- }
-
- /**
- * Called to set whether cancellation will be checked by this stream. Turning cancellation checking
- * off can be very useful for protecting critical portions of a protocol that shouldn't be interrupted.
- * For example, it is often necessary to protect login sequences.
- * @param cancellable a flag controlling whether this stream will check for cancellation.
- */
- public void setIsCancellable(boolean cancellable) {
- this.cancellable = cancellable;
- }
-
- /**
- * Checked whether the monitor for this stream has been cancelled. If the cancellable
- * flag is <code>false</code> then the monitor is never cancelled.
- * @return <code>true</code> if the monitor has been cancelled and <code>false</code>
- * otherwise.
- */
- private boolean checkCancellation() {
- if(cancellable) {
- return monitor.isCanceled();
- } else {
- return false;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/ProgressMonitorInputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/ProgressMonitorInputStream.java
deleted file mode 100644
index 54b2e4aff..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/ProgressMonitorInputStream.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.streams;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * Updates a progress monitor as bytes are read from the input stream.
- * Also starts a background thread to provide responsive cancellation on read().
- *
- * Supports resuming partially completed operations after an InterruptedIOException
- * if the underlying stream does. Check the bytesTransferred field to determine how
- * much of the operation completed; conversely, at what point to resume.
- */
-public abstract class ProgressMonitorInputStream extends FilterInputStream {
- private IProgressMonitor monitor;
- private int updateIncrement;
- private long bytesTotal;
- private long bytesRead = 0;
- private long lastUpdate = -1;
- private long nextUpdate = 0;
-
- /**
- * Creates a progress monitoring input stream.
- * @param in the underlying input stream
- * @param bytesTotal the number of bytes to read in total (passed to updateMonitor())
- * @param updateIncrement the number of bytes read between updates
- * @param monitor the progress monitor
- */
- public ProgressMonitorInputStream(InputStream in, long bytesTotal, int updateIncrement, IProgressMonitor monitor) {
- super(in);
- this.bytesTotal = bytesTotal;
- this.updateIncrement = updateIncrement;
- this.monitor = monitor;
- update(true);
- }
-
- protected abstract void updateMonitor(long bytesRead, long size, IProgressMonitor monitor);
-
- /**
- * Wraps the underlying stream's method.
- * Updates the progress monitor to the final number of bytes read.
- * @throws IOException if an i/o error occurs
- */
- public void close() throws IOException {
- try {
- in.close();
- } finally {
- update(true);
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * Updates the progress monitor if the next update increment has been reached.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public int read() throws IOException {
- int b = in.read();
- if (b != -1) {
- bytesRead += 1;
- update(false);
- }
- return b;
- }
-
- /**
- * Wraps the underlying stream's method.
- * Updates the progress monitor if the next update increment has been reached.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public int read(byte[] buffer, int offset, int length) throws IOException {
- try {
- int count = in.read(buffer, offset, length);
- if (count != -1) {
- bytesRead += count;
- update(false);
- }
- return count;
- } catch (InterruptedIOException e) {
- bytesRead += e.bytesTransferred;
- update(false);
- throw e;
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * Updates the progress monitor if the next update increment has been reached.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public long skip(long amount) throws IOException {
- try {
- long count = in.skip(amount);
- bytesRead += count;
- update(false);
- return count;
- } catch (InterruptedIOException e) {
- bytesRead += e.bytesTransferred;
- update(false);
- throw e;
- }
- }
-
- /**
- * Mark is not supported by the wrapper even if the underlying stream does, returns false.
- */
- public boolean markSupported() {
- return false;
- }
-
- private void update(boolean now) {
- if (bytesRead >= nextUpdate || now) {
- nextUpdate = bytesRead - (bytesRead % updateIncrement);
- if (nextUpdate != lastUpdate) updateMonitor(nextUpdate, bytesTotal, monitor);
- lastUpdate = nextUpdate;
- nextUpdate += updateIncrement;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/SizeConstrainedInputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/SizeConstrainedInputStream.java
deleted file mode 100644
index d7d26cac8..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/SizeConstrainedInputStream.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.team.internal.core.streams;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-
-/**
- * Simulates a stream that represents only a portion of the underlying stream.
- * Will report EOF when this portion has been fully read and prevent further reads.
- * The underlying stream is not closed on close(), but the remaining unread input
- * may optionally be skip()'d.
- *
- * Supports resuming partially completed operations after an InterruptedIOException
- * if the underlying stream does. Check the bytesTransferred field to determine how
- * much of the operation completed; conversely, at what point to resume.
- */
-public class SizeConstrainedInputStream extends FilterInputStream {
- private boolean discardOnClose;
- private long bytesRemaining;
-
- /**
- * Creates a size contrained input stream.
- * @param in the underlying input stream, never actually closed by this filter
- * @param size the maximum number of bytes of the underlying input stream that
- * can be read through this filter
- * @param discardOnClose if true, discards remaining unread bytes on close()
- */
- public SizeConstrainedInputStream(InputStream in, long size, boolean discardOnClose) {
- super(in);
- this.bytesRemaining = size;
- this.discardOnClose = discardOnClose;
- }
-
- /**
- * Prevents further reading from the stream but does not close the underlying stream.
- * If discardOnClose, skip()'s over any remaining unread bytes in the constrained region.
- * @throws IOException if an i/o error occurs
- */
- public void close() throws IOException {
- try {
- if (discardOnClose) {
- while (bytesRemaining != 0 && skip(bytesRemaining) != 0);
- }
- } catch (OperationCanceledException e) {
- // The receiver is likely wrapping a PollingInputStream which could throw
- // an OperationCanceledException on a skip.
- // Since we're closing, just ignore the cancel and let the caller check the monitor
- } finally {
- bytesRemaining = 0;
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * Simulates an end-of-file condition if the end of the constrained region has been reached.
- * @throws IOException if an i/o error occurs
- */
- public int available() throws IOException {
- int amount = in.available();
- if (amount > bytesRemaining) amount = (int) bytesRemaining;
- return amount;
- }
-
- /**
- * Wraps the underlying stream's method.
- * Simulates an end-of-file condition if the end of the constrained region has been reached.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public int read() throws IOException {
- if (bytesRemaining == 0) return -1;
- int b = in.read();
- if (b != -1) bytesRemaining -= 1;
- return b;
- }
-
- /**
- * Wraps the underlying stream's method.
- * Simulates an end-of-file condition if the end of the constrained region has been reached.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public int read(byte[] buffer, int offset, int length) throws IOException {
- if (length > bytesRemaining) {
- if (bytesRemaining == 0) return -1;
- length = (int) bytesRemaining;
- }
- try {
- int count = in.read(buffer, offset, length);
- if (count != -1) bytesRemaining -= count;
- return count;
- } catch (InterruptedIOException e) {
- bytesRemaining -= e.bytesTransferred;
- throw e;
- }
- }
-
- /**
- * Wraps the underlying stream's method.
- * Simulates an end-of-file condition if the end of the constrained region has been reached.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public long skip(long amount) throws IOException {
- if (amount > bytesRemaining) amount = bytesRemaining;
- try {
- long count = in.skip(amount);
- bytesRemaining -= count;
- return count;
- } catch (InterruptedIOException e) {
- bytesRemaining -= e.bytesTransferred;
- throw e;
- }
- }
-
- /**
- * Mark is not supported by the wrapper even if the underlying stream does, returns false.
- */
- public boolean markSupported() {
- return false;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/TimeoutInputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/TimeoutInputStream.java
deleted file mode 100644
index f55682cc2..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/TimeoutInputStream.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.streams;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-
-/**
- * Wraps an input stream that blocks indefinitely to simulate timeouts on read(),
- * skip(), and close(). The resulting input stream is buffered and supports
- * retrying operations that failed due to an InterruptedIOException.
- *
- * Supports resuming partially completed operations after an InterruptedIOException
- * REGARDLESS of whether the underlying stream does unless the underlying stream itself
- * generates InterruptedIOExceptions in which case it must also support resuming.
- * Check the bytesTransferred field to determine how much of the operation completed;
- * conversely, at what point to resume.
- */
-public class TimeoutInputStream extends FilterInputStream {
- // unsynchronized variables
- private final long readTimeout; // read() timeout in millis
- private final long closeTimeout; // close() timeout in millis, or -1
-
- // requests for the thread (synchronized)
- private boolean closeRequested = false; // if true, close requested
-
- // responses from the thread (synchronized)
- private Thread thread; // if null, thread has terminated
- private byte[] iobuffer; // circular buffer
- private int head = 0; // points to first unread byte
- private int length = 0; // number of remaining unread bytes
- private IOException ioe = null; // if non-null, contains a pending exception
- private boolean waitingForClose = false; // if true, thread is waiting for close()
-
- /**
- * Creates a timeout wrapper for an input stream.
- * @param in the underlying input stream
- * @param bufferSize the buffer size in bytes; should be large enough to mitigate
- * Thread synchronization and context switching overhead
- * @param readTimeout the number of milliseconds to block for a read() or skip() before
- * throwing an InterruptedIOException; 0 blocks indefinitely
- * @param closeTimeout the number of milliseconds to block for a close() before throwing
- * an InterruptedIOException; 0 blocks indefinitely, -1 closes the stream in the background
- */
- public TimeoutInputStream(InputStream in, int bufferSize, long readTimeout, long closeTimeout) {
- super(in);
- this.readTimeout = readTimeout;
- this.closeTimeout = closeTimeout;
- this.iobuffer = new byte[bufferSize];
- thread = new Thread(new Runnable() {
- public void run() {
- runThread();
- }
- }, "TimeoutInputStream");//$NON-NLS-1$
- thread.setDaemon(true);
- thread.start();
- }
-
- /**
- * Wraps the underlying stream's method.
- * It may be important to wait for a stream to actually be closed because it
- * holds an implicit lock on a system resoure (such as a file) while it is
- * open. Closing a stream may take time if the underlying stream is still
- * servicing a previous request.
- * @throws InterruptedIOException if the timeout expired
- * @throws IOException if an i/o error occurs
- */
- public void close() throws IOException {
- Thread oldThread;
- synchronized (this) {
- if (thread == null) return;
- oldThread = thread;
- closeRequested = true;
- thread.interrupt();
- checkError();
- }
- if (closeTimeout == -1) return;
- try {
- oldThread.join(closeTimeout);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt(); // we weren't expecting to be interrupted
- }
- synchronized (this) {
- checkError();
- if (thread != null) throw new InterruptedIOException();
- }
- }
-
- /**
- * Returns the number of unread bytes in the buffer.
- * @throws IOException if an i/o error occurs
- */
- public synchronized int available() throws IOException {
- if (length == 0) checkError();
- return length > 0 ? length : 0;
- }
-
- /**
- * Reads a byte from the stream.
- * @throws InterruptedIOException if the timeout expired and no data was received,
- * bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public synchronized int read() throws IOException {
- if (! syncFill()) return -1; // EOF reached
- int b = iobuffer[head++] & 255;
- if (head == iobuffer.length) head = 0;
- length--;
- notify();
- return b;
- }
-
- /**
- * Reads multiple bytes from the stream.
- * @throws InterruptedIOException if the timeout expired and no data was received,
- * bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public synchronized int read(byte[] buffer, int off, int len) throws IOException {
- if (! syncFill()) return -1; // EOF reached
- int pos = off;
- if (len > length) len = length;
- while (len-- > 0) {
- buffer[pos++] = iobuffer[head++];
- if (head == iobuffer.length) head = 0;
- length--;
- }
- notify();
- return pos - off;
- }
-
- /**
- * Skips multiple bytes in the stream.
- * @throws InterruptedIOException if the timeout expired before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public synchronized long skip(long count) throws IOException {
- long amount = 0;
- try {
- do {
- if (! syncFill()) break; // EOF reached
- int skip = (int) Math.min(count - amount, length);
- head = (head + skip) % iobuffer.length;
- length -= skip;
- amount += skip;
- } while (amount < count);
- } catch (InterruptedIOException e) {
- e.bytesTransferred = (int) amount; // assumes amount < Integer.MAX_INT
- throw e;
- }
- notify();
- return amount;
- }
-
- /**
- * Mark is not supported by the wrapper even if the underlying stream does, returns false.
- */
- public boolean markSupported() {
- return false;
- }
-
- /**
- * Waits for the buffer to fill if it is empty and the stream has not reached EOF.
- * @return true if bytes are available, false if EOF has been reached
- * @throws InterruptedIOException if EOF not reached but no bytes are available
- */
- private boolean syncFill() throws IOException {
- if (length != 0) return true;
- checkError(); // check errors only after we have read all remaining bytes
- if (waitingForClose) return false;
- notify();
- try {
- wait(readTimeout);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt(); // we weren't expecting to be interrupted
- }
- if (length != 0) return true;
- checkError(); // check errors only after we have read all remaining bytes
- if (waitingForClose) return false;
- throw new InterruptedIOException();
- }
-
- /**
- * If an exception is pending, throws it.
- */
- private void checkError() throws IOException {
- if (ioe != null) {
- IOException e = ioe;
- ioe = null;
- throw e;
- }
- }
-
- /**
- * Runs the thread in the background.
- */
- private void runThread() {
- try {
- readUntilDone();
- } catch (IOException e) {
- synchronized (this) { ioe = e; }
- } finally {
- waitUntilClosed();
- try {
- in.close();
- } catch (IOException e) {
- synchronized (this) { ioe = e; }
- } finally {
- synchronized (this) {
- thread = null;
- notify();
- }
- }
- }
- }
-
- /**
- * Waits until we have been requested to close the stream.
- */
- private synchronized void waitUntilClosed() {
- waitingForClose = true;
- notify();
- while (! closeRequested) {
- try {
- wait();
- } catch (InterruptedException e) {
- closeRequested = true; // alternate quit signal
- }
- }
- }
-
- /**
- * Reads bytes into the buffer until EOF, closed, or error.
- */
- private void readUntilDone() throws IOException {
- for (;;) {
- int off, len;
- synchronized (this) {
- for (;;) {
- if (closeRequested) return; // quit signal
- if (length != iobuffer.length) break;
- try {
- wait();
- } catch (InterruptedException e) {
- closeRequested = true; // alternate quit signal
- }
- }
- off = (head + length) % iobuffer.length;
- len = ((head > off) ? head : iobuffer.length) - off;
- }
- int count;
- try {
- // the i/o operation might block without releasing the lock,
- // so we do this outside of the synchronized block
- count = in.read(iobuffer, off, len);
- if (count == -1) return; // EOF encountered
- } catch (InterruptedIOException e) {
- count = e.bytesTransferred; // keep partial transfer
- }
- synchronized (this) {
- length += count;
- notify();
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/TimeoutOutputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/TimeoutOutputStream.java
deleted file mode 100644
index 0041e6bbd..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/TimeoutOutputStream.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.streams;
-
-import java.io.BufferedOutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.io.OutputStream;
-
-import org.eclipse.team.internal.core.Policy;
-
-/**
- * Wraps an output stream that blocks indefinitely to simulate timeouts on write(),
- * flush(), and close(). The resulting output stream is buffered and supports
- * retrying operations that failed due to an InterruptedIOException.
- *
- * Supports resuming partially completed operations after an InterruptedIOException
- * REGARDLESS of whether the underlying stream does unless the underlying stream itself
- * generates InterruptedIOExceptions in which case it must also support resuming.
- * Check the bytesTransferred field to determine how much of the operation completed;
- * conversely, at what point to resume.
- */
-public class TimeoutOutputStream extends FilterOutputStream {
- // unsynchronized variables
- private final long writeTimeout; // write() timeout in millis
- private final long closeTimeout; // close() timeout in millis, or -1
-
- // requests for the thread (synchronized)
- private byte[] iobuffer; // circular buffer
- private int head = 0; // points to first unwritten byte
- private int length = 0; // number of remaining unwritten bytes
- private boolean closeRequested = false; // if true, close requested
- private boolean flushRequested = false; // if true, flush requested
-
- // responses from the thread (synchronized)
- private Thread thread;
- private boolean waitingForClose = false; // if true, the thread is waiting for close()
- private IOException ioe = null;
-
- /**
- * Creates a timeout wrapper for an output stream.
- * @param out the underlying input stream
- * @param bufferSize the buffer size in bytes; should be large enough to mitigate
- * Thread synchronization and context switching overhead
- * @param writeTimeout the number of milliseconds to block for a write() or flush() before
- * throwing an InterruptedIOException; 0 blocks indefinitely
- * @param closeTimeout the number of milliseconds to block for a close() before throwing
- * an InterruptedIOException; 0 blocks indefinitely, -1 closes the stream in the background
- */
- public TimeoutOutputStream(OutputStream out, int bufferSize, long writeTimeout, long closeTimeout) {
- super(new BufferedOutputStream(out, bufferSize));
- this.writeTimeout = writeTimeout;
- this.closeTimeout = closeTimeout;
- this.iobuffer = new byte[bufferSize];
- thread = new Thread(new Runnable() {
- public void run() {
- runThread();
- }
- }, "TimeoutOutputStream");//$NON-NLS-1$
- thread.setDaemon(true);
- thread.start();
- }
-
- /**
- * Wraps the underlying stream's method.
- * It may be important to wait for a stream to actually be closed because it
- * holds an implicit lock on a system resoure (such as a file) while it is
- * open. Closing a stream may take time if the underlying stream is still
- * servicing a previous request.
- * @throws InterruptedIOException if the timeout expired, bytesTransferred will
- * reflect the number of bytes flushed from the buffer
- * @throws IOException if an i/o error occurs
- */
- public void close() throws IOException {
- Thread oldThread;
- synchronized (this) {
- if (thread == null) return;
- oldThread = thread;
- closeRequested = true;
- thread.interrupt();
- checkError();
- }
- if (closeTimeout == -1) return;
- try {
- oldThread.join(closeTimeout);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt(); // we weren't expecting to be interrupted
- }
- synchronized (this) {
- checkError();
- if (thread != null) throw new InterruptedIOException();
- }
- }
-
- /**
- * Writes a byte to the stream.
- * @throws InterruptedIOException if the timeout expired and no data was sent,
- * bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public synchronized void write(int b) throws IOException {
- syncCommit(true);
- iobuffer[(head + length) % iobuffer.length] = (byte) b;
- length++;
- notify();
- }
-
- /**
- * Writes multiple bytes to the stream.
- * @throws InterruptedIOException if the timeout expired, bytesTransferred will
- * reflect the number of bytes sent
- * @throws IOException if an i/o error occurs
- */
- public synchronized void write(byte[] buffer, int off, int len) throws IOException {
- int amount = 0;
- try {
- do {
- syncCommit(true);
- while (amount < len && length != iobuffer.length) {
- iobuffer[(head + length) % iobuffer.length] = buffer[off++];
- length++;
- amount++;
- }
- } while (amount < len);
- } catch (InterruptedIOException e) {
- e.bytesTransferred = amount;
- throw e;
- }
- notify();
- }
-
- /**
- * Flushes the stream.
- * @throws InterruptedIOException if the timeout expired, bytesTransferred will
- * reflect the number of bytes flushed from the buffer
- * @throws IOException if an i/o error occurs
- */
- public synchronized void flush() throws IOException {
- int oldLength = length;
- flushRequested = true;
- try {
- syncCommit(false);
- } catch (InterruptedIOException e) {
- e.bytesTransferred = oldLength - length;
- throw e;
- }
- notify();
- }
-
- /**
- * Waits for the buffer to drain if it is full.
- * @param partial if true, waits until the buffer is partially empty, else drains it entirely
- * @throws InterruptedIOException if the buffer could not be drained as requested
- */
- private void syncCommit(boolean partial) throws IOException {
- checkError(); // check errors before allowing the addition of new bytes
- if (partial && length != iobuffer.length || length == 0) return;
- if (waitingForClose) throw new IOException(Policy.bind("TimeoutOutputStream.cannotWriteToStream")); //$NON-NLS-1$
- notify();
- try {
- wait(writeTimeout);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt(); // we weren't expecting to be interrupted
- }
- checkError(); // check errors before allowing the addition of new bytes
- if (partial && length != iobuffer.length || length == 0) return;
- throw new InterruptedIOException();
- }
-
- /**
- * If an exception is pending, throws it.
- */
- private void checkError() throws IOException {
- if (ioe != null) {
- IOException e = ioe;
- ioe = null;
- throw e;
- }
- }
-
- /**
- * Runs the thread in the background.
- */
- private void runThread() {
- try {
- writeUntilDone();
- } catch (IOException e) {
- synchronized (this) { ioe = e; }
- } finally {
- waitUntilClosed();
- try {
- out.close();
- } catch (IOException e) {
- synchronized (this) { ioe = e; }
- } finally {
- synchronized (this) {
- thread = null;
- notify();
- }
- }
- }
- }
-
- /**
- * Waits until we have been requested to close the stream.
- */
- private synchronized void waitUntilClosed() {
- waitingForClose = true;
- notify();
- while (! closeRequested) {
- try {
- wait();
- } catch (InterruptedException e) {
- closeRequested = true; // alternate quit signal
- }
- }
- }
-
- /**
- * Writes bytes from the buffer until closed and buffer is empty
- */
- private void writeUntilDone() throws IOException {
- int bytesUntilFlush = -1; // if > 0, then we will flush after that many bytes have been written
- for (;;) {
- int off, len;
- synchronized (this) {
- for (;;) {
- if (closeRequested && length == 0) return; // quit signal
- if (length != 0 || flushRequested) break;
- try {
- wait();
- } catch (InterruptedException e) {
- closeRequested = true; // alternate quit signal
- }
- }
- off = head;
- len = iobuffer.length - head;
- if (len > length) len = length;
- if (flushRequested && bytesUntilFlush < 0) {
- flushRequested = false;
- bytesUntilFlush = length;
- }
- }
-
- // If there are bytes to be written, write them
- if (len != 0) {
- // write out all remaining bytes from the buffer before flushing
- try {
- // the i/o operation might block without releasing the lock,
- // so we do this outside of the synchronized block
- out.write(iobuffer, off, len);
- } catch (InterruptedIOException e) {
- len = e.bytesTransferred;
- }
- }
-
- // If there was a pending flush, do it
- if (bytesUntilFlush >= 0) {
- bytesUntilFlush -= len;
- if (bytesUntilFlush <= 0) {
- // flush the buffer now
- try {
- out.flush();
- } catch (InterruptedIOException e) {
- }
- bytesUntilFlush = -1; // might have been 0
- }
- }
-
- // If bytes were written, update the circular buffer
- if (len != 0) {
- synchronized (this) {
- head = (head + len) % iobuffer.length;
- length -= len;
- notify();
- }
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ContentComparator.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ContentComparator.java
deleted file mode 100644
index 3d81751e0..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ContentComparator.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core.subscribers;
-
-import java.io.*;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.ISubscriberResource;
-import org.eclipse.team.internal.core.Policy;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * This is an internal class that is usd by the <code>ContentComparisonSyncInfoFilter</code>
- * to compare the comtents of the local and remote resources
- */
-public class ContentComparator {
-
- private boolean ignoreWhitespace = false;
-
- public ContentComparator(boolean ignoreWhitespace) {
- this.ignoreWhitespace = ignoreWhitespace;
- }
-
- public boolean compare(Object e1, Object e2, IProgressMonitor monitor) {
- InputStream is1 = null;
- InputStream is2 = null;
- try {
- is1 = getContents(e1, Policy.subMonitorFor(monitor, 50));
- is2 = getContents(e2, Policy.subMonitorFor(monitor, 50));
- return contentsEqual(is1, is2, shouldIgnoreWhitespace());
- } catch(TeamException e) {
- TeamPlugin.log(e);
- return false;
- } finally {
- try {
- try {
- if (is1 != null) {
- is1.close();
- }
- } finally {
- if (is2 != null) {
- is2.close();
- }
- }
- } catch (IOException e) {
- // Ignore
- }
- }
- }
-
- protected boolean shouldIgnoreWhitespace() {
- return ignoreWhitespace;
- }
-
- /**
- * Returns <code>true</code> if both input streams byte contents is
- * identical.
- *
- * @param input1
- * first input to contents compare
- * @param input2
- * second input to contents compare
- * @return <code>true</code> if content is equal
- */
- private boolean contentsEqual(InputStream is1, InputStream is2, boolean ignoreWhitespace) {
- try {
- if (is1 == is2)
- return true;
-
- if (is1 == null && is2 == null) // no byte contents
- return true;
-
- if (is1 == null || is2 == null) // only one has
- // contents
- return false;
-
- while (true) {
- int c1 = is1.read();
- while (shouldIgnoreWhitespace() && isWhitespace(c1))
- c1 = is1.read();
- int c2 = is2.read();
- while (shouldIgnoreWhitespace() && isWhitespace(c2))
- c2 = is2.read();
- if (c1 == -1 && c2 == -1)
- return true;
- if (c1 != c2)
- break;
-
- }
- } catch (IOException ex) {
- } finally {
- try {
- try {
- if (is1 != null) {
- is1.close();
- }
- } finally {
- if (is2 != null) {
- is2.close();
- }
- }
- } catch (IOException e) {
- // Ignore
- }
- }
- return false;
- }
-
- private boolean isWhitespace(int c) {
- if (c == -1)
- return false;
- return Character.isWhitespace((char) c);
- }
-
- private InputStream getContents(Object resource, IProgressMonitor monitor) throws TeamException {
- try {
- if (resource instanceof IFile) {
- return new BufferedInputStream(((IFile) resource).getContents());
- } else if(resource instanceof ISubscriberResource) {
- ISubscriberResource remote = (ISubscriberResource)resource;
- if (!remote.isContainer()) {
- return new BufferedInputStream(remote.getStorage(monitor).getContents());
- }
- }
- return null;
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java
deleted file mode 100644
index 6ed1bb05f..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.core.Policy;
-
-/**
- * This handler collects changes and removals to resources and calculates their
- * synchronization state in a background job. The result is fed input the SyncSetInput.
- *
- * Exceptions that occur when the job is processing the events are collected and
- * returned as part of the Job's status.
- *
- * OPTIMIZATION: look into provinding events with multiple resources instead of
- * one.
- */
-public class SubscriberEventHandler extends BackgroundEventHandler {
- // The set that receives notification when the resource synchronization state
- // has been calculated by the job.
- private SyncSetInputFromSubscriber set;
-
- // Changes accumulated by the event handler
- private List resultCache = new ArrayList();
-
- /**
- * Internal resource synchronization event. Can contain a result.
- */
- class SubscriberEvent extends Event{
- static final int REMOVAL = 1;
- static final int CHANGE = 2;
- static final int INITIALIZE = 3;
- SyncInfo result;
-
- SubscriberEvent(IResource resource, int type, int depth) {
- super(resource, type, depth);
- }
- public SubscriberEvent(
- IResource resource,
- int type,
- int depth,
- SyncInfo result) {
- this(resource, type, depth);
- this.result = result;
- }
- public SyncInfo getResult() {
- return result;
- }
- protected String getTypeString() {
- switch (getType()) {
- case REMOVAL :
- return "REMOVAL"; //$NON-NLS-1$
- case CHANGE :
- return "CHANGE"; //$NON-NLS-1$
- case INITIALIZE :
- return "INITIALIZE"; //$NON-NLS-1$
- default :
- return "INVALID"; //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Create a handler. This will initialize all resources for the subscriber associated with
- * the set.
- * @param set the subscriber set to feed changes into
- */
- public SubscriberEventHandler(SyncSetInputFromSubscriber set) {
- super(
- Policy.bind("SubscriberEventHandler.jobName", set.getSubscriber().getDescription()), //$NON-NLS-1$
- Policy.bind("SubscriberEventHandler.errors", set.getSubscriber().getDescription())); //$NON-NLS-1$
- this.set = set;
- reset(set.getSubscriber().roots(), SubscriberEvent.INITIALIZE);
- }
-
- /**
- * Schedule the job or process the events now.
- */
- public void schedule() {
- JobStatusHandler.schedule(getEventHandlerJob(), TeamSubscriber.SUBSCRIBER_JOB_TYPE);
- }
-
- /**
- * Initialize all resources for the subscriber associated with the set. This will basically recalculate
- * all synchronization information for the subscriber.
- * @param resource
- * @param depth
- */
- public void initialize(IResource[] roots) {
- if (roots == null) {
- roots = set.getSubscriber().roots();
- }
- reset(roots, SubscriberEvent.CHANGE);
- }
-
- /**
- * Called by a client to indicate that a resource has changed and its synchronization state
- * should be recalculated.
- * @param resource the changed resource
- * @param depth the depth of the change calculation
- */
- public void change(IResource resource, int depth) {
- queueEvent(new SubscriberEvent(resource, SubscriberEvent.CHANGE, depth));
- }
-
- /**
- * Called by a client to indicate that a resource has been removed and should be removed. The
- * removal will propagate to the set.
- * @param resource the resource that was removed
- */
- public void remove(IResource resource) {
- queueEvent(
- new SubscriberEvent(resource, SubscriberEvent.REMOVAL, IResource.DEPTH_INFINITE));
- }
-
- /**
- * Collect the calculated synchronization information for the given resource at the given depth. The
- * results are added to the provided list.
- */
- private void collect(
- IResource resource,
- int depth,
- IProgressMonitor monitor,
- List results)
- throws TeamException {
-
- if (resource.getType() != IResource.FILE
- && depth != IResource.DEPTH_ZERO) {
- IResource[] members =
- set.getSubscriber().members(resource);
- for (int i = 0; i < members.length; i++) {
- collect(
- members[i],
- depth == IResource.DEPTH_INFINITE
- ? IResource.DEPTH_INFINITE
- : IResource.DEPTH_ZERO,
- monitor,
- results);
- }
- }
-
- monitor.subTask(Policy.bind("SubscriberEventHandler.2", resource.getFullPath().toString())); //$NON-NLS-1$
- SyncInfo info = set.getSubscriber().getSyncInfo(resource);
- // resource is no longer under the subscriber control
- if (info == null) {
- results.add(
- new SubscriberEvent(resource, SubscriberEvent.REMOVAL, IResource.DEPTH_ZERO));
- } else {
- results.add(
- new SubscriberEvent(resource, SubscriberEvent.CHANGE, IResource.DEPTH_ZERO, info));
- }
- monitor.worked(1);
- }
-
- /**
- * Called to initialize to calculate the synchronization information using the optimized subscriber method. For
- * subscribers that don't support the optimization, all resources in the subscriber are manually re-calculated.
- * @param resources the resources to check
- * @param depth the depth
- * @param monitor
- * @return Event[] the change events
- * @throws TeamException
- */
- private SubscriberEvent[] getAllOutOfSync(
- IResource[] resources,
- int depth,
- IProgressMonitor monitor)
- throws TeamException {
-
- monitor.beginTask(null, 100);
- try {
- SyncInfo[] infos =
- set.getSubscriber().getAllOutOfSync(resources, depth, Policy.subMonitorFor(monitor, 50));
-
- // The subscriber hasn't cached out-of-sync resources. We will have to
- // traverse all resources and calculate their state.
- if (infos == null) {
- List events = new ArrayList();
- IProgressMonitor subMonitor = Policy.infiniteSubMonitorFor(monitor, 50);
- subMonitor.beginTask(null, resources.length);
- for (int i = 0; i < resources.length; i++) {
- collect(
- resources[i],
- IResource.DEPTH_INFINITE,
- subMonitor,
- events);
- }
- return (SubscriberEvent[]) events.toArray(new SubscriberEvent[events.size()]);
- // The subscriber has returned the list of out-of-sync resources.
- } else {
- SubscriberEvent[] events = new SubscriberEvent[infos.length];
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- events[i] =
- new SubscriberEvent(info.getLocal(), SubscriberEvent.CHANGE, depth, info);
- }
- return events;
- }
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Feed the given events to the set. The appropriate method on the set is called
- * for each event type.
- * @param events
- */
- private void dispatchEvents(SubscriberEvent[] events, IProgressMonitor monitor) {
- // this will batch the following set changes until endInput is called.
- set.getSyncSet().beginInput();
- for (int i = 0; i < events.length; i++) {
- SubscriberEvent event = events[i];
- switch (event.getType()) {
- case SubscriberEvent.CHANGE :
- set.collect(event.getResult(), monitor);
- break;
- case SubscriberEvent.REMOVAL :
- if (event.getDepth() == IResource.DEPTH_INFINITE) {
- set.getSyncSet().removeAllChildren(event.getResource());
- } else {
- set.remove(event.getResource());
- }
- break;
- }
- }
- set.getSyncSet().endInput(monitor);
- }
-
- /**
- * Initialize all resources for the subscriber associated with the set. This will basically recalculate
- * all synchronization information for the subscriber.
- * @param type can be Event.CHANGE to recalculate all states or Event.INITIALIZE to perform the
- * optimized recalculation if supported by the subscriber.
- */
- private void reset(IResource[] roots, int type) {
- IResource[] resources = roots;
- for (int i = 0; i < resources.length; i++) {
- queueEvent(new SubscriberEvent(resources[i], type, IResource.DEPTH_INFINITE));
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.BackgroundEventHandler#processEvent(org.eclipse.team.core.subscribers.BackgroundEventHandler.Event, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void processEvent(Event event, IProgressMonitor monitor) throws TeamException {
- // Cancellation is dangerous because this will leave the sync info in a bad state.
- // Purposely not checking -
- int type = event.getType();
- switch (type) {
- case SubscriberEvent.REMOVAL :
- resultCache.add(event);
- break;
- case SubscriberEvent.CHANGE :
- List results = new ArrayList();
- collect(
- event.getResource(),
- event.getDepth(),
- monitor,
- results);
- resultCache.addAll(results);
- break;
- case SubscriberEvent.INITIALIZE :
- monitor.subTask(Policy.bind("SubscriberEventHandler.2", event.getResource().getFullPath().toString())); //$NON-NLS-1$
- SubscriberEvent[] events =
- getAllOutOfSync(
- new IResource[] { event.getResource()},
- event.getDepth(),
- Policy.subMonitorFor(monitor, 64));
- resultCache.addAll(Arrays.asList(events));
- break;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.BackgroundEventHandler#dispatchEvents()
- */
- protected void dispatchEvents(IProgressMonitor monitor) {
- dispatchEvents((SubscriberEvent[]) resultCache.toArray(new SubscriberEvent[resultCache.size()]), monitor);
- resultCache.clear();
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncInfoStatistics.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncInfoStatistics.java
deleted file mode 100644
index dd484ae01..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncInfoStatistics.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.internal.core.subscribers;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.team.core.subscribers.SyncInfo;
-
-/**
- * Counts SyncInfo states and allows for easy querying for different sync states.
- */
-public class SyncInfoStatistics {
- // {int sync kind -> int number of infos with that sync kind in this sync set}
- protected Map stats = new HashMap();
-
- /**
- * Count this sync kind. Only the type of the sync info is stored.
- * @param info the new info
- */
- public void add(SyncInfo info) {
- // update statistics
- Long count = (Long)stats.get(new Integer(info.getKind()));
- if(count == null) {
- count = new Long(0);
- }
- stats.put(new Integer(info.getKind()), new Long(count.longValue() + 1));
- }
-
- /**
- * Remove this sync kind.
- * @param info the info type to remove
- */
- public void remove(SyncInfo info) {
- // update stats
- Integer kind = new Integer(info.getKind());
- Long count = (Long)stats.get(kind);
- if(count == null) {
- // error condition, shouldn't be removing if we haven't added yet
- // programmer error calling remove before add.
- } else {
- long newCount = count.intValue() - 1;
- if(newCount > 0) {
- stats.put(kind, new Long(newCount));
- } else {
- stats.remove(kind);
- }
- }
- }
-
- /**
- * Return the count of sync infos for the specified sync kind. A mask can be used to acucmulate
- * counts for specific directions or change types.
- * To return the number of outgoing changes:
- * long outgoingChanges = stats.countFor(SyncInfo.OUTGOING, SyncInfo.DIRECTION_MASK);
- *
- * @param kind the sync kind for which to return the count
- * @param mask the mask applied to the stored sync kind
- * @return the number of sync info types added for the specific kind
- */
- public long countFor(int kind, int mask) {
- if(mask == 0) {
- Long count = (Long)stats.get(new Integer(kind));
- return count == null ? 0 : count.longValue();
- } else {
- Iterator it = stats.keySet().iterator();
- long count = 0;
- while (it.hasNext()) {
- Integer key = (Integer) it.next();
- if((key.intValue() & mask) == kind) {
- count += ((Long)stats.get(key)).intValue();
- }
- }
- return count;
- }
- }
-
- /**
- * Clear the statistics counts. All calls to countFor() will return 0 until new
- * sync infos are added.
- */
- public void clear() {
- stats.clear();
- }
-
- /**
- * For debugging
- */
- public String toString() {
- StringBuffer out = new StringBuffer();
- Iterator it = stats.keySet().iterator();
- while (it.hasNext()) {
- Integer kind = (Integer) it.next();
- out.append(SyncInfo.kindToString(kind.intValue()) + ": " + ((Long)stats.get(kind)) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- return out.toString();
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncInfoWorkingSetFilter.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncInfoWorkingSetFilter.java
deleted file mode 100644
index bb6e27d7a..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncInfoWorkingSetFilter.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core.subscribers;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.core.TeamPlugin;
-
-/**
- * WorkingSet filter for a SyncSet.
- */
-public class SyncInfoWorkingSetFilter extends FastSyncInfoFilter {
-
- private IResource[] resources;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.SyncInfoFilter#select(org.eclipse.team.core.subscribers.SyncInfo)
- */
- public boolean select(SyncInfo info) {
- // if there's no set, the resource is included
- if (isEmpty()) return true;
- return isIncluded(info.getLocal());
- }
-
- /*
- * Answer true if the given resource is included in the working set
- */
- private boolean isIncluded(IResource resource) {
- // otherwise, if their is a parent of the resource in the set,
- // it is included
- List result = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- IResource setResource = resources[i];
- if (isParent(setResource, resource)) {
- return true;
- }
- }
- return false;
- }
-
- private boolean isParent(IResource parent, IResource child) {
- return (parent.getFullPath().isPrefixOf(child.getFullPath()));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.sync.views.SyncSetInputFromSubscriber#getRoots()
- */
- public IResource[] getRoots(TeamSubscriber subscriber) {
- IResource[] roots = subscriber.roots();
- if (isEmpty()) return roots;
-
- // filter the roots by the selected working set
- Set result = new HashSet();
- for (int i = 0; i < roots.length; i++) {
- IResource resource = roots[i];
- result.addAll(Arrays.asList(getIntersectionWithSet(subscriber, resource)));
- }
- return (IResource[]) result.toArray(new IResource[result.size()]);
- }
-
- /*
- * Answer the intersection between the given resource and it's children
- * and the receiver's working set.
- */
- private IResource[] getIntersectionWithSet(TeamSubscriber subscriber, IResource resource) {
- List result = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- IResource setResource = resources[i];
- if (setResource != null) {
- if (isParent(resource, setResource)) {
- try {
- if (subscriber.isSupervised(setResource)) {
- result.add(setResource);
- }
- } catch (TeamException e) {
- // Log the exception and add the resource to the list
- TeamPlugin.log(e);
- result.add(setResource);
- }
- } else if (isParent(setResource, resource)) {
- result.add(resource);
- }
- }
- }
- return (IResource[]) result.toArray(new IResource[result.size()]);
- }
-
- public void setWorkingSet(IResource[] resources) {
- this.resources = resources;
- }
-
- public IResource[] getWorkingSet() {
- return this.resources;
- }
-
- private boolean isEmpty() {
- return resources == null || resources.length == 0;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetChangedEvent.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetChangedEvent.java
deleted file mode 100644
index 811e7f562..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetChangedEvent.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.subscribers.*;
-
-/**
- * This event keeps track of the changes in a sync set
- */
-public class SyncSetChangedEvent implements ISyncInfoSetChangeEvent {
-
- private SyncInfoSet set;
-
- // List that accumulate changes
- // SyncInfo
- private Set changedResources = new HashSet();
- private Set removedResources = new HashSet();
- private Set addedResources = new HashSet();
-
- // IResources
- private Set removedRoots = new HashSet();
- private Set addedRoots = new HashSet();
-
- private boolean reset = false;
-
- public SyncSetChangedEvent(SyncInfoSet set) {
- super();
- this.set = set;
- }
-
- public void added(SyncInfo info) {
- if (removedResources.contains(info.getLocal())) {
- // A removal followed by an addition is treated as a change
- removedResources.remove(info.getLocal());
- changed(info);
- } else {
- addedResources.add(info);
- }
- }
-
- public void removed(IResource resource, SyncInfo info) {
- if (changedResources.contains(info)) {
- // No use in reporting the change since it has subsequently been removed
- changedResources.remove(info);
- } else if (addedResources.contains(info)) {
- // An addition followed by a removal can be dropped
- addedResources.remove(info);
- return;
- }
- removedResources.add(resource);
- }
-
- public void changed(SyncInfo info) {
- changedResources.add(info);
- }
-
- public void removedRoot(IResource root) {
- if (addedRoots.contains(root)) {
- // The root was added and removed which is a no-op
- addedRoots.remove(root);
- } else if (isDescendantOfAddedRoot(root)) {
- // Nothing needs to be done since no listeners ever knew about the root
- } else {
- // check if the root is a child of an existing root
- // (in which case it need not be added).
- // Also, remove any exisiting roots that are children
- // of the new root
- for (Iterator iter = removedRoots.iterator(); iter.hasNext();) {
- IResource element = (IResource) iter.next();
- // check if the root is already in the list
- if (root.equals(element)) return;
- if (isParent(root, element)) {
- // the root invalidates the current element
- iter.remove();
- } else if (isParent(element, root)) {
- // the root is a child of an existing element
- return;
- }
- }
- removedRoots.add(root);
- }
- }
-
- private boolean isParent(IResource root, IResource element) {
- return root.getFullPath().isPrefixOf(element.getFullPath());
- }
-
- public void addedRoot(IResource parent) {
- if (removedRoots.contains(parent)) {
- // The root was re-added. Just removing the removedRoot
- // may not give the proper event.
- // Since we can't be sure, just force a reset.
- reset();
- } else {
- // only add the root if their isn't a higher root in the list already
- if (!isDescendantOfAddedRoot(parent)) {
- addedRoots.add(parent);
- }
- }
- }
-
- private boolean isDescendantOfAddedRoot(IResource resource) {
- for (Iterator iter = addedRoots.iterator(); iter.hasNext();) {
- IResource root = (IResource) iter.next();
- if (isParent(root, resource)) {
- // There is a higher added root already in the list
- return true;
- }
- }
- return false;
- }
-
- public SyncInfo[] getAddedResources() {
- return (SyncInfo[]) addedResources.toArray(new SyncInfo[addedResources.size()]);
- }
-
- public IResource[] getAddedRoots() {
- return (IResource[]) addedRoots.toArray(new IResource[addedRoots.size()]);
- }
-
- public SyncInfo[] getChangedResources() {
- return (SyncInfo[]) changedResources.toArray(new SyncInfo[changedResources.size()]);
- }
-
- public IResource[] getRemovedResources() {
- return (IResource[]) removedResources.toArray(new IResource[removedResources.size()]);
- }
-
- public IResource[] getRemovedRoots() {
- return (IResource[]) removedRoots.toArray(new IResource[removedRoots.size()]);
- }
-
- public SyncInfoSet getSet() {
- return set;
- }
-
- public void reset() {
- reset = true;
- }
-
- public boolean isReset() {
- return reset;
- }
-
- public boolean isEmpty() {
- return changedResources.isEmpty() && removedResources.isEmpty() && addedResources.isEmpty() && removedRoots.isEmpty() && addedRoots.isEmpty();
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInput.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInput.java
deleted file mode 100644
index 3ff5ea4cc..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInput.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.core.Policy;
-
-/**
- * This is the superclass for all SyncSet input providers
- */
-public abstract class SyncSetInput {
-
- private MutableSyncInfoSet syncSet = new MutableSyncInfoSet();
- private SyncInfoFilter filter = new FastSyncInfoFilter();
-
- public MutableSyncInfoSet getSyncSet() {
- return syncSet;
- }
-
- /**
- * This method is invoked from reset to get all the sync information from
- * the input source.
- */
- protected abstract void fetchInput(IProgressMonitor monitor) throws TeamException;
-
- /**
- * The input is no longer being used. Disconnect it from its source.
- */
- public abstract void disconnect();
-
- /**
- * Reset the input. This will clear the current contents of the sync set and
- * obtain the contents from the input source.
- */
- public void reset(IProgressMonitor monitor) throws TeamException {
- try {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- syncSet.beginInput();
- syncSet.clear();
- fetchInput(Policy.subMonitorFor(monitor, 90));
- } finally {
- getSyncSet().endInput(Policy.subMonitorFor(monitor, 10));
- monitor.done();
- }
- }
-
- /**
- * Collect the change in the provided sync info.
- */
- protected void collect(SyncInfo info, IProgressMonitor monitor) {
- boolean isOutOfSync = filter.select(info, monitor);
- SyncInfo oldInfo = syncSet.getSyncInfo(info.getLocal());
- boolean wasOutOfSync = oldInfo != null;
- if (isOutOfSync) {
- if (wasOutOfSync) {
- syncSet.changed(info);
- } else {
- syncSet.add(info);
- }
- } else if (wasOutOfSync) {
- syncSet.remove(info.getLocal());
- }
- }
-
- protected void remove(IResource resource) {
- SyncInfo oldInfo = syncSet.getSyncInfo(resource);
- boolean wasOutOfSync = oldInfo != null;
- if (oldInfo != null) {
- syncSet.remove(resource);
- }
- }
-
- public SyncInfoFilter getFilter() {
- return filter;
- }
-
- public void setFilter(SyncInfoFilter filter) {
- this.filter = filter;
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInputFromSubscriber.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInputFromSubscriber.java
deleted file mode 100644
index c7c5c947e..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInputFromSubscriber.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.core.subscribers;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-
-/**
- * Records resource synchronization changes from a Team subscriber. The actual changes
- * are calculated via the SubscriberEventHandler and stored in this input.
- */
-public class SyncSetInputFromSubscriber extends SyncSetInput {
-
- private TeamSubscriber subscriber;
-
- public SyncSetInputFromSubscriber(TeamSubscriber subscriber) {
- this.subscriber = subscriber;
- }
-
- public void disconnect() {
- }
-
- public TeamSubscriber getSubscriber() {
- return subscriber;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.sync.views.SyncSetInput#fetchInput(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void fetchInput(IProgressMonitor monitor) throws TeamException {
- // don't calculate changes. The SubscriberEventHandler will fetch the
- // input in a job and update this sync set when the changes are
- // calculated.
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInputFromSyncSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInputFromSyncSet.java
deleted file mode 100644
index 50ecb8302..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SyncSetInputFromSyncSet.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.internal.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-
-/**
- * Ths class uses the contents of one sync set as the input of another.
- */
-public class SyncSetInputFromSyncSet extends SyncSetInput implements ISyncSetChangedListener {
-
- SyncInfoSet inputSyncSet;
-
- public SyncSetInputFromSyncSet(SyncInfoSet set) {
- this.inputSyncSet = set;
- inputSyncSet.addSyncSetChangedListener(this);
- }
-
- public SyncInfoSet getInputSyncSet() {
- return inputSyncSet;
- }
-
- public void disconnect() {
- if (inputSyncSet == null) return;
- inputSyncSet.removeSyncSetChangedListener(this);
- inputSyncSet = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ccvs.syncviews.views.AbstractSyncSet#initialize(java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void fetchInput(IProgressMonitor monitor) throws TeamException {
- if (inputSyncSet == null) return;
- SyncInfo[] infos = inputSyncSet.members();
- for (int i = 0; i < infos.length; i++) {
- collect(infos[i], monitor);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ccvs.syncviews.views.ISyncSetChangedListener#syncSetChanged(org.eclipse.team.ccvs.syncviews.views.SyncSetChangedEvent)
- */
- public void syncSetChanged(ISyncInfoSetChangeEvent event, IProgressMonitor monitor) {
- MutableSyncInfoSet syncSet = getSyncSet();
- try {
- syncSet.beginInput();
- if (event.isReset()) {
- syncSet.clear();
- }
- syncSetChanged(event.getChangedResources(), monitor);
- syncSetChanged(event.getAddedResources(), monitor);
-
- remove(event.getRemovedResources());
- } finally {
- getSyncSet().endInput(monitor);
- }
- }
-
- private void syncSetChanged(SyncInfo[] infos, IProgressMonitor monitor) {
- for (int i = 0; i < infos.length; i++) {
- collect(infos[i], monitor);
- }
- }
-
- private void remove(IResource[] resources) {
- for (int i = 0; i < resources.length; i++) {
- remove(resources[i]);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/WorkingSetSyncSetInput.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/WorkingSetSyncSetInput.java
deleted file mode 100644
index 487f653d8..000000000
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/WorkingSetSyncSetInput.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.internal.core.subscribers;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.SyncInfoSet;
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-
-public class WorkingSetSyncSetInput extends SyncSetInputFromSyncSet {
-
- private SyncInfoWorkingSetFilter workingSetFilter = new SyncInfoWorkingSetFilter();
-
- public WorkingSetSyncSetInput(SyncInfoSet set) {
- super(set);
- setFilter(workingSetFilter);
- }
-
- public void setWorkingSet(IResource[] resources) {
- workingSetFilter.setWorkingSet(resources);
- try {
- // TODO::
- reset(new NullProgressMonitor());
- } catch (TeamException e) {
- // TODO: ??
- }
- }
-
- public IResource[] getWorkingSet() {
- return workingSetFilter.getWorkingSet();
- }
-
- public IResource[] roots(TeamSubscriber subscriber) {
- return workingSetFilter.getRoots(subscriber);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/.classpath b/bundles/org.eclipse.team.cvs.core/.classpath
deleted file mode 100644
index 065ac06e1..000000000
--- a/bundles/org.eclipse.team.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/bundles/org.eclipse.team.cvs.core/.cvsignore b/bundles/org.eclipse.team.cvs.core/.cvsignore
deleted file mode 100644
index c5e82d745..000000000
--- a/bundles/org.eclipse.team.cvs.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/.options b/bundles/org.eclipse.team.cvs.core/.options
deleted file mode 100644
index 24500e974..000000000
--- a/bundles/org.eclipse.team.cvs.core/.options
+++ /dev/null
@@ -1,18 +0,0 @@
-# Debugging options for the org.eclipse.team.cvs.core plugin.
-
-# Turn on debugging for the plugin.
-org.eclipse.team.cvs.core/debug=false
-
-# Shows when meta-files are modified by a 3rd party
-org.eclipse.team.cvs.core/metafiles=false
-
-# Shows cvs client/server protocol
-org.eclipse.team.cvs.core/cvsprotocol=true
-# Shows stream debugging information
-org.eclipse.team.cvs.core/threading=false
-
-# Shows dirty state caching debugging information
-org.eclipse.team.cvs.core/dirtycaching=false
-
-# Shows dirty state caching debugging information
-org.eclipse.team.cvs.core/syncchangeevents=false \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/.project b/bundles/org.eclipse.team.cvs.core/.project
deleted file mode 100644
index 1afc27365..000000000
--- a/bundles/org.eclipse.team.cvs.core/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.team.cvs.core</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>
- </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.core/about.html b/bundles/org.eclipse.team.cvs.core/about.html
deleted file mode 100644
index 6e56f29ef..000000000
--- a/bundles/org.eclipse.team.cvs.core/about.html
+++ /dev/null
@@ -1,81 +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>Ant 1.4.1</b></p>
-<p>The plug-in is based on software developed by The Apache Software Foundation as part of the Jakarta project.</p>
-
-<p>The class PServerConnection &quot;Ant Derivative Work&quot; contained in teamcvs.jar and teamcvssrc.zip is based on Ant code.</p>
-
-<p>The Ant Derivative Work is:</p>
-
-<blockquote>Copyright (c) 1999 The Apache Software Foundation. All rights reserved.</blockquote>
-
-<p>Your use of the Ant Derivative Work, is subject to the terms and conditions of the
-<a href="http://jakarta.apache.org/ant/manual/LICENSE">Apache Software License 1.1</a>.
-More specifically:</p>
-<blockquote>
- 1. Redistributions of source code must retain the above copyright notice, this list of<br>
- conditions and the following disclaimer.<br>
-<br>
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of<br>
- conditions and the following disclaimer in the documentation and/or other materials<br>
- provided with the distribution.<br>
-<br>
- 3. The end-user documentation included with the redistribution, if any, must include the<br>
- following acknowledgment:<br>
- <blockquote>
- &quot;This product includes software developed by the Apache Software Foundation<br>
- (<a href="http://www.apache.org/">http://www.apache.org/</a>).&quot;
- </blockquote>
- Alternately, this acknowledgment may appear in the software itself, if and wherever such<br>
- third-party acknowledgments normally appear.<br>
-<br>
- 4. The names &quot;Ant&quot; and &quot;Apache Software Foundation&quot; must not be used to endorse or<br>
- promote products derived from this software without prior written permission. For written<br>
- permission, please contact <a href="mailto:apache@apache.org">apache@apache.org</a>.<br>
-<br>
- 5. Products derived from this software may not be called &quot;Apache&quot;, nor may &quot;Apache&quot; appear<br>
- in their name, without prior written permission of the Apache Software Foundation.<br>
-<br>
- THIS SOFTWARE IS PROVIDED &quot;AS IS&quot; AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<br>
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR<br>
- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS<br>
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR<br>
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br>
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON<br>
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br>
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF<br>
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-</blockquote>
-
-<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.team.cvs.core/build.properties b/bundles/org.eclipse.team.cvs.core/build.properties
deleted file mode 100644
index ec96f1819..000000000
--- a/bundles/org.eclipse.team.cvs.core/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
-bin.includes=about.html,plugin.xml,plugin.properties,*.jar,.options
-source.cvs.jar=src/
-src.includes=about.html
diff --git a/bundles/org.eclipse.team.cvs.core/buildnotes_cvs.html b/bundles/org.eclipse.team.cvs.core/buildnotes_cvs.html
deleted file mode 100644
index 352e3ebb2..000000000
--- a/bundles/org.eclipse.team.cvs.core/buildnotes_cvs.html
+++ /dev/null
@@ -1,728 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<title>Eclipse CVS Plugin - Build notes</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">
-
-<table border="0" cellspacing="5" cellpadding="2" width="100%">
- <tbody>
- <tr>
- <td align="left" width="72%"> <font class="indextop"> Eclipse CVS</font><br><font class="indexsub"> build notes</font></td>
- </tr>
- </tbody>
-</table>
-
-<table border="0" cellspacing="5" cellpadding="2" width="100%">
- <tbody>
- <tr><td>Here are the build notes for the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-vcm-home/main.html">CVS Plugin</a>
- which includes changes to <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.core/">org.eclipse.team.cvs.core</a>,
- <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ui/">org.eclipse.team.cvs.ui</a>,
- <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ssh/">org.eclipse.team.cvs.ssh</a>.
-</td></tr>
-
-<tr><td align="left" valign="top" colspan="2" bgcolor="#0080c0" width="100%"><b><font face="Arial,Helvetica"><font color="#ffffff">3.0 Builds</font></font></b></td>
-</tr><tr>
- <td>
- <!-- ####### START OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <h4>September 23rd 2003 - 3.0 (I20030923)</h4>
- <h4>Interesting changes</h4>
- <ul>
- <li>CVS operations performed from the Synchronize View are run in the
- background. Depending on the operation, the resources affected by
- the CVS command are locked for modification and other operations run
- may block (e.g. saving a file or creating a new file) until the background
- job is done. The use-case of a background job blocking annother operation
- is being addressed by an improved progress monitor that is yet to
- be released.</li>
- <li>A CVS repository location can be configured to use different locations
- for <strong>reading</strong> and <strong>writing</strong>. This can
- speed up CVS operations for which most of the time is consumed by
- costly extssh authentication and only read access is required (e.g.
- opening remote files, browsing a remote repository, opening a compare
- editor). To configure a read and write locations, first create a read
- location (e.g. for Eclipse developers, a useful read location would
- be the anonymous pserver location), then from the CVS Repositories
- View select the Properties page of a location and configure the read
- or write locations.</li>
- <li>The CVS History View can now be linked to the active editor. The
- linking is enabled for editors with the following inputs: IFileEditorInput,
- RemoteFileInput (e.g. created when browing remote CVS files), and
- SyncInfoEditorInput (e.g. created when browing changes in a compare
- editor from the Synchronize View).</li>
- <li>The CVS synchronize action now opens the new Synchronize View.</li>
- </ul>
- <h4>Fixed bugs</h4>
- <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-09-01&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a>
- bugzilla query to list all fixed bugs in this build.</p>
- <h4><img src="http://dev.eclipse.org/images/Adarrow.gif" nosave="" border=0 height=16 width=16 alt="">
- August 6th 2003 - 3.0 (I20030806)</h4>
- <h4>Interesting changes</h4>
- <ul>
- <li>Annotate view action switches to the CVS perspective. This allows
- the command to layout the views (history, editor, annotate) for linking.</li>
- <li>Update and Commit actions in the new Synchronize View no longer
- prompt for overwriting changes. Instead, an <strong>Override and Commit</strong>
- action has been added. To override local changes use the <strong>Replace
- With</strong> CVS actions.</li>
- <li>The new Synchronize View can be activated via a <strong>CVS &gt;
- Work In Progress</strong> preference. When this is enabled, the new
- Synchronize View will restrict the resources it handles based on a
- working set created when ever a <strong>Team &gt; Synchronize view
- Repository</strong> is run. This will allow large workspaces with
- many CVS projects to be responsive.</li>
- <li>To help debug problems with the CVS plugin a preference has been
- added to enable/disable the CVS protocol trace to stdout. Previously
- you had to create an options file and restart Eclipse.</li>
- </ul>
- <h4>Fixed bugs (27 fixed)</h4>
- <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-07-18&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a>
- bugzilla query to list all fixed bugs in this build.</p>
- <!-- ####### END OF 3.0 BUILD SUBMISSIONS BLOCK -->
- <br>
- <br> </td>
- </tr>
-
-<tr><td align="left" valign="top" colspan="2" bgcolor="#0080c0" width="100%"><b><font face="Arial,Helvetica"><font color="#ffffff">
-Archive for 2.0 and 2.1 Builds</font></font></b></td>
-</tr><tr><td>
-
-<p class="MsoNormal">Build submission for Integration Build 20021116</p>
-
-<h2>What's new in this build</h2>
-
-<p>Eclipse now supports CVS Watch/Edit. There is a CVS preference for indicating that projects should
-be checked out as read-only and there are Edit and Unedit actions available in the Team menu. Also,
-Eclipse will automatically perform a "cvs edit" on files that are modified in an open editor.
-
-<p>The CVS Repositories view has undergone a few more changes. Modules now appear as folders
-under HEAD with their own icon to differentiate them from regular
-folders. Also, refreshing the tags for a module may not work properly because this feature requires the use of an
-auto-refresh file. If your modules are not appearing in the version or branch categories, perform
-a "Configure Branches and Versions" on the module and assign the tags to the module and/or set the
-auto-refresh file.
-
-<p>Several optimizations have also been performed on the CVS plugin. CVS now uses the new light-weight
-decorators provided by Platform UI. Also, the determination of a folder's dirty status has been optimized
-using caching. The caching scheme uses a combination of persistant and session properties (facilities
-provided by Platform Core). Persistant properties have a certain overhead so that the first query of
-the dirty status of a folder will be longer running then subsequent queries.
-
-<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-<p class="MsoNormal">CVS build I20021112 Nov 12, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20021112</p>
-
-<h2>What's new in this build</h2>
-
-<p>The CVS Repositories view has undergone some changes. Here is a summary of the changes:</p>
-<ul>
-<li>Users can now define working sets which will limit the number of projects shown in the view.
-<li>Branches only contain projects that are "known" to be in the branch. Similarly, the Versions category
-has been changed and now displayes all the "known" projects in a version (as opposed to providing a list of
-verions).
-<li>The version and branch items will start out empty and must be populated by the user. This can be
-done by performing a "Refresh Branches and Versions" from the popup menu of a repository location or
-by using "Configure Branches and Tags". The user should define a working set before refreshing the tags
-of the repository location since the refresh operation will search each project in the working set (or
-each project in the repository if no working set is defined).
-<li>Comparing multiple versions of the same project can be done by choosing "Compare With..." from
-popup menu of any folder or file in the view.
-<li>There is no longer a "Show Modules" mode. Instead, there is a Modules category under HEAD which can
-be expanded to see the modules defined in the CVSROOT/modules file.
-</ul>
-<p>Further work will be done on this view to fine-tune the tag discovery mechanisms.
-</p>
-
-<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-<p class="MsoNormal">CVS build I20021015 Oct 15, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20021015</p>
-
-<h2>What's new in this build</h2>
-
-<p>Deleted files can now be queried and restored from the repository using the "Team > Restore from Repository..."
-command, which is available on CVS projects and folders.
-</p>
-
-<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-<p class="MsoNormal">CVS build I20021008 Oct 8, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20021008</p>
-
-<h2>What's new in this build</h2>
-
-<p>Several improvements related to support of CVS modules have been added.
-<ul>
-<li>"Checkout Into..."
-can be used from the CVS Repositories view to check out a folder into an existing project.</li>
-<li>Folders, such as those loaded using "Checkout Into...", can be disconnected from CVS control
-from the folder's CVS properties page, allowing the folder to be removed from a local project
-without resulting in outgoing deletions.</li>
-<li>A project shared with CVS can now be configured to not fetch absent directories on update
-(i.e. previously, "cvs update" was always performed with "-d". Now a project can be configured
-to perform updates without "-d").
-</ul>
-</p>
-
-<p>Also, "Tag with Existing" can now be performed in the resource history view.</p>
-<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-<p class="MsoNormal">CVS build I20020917 Sept 17, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020917</p>
-
-<h2>What's new in this build</h2>
-
-<p>A "quick sync" button has been added to the CVS action set which will display the list
-of all projects shared with CVS and allow the user to choose which projects to sync, either
-directly or by working set.
-</p>
-<p>Performing a commit in the sync view or the navigator will present the user with a
-dialog that shows the user any new resources that are not yet under version control or not yet
-ignored. The user can select which resources they would like to add before the commit
-is performed.
-</p>
-<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-<p class="MsoNormal">CVS build I20020909 Sept 09, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020910</p>
-
-<h2>What's new in this build</h2>
-
-<p>When using the EXT connection method, the parameter format can be specified
-on the EXT Connection Method preference page. The parameter list can include
-variables representing the corresponding values from the location. The variables
-are user, password, host and port. The default parameter list is "{host} -l {user}".
-</p>
-<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-<p class="MsoNormal">CVS build I20020517 May 17 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020517</p>
-
-<h2>What's new in this build</h2>
-
-<p>Starting with this build, if you "Check Out As..." on a project from the
-repository which has no .project file, you will be prompted to specify what
-type of project you would like to create. (A typical example is to create
-a Java project at this point).<br>
-</p>
-<p>Also new in this build is the ability to select "Share Project..." on
-a project for which remote content already exists. Previously, sharing the
-project would automatically try to import your files into the repository;
-now, it detects that remote files already exists and opens the sync view
-for you to reconcile the differences.<br>
-</p>
-<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build I20020430 April 30 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020430</p>
-
-<h2>What's new in this build</h2>
-
-<p>Added support for moving CVS tags. Ths fuctionality is available in the
-Repositories view under "Tag with Existing Tag". This allows one to change
-a version lineup.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build I20020423 April 23 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020423</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">Branching/Merging changes:<br>
- </p>
-
-<ul>
- <li>merge allowed on multiple selection of non-overlapping resources,
- merge results show in same merge editor (e.g. you no longer need X editors
- to merge X projects). We should do the same for compare.</li>
-
-</ul>
-
-<p class="MsoNormal"></p>
-
-<ul>
- <li>merge allowed on all resource types</li>
-
-</ul>
-
-<p class="MsoNormal"></p>
-
-<ul>
- <li>branching allowed on all resource types</li>
-
-</ul>
-
-<p class="MsoNormal"></p>
-
-<ul>
- <li>"replace with" allowed on all resource types with multiple selection</li>
-
-</ul>
-
-<p class="MsoNormal"></p>
-
-<ul>
- <li>warning dialog added when ever a user creates a project with mixed
- tags. It warns about the implied CVS behavior. Can be turned off.</li>
-
-</ul>
-
-<p class="MsoNormal"></p>
-
-<ul>
- <li>tags only shown if different than parent tag (reduces tag clutter
- and makes it more obvious when a tag is different)<br>
- </li>
-
-</ul>
-
-<p class="MsoNormal"></p>
-
-<ul>
- <li>get revision for files allowed from history/replace/compare dialogs,
- to revert from a sticky revision use "replace with tag" and select the branch
- you are working on<br>
- </li>
-
-</ul>
-
-<p class="MsoNormal"></p>
-
-<ul>
- <li>CVS text decorations consolidated and as a result the text decorations
- in the sync view will follow the users preferences (except for the dirty
-flag which is not shown in the sync view.</li>
-
-</ul>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build I20020409 April 9 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020409</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">GZIP compression support for CVS communication has been
- introduced in this build. It is turned on by default and can be configured
- on the CVS preference page.<br>
- </p>
-
-<p class="MsoNormal"><br>
- Support for communicating with CVS NT servers has been improved. Note
- that CVS NT is still not a supported platform. CVS support should now work
- much better with CVS NT versions 1.11.1.1 and higher, including 1.11.1.3.<br>
- </p>
-
-<p class="MsoNormal"><br>
- Support for branch and version tags in the UI has been improved. See
-the "Configure Tags" dialog, which is available nearly anywhere in the UI
-where tags are needed. (e.g. in the Compare With Tag action, Replace With
-Tag action, and in the Repositories View).<br>
- </p>
-
-<p class="MsoNormal"><br>
- Cancellation and progress have been greatly improved. For example, it
- should be possible to cancel connections to unresponsive servers without
- waiting for operations to time out.<br>
- </p>
-
-<p class="MsoNormal"><br>
- The CVS Console is much more usable. Output from different actions is
- easily distinguished, and color coding of server responses has been added.<br>
- </p>
- <br>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build I20020402 April 2 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020402</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">The CVS plug-ins are now turned on by default. The old
- VCM plug-ins are still included in the build but are turned off by default.<br>
- <br>
- </p>
-
-<p class="MsoNormal">Additions, deletions and moved resorces are handled
-differently in this build:</p>
-
-<p class="MsoNormal"><br>
- </p>
-
-<p class="MsoNormal">1) The user will be prompted with a warning on deletion
- of files to<br>
- indicate that the file will be marked as an outgoing deletion. An<br>
- information marker will appear in the task view which indicates this.
- The<br>
- user can use the Auto Fix item in the task's context menu to restore
- the<br>
- file (from the server or local history) or commit the deletion. The
-user<br>
- can also commit the deletion as before (Commit on ancestor in Team
-menu or<br>
- Sync view) as well.<br>
- <br>
- 2) A similar warning will appear for folder deletions. However, the
-folders<br>
- themselves will not be deleted and files in the folders will appear
-as<br>
- outgoing deletions. On commit, any empty folders that contained outgoing<br>
- deletions will be pruned.<br>
- <br>
- 3) When files are added to a folder shared with CVS, an information
-marker<br>
- will appear in the task view until the file is either added to CVS
-control<br>
- or ignored (Autofix items are available for this).<br>
- <br>
- Options are available in the CVS preferences page to disable both the<br>
- prompting and markers.<br>
- </p>
-
-<p class="MsoNormal"><br>
- </p>
-
-<p class="MsoNormal"><br>
- The CVS support now takes advantage of the new Core facilities for
-private resources. As such, CVS/ folders will be marked as private and
-should not show up anywhere in the UI. Also, if you copy or move a folder
-structure in the workspace, the CVS/ folders will be removed from the destination.<br>
- </p>
-
-<p class="MsoNormal"><br>
- In order for the CVS/ folders to be marked as private, you will need
- to delete the projects in your workspace and check them out from the repository
- again. Failure to do so will simply result in CVS/ folders showing up in
- the UI.<br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build I20020312 &#8211; March 12, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020312</p>
-
-<h2>What's new in this build</h2>
-
-<p class="MsoNormal">The CVS plug-ins are now turned on by default. The old
- VCM plug-ins are still included in the build but are turned off by default.<br>
- More performance improvements for the decorators.</p>
-
-<p class="MsoNormal">The actions in the Sync view have been changed. A summary:</p>
-
-<p class="MsoNormal"><br>
- Incoming mode:<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Update from Repository
-(operates ONLY on incoming nodes that are not conflicting)<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override and Update (operates
- on conflicts)<br>
- Outgoing mode:<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Commit (operates only
-on outgoing nodes that are not conflicting)<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override and Commit (operates
- on conflicts)<br>
- Both mode:<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Update from Repository
-(operates ONLY on incoming nodes that are not conflicting)<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override and Update (operates
- on conflicts *and* on outgoing <br>
- changes)<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Commit (operates only
-on outgoing nodes that are not conflicting)<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override and Commit (operates
- on conflicts *and* on incoming <br>
- changes)</p>
-
-<p class="MsoNormal"> </p>
-
-<p class="MsoNormal"><br>
- </p>
-
-<p class="MsoNormal">A preference was added that allows the user to more
-accurately determine how files are compared.</p>
-
-<p class="MsoNormal">A new action was added to the merge view which allows
- the user to correctly merge conflicting files automatically (previously
- we had a bug which prevented this).</p>
-
-<p class="MsoNormal"><br>
- Resolved 54 bugs.</p>
-
-<p class="MsoNormal"><br>
- <a
- href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;resolution=FIXED&amp;resolution=INVALID&amp;resolution=WONTFIX&amp;resolution=DUPLICATE&amp;resolution=WORKSFORME&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfield=resolution&amp;chfieldfrom=2002-03-06+&amp;chfieldto=2002-03-12&amp;chfieldvalue=&amp;product=Platform&amp;component=VCM&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;namedcmd=Bugs+I%27ve+Logged&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">
- Click here</a> to see the bugs that were fixed.</p>
-
-<p class="MsoNormal"><br>
- </p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build I20020305 &#8211; March 5, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020305</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">CVS Decorators have been greatly improved - images are
- now cached and disposed. </p>
-
-<p class="MsoNormal"> Resolved 74 bugs, fixing 47.</p>
-
-<p class="MsoNormal"><br>
- <a
- href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;resolution=FIXED&amp;resolution=INVALID&amp;resolution=WONTFIX&amp;resolution=DUPLICATE&amp;resolution=WORKSFORME&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfield=resolution&amp;chfieldfrom=2002-02-26+&amp;chfieldto=2002-03-06&amp;chfieldvalue=&amp;product=Platform&amp;component=VCM&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;namedcmd=Bugs+I%27ve+Logged&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">
- Click here</a> to see the bugs that were fixed.</p>
-
-<p class="MsoNormal"><br>
- All Team plug-ins are turned off by default. If you wish to
-use Team support,</p>
-
-<ol style="margin-top: 0in;" start="1" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml </li>
-
-</ol>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build I20020226 &#8211; February 26, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020226</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">Added :ext: support, similar to the support that was
- in 1.0. See the CVS-&gt;Ext Connection Method preferences page to configure
- ext support.</p>
-
-<p class="MsoNormal"><br>
- Fixed 25 bugs.</p>
-
-<p class="MsoNormal"><br>
- <a
- href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;resolution=FIXED&amp;resolution=INVALID&amp;resolution=WONTFIX&amp;resolution=DUPLICATE&amp;resolution=WORKSFORME&amp;email1=&amp;emailtype1=substring&amp;email2=&amp;emailtype2=substring&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfield=resolution&amp;chfieldfrom=2002-02-15+&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Platform&amp;version=2.0&amp;component=VCM&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;namedcmd=Fixed+since+last+date&amp;newqueryname=Fixed+since+last+date&amp;order=Reuse+same+sort+as+last+time">
- Click here</a> to see the bugs that were fixed.</p>
-
-<p class="MsoNormal"><br>
- All Team plug-ins are turned off by default. If you wish to
-use Team support,</p>
-
-<ol style="margin-top: 0in;" start="1" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml </li>
-
-</ol>
- <!--[if !supportEmptyParas]-->
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build I20020214 &#8211; February 14, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020214</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">Bug fixes:</p>
-
-<p class="MsoNormal">Outgoing changes show up in Merge editor (9746)</p>
-
-<p class="MsoNormal">Incoming additions from another branch have wrong timestamp
- (9748)</p>
-
-<p class="MsoNormal">Bin folders show up as outgoing additions! (9788)</p>
-
-<p class="MsoNormal">Create<span style="">&nbsp; </span> branch dialog
- says "Name must not be null" for a project version, even if the version
- option is disabled (9691)</p>
-
-<p class="MsoNormal">Should not ignore managed resources (9502)</p>
-
-<p class="MsoNormal">Directory named core ignored!!! (9486)</p>
-
-<p class="MsoNormal">Change in semantics to validateEdit (9802)</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
-
-<p class="MsoNormal">All Team plug-ins are turned off by default. If you wish
-to use Team support,</p>
-
-<ol style="margin-top: 0in;" start="1" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml </li>
-
-</ol>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build V2_0_6 &#8211; February 12, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020212</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">48 bugs fixed.</p>
-
-<p class="MsoNormal">Global ignore facility added.</p>
-
-<p class="MsoNormal">Extensive sync view rewrite. Workflow has been improved,
- and in incoming/outgoing mode the user can override the direction of
- any change. Auto-merging of conflicts is now supported as well.</p>
-
-<p class="MsoNormal">User can add files/directories to .cvsignore automatically
- from the sync view or navigator by right clicking and selecting &#8220;Ignore&#8221;.</p>
-
-<p class="MsoNormal">Many bug fixes and improvements.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
-
-<p class="MsoNormal">All Team plug-ins are turned off by default. If you wish
-to use Team support,</p>
-
-<ol style="margin-top: 0in;" start="6" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off
- to plugins/org.eclipse.team.core/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off
- to plugins/org.eclipse.team.cvs.core/plugin.xml </li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ssh/plugin.xml </li>
-
-</ol>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
-
-<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
-
-<p class="MsoNormal">CVS build V2_0_2 &#8211; January 15, 2002</p>
-
-<p class="MsoNormal">Build submission for Integration Build 20020115</p>
-
-<h2>What's new in this drop</h2>
-
-<p class="MsoNormal">This is the initial release for the CVS support plug-ins.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
-
-<p class="MsoNormal">The plug-ins are turned off by default. If you wish to
-use CVS support,</p>
-
-<ol style="margin-top: 0in;" start="11" type="1">
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off
- to plugins/org.eclipse.team.ui/plugin.xml</li>
- <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off
- to plugins/org.eclipse.team.cvs.ui/plugin.xml</li>
-
-</ol>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
-
-<p class="MsoNormal">Please report any problems to the VCM team, and use the
-VCM component for bug tracking.</p>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
-
-<p class="MsoNormal">The following features are operating near their 1.0 level
-of functionality:</p>
-
-<ul style="margin-top: 0in;" type="disc">
- <li class="MsoNormal" style=""> The Synchronize
-view</li>
- <li class="MsoNormal" style=""> The Resource History
- view</li>
- <li class="MsoNormal" style=""> The Repositories
- view</li>
-
-</ul>
-
-<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
-
-<p class="MsoNormal">The following features differ from the 1.0 functionality:</p>
-
-<ul style="margin-top: 0in;" type="disc">
- <li class="MsoNormal" style=""> Decorators. To
-see version history in the Navigator, use Window-&gt;Decorators-&gt;CVS</li>
- <li class="MsoNormal" style=""> CVS metadata. The
- metadata now resides in CVS/ folders in every shared folder. These
- folders are hidden by default in the Navigator. If you copy entire
- directories from within the Navigator, you MUST remove the CVS/
- directories from the target after copying, otherwise CVS operations
- will behave unexpectedly.</li>
-
-</ul>
-
-<p class="MsoNormal"></p>
-
-<p class="MsoNormal">Run <a
- href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;resolution=FIXED&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;priority=P4&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugi%20">
- this</a> query to determine which bugs have been fixed since
-January 7<sup> th</sup>. If you wish to narrow the search, edit the
-query and change the dates.</p>
-
-
-</td>
-</tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/bundles/org.eclipse.team.cvs.core/doc/hglegal.htm b/bundles/org.eclipse.team.cvs.core/doc/hglegal.htm
deleted file mode 100644
index c59811321..000000000
--- a/bundles/org.eclipse.team.cvs.core/doc/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, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.team.cvs.core/doc/ngibmcpy.gif b/bundles/org.eclipse.team.cvs.core/doc/ngibmcpy.gif
deleted file mode 100644
index 61cef4852..000000000
--- a/bundles/org.eclipse.team.cvs.core/doc/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.core/doc/org_eclipse_team_cvs_core.html b/bundles/org.eclipse.team.cvs.core/doc/org_eclipse_team_cvs_core.html
deleted file mode 100644
index 5426e6995..000000000
--- a/bundles/org.eclipse.team.cvs.core/doc/org_eclipse_team_cvs_core.html
+++ /dev/null
@@ -1,15 +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="Build">
- <title>Eclipse CVS Core Extension Points</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<center><h1>Eclipse CVS Core</h1></center>
-The extension points declared by this plug-in are for internal use only.
-
-<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/bundles/org.eclipse.team.cvs.core/plugin.properties b/bundles/org.eclipse.team.cvs.core/plugin.properties
deleted file mode 100644
index 8dfac4eeb..000000000
--- a/bundles/org.eclipse.team.cvs.core/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.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 Team Provider Core
-cvsNature=CVS Team Nature \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/plugin.xml b/bundles/org.eclipse.team.cvs.core/plugin.xml
deleted file mode 100644
index 4e4a351c4..000000000
--- a/bundles/org.eclipse.team.cvs.core/plugin.xml
+++ /dev/null
@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.team.cvs.core"
- name="%pluginName"
- version="3.0.0"
- provider-name="%providerName"
- class="org.eclipse.team.internal.ccvs.core.CVSProviderPlugin">
-
- <runtime>
- <library name="cvs.jar">
- <export name="*"/>
- <packages prefixes="org.eclipse.team.internal.ccvs.core"/>
- </library>
- </runtime>
- <requires>
- <import plugin="org.eclipse.core.runtime.compatibility"/>
- <import plugin="org.eclipse.core.resources"/>
- <import plugin="org.eclipse.team.core"/>
- </requires>
-
-
-<!-- *************** Extension Points **************** -->
- <extension-point id="authenticator" name="Authenticator"/>
- <extension-point id="connectionmethods" name="ConnectionMethods"/>
- <extension-point id="filemodificationvalidator" name="FileModificationValidator"/>
-
-<!-- *************** Connection Methods **************** -->
- <extension
- id="pserver"
- point="org.eclipse.team.cvs.core.connectionmethods">
- <adapter>
- <run
- class="org.eclipse.team.internal.ccvs.core.connection.PServerConnectionMethod">
- <parameter
- name="trace"
- value="false">
- </parameter>
- </run>
- </adapter>
- </extension>
- <extension
- id="ext"
- point="org.eclipse.team.cvs.core.connectionmethods">
- <adapter>
- <run
- class="org.eclipse.team.internal.ccvs.core.connection.ExtConnectionMethod">
- <parameter
- name="trace"
- value="false">
- </parameter>
- </run>
- </adapter>
- </extension>
-<!-- *************** Repository Provider **************** -->
- <extension
- point="org.eclipse.team.core.repository">
- <repository
- typeClass="org.eclipse.team.internal.ccvs.core.CVSTeamProviderType"
- class="org.eclipse.team.internal.ccvs.core.CVSTeamProvider"
- id="org.eclipse.team.cvs.core.cvsnature">
- </repository>
- </extension>
- <extension
- point="org.eclipse.team.core.subscriber">
- <subscriber
- class="org.eclipse.team.internal.ccvs.core.CVSSubscriberFactory">
- </subscriber>
- </extension>
-<!-- *************** Resource patterns ignored by CVS **************** -->
- <extension
- point="org.eclipse.team.core.ignore">
- <ignore
- enabled="true"
- pattern="RCS">
- </ignore>
- <ignore
- enabled="true"
- pattern="RCSLOG">
- </ignore>
- <ignore
- enabled="true"
- pattern="SCCS">
- </ignore>
- <ignore
- enabled="true"
- pattern="CVS.adm">
- </ignore>
- <ignore
- enabled="true"
- pattern="tags">
- </ignore>
- <ignore
- enabled="true"
- pattern="TAGS">
- </ignore>
- <ignore
- enabled="true"
- pattern=".make.state">
- </ignore>
- <ignore
- enabled="true"
- pattern=".nse_depinfo">
- </ignore>
- <ignore
- enabled="true"
- pattern="*~">
- </ignore>
- <ignore
- enabled="true"
- pattern="#*">
- </ignore>
- <ignore
- enabled="true"
- pattern=".#*">
- </ignore>
- <ignore
- enabled="true"
- pattern=",*">
- </ignore>
- <ignore
- enabled="true"
- pattern="_$*">
- </ignore>
- <ignore
- enabled="true"
- pattern="*$">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.old">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.bak">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.BAK">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.orig">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.rej">
- </ignore>
- <ignore
- enabled="true"
- pattern=".del-*">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.a">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.olb">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.obj">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.so">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.exe">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.Z">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.elc">
- </ignore>
- <ignore
- enabled="true"
- pattern="*.ln">
- </ignore>
- <ignore
- enabled="true"
- pattern=".DS_Store">
- </ignore>
- <ignore
- enabled="false"
- pattern="core">
- </ignore>
- </extension>
-
-<!-- ************ File Types *************** -->
- <extension
- point="org.eclipse.team.core.fileTypes">
- <fileTypes
- type="text"
- extension="cvsignore">
- </fileTypes>
- </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSAnnotateBlock.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSAnnotateBlock.java
deleted file mode 100644
index c1cfd9036..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSAnnotateBlock.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * Model for a CVS Annotate block.
- */
-public class CVSAnnotateBlock {
-
- String revision = ""; //$NON-NLS-1$
- String user = ""; //$NON-NLS-1$
- int startLine = 0;
- int endLine = 0;
- int sourceOffset = 0;
- boolean valid = false;
-
- /**
- * @return
- */
- public boolean isValid() {
- return valid;
- }
-
- /**
- * @return index of line where source starts.
- */
- public int getSourceOffset() {
- return sourceOffset;
- }
-
- /**
- * @return int the last source line of the receiver
- */
- public int getEndLine() {
- return endLine;
- }
-
- /**
- * @param line
- */
- public void setEndLine(int line) {
- endLine = line;
- }
-
- /**
- * @return the revision the receiver occured in.
- */
- public String getRevision() {
- return revision;
- }
-
- /**
- * @return the first source line number of the receiver
- */
- public int getStartLine() {
- return startLine;
- }
-
-
- /**
- * Parase a CVS Annotate output line and instantiate the receiver
- * @param line a CVS Annotate output line
- */
- public CVSAnnotateBlock(String line, int lineNumber) {
- super();
-
- startLine = lineNumber;
- endLine = lineNumber;
-
- int index = line.indexOf(' ');
- if (index == -1) {
- return;
- }
- revision = line.substring(0, index);
-
- index = line.indexOf("(", index); //$NON-NLS-1$
- if (index == -1) {
- return;
- }
-
- int index2 = line.indexOf(' ', index);
- if (index2 == -1) {
- return;
- }
-
- user = line.substring(index + 1, index2);
-
- index = line.indexOf(":", index2); //$NON-NLS-1$
- if (index == -1) {
- return;
- }
-
- sourceOffset = index + 2;
- valid = true;
- }
-
- /**
- * Used by the default LabelProvider to display objects in a List View
- */
- public String toString() {
- int delta = endLine - startLine + 1;
- String line = Policy.bind("CVSAnnotateBlock.4"); //$NON-NLS-1$
- if (delta == 1) {
- line = Policy.bind("CVSAnnotateBlock.5"); //$NON-NLS-1$
- }
- return Policy.bind("CVSAnnotateBlock.6", new Object[] { //$NON-NLS-1$
- user,
- revision,
- String.valueOf(delta),
- line
- });
- }
-
- /**
- * Answer true if the receiver contains the given line number, false otherwse.
- * @param i a line number
- * @return true if receiver contains a line number.
- */
- public boolean contains(int i) {
- return (i >= startLine && i <= endLine);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSCompareSubscriber.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSCompareSubscriber.java
deleted file mode 100644
index fd5ac3a6b..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSCompareSubscriber.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.ITeamResourceChangeListener;
-import org.eclipse.team.core.subscribers.TeamDelta;
-import org.eclipse.team.core.subscribers.utils.SessionSynchronizationCache;
-import org.eclipse.team.core.subscribers.utils.SynchronizationCache;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * This subscriber is used when comparing the local workspace with its
- * corresponding remote.
- */
-public class CVSCompareSubscriber extends CVSSyncTreeSubscriber implements ITeamResourceChangeListener {
-
- public static final String QUALIFIED_NAME = CVSProviderPlugin.ID + ".compare"; //$NON-NLS-1$
- private static final String UNIQUE_ID_PREFIX = "compare-"; //$NON-NLS-1$
-
- private CVSTag tag;
- private SynchronizationCache remoteSynchronizer;
- private IResource[] resources;
-
- public CVSCompareSubscriber(IResource[] resources, CVSTag tag) {
- super(getUniqueId(), Policy.bind("CVSCompareSubscriber.2", tag.getName()), Policy.bind("CVSCompareSubscriber.3")); //$NON-NLS-1$ //$NON-NLS-2$
- this.resources = resources;
- this.tag = tag;
- initialize();
- }
-
- private void initialize() {
- remoteSynchronizer = new SessionSynchronizationCache();
- CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber().addListener(this);
- }
-
- public void dispose() {
- CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber().removeListener(this);
- remoteSynchronizer.dispose();
- }
-
- private static QualifiedName getUniqueId() {
- String uniqueId = Long.toString(System.currentTimeMillis());
- return new QualifiedName(QUALIFIED_NAME, UNIQUE_ID_PREFIX + uniqueId); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getRemoteTag()
- */
- protected CVSTag getRemoteTag() {
- return tag;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getBaseTag()
- */
- protected CVSTag getBaseTag() {
- // No base tag needed since it's a two way compare
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getBaseSynchronizationCache()
- */
- protected SynchronizationCache getBaseSynchronizationCache() {
- // No base cache needed since it's a two way compare
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getRemoteSynchronizationCache()
- */
- protected SynchronizationCache getRemoteSynchronizationCache() {
- return remoteSynchronizer;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#isThreeWay()
- */
- public boolean isThreeWay() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#roots()
- */
- public IResource[] roots() {
- return resources;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.ITeamResourceChangeListener#teamResourceChanged(org.eclipse.team.core.subscribers.TeamDelta[])
- */
- public void teamResourceChanged(TeamDelta[] deltas) {
- List outgoingDeltas = new ArrayList(deltas.length);
- for (int i = 0; i < deltas.length; i++) {
- TeamDelta delta = deltas[i];
- if ((delta.getFlags() & TeamDelta.ROOT_REMOVED) != 0) {
- IResource resource = delta.getResource();
- outgoingDeltas.addAll(Arrays.asList(handleRemovedRoot(resource)));
- } else if ((delta.getFlags() & TeamDelta.SYNC_CHANGED) != 0) {
- IResource resource = delta.getResource();
- try {
- if (isSupervised(resource)) {
- outgoingDeltas.add(new TeamDelta(this, delta.getFlags(), resource));
- }
- } catch (TeamException e) {
- // Log and ignore
- CVSProviderPlugin.log(e);
- }
- }
- }
-
- fireTeamResourceChange((TeamDelta[]) outgoingDeltas.toArray(new TeamDelta[outgoingDeltas.size()]));
- }
-
- private TeamDelta[] handleRemovedRoot(IResource removedRoot) {
- // Determine if any of the roots of the compare are affected
- List removals = new ArrayList(resources.length);
- for (int j = 0; j < resources.length; j++) {
- IResource root = resources[j];
- if (removedRoot.getFullPath().isPrefixOf(root.getFullPath())) {
- // The root is no longer managed by CVS
- removals.add(root);
- }
- }
- if (removals.isEmpty()) {
- return new TeamDelta[0];
- }
-
- // Adjust the roots of the subscriber
- List newRoots = new ArrayList(resources.length);
- newRoots.addAll(Arrays.asList(resources));
- newRoots.removeAll(removals);
- resources = (IResource[]) newRoots.toArray(new IResource[newRoots.size()]);
-
- // Create the deltas for the removals
- TeamDelta[] deltas = new TeamDelta[removals.size()];
- for (int i = 0; i < deltas.length; i++) {
- deltas[i] = new TeamDelta(this, TeamDelta.ROOT_REMOVED, (IResource)removals.get(i));
- }
- return deltas;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#isSupervised(org.eclipse.core.resources.IResource)
- */
- public boolean isSupervised(IResource resource) throws TeamException {
- if (super.isSupervised(resource)) {
- if (!resource.exists() && getRemoteSynchronizationCache().getSyncBytes(resource) == null) {
- // Exclude conflicting deletions
- return false;
- }
- for (int i = 0; i < resources.length; i++) {
- IResource root = resources[i];
- if (root.getFullPath().isPrefixOf(resource.getFullPath())) {
- return true;
- }
- }
- }
- return false;
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getCacheFileContentsHint()
- */
- protected boolean getCacheFileContentsHint() {
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSException.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSException.java
deleted file mode 100644
index 3aaf0a21f..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSException.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.TeamException;
-
-/**
- * A checked expection representing a failure in the CVS plugin.
- * <p>
- * CVS exceptions contain a status object describing the cause of
- * the exception.
- * </p>
- *
- * @see IStatus
- */
-public class CVSException extends TeamException {
-
- public CVSException(CoreException e) {
- super(e);
- }
-
- public CVSException(int severity, int code, String message, Throwable e) {
- super(new CVSStatus(severity, code, message, e));
- }
-
- public CVSException(int severity, int code, String message) {
- this(severity, code, message, null);
- }
-
- public CVSException(String message) {
- super(new CVSStatus(IStatus.ERROR, UNABLE, message, null));
- }
-
- public CVSException(String message, Throwable e) {
- this(IStatus.ERROR, UNABLE, message, e);
- }
-
- public CVSException(IStatus status) {
- super(status);
- }
-
- /*
- * Static helper methods for creating exceptions
- */
- public static CVSException wrapException(IResource resource, String message, IOException e) {
- // NOTE: we should record the resource somehow
- // We should also inlcude the IO message
- return new CVSException(new CVSStatus(IStatus.ERROR, IO_FAILED, message, e));
- }
-
- /*
- * Static helper methods for creating exceptions
- */
- public static CVSException wrapException(IResource resource, String message, CoreException e) {
- return new CVSException(new CVSStatus(IStatus.ERROR, e.getStatus().getCode(), message, e));
- }
-
- /*
- * Static helper methods for creating exceptions
- */
- public static CVSException wrapException(Exception e) {
- Throwable t = e;
- if (e instanceof InvocationTargetException) {
- Throwable target = ((InvocationTargetException) e).getTargetException();
- if (target instanceof CVSException) {
- return (CVSException) target;
- }
- t = target;
- }
- return new CVSException(new CVSStatus(IStatus.ERROR, UNABLE, t.getMessage() != null ? t.getMessage() : "", t)); //$NON-NLS-1$
- }
-
- public static CVSException wrapException(CoreException e) {
- if (e instanceof CVSException) {
- return (CVSException)e;
- }
- return new CVSException(e);
- }
-
- public CoreException toCoreException() {
- IStatus status = getStatus();
- return new CoreException(new Status(status.getSeverity(), status.getPlugin(), 0, status.getMessage(), this));
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java
deleted file mode 100644
index 62b3df68c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.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.internal.ccvs.core;
-
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.utils.SynchronizationCache;
-import org.eclipse.team.core.subscribers.utils.SynchronizationSyncBytesCache;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFile;
-import org.eclipse.team.internal.ccvs.core.syncinfo.CVSSynchronizationCache;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * A CVSMergeSubscriber is responsible for maintaining the remote trees for a merge into
- * the workspace. The remote trees represent the CVS revisions of the start and end
- * points (version or branch) of the merge.
- *
- * This subscriber stores the remote handles in the resource tree sync info slot. When
- * the merge is cancelled this sync info is cleared.
- *
- * A merge can persist between workbench sessions and thus can be used as an
- * ongoing merge.
- *
- * TODO: Is the merge subscriber interested in workspace sync info changes?
- * TODO: Do certain operations (e.g. replace with) invalidate a merge subscriber?
- * TODO: How to ensure that sync info is flushed when merge roots are deleted?
- */
-public class CVSMergeSubscriber extends CVSSyncTreeSubscriber implements IResourceChangeListener, ITeamResourceChangeListener {
-
- public static final String QUALIFIED_NAME = "org.eclipse.team.cvs.ui.cvsmerge-participant"; //$NON-NLS-1$
- private static final String UNIQUE_ID_PREFIX = "merge-"; //$NON-NLS-1$
-
- private CVSTag start, end;
- private List roots;
- private SynchronizationCache remoteSynchronizer;
- private SynchronizationSyncBytesCache mergedSynchronizer;
- private SynchronizationCache baseSynchronizer;
-
- public CVSMergeSubscriber(IResource[] roots, CVSTag start, CVSTag end) {
- this(getUniqueId(), roots, start, end);
- }
-
- private static QualifiedName getUniqueId() {
- String uniqueId = Long.toString(System.currentTimeMillis());
- return new QualifiedName(QUALIFIED_NAME, "CVS" + UNIQUE_ID_PREFIX + uniqueId); //$NON-NLS-1$
- }
-
- public CVSMergeSubscriber(QualifiedName id, IResource[] roots, CVSTag start, CVSTag end) {
- super(id, Policy.bind("CVSMergeSubscriber.2", start.getName(), end.getName()), Policy.bind("CVSMergeSubscriber.4")); //$NON-NLS-1$ //$NON-NLS-2$
- this.start = start;
- this.end = end;
- this.roots = new ArrayList(Arrays.asList(roots));
- initialize();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSWorkspaceSubscriber#initialize()
- */
- private void initialize() {
- QualifiedName id = getId();
- String syncKeyPrefix = id.getLocalName();
- remoteSynchronizer = new CVSSynchronizationCache(new QualifiedName(SYNC_KEY_QUALIFIER, syncKeyPrefix + end.getName()));
- baseSynchronizer = new CVSSynchronizationCache(new QualifiedName(SYNC_KEY_QUALIFIER, syncKeyPrefix + start.getName()));
- mergedSynchronizer = new SynchronizationSyncBytesCache(new QualifiedName(SYNC_KEY_QUALIFIER, syncKeyPrefix + "0merged")); //$NON-NLS-1$
-
- ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
- CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber().addListener(this);
- }
-
- protected SyncInfo getSyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote) throws TeamException {
- return new CVSMergeSyncInfo(local, base, remote, this);
- }
-
- public void merged(IResource[] resources) throws TeamException {
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- internalMerged(resource);
- }
- fireTeamResourceChange(TeamDelta.asSyncChangedDeltas(this, resources));
- }
-
- private void internalMerged(IResource resource) throws TeamException {
- byte[] remoteBytes = remoteSynchronizer.getSyncBytes(resource);
- if (remoteBytes == null) {
- mergedSynchronizer.setRemoteDoesNotExist(resource);
- } else {
- mergedSynchronizer.setSyncBytes(resource, remoteBytes);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.TeamSubscriber#cancel()
- */
- public void cancel() {
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
- remoteSynchronizer.dispose();
- baseSynchronizer.dispose();
- mergedSynchronizer.dispose();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.TeamSubscriber#roots()
- */
- public IResource[] roots() {
- return (IResource[]) roots.toArray(new IResource[roots.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.TeamSubscriber#isSupervised(org.eclipse.core.resources.IResource)
- */
- public boolean isSupervised(IResource resource) throws TeamException {
- return getBaseSynchronizationCache().getSyncBytes(resource) != null || getRemoteSynchronizationCache().getSyncBytes(resource) != null;
- }
-
- public CVSTag getStartTag() {
- return start;
- }
-
- public CVSTag getEndTag() {
- return end;
- }
-
- /*
- * What to do when a root resource for this merge changes?
- * Deleted, Move, Copied
- * Changed in a CVS way (tag changed, revision changed...)
- * Contents changed by user
- * @see IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- try {
- IResourceDelta delta = event.getDelta();
- if(delta != null) {
- delta.accept(new IResourceDeltaVisitor() {
- public boolean visit(IResourceDelta delta) throws CoreException {
- IResource resource = delta.getResource();
-
- if (resource.getType()==IResource.PROJECT) {
- IProject project = (IProject)resource;
- if (!project.isAccessible()) {
- return false;
- }
- if ((delta.getFlags() & IResourceDelta.OPEN) != 0) {
- return false;
- }
- if (RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId()) == null) {
- return false;
- }
- }
-
- if (roots.contains(resource)) {
- if (delta.getKind() == IResourceDelta.REMOVED || delta.getKind() == IResourceDelta.MOVED_TO) {
- cancel();
- }
- // stop visiting children
- return false;
- }
- // keep visiting children
- return true;
- }
- });
- }
- } catch (CoreException e) {
- CVSProviderPlugin.log(e.getStatus());
- }
- }
-
- /**
- * Return whether the given resource has been merged with its
- * corresponding remote.
- * @param resource tghe loca resource
- * @return boolean
- * @throws TeamException
- */
- public boolean isMerged(IResource resource) throws TeamException {
- byte[] mergedBytes = mergedSynchronizer.getSyncBytes(resource);
- byte[] remoteBytes = remoteSynchronizer.getSyncBytes(resource);
- if (mergedBytes == null) {
- return (remoteBytes == null
- && mergedSynchronizer.isRemoteKnown(resource)
- && remoteSynchronizer.isRemoteKnown(resource));
- }
- return Util.equals(mergedBytes, remoteBytes);
- }
-
- /*
- * Currently only the workspace subscriber knows when a project has been deconfigured. We will listen for these events
- * and remove the root then forward to merge subscriber listeners.
- * (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.ITeamResourceChangeListener#teamResourceChanged(org.eclipse.team.core.subscribers.TeamDelta[])
- */
- public void teamResourceChanged(TeamDelta[] deltas) {
- for (int i = 0; i < deltas.length; i++) {
- TeamDelta delta = deltas[i];
- switch(delta.getFlags()) {
- case TeamDelta.ROOT_REMOVED:
- IResource resource = delta.getResource();
- if(roots.remove(resource)) {
- fireTeamResourceChange(new TeamDelta[] {delta});
- }
- break;
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getRemoteTag()
- */
- protected CVSTag getRemoteTag() {
- return getEndTag();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getBaseTag()
- */
- protected CVSTag getBaseTag() {
- return getStartTag();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getBaseSynchronizationCache()
- */
- protected SynchronizationCache getBaseSynchronizationCache() {
- return baseSynchronizer;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getRemoteSynchronizationCache()
- */
- protected SynchronizationCache getRemoteSynchronizationCache() {
- return remoteSynchronizer;
- }
-
- protected boolean getCacheFileContentsHint() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#refreshBase(org.eclipse.core.resources.IResource[], int, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IResource[] refreshBase(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException {
- // Only refresh the base of a resource once as it should not change
- List unrefreshed = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (!baseSynchronizer.isRemoteKnown(resource)) {
- unrefreshed.add(resource);
- }
- }
- if (unrefreshed.isEmpty()) {
- monitor.done();
- return new IResource[0];
- }
- IResource[] refreshed = super.refreshBase((IResource[]) unrefreshed.toArray(new IResource[unrefreshed.size()]), depth, monitor);
- return refreshed;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#refreshRemote(org.eclipse.core.resources.IResource[], int, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IResource[] refreshRemote(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException {
- monitor.beginTask(null, 100);
- try {
- IResource[] refreshed = super.refreshRemote(resources, depth, Policy.subMonitorFor(monitor, 50));
- compareWithRemote(refreshed, Policy.subMonitorFor(monitor, 50));
- return refreshed;
- } finally {
- monitor.done();
- }
- }
-
- /*
- * Mark as merged any local resources whose contents match that of the remote resource.
- */
- private void compareWithRemote(IResource[] refreshed, IProgressMonitor monitor) throws CVSException, TeamException {
- // For any remote changes, if the revision differs from the local, compare the contents.
- if (refreshed.length == 0) return;
- SyncInfoFilter.ContentComparisonSyncInfoFilter contentFilter =
- new SyncInfoFilter.ContentComparisonSyncInfoFilter();
- monitor.beginTask(null, refreshed.length * 100);
- for (int i = 0; i < refreshed.length; i++) {
- IResource resource = refreshed[i];
- if (resource.getType() == IResource.FILE) {
- ICVSFile local = CVSWorkspaceRoot.getCVSFileFor((IFile)resource);
- byte[] localBytes = local.getSyncBytes();
- byte[] remoteBytes = remoteSynchronizer.getSyncBytes(resource);
- if (remoteBytes != null
- && localBytes != null
- && local.exists()
- && !ResourceSyncInfo.getRevision(remoteBytes).equals(ResourceSyncInfo.getRevision(localBytes))
- && ! contentFilter.select(getSyncInfo(resource), Policy.subMonitorFor(monitor, 100))) {
- // The contents are equals so mark the file as merged
- internalMerged(resource);
- }
- }
- }
- monitor.done();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SyncTreeSubscriber#getBaseResource(org.eclipse.core.resources.IResource)
- */
- public ISubscriberResource getBaseResource(IResource resource) throws TeamException {
- // Use the merged bytes for the base if there are some
- byte[] mergedBytes = mergedSynchronizer.getSyncBytes(resource);
- if (mergedBytes != null) {
- byte[] parentBytes = baseSynchronizer.getSyncBytes(resource.getParent());
- if (parentBytes != null) {
- return RemoteFile.fromBytes(resource, mergedBytes, parentBytes);
- }
- }
- return super.getBaseResource(resource);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java
deleted file mode 100644
index 2e9615455..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Created on Jun 18, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.team.internal.ccvs.core;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-
-/**
- * @author JLemieux
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class CVSMergeSyncInfo extends CVSSyncInfo {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncInfo#handleDeletionConflicts(int)
- */
- protected int handleDeletionConflicts(int kind) {
- // (see bug 40053).
- if(kind == (SyncInfo.CONFLICTING | SyncInfo.DELETION | SyncInfo.PSEUDO_CONFLICT)) {
- return SyncInfo.IN_SYNC;
- }
- return kind;
- }
-
- protected int calculateKind() throws TeamException {
- // Report merged resources as in-sync
- if (((CVSMergeSubscriber)getSubscriber()).isMerged(getLocal())) {
- return IN_SYNC;
- }
-
- int kind = super.calculateKind();
-
- // Report outgoing resources as in-sync
- if((kind & DIRECTION_MASK) == OUTGOING) {
- return IN_SYNC;
- }
-
- return kind;
- }
-
- public CVSMergeSyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote, TeamSubscriber subscriber) throws TeamException {
- super(local, base, remote, subscriber);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncInfo#makeOutgoing(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus makeOutgoing(IProgressMonitor monitor) throws TeamException {
- // Make the resource outgoing by marking it as merged with the subscriber
- CVSMergeSubscriber subscriber = (CVSMergeSubscriber)getSubscriber();
- subscriber.merged(new IResource[] {getLocal() });
- return Status.OK_STATUS;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java
deleted file mode 100644
index 06939ce99..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java
+++ /dev/null
@@ -1,767 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.RemoteContentsCache;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.client.Command.QuietOption;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.FileModificationManager;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.BuildCleanupListener;
-import org.eclipse.team.internal.ccvs.core.util.KnownRepositories;
-import org.eclipse.team.internal.ccvs.core.util.SyncFileChangeListener;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-public class CVSProviderPlugin extends Plugin {
-
- // preference names
- public static final String READ_ONLY = "cvs.read.only"; //$NON-NLS-1$
-
- // external command to run for ext connection method
- public static final String DEFAULT_CVS_RSH = "ssh"; //$NON-NLS-1$
- // external command parameters
- public static final String DEFAULT_CVS_RSH_PARAMETERS = "{host} -l {user}"; //$NON-NLS-1$
- // remote command to run for ext connection method
- public static final String DEFAULT_CVS_SERVER = "cvs"; //$NON-NLS-1$
- // determines if empty directories received from the server should be pruned.
- public static final boolean DEFAULT_PRUNE = true;
- // determines if the user is prompted for confirmation before moving tags during a tag operation.
- public static final boolean DEFAULT_CONFIRM_MOVE_TAG = true;
- // determines if new directories should be discovered during update.
- public static final boolean DEFAULT_FETCH = true;
- // communication timeout with the server
- public static final int DEFAULT_TIMEOUT = 60;
- // file transfer compression level (0 - 9)
- public static final int DEFAULT_COMPRESSION_LEVEL = 0;
- // default text keyword substitution mode
- public static final KSubstOption DEFAULT_TEXT_KSUBST_OPTION = Command.KSUBST_TEXT_EXPAND;
-
- // cvs plugin extension points and ids
- public static final String ID = "org.eclipse.team.cvs.core"; //$NON-NLS-1$
-
- public static final QualifiedName CVS_WORKSPACE_SUBSCRIBER_ID = new QualifiedName("org.eclipse.team.cvs.ui.cvsworkspace-participant", "syncparticipant"); //$NON-NLS-1$ //$NON-NLS-2$
- public static final String PT_AUTHENTICATOR = "authenticator"; //$NON-NLS-1$
- public static final String PT_CONNECTIONMETHODS = "connectionmethods"; //$NON-NLS-1$
- public static final String PT_FILE_MODIFICATION_VALIDATOR = "filemodificationvalidator"; //$NON-NLS-1$
-
- private QuietOption quietness;
- private int compressionLevel = DEFAULT_COMPRESSION_LEVEL;
- private KSubstOption defaultTextKSubstOption = DEFAULT_TEXT_KSUBST_OPTION;
- private int communicationsTimeout = DEFAULT_TIMEOUT;
- private boolean pruneEmptyDirectories = DEFAULT_PRUNE;
- private boolean fetchAbsentDirectories = DEFAULT_FETCH;
- private boolean promptOnFileDelete = true;
- private boolean promptOnFolderDelete = true;
- private boolean replaceUnmanaged = true;
- private boolean repositoriesAreBinary = false;
- private String cvsRshCommand = DEFAULT_CVS_RSH;
- private String cvsRshParameters = DEFAULT_CVS_RSH_PARAMETERS;
- private String cvsServer = DEFAULT_CVS_SERVER;
- private IConsoleListener consoleListener;
- private boolean determineVersionEnabled = true;
- private boolean confirmMoveTagEnabled = true;
-
- private static volatile CVSProviderPlugin instance;
-
- // CVS specific resource delta listeners
- private BuildCleanupListener addDeleteMoveListener;
- private FileModificationManager fileModificationManager;
- private SyncFileChangeListener metaFileSyncListener;
-
- private static final String REPOSITORIES_STATE_FILE = ".cvsProviderState"; //$NON-NLS-1$
- // version numbers for the state file (a positive number indicates version 1)
- private static final int REPOSITORIES_STATE_FILE_VERSION_2 = -1;
- private static List decoratorEnablementListeners = new ArrayList();
-
- private CVSWorkspaceSubscriber cvsWorkspaceSubscriber;
-
- /**
- * The identifier for the CVS nature
- * (value <code>"org.eclipse.team.cvs.core.nature"</code>).
- * The presence of this nature on a project indicates that it is
- * CVS-capable.
- *
- * @see org.eclipse.core.resources.IProject#hasNature
- */
- private static final String NATURE_ID = ID + ".cvsnature"; //$NON-NLS-1$
-
- // File used to idicate if the workbench was shut down properly or not
- private static final String CRASH_INDICATION_FILE = ".running"; //$NON-NLS-1$
- private boolean crash;
-
- public synchronized CVSWorkspaceSubscriber getCVSWorkspaceSubscriber() {
- if (cvsWorkspaceSubscriber == null) {
- cvsWorkspaceSubscriber = new CVSWorkspaceSubscriber(
- CVS_WORKSPACE_SUBSCRIBER_ID,
- Policy.bind("CVSProviderPlugin.20"), //$NON-NLS-1$
- Policy.bind("CVSProviderPlugin.21")); //$NON-NLS-1$
- }
- return cvsWorkspaceSubscriber;
- }
-
- /**
- * @return
- */
- public boolean isConfirmMoveTagEnabled() {
- return confirmMoveTagEnabled;
- }
-
- /**
- * @param confirmMoveTag
- */
- public void setConfirmMoveTagEnabled(boolean confirmMoveTag) {
- this.confirmMoveTagEnabled = confirmMoveTag;
- }
-
- /**
- * Constructor for CVSProviderPlugin.
- * @param descriptor
- */
- public CVSProviderPlugin(IPluginDescriptor descriptor) {
- super(descriptor);
- instance = this;
- }
-
- /**
- * Convenience method for logging CoreExceptions to the plugin log
- */
- public static void log(CoreException e) {
- log(e.getStatus().getSeverity(), e.getMessage(), e);
- }
-
- /**
- * Log the given exception along with the provided message and severity indicator
- */
- public static void log(int severity, String message, Throwable e) {
- log(new Status(severity, ID, 0, message, e));
- }
-
- /**
- * Log the given status. Do not use this method for the IStatus from a CoreException.
- * Use<code>log(CoreException)</code> instead so the stack trace is not lost.
- */
- public static void log(IStatus status) {
- getPlugin().getLog().log(status);
- }
-
- /**
- * Returns the singleton plug-in instance.
- *
- * @return the plugin instance
- */
- public static CVSProviderPlugin getPlugin() {
- // If the instance has not been initialized, we will wait.
- // This can occur if multiple threads try to load the plugin at the same
- // time (see bug 33825: http://bugs.eclipse.org/bugs/show_bug.cgi?id=33825)
- while (instance == null) {
- try {
- Thread.sleep(50);
- } catch (InterruptedException e) {
- // ignore and keep trying
- }
- }
- return instance;
- }
-
- /**
- * Answers the repository provider type id for the cvs plugin
- */
- public static String getTypeId() {
- return NATURE_ID;
- }
-
- /**
- * Sets the file transfer compression level. (if supported)
- * Valid levels are: 0 (disabled), 1 (worst/fastest) - 9 (best/slowest)
- */
- public void setCompressionLevel(int level) {
- compressionLevel = level;
- }
-
- /**
- * Gets the file transfer compression level.
- */
- public int getCompressionLevel() {
- return compressionLevel;
- }
-
- /**
- * Sets the default keyword substitution mode for text files.
- */
- public void setDefaultTextKSubstOption(KSubstOption ksubst) {
- defaultTextKSubstOption = ksubst;
- }
-
-
- /**
- * Gets the default keyword substitution mode for text files.
- */
- public KSubstOption getDefaultTextKSubstOption() {
- return defaultTextKSubstOption;
- }
-
- /**
- * Should the CVS adapter prune empty directories
- */
- public boolean getPruneEmptyDirectories() {
- return pruneEmptyDirectories;
- }
-
- /**
- * Set whether the CVS adapter should prune empty directories
- */
- public void setPruneEmptyDirectories(boolean prune) {
- pruneEmptyDirectories = prune;
- }
-
- /**
- * Get the communications timeout value in seconds
- */
- public int getTimeout() {
- return communicationsTimeout;
- }
-
- /**
- * Set the timeout value for communications to a value in seconds.
- * The value must be greater than or equal 0. If is it 0, there is no timeout.
- */
- public void setTimeout(int timeout) {
- this.communicationsTimeout = Math.max(0, timeout);
- }
-
- /**
- * Set the quietness option to use with cvs commands.
- * Can be "", "-q" or "-Q"
- */
- public void setQuietness(QuietOption option) {
- this.quietness = option;
- }
-
- /**
- * Get the quietness option for commands
- */
- public QuietOption getQuietness() {
- return quietness;
- }
-
- /**
- * Set the console listener for commands.
- * @param consoleListener the listener
- */
- public void setConsoleListener(IConsoleListener consoleListener) {
- this.consoleListener = consoleListener;
- }
-
- /**
- * Get the console listener for commands.
- * @return the consoleListener, or null
- */
- public IConsoleListener getConsoleListener() {
- return consoleListener;
- }
-
- /**
- * @see Plugin#startup()
- */
- public void startup() throws CoreException {
- super.startup();
- Policy.localize("org.eclipse.team.internal.ccvs.core.messages"); //$NON-NLS-1$
-
- // load the state which includes the known repositories
- loadState();
- crash = createCrashFile();
-
- // Initialize CVS change listeners. Note tha the report type is important.
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- addDeleteMoveListener = new BuildCleanupListener();
- fileModificationManager = new FileModificationManager();
- metaFileSyncListener = new SyncFileChangeListener();
- workspace.addResourceChangeListener(addDeleteMoveListener, IResourceChangeEvent.POST_AUTO_BUILD);
- workspace.addResourceChangeListener(metaFileSyncListener, IResourceChangeEvent.POST_CHANGE);
- workspace.addResourceChangeListener(fileModificationManager, IResourceChangeEvent.POST_CHANGE);
- fileModificationManager.registerSaveParticipant();
-
- RemoteContentsCache.enableCaching(ID);
-
- getCVSWorkspaceSubscriber();
- }
-
- /**
- * @see Plugin#shutdown()
- */
- public void shutdown() throws CoreException {
- super.shutdown();
-
- // save the state which includes the known repositories
- saveState();
- savePluginPreferences();
-
- // remove listeners
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- workspace.removeResourceChangeListener(metaFileSyncListener);
- workspace.removeResourceChangeListener(fileModificationManager);
- workspace.removeResourceChangeListener(addDeleteMoveListener);
-
- // remove all of this plugin's save participants. This is easier than having
- // each class that added itself as a participant to have to listen to shutdown.
- workspace.removeSaveParticipant(this);
-
- RemoteContentsCache.disableCache(ID);
-
- deleteCrashFile();
- }
-
- /**
- * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences()
- */
- protected void initializeDefaultPluginPreferences(){
- Preferences store = getPluginPreferences();
- store.setDefault(READ_ONLY, false);
- }
-
- /**
- * Gets the cvsRshCommand.
- * @return Returns a String
- */
- public String getCvsRshCommand() {
- return cvsRshCommand;
- }
-
- /**
- * Sets the cvsRshCommand.
- * @param cvsRshCommand The cvsRshCommand to set
- */
- public void setCvsRshCommand(String cvsRshCommand) {
- this.cvsRshCommand = cvsRshCommand;
- }
-
- /**
- * Returns the cvsRshParameters.
- * @return String
- */
- public String getCvsRshParameters() {
- return cvsRshParameters;
- }
-
- /**
- * Sets the cvsRshParameters.
- * @param cvsRshParameters The cvsRshParameters to set
- */
- public void setCvsRshParameters(String cvsRshParameters) {
- this.cvsRshParameters = cvsRshParameters;
- }
-
- /**
- * Gets the cvsServer.
- * @return Returns a String
- */
- public String getCvsServer() {
- return cvsServer;
- }
-
- /**
- * Sets the cvsServer.
- * @param cvsServer The cvsServer to set
- */
- public void setCvsServer(String cvsServer) {
- this.cvsServer = cvsServer;
- }
-
- /**
- * Gets the etchAbsentDirectories.
- * @return Returns a boolean
- */
- public boolean getFetchAbsentDirectories() {
- return fetchAbsentDirectories;
- }
-
- public boolean getRepositoriesAreBinary() {
- return repositoriesAreBinary;
- }
-
- /**
- * Sets the fetchAbsentDirectories.
- * @param etchAbsentDirectories The etchAbsentDirectories to set
- */
- public void setFetchAbsentDirectories(boolean fetchAbsentDirectories) {
- this.fetchAbsentDirectories = fetchAbsentDirectories;
- }
-
- public boolean getPromptOnFileDelete() {
- return promptOnFileDelete;
- }
-
- public void setPromptOnFileDelete(boolean prompt) {
- promptOnFileDelete = prompt;
- }
-
- public void setRepositoriesAreBinary(boolean binary) {
- repositoriesAreBinary = binary;
- }
-
- public boolean getPromptOnFolderDelete() {
- return promptOnFolderDelete;
- }
-
- public void setPromptOnFolderDelete(boolean prompt) {
- promptOnFolderDelete = prompt;
- }
-
- public static void broadcastDecoratorEnablementChanged(final boolean enabled) {
- ICVSDecoratorEnablementListener[] listeners;
- synchronized(decoratorEnablementListeners) {
- listeners = (ICVSDecoratorEnablementListener[]) decoratorEnablementListeners.toArray(new ICVSDecoratorEnablementListener[decoratorEnablementListeners.size()]);
- }
- for (int i = 0; i < listeners.length; i++) {
- final ICVSDecoratorEnablementListener listener = listeners[i];
- ISafeRunnable code = new ISafeRunnable() {
- public void run() throws Exception {
- listener.decoratorEnablementChanged(enabled);
- }
- public void handleException(Throwable e) {
- // don't log the exception....it is already being logged in Platform#run
- }
- };
- Platform.run(code);
- }
- }
-
- /**
- * Gets the replaceUnmanaged.
- * @return Returns a boolean
- */
- public boolean isReplaceUnmanaged() {
- return replaceUnmanaged;
- }
-
- /**
- * Sets the replaceUnmanaged.
- * @param replaceUnmanaged The replaceUnmanaged to set
- */
- public void setReplaceUnmanaged(boolean replaceUnmanaged) {
- this.replaceUnmanaged = replaceUnmanaged;
- }
-
-
- /**
- * Register to receive notification of repository creation and disposal
- */
- public void addRepositoryListener(ICVSListener listener) {
- KnownRepositories.getInstance().addRepositoryListener(listener);
- }
-
- /**
- * Register to receive notification of enablement of sync info decoration requirements. This
- * can be useful for providing lazy initialization of caches that are only required for decorating
- * resource with CVS information.
- */
- public void addDecoratorEnablementListener(ICVSDecoratorEnablementListener listener) {
- synchronized(decoratorEnablementListeners) {
- decoratorEnablementListeners.add(listener);
- }
- }
-
- /**
- * De-register a listener
- */
- public void removeRepositoryListener(ICVSListener listener) {
- KnownRepositories.getInstance().removeRepositoryListener(listener);
- }
-
- /**
- * De-register the decorator enablement listener.
- */
- public void removeDecoratorEnablementListener(ICVSDecoratorEnablementListener listener) {
- synchronized(decoratorEnablementListeners) {
- decoratorEnablementListeners.remove(listener);
- }
- }
-
- /**
- * Create a repository instance from the given properties.
- * The supported properties are:
- *
- * connection The connection method to be used
- * user The username for the connection
- * password The password used for the connection (optional)
- * host The host where the repository resides
- * port The port to connect to (optional)
- * root The server directory where the repository is located
- *
- * The created instance is not known by the provider and it's user information is not cached.
- * The purpose of the created location is to allow connection validation before adding the
- * location to the provider.
- *
- * This method will throw a CVSException if the location for the given configuration already
- * exists.
- */
- public ICVSRepositoryLocation createRepository(Properties configuration) throws CVSException {
- return KnownRepositories.getInstance().createRepository(configuration);
- }
-
- /**
- * Add the repository to the receiver's list of known repositories. Doing this will enable
- * password caching accross platform invokations.
- */
- public void addRepository(ICVSRepositoryLocation repository) throws CVSException {
- KnownRepositories.getInstance().addRepository(repository);
- saveState();
- }
-
- /**
- * Dispose of the repository location
- *
- * Removes any cached information about the repository such as a remembered password.
- */
- public void disposeRepository(ICVSRepositoryLocation repository) throws CVSException {
- KnownRepositories.getInstance().disposeRepository(repository);
- }
-
- /**
- * Answer whether the provided repository location is known by the provider or not.
- * The location string corresponds to the Strin returned by ICVSRepositoryLocation#getLocation()
- */
- public boolean isKnownRepository(String location) {
- return KnownRepositories.getInstance().isKnownRepository(location);
- }
-
- /**
- * Return a list of the know repository locations
- */
- public ICVSRepositoryLocation[] getKnownRepositories() {
- return KnownRepositories.getInstance().getKnownRepositories();
- }
-
- /**
- * Get the repository instance which matches the given String. The format of the String is
- * the same as that returned by ICVSRepositoryLocation#getLocation().
- * The format is:
- *
- * connection:user[:password]@host[#port]:root
- *
- * where [] indicates optional and the identier meanings are:
- *
- * connection The connection method to be used
- * user The username for the connection
- * password The password used for the connection (optional)
- * host The host where the repository resides
- * port The port to connect to (optional)
- * root The server directory where the repository is located
- *
- * It is expected that the instance requested by using this method exists.
- * If the repository location does not exist, it will be automatically created
- * and cached with the provider.
- *
- * WARNING: Providing the password as part of the String will result in the password being part
- * of the location permanently. This means that it cannot be modified by the authenticator.
- */
- public ICVSRepositoryLocation getRepository(String location) throws CVSException {
- return KnownRepositories.getInstance().getRepository(location);
- }
-
- private void loadState() {
- try {
- IPath pluginStateLocation = CVSProviderPlugin.getPlugin().getStateLocation().append(REPOSITORIES_STATE_FILE);
- File file = pluginStateLocation.toFile();
- if (file.exists()) {
- try {
- DataInputStream dis = new DataInputStream(new FileInputStream(file));
- readState(dis);
- dis.close();
- } catch (IOException e) {
- throw new TeamException(new Status(Status.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE, Policy.bind("CVSProvider.ioException"), e)); //$NON-NLS-1$
- }
- } else {
- // If the file did not exist, then prime the list of repositories with
- // the providers with which the projects in the workspace are shared.
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- for (int i = 0; i < projects.length; i++) {
- RepositoryProvider provider = RepositoryProvider.getProvider(projects[i], CVSProviderPlugin.getTypeId());
- if (provider!=null) {
- ICVSFolder folder = (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(projects[i]);
- FolderSyncInfo info = folder.getFolderSyncInfo();
- if (info != null) {
- getRepository(info.getRoot());
- }
- }
- }
- saveState();
- }
- } catch (TeamException e) {
- Util.logError(Policy.bind("CVSProvider.errorLoading"), e);//$NON-NLS-1$
- }
- }
- private void saveState() {
- try {
- IPath pluginStateLocation = CVSProviderPlugin.getPlugin().getStateLocation();
- File tempFile = pluginStateLocation.append(REPOSITORIES_STATE_FILE + ".tmp").toFile(); //$NON-NLS-1$
- File stateFile = pluginStateLocation.append(REPOSITORIES_STATE_FILE).toFile();
- try {
- DataOutputStream dos = new DataOutputStream(new FileOutputStream(tempFile));
- writeState(dos);
- dos.close();
- if (stateFile.exists()) {
- stateFile.delete();
- }
- boolean renamed = tempFile.renameTo(stateFile);
- if (!renamed) {
- throw new TeamException(new Status(Status.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE, Policy.bind("CVSProvider.rename", tempFile.getAbsolutePath()), null)); //$NON-NLS-1$
- }
- } catch (IOException e) {
- throw new TeamException(new Status(Status.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE, Policy.bind("CVSProvider.save",stateFile.getAbsolutePath()), e)); //$NON-NLS-1$
- }
- } catch (TeamException e) {
- Util.logError(Policy.bind("CVSProvider.errorSaving"), e);//$NON-NLS-1$
- }
- }
-
- private void readState(DataInputStream dis) throws IOException, CVSException {
- int count = dis.readInt();
- if (count >= 0) {
- // this is the version 1 format of the state file
- for (int i = 0; i < count; i++) {
- getRepository(dis.readUTF());
- }
- } else if (count == REPOSITORIES_STATE_FILE_VERSION_2) {
- count = dis.readInt();
- for (int i = 0; i < count; i++) {
- // Perform a get on the repository so it is added to the plugin
- getRepository(dis.readUTF());
- // Read the next field which is no longer used
- dis.readUTF();
- }
- } else {
- Util.logError(Policy.bind("CVSProviderPlugin.unknownStateFileVersion", new Integer(count).toString()), null); //$NON-NLS-1$
- }
- }
-
- private void writeState(DataOutputStream dos) throws IOException {
- // Write the repositories
- dos.writeInt(REPOSITORIES_STATE_FILE_VERSION_2);
- // Write out the repos
- ICVSRepositoryLocation[] repos = KnownRepositories.getInstance().getKnownRepositories();
- dos.writeInt(repos.length);
- for (int i = 0; i < repos.length; i++) {
- CVSRepositoryLocation root = (CVSRepositoryLocation)repos[i];
- dos.writeUTF(root.getLocation());
- dos.writeUTF("cvs"); // place holder for cureently unused remote program name //$NON-NLS-1$
- }
- }
-
- public static boolean isText(IFile file) {
- if (CVSProviderPlugin.getPlugin().getRepositoriesAreBinary()) return false;
- return Team.getType(file) == Team.TEXT;
- }
-
- /**
- * Gets the determineVersionEnabled.
- * @return boolean
- */
- public boolean isDetermineVersionEnabled() {
- return determineVersionEnabled;
- }
-
- /**
- * Sets the determineVersionEnabled.
- * @param determineVersionEnabled The determineVersionEnabled to set
- */
- public void setDetermineVersionEnabled(boolean determineVersionEnabled) {
- this.determineVersionEnabled = determineVersionEnabled;
- }
-
- /**
- * Returns the fileModificationManager.
- * @return FileModificationManager
- */
- public FileModificationManager getFileModificationManager() {
- return fileModificationManager;
- }
-
- /**
- * @return boolean
- */
- public boolean isWatchEditEnabled() {
- return getPluginPreferences().getBoolean(CVSProviderPlugin.READ_ONLY);
- }
-
- public void setDebugProtocol(boolean value) {
- Policy.DEBUG_CVS_PROTOCOL = value;
- }
-
- public boolean isDebugProtocol() {
- return Policy.DEBUG_CVS_PROTOCOL;
- }
-
- /*
- * Create the crash indicator file. This method returns true if the file
- * already existed, indicating that a crash occurred on the last invokation of
- * the platform.
- */
- private boolean createCrashFile() {
- IPath pluginStateLocation = CVSProviderPlugin.getPlugin().getStateLocation();
- File crashFile = pluginStateLocation.append(CRASH_INDICATION_FILE).toFile();
- if (crashFile.exists()) {
- return true;
- }
- try {
- crashFile.createNewFile();
- } catch (IOException e) {
- CVSProviderPlugin.log(IStatus.ERROR, e.getMessage(), e);
- }
- return false;
- }
-
- private void deleteCrashFile() {
- IPath pluginStateLocation = CVSProviderPlugin.getPlugin().getStateLocation();
- File crashFile = pluginStateLocation.append(CRASH_INDICATION_FILE).toFile();
- crashFile.delete();
- }
-
- public boolean crashOnLastRun() {
- return crash;
- }
-
- public RemoteContentsCache getRemoteContentsCache() {
- return RemoteContentsCache.getCache(CVSProviderPlugin.ID);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java
deleted file mode 100644
index feb24d383..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.subscribers.IComparisonCriteria;
-import org.eclipse.team.core.subscribers.ISubscriberResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * CVSRevisionNumberCompareCriteria
- */
- public class CVSRevisionNumberCompareCriteria implements IComparisonCriteria {
- /* (non-Javadoc)
- * @see ComparisonCriteria#compare(Object, Object, IProgressMonitor)
- */
- public boolean compare(Object e1, Object e2) {
- if(e1 instanceof IResource && e2 instanceof ICVSRemoteResource) {
- return compare((IResource)e1, (ICVSRemoteResource)e2);
- } else if(e1 instanceof ICVSRemoteResource && e2 instanceof ICVSRemoteResource) {
- return compare((ICVSRemoteResource)e1, (ICVSRemoteResource)e2);
- }
- return false;
- }
-
- /**
- * @see RemoteSyncElement#timestampEquals(IRemoteResource, IRemoteResource)
- */
- protected boolean compare(ICVSRemoteResource e1, ICVSRemoteResource e2) {
- if(e1.isContainer()) {
- if(e2.isContainer()) {
- return true;
- }
- return false;
- }
- return e1.equals(e2);
- }
-
- /**
- * @see RemoteSyncElement#timestampEquals(IResource, IRemoteResource)
- */
- protected boolean compare(IResource e1, ICVSRemoteResource e2) {
- if(e1.getType() != IResource.FILE) {
- if(e2.isContainer()) {
- return true;
- }
- return false;
- }
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile)e1);
- try {
- byte[] syncBytes1 = cvsFile.getSyncBytes();
- byte[] syncBytes2 = ((ICVSRemoteFile)e2).getSyncBytes();
-
- if(syncBytes1 != null) {
- if(ResourceSyncInfo.isDeletion(syncBytes1) || ResourceSyncInfo.isMerge(syncBytes1) || cvsFile.isModified(null)) {
- return false;
- }
- return ResourceSyncInfo.getRevision(syncBytes1).equals(ResourceSyncInfo.getRevision(syncBytes2));
- }
- return false;
- } catch(CVSException e) {
- CVSProviderPlugin.log(e);
- return false;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.IComparisonCriteria#compare(org.eclipse.core.resources.IResource, org.eclipse.team.core.subscribers.ISubscriberResource)
- */
- public boolean compare(IResource local, ISubscriberResource remote) {
- return compare(local, (ICVSRemoteResource)remote);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.IComparisonCriteria#compare(org.eclipse.team.core.subscribers.ISubscriberResource, org.eclipse.team.core.subscribers.ISubscriberResource)
- */
- public boolean compare(ISubscriberResource base, ISubscriberResource remote) {
- return compare((ICVSRemoteResource)base, (ICVSRemoteResource)remote);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSStatus.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSStatus.java
deleted file mode 100644
index 524148e81..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSStatus.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-import org.eclipse.core.runtime.Status;
-
-public class CVSStatus extends Status {
-
- /*** Status codes ***/
- public static final int SERVER_ERROR = -10;
- public static final int NO_SUCH_TAG = -11;
- public static final int CONFLICT = -12;
- public static final int ERROR_LINE = -14; // generic uninterpreted E line from the server
- public static final int TAG_ALREADY_EXISTS = -15;
- public static final int COMMITTING_SYNC_INFO_FAILED = -16;
- public static final int DOES_NOT_EXIST = -17;
- public static final int FOLDER_NEEDED_FOR_FILE_DELETIONS = -18;
- public static final int CASE_VARIANT_EXISTS = -19;
- public static final int UNSUPPORTED_SERVER_VERSION = -20;
- public static final int SERVER_IS_CVSNT = -21;
- public static final int SERVER_IS_UNKNOWN = -22;
- public static final int PROTOCOL_ERROR = -23;
- public static final int ERROR_LINE_PARSE_FAILURE = -24;
- public static final int FAILED_TO_CACHE_SYNC_INFO = -25;
-
- // Path for resource related status
- private ICVSFolder commandRoot;
-
- public CVSStatus(int severity, int code, String message, Throwable t) {
- super(severity, CVSProviderPlugin.ID, code, message, t);
- }
-
- public CVSStatus(int severity, int code, String message) {
- this(severity, code, message, null);
- }
-
- public CVSStatus(int severity, int code, ICVSFolder commandRoot, String message) {
- this(severity, code, message, null);
- this.commandRoot = commandRoot;
- }
-
- public CVSStatus(int severity, String message, Throwable t) {
- this(severity, 0, message, t);
- }
-
- public CVSStatus(int severity, String message) {
- this(severity, severity, message, null);
- }
- /**
- * @see IStatus#getMessage()
- */
- public String getMessage() {
- String message = super.getMessage();
- if (commandRoot != null) {
- message = Policy.bind("CVSStatus.messageWithRoot", commandRoot.getName(), message); //$NON-NLS-1$
- }
- return message;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java
deleted file mode 100644
index dbafcd3a6..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.resources.*;
-import org.eclipse.team.internal.ccvs.core.syncinfo.*;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * CVSSyncInfo
- */
-public class CVSSyncInfo extends SyncInfo {
-
- /*
- * Codes that are used in returned IStatus
- */
- private static final int INVALID_RESOURCE_TYPE = 1;
- private static final int INVALID_SYNC_KIND = 2;
- private static final int PARENT_NOT_MANAGED = 3;
- private static final int REMOTE_DOES_NOT_EXIST = 4;
- private static final int SYNC_INFO_CONFLICTS = 5;
-
- public CVSSyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote, TeamSubscriber subscriber) throws TeamException {
- super(local, base, remote, subscriber);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.SyncInfo#computeSyncKind(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected int calculateKind() throws TeamException {
- // special handling for folders, the generic sync algorithm doesn't work well
- // with CVS because folders are not in namespaces (e.g. they exist in all versions
- // and branches).
- IResource local = getLocal();
- if(local.getType() != IResource.FILE) {
- int folderKind = SyncInfo.IN_SYNC;
- ICVSRemoteFolder remote = (ICVSRemoteFolder)getRemote();
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor((IContainer)local);
- boolean isCVSFolder = false;
- try {
- isCVSFolder = cvsFolder.isCVSFolder();
- } catch (CVSException e) {
- // Assume the folder is not a CVS folder
- }
- if(!local.exists()) {
- if(remote != null) {
- if (isCVSFolder) {
- // TODO: This assumes all CVS folders are in-sync even if they have been pruned!
- folderKind = SyncInfo.IN_SYNC;
- } else {
- folderKind = SyncInfo.INCOMING | SyncInfo.ADDITION;
- }
- } else {
- // ignore conflicting deletion to keep phantom sync info
- }
- } else {
- if(remote == null) {
- if(isCVSFolder) {
- // TODO: This is not really an incoming deletion
- // The folder will be pruned once any children are commited
- folderKind = SyncInfo.IN_SYNC;
- //folderKind = SyncInfo.INCOMING | SyncInfo.DELETION;
- } else {
- folderKind = SyncInfo.OUTGOING | SyncInfo.ADDITION;
- }
- } else if(!isCVSFolder) {
- folderKind = SyncInfo.CONFLICTING | SyncInfo.ADDITION;
- } else {
- // folder exists both locally and remotely and are considered in sync, however
- // we aren't checking the folder mappings to ensure that they are the same.
- }
- }
- return folderKind;
- }
-
- // 1. Run the generic sync calculation algorithm, then handle CVS specific
- // sync cases.
- int kind = super.calculateKind();
-
- // 2. Set the CVS specific sync type based on the workspace sync state provided
- // by the CVS server.
- ISubscriberResource remote = getRemote();
- if(remote!=null && (kind & SyncInfo.PSEUDO_CONFLICT) == 0) {
- RemoteResource cvsRemote = (RemoteResource)remote;
- int type = cvsRemote.getWorkspaceSyncState();
- switch(type) {
- // the server compared both text files and decided that it cannot merge
- // them without line conflicts.
- case Update.STATE_CONFLICT:
- return kind | SyncInfo.MANUAL_CONFLICT;
-
- // the server compared both text files and decided that it can safely merge
- // them without line conflicts.
- case Update.STATE_MERGEABLE_CONFLICT:
- return kind | SyncInfo.AUTOMERGE_CONFLICT;
- }
- }
-
- // 3. unmanage delete/delete conflicts and return that they are in sync
- kind = handleDeletionConflicts(kind);
-
- return kind;
- }
-
- /*
- * If the resource has a delete/delete conflict then ensure that the local is unmanaged so that the
- * sync info can be properly flushed.
- */
- protected int handleDeletionConflicts(int kind) {
- if(kind == (SyncInfo.CONFLICTING | SyncInfo.DELETION | SyncInfo.PSEUDO_CONFLICT)) {
- try {
- IResource local = getLocal();
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(local);
- if(!cvsResource.isFolder() && cvsResource.isManaged()) {
- cvsResource.unmanage(null);
- }
- return SyncInfo.IN_SYNC;
- } catch(CVSException e) {
- CVSProviderPlugin.log(e);
- return SyncInfo.CONFLICTING | SyncInfo.DELETION;
- }
- }
- return kind;
- }
-
- /*
- * Update the sync info of the local resource in such a way that the local changes can be committed.
- * @return IStatus
- * For folders, the makeInSYnc method is called and the return codes mentioned there apply
- * for folders.
- */
- public IStatus makeOutgoing(IProgressMonitor monitor) throws TeamException {
-
- // For folders, there is no outgoing, only in-sync
- if (getLocal().getType() == IResource.FOLDER) {
- return makeInSync();
- }
- int syncKind = getKind();
- boolean incoming = (syncKind & DIRECTION_MASK) == INCOMING;
- boolean outgoing = (syncKind & DIRECTION_MASK) == OUTGOING;
-
- ICVSResource local = CVSWorkspaceRoot.getCVSResourceFor(getLocal());
- RemoteResource remote = (RemoteResource)getRemote();
- ResourceSyncInfo origInfo = local.getSyncInfo();
- MutableResourceSyncInfo info = null;
- if(origInfo!=null) {
- info = origInfo.cloneMutable();
- }
-
- if (outgoing) {
- // The sync info is alright, it's already outgoing!
- return Status.OK_STATUS;
- } else if (incoming) {
- // We have an incoming change, addition, or deletion that we want to ignore
- if (local.exists()) {
- // We could have an incoming change or deletion
- if (remote == null) {
- info.setAdded();
- } else {
- // Otherwise change the revision to the remote revision and dirty the file
- info.setRevision(remote.getSyncInfo().getRevision());
- info.setTimeStamp(null);
- }
- } else {
- // We have an incoming add, turn it around as an outgoing delete
- info = remote.getSyncInfo().cloneMutable();
- info.setDeleted(true);
- }
- } else if (local.exists()) {
- // We have a conflict and a local resource!
- if (getRemote() != null) {
- if (getBase() != null) {
- // We have a conflicting change, Update the local revision
- info.setRevision(remote.getSyncInfo().getRevision());
- } else {
- // We have conflictin additions.
- // We need to fetch the contents of the remote to get all the relevant information (timestamp, permissions)
- // The most important thing we get is the keyword substitution mode which must be right to perform the commit
- remote.getContents(Policy.monitorFor(monitor));
- info = remote.getSyncInfo().cloneMutable();
- }
- } else if (getBase() != null) {
- // We have a remote deletion. Make the local an addition
- info.setAdded();
- } else {
- // There's a local, no base and no remote. We can't possible have a conflict!
- Assert.isTrue(false);
- }
- } else {
- // We have a conflict and there is no local!
- if (getRemote() != null) {
- // We have a local deletion that conflicts with remote changes.
- info.setRevision(remote.getSyncInfo().getRevision());
- info.setDeleted(true);
- } else {
- // We have conflicting deletions. Clear the sync info
- info = null;
- return Status.OK_STATUS;
- }
- }
- if(info!=null) {
- FolderSyncInfo parentInfo = local.getParent().getFolderSyncInfo();
- if (parentInfo == null) {
- return new CVSStatus(IStatus.ERROR, PARENT_NOT_MANAGED, Policy.bind("CVSSyncInfo.9", getLocal().getFullPath().toString())); //$NON-NLS-1$
- }
- info.setTag(parentInfo.getTag());
- }
- ((ICVSFile)local).setSyncInfo(info, ICVSFile.UNKNOWN);
- return Status.OK_STATUS;
- }
-
- /*
- * Update the sync info of the local resource in such a way that the remote resource can be loaded
- * ignore any local changes.
- */
- public void makeIncoming(IProgressMonitor monitor) throws TeamException {
- // To make outgoing deletions incoming, the local will not exist but
- // it is still important to unmanage (e.g. delete all meta info) for the
- // deletion.
- CVSWorkspaceRoot.getCVSResourceFor(getLocal()).unmanage(monitor);
- }
-
- /*
- * Load the resource and folder sync info into the local from the remote
- *
- * This method can be used on incoming folder additions to set the folder sync info properly
- * without hitting the server again. It also applies to conflicts that involves unmanaged
- * local resources.
- *
- * @return an IStatus with the following severity and codes
- * <ul>
- * <li>IStatus.WARNING
- * <ul>
- * <li>INVALID_RESOURCE_TYPE - makeInSync only works on folders
- * <li>INVALID_SYNC_KIND - sync direction must be incoming or conflicting
- * </ul>
- * <li>IStatus.ERROR
- * <ul>
- * <li>PARENT_NOT_MANAGED - the local parent of the resource is not under CVS control
- * <li>SYNC_INFO_CONFLICTS - Sync info already exists locally and differs from the info
- * in the remote handle.
- * <li>REMOTE_DOES_NOT_EXIST - There is no local sync info and there is no remote handle
- * </ul>
- * </ul>
- */
- public IStatus makeInSync() throws CVSException {
-
- // Only works on folders
- if (getLocal().getType() == IResource.FILE) {
- return new CVSStatus(IStatus.WARNING, INVALID_RESOURCE_TYPE, Policy.bind("CVSSyncInfo.7", getLocal().getFullPath().toString())); //$NON-NLS-1$
- }
-
- // Only works on outgoing and conflicting changes
- boolean outgoing = (getKind() & DIRECTION_MASK) == OUTGOING;
- if (outgoing) {
- return new CVSStatus(IStatus.WARNING, INVALID_SYNC_KIND, Policy.bind("CVSSyncInfo.8", getLocal().getFullPath().toString())); //$NON-NLS-1$
- }
-
- // The parent must be managed
- ICVSFolder local = CVSWorkspaceRoot.getCVSFolderFor((IContainer)getLocal());
- if (getLocal().getType() == IResource.FOLDER && ! local.getParent().isCVSFolder())
- return new CVSStatus(IStatus.ERROR, PARENT_NOT_MANAGED, Policy.bind("CVSSyncInfo.9", getLocal().getFullPath().toString())); //$NON-NLS-1$
-
- // Ensure that the folder exists locally
- if (! local.exists()) {
- local.mkdir();
- }
-
- // If the folder already has CVS info, check that the remote and local match
- RemoteFolder remote = (RemoteFolder)getRemote();
- if((local.isManaged() || getLocal().getType() == IResource.PROJECT) && local.isCVSFolder()) {
- // If there's no remote, assume everything is OK
- if (remote == null) return Status.OK_STATUS;
- // Verify that the root and repository are the same
- FolderSyncInfo remoteInfo = remote.getFolderSyncInfo();
- FolderSyncInfo localInfo = local.getFolderSyncInfo();
- if ( ! localInfo.getRoot().equals(remoteInfo.getRoot())) {
- return new CVSStatus(IStatus.ERROR, SYNC_INFO_CONFLICTS, Policy.bind("CVSRemoteSyncElement.rootDiffers", new Object[] {local.getName(), remoteInfo.getRoot(), localInfo.getRoot()}));//$NON-NLS-1$
- } else if ( ! localInfo.getRepository().equals(remoteInfo.getRepository())) {
- return new CVSStatus(IStatus.ERROR, SYNC_INFO_CONFLICTS, Policy.bind("CVSRemoteSyncElement.repositoryDiffers", new Object[] {local.getName(), remoteInfo.getRepository(), localInfo.getRepository()}));//$NON-NLS-1$
- }
- // The folders are in sync so just return
- return Status.OK_STATUS;
- }
-
- // The remote must exist if the local is not managed
- if (remote == null) {
- return new CVSStatus(IStatus.ERROR, REMOTE_DOES_NOT_EXIST, Policy.bind("CVSSyncInfo.10", getLocal().getFullPath().toString())); //$NON-NLS-1$
- }
-
- // Since the parent is managed, this will also set the resource sync info. It is
- // impossible for an incoming folder addition to map to another location in the
- // repo, so we assume that using the parent's folder sync as a basis is safe.
- // It is also impossible for an incomming folder to be static.
- FolderSyncInfo remoteInfo = remote.getFolderSyncInfo();
- FolderSyncInfo localInfo = local.getParent().getFolderSyncInfo();
- local.setFolderSyncInfo(new FolderSyncInfo(remoteInfo.getRepository(), remoteInfo.getRoot(), localInfo.getTag(), false));
- return Status.OK_STATUS;
- }
-
- public String toString() {
- ISubscriberResource base = getBase();
- ISubscriberResource remote = getRemote();
- StringBuffer result = new StringBuffer(super.toString());
- result.append("Local: "); //$NON-NLS-1$
- result.append(getLocal().toString());
- result.append(" Base: "); //$NON-NLS-1$
- if (base == null) {
- result.append("none"); //$NON-NLS-1$
- } else {
- result.append(base.toString());
- }
- result.append(" Remote: "); //$NON-NLS-1$
- if (remote == null) {
- result.append("none"); //$NON-NLS-1$
- } else {
- result.append(remote.toString());
- }
- return result.toString();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.SyncInfo#getContentIdentifier()
- */
- public String getLocalContentIdentifier() {
- try {
- IResource local = getLocal();
- if (local != null || local.getType() == IResource.FILE) {
- // it's a file, return the revision number if we can find one
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile) local);
- ResourceSyncInfo info = cvsFile.getSyncInfo();
- if (info != null) {
- return info.getRevision();
- }
- }
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- return null;
- }
- return null;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java
deleted file mode 100644
index ee2e243ec..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.utils.*;
-import org.eclipse.team.internal.ccvs.core.resources.*;
-import org.eclipse.team.internal.ccvs.core.syncinfo.*;
-
-/**
- * This class provides common funtionality for three way sychronizing
- * for CVS.
- */
-public abstract class CVSSyncTreeSubscriber extends SyncTreeSubscriber {
-
- public static final String SYNC_KEY_QUALIFIER = "org.eclipse.team.cvs"; //$NON-NLS-1$
-
- private static IComparisonCriteria comparisonCriteria = new CVSRevisionNumberCompareCriteria();
-
- private QualifiedName id;
- private String name;
- private String description;
-
- CVSSyncTreeSubscriber(QualifiedName id, String name, String description) {
- this.id = id;
- this.name = name;
- this.description = description;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ISyncTreeSubscriber#getId()
- */
- public QualifiedName getId() {
- return id;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ISyncTreeSubscriber#getName()
- */
- public String getName() {
- return name;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ISyncTreeSubscriber#getDescription()
- */
- public String getDescription() {
- return description;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ISyncTreeSubscriber#getSyncInfo(org.eclipse.core.resources.IResource)
- */
- public SyncInfo getSyncInfo(IResource resource) throws TeamException {
- if (!isSupervised(resource)) return null;
- if(resource.getType() == IResource.FILE || !isThreeWay()) {
- return super.getSyncInfo(resource);
- } else {
- // In CVS, folders do not have a base. Hence, the remote is used as the base.
- ISubscriberResource remoteResource = getRemoteResource(resource);
- return getSyncInfo(resource, remoteResource, remoteResource);
- }
- }
-
- /**
- * Method that creates an instance of SyncInfo for the provider local, base and remote.
- * Can be overiden by subclasses.
- * @param local
- * @param base
- * @param remote
- * @param monitor
- * @return
- */
- protected SyncInfo getSyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote) throws TeamException {
- return new CVSSyncInfo(local, base, remote, this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ISyncTreeSubscriber#refresh(org.eclipse.core.resources.IResource[], int, org.eclipse.core.runtime.IProgressMonitor)
- */
- public void refresh(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException {
- monitor = Policy.monitorFor(monitor);
- List errors = new ArrayList();
- try {
- monitor.beginTask(null, 100 * resources.length);
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- IStatus status = refresh(resource, depth, Policy.subMonitorFor(monitor, 100));
- if (!status.isOK()) {
- errors.add(status);
- }
- }
- } finally {
- monitor.done();
- }
- if (!errors.isEmpty()) {
- throw new CVSException(new MultiStatus(CVSProviderPlugin.ID, 0,
- (IStatus[]) errors.toArray(new IStatus[errors.size()]),
- Policy.bind("CVSSyncTreeSubscriber.1", getName()), null)); //$NON-NLS-1$
- }
- }
-
- public IStatus refresh(IResource resource, int depth, IProgressMonitor monitor) {
- monitor = Policy.monitorFor(monitor);
- try {
- // Take a guess at the work involved for refreshing the base and remote tree
- int baseWork = isThreeWay() ? (getCacheFileContentsHint() ? 30 : 10) : 0;
- int remoteWork = 100;
- monitor.beginTask(null, baseWork + remoteWork);
- IResource[] baseChanges = refreshBase(new IResource[] {resource}, depth, Policy.subMonitorFor(monitor, baseWork));
- IResource[] remoteChanges = refreshRemote(new IResource[] {resource}, depth, Policy.subMonitorFor(monitor, remoteWork));
-
- Set allChanges = new HashSet();
- allChanges.addAll(Arrays.asList(remoteChanges));
- allChanges.addAll(Arrays.asList(baseChanges));
- IResource[] changedResources = (IResource[]) allChanges.toArray(new IResource[allChanges.size()]);
- fireTeamResourceChange(TeamDelta.asSyncChangedDeltas(this, changedResources));
- return Status.OK_STATUS;
- } catch (TeamException e) {
- return new CVSStatus(IStatus.ERROR, Policy.bind("CVSSyncTreeSubscriber.2", resource.getFullPath().toString(), e.getMessage()), e); //$NON-NLS-1$
- } finally {
- monitor.done();
- }
- }
-
- protected boolean getCacheFileContentsHint() {
- return false;
- }
-
- protected IResource[] refreshBase(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException {
- if (isThreeWay()) {
- return new CVSRefreshOperation(getBaseSynchronizationCache(), null, getBaseTag()).refresh(resources, depth, getCacheFileContentsHint(), monitor);
- } else {
- return new IResource[0];
- }
- }
-
- protected IResource[] refreshRemote(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException {
- return new CVSRefreshOperation(getRemoteSynchronizationCache(), getBaseSynchronizationCache(), getRemoteTag()).refresh(resources, depth, getCacheFileContentsHint(), monitor);
- }
-
- /**
- * Return the tag associated with the base tree. t is used by the refreshBase method.
- */
- protected abstract CVSTag getRemoteTag();
-
- /**
- * Return the tag associated with the base tree. t is used by the refreshRemote method.
- */
- protected abstract CVSTag getBaseTag();
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.ISyncTreeSubscriber#isSupervised(org.eclipse.core.resources.IResource)
- */
- public boolean isSupervised(IResource resource) throws TeamException {
- try {
- RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId());
- if (provider == null) return false;
- // TODO: what happens for resources that don't exist?
- // TODO: is it proper to use ignored here?
- ICVSResource cvsThing = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (cvsThing.isIgnored()) {
- // An ignored resource could have an incoming addition (conflict)
- return hasRemote(resource);
- }
- return true;
- } catch (TeamException e) {
- // If there is no resource in coe this measn there is no local and no remote
- // so the resource is not supervised.
- if (e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND) {
- return false;
- }
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.TeamSubscriber#isThreeWay()
- */
- public boolean isThreeWay() {
- return true;
- }
-
- public ISubscriberResource getRemoteResource(IResource resource) throws TeamException {
- return getRemoteResource(resource, getRemoteSynchronizationCache());
- }
-
- public ISubscriberResource getBaseResource(IResource resource) throws TeamException {
- if (isThreeWay()) {
- return getRemoteResource(resource, getBaseSynchronizationCache());
- } else {
- return null;
- }
- }
-
- /**
- * Return the synchronization cache that provides access to the base sychronization bytes.
- */
- protected abstract SynchronizationCache getBaseSynchronizationCache();
-
- /**
- * Return the synchronization cache that provides access to the base sychronization bytes.
- */
- protected abstract SynchronizationCache getRemoteSynchronizationCache();
-
- protected ISubscriberResource getRemoteResource(IResource resource, SynchronizationCache cache) throws TeamException {
- byte[] remoteBytes = cache.getSyncBytes(resource);
- if (remoteBytes == null) {
- // There is no remote handle for this resource
- return null;
- } else {
- // TODO: This code assumes that the type of the remote resource
- // matches that of the local resource. This may not be true.
- if (resource.getType() == IResource.FILE) {
- byte[] parentBytes = cache.getSyncBytes(resource.getParent());
- if (parentBytes == null) {
- // Before failing, try and use the local folder sync bytes
- ICVSFolder local = CVSWorkspaceRoot.getCVSFolderFor(resource.getParent());
- FolderSyncInfo info = local.getFolderSyncInfo();
- if (info == null) {
- CVSProviderPlugin.log(new CVSException(
- Policy.bind("ResourceSynchronizer.missingParentBytesOnGet", getSyncName(cache).toString(), resource.getFullPath().toString()))); //$NON-NLS-1$
- // Assume there is no remote and the problem is a programming error
- return null;
- } else {
- FolderSyncInfo newInfo = new FolderSyncInfo(info.getRepository(), info.getRoot(), new CVSEntryLineTag(new String(ResourceSyncInfo.getTagBytes(remoteBytes))), false);
- parentBytes = newInfo.getBytes();
- }
- }
- return RemoteFile.fromBytes(resource, remoteBytes, parentBytes);
- } else {
- return RemoteFolder.fromBytes(resource, remoteBytes);
- }
- }
- }
-
- private String getSyncName(SynchronizationCache cache) {
- if (cache instanceof SynchronizationSyncBytesCache) {
- return ((SynchronizationSyncBytesCache)cache).getSyncName().toString();
- }
- return cache.getClass().getName();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.helpers.SyncTreeSubscriber#hasRemote(org.eclipse.core.resources.IResource)
- */
- protected boolean hasRemote(IResource resource) throws TeamException {
- return getRemoteSynchronizationCache().getSyncBytes(resource) != null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#getDefaultComparisonCriteria()
- */
- public IComparisonCriteria getDefaultComparisonCriteria() {
- return comparisonCriteria;
- }
-
- public IResource[] members(IResource resource) throws TeamException {
- if(resource.getType() == IResource.FILE) {
- return new IResource[0];
- }
- try {
- Set allMembers = new HashSet();
- try {
- allMembers.addAll(Arrays.asList(((IContainer)resource).members()));
- } catch (CoreException e) {
- if (e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND) {
- // The resource is no longer exists so ignore the exception
- } else {
- throw e;
- }
- }
- allMembers.addAll(Arrays.asList(getMembers(getRemoteSynchronizationCache(), resource)));
- if (isThreeWay()) {
- allMembers.addAll(Arrays.asList(getMembers(getBaseSynchronizationCache(), resource)));
- }
- for (Iterator iterator = allMembers.iterator(); iterator.hasNext();) {
- IResource member = (IResource) iterator.next();
- if(!member.exists() && !hasRemote(member)) {
- // Remove deletion conflicts
- iterator.remove();
- } else if (!isSupervised(resource)) {
- // Remove unsupervised resources
- iterator.remove();
- }
- }
- return (IResource[]) allMembers.toArray(new IResource[allMembers.size()]);
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
-
- private IResource[] getMembers(SynchronizationCache cache, IResource resource) throws TeamException, CoreException {
- // Filter and return only phantoms associated with the remote synchronizer.
- IResource[] members;
- try {
- members = cache.members(resource);
- } catch (CoreException e) {
- if (!isSupervised(resource) || e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND) {
- // The resource is no longer supervised or doesn't exist in any form
- // so ignore the exception and return that there are no members
- return new IResource[0];
- }
- throw e;
- }
- return members;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTag.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTag.java
deleted file mode 100644
index 2b4b5fddd..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTag.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A tag in CVS gives a label to a collection of revisions. The labels can represent a version, a branch,
- * or a date.
- */
-public class CVSTag {
-
- public final static int HEAD = 0;
- public final static int BRANCH = 1;
- public final static int VERSION = 2;
- public final static int DATE = 3;
-
- public static final CVSTag DEFAULT = new CVSTag();
- public static final CVSTag BASE = new CVSTag("BASE", VERSION); //$NON-NLS-1$
-
- protected String name;
- protected int type;
-
- public CVSTag() {
- this("HEAD", HEAD); //$NON-NLS-1$
- }
-
- public CVSTag(String name, int type) {
- this.name = name;
- this.type = type;
- }
-
- public boolean equals(Object other) {
- if(other == this) return true;
- if (!(other instanceof CVSTag)) return false;
-
- CVSTag tag = ((CVSTag)other);
- if (getType() != tag.getType()) return false;
- if (!getName().equals(tag.getName())) return false;
- return true;
- }
-
- public String getName() {
- return name;
- }
-
- public int getType() {
- // TODO: getType() will not return accurate types for Tags retrieved from the local CVS Entries file. See Bug: 36758
- return type;
- }
-
- public int hashCode() {
- return name.hashCode();
- }
-
- public int compareTo(CVSTag other) {
- return getName().compareTo(other.getName());
- }
-
- public static boolean equalTags(CVSTag tag1, CVSTag tag2) {
- if (tag1 == null) tag1 = CVSTag.DEFAULT;
- if (tag2 == null) tag2 = CVSTag.DEFAULT;
- return tag1.equals(tag2);
- }
-
- public static IStatus validateTagName(String tagName) {
- if (tagName == null)
- return new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSTag.nullName")); //$NON-NLS-1$
- if (tagName.equals("")) //$NON-NLS-1$
- return new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSTag.emptyName")); //$NON-NLS-1$
- if (!Character. isLetter(tagName.charAt(0)))
- return new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSTag.beginName")); //$NON-NLS-1$
-
- for (int i = 0; i < tagName.length(); i++) {
- char c = tagName.charAt(i);
- if ( Character.isSpaceChar(c) || c == '$' || c == ',' || c == '.' || c == ':' || c == ';' || c == '@' || c == '|')
- return new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSTag.badCharName")); //$NON-NLS-1$
- }
- return new CVSStatus(CVSStatus.OK, Policy.bind("ok")); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
deleted file mode 100644
index 223b1d1a4..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
+++ /dev/null
@@ -1,1502 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.team.IMoveDeleteHook;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-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.client.listeners.*;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.resources.*;
-import org.eclipse.team.internal.ccvs.core.syncinfo.*;
-import org.eclipse.team.internal.ccvs.core.util.*;
-import org.eclipse.team.internal.core.streams.CRLFtoLFInputStream;
-import org.eclipse.team.internal.core.streams.LFtoCRLFInputStream;
-
-/**
- * This class acts as both the ITeamNature and the ITeamProvider instances
- * required by the Team core.
- *
- * The current stat of this class and it's plugin is EXPERIMENTAL.
- * As such, it is subject to change except in it's conformance to the
- * TEAM API which it implements.
- *
- * Questions:
- *
- * How should a project/reource rename/move effect the provider?
- *
- * Currently we always update with -P. Is this OK?
- * - A way to allow customizable options would be nice
- *
- * Is the -l option valid for commit and does it work properly for update and commit?
- *
- * Do we need an IUserInteractionProvider in the CVS core
- * - prompt for user info (caching could be separate)
- * - get release comments
- * - prompt for overwrite of unmanaged files
- *
- * Need a mechanism for communicating meta-information (provided by Team?)
- *
- * Should pass null when there are no options for a cvs command
- *
- * We currently write the files to disk and do a refreshLocal to
- * have them appear in Eclipse. This may be changed in the future.
- */
-public class CVSTeamProvider extends RepositoryProvider {
-
- private static final boolean IS_CRLF_PLATFORM = Arrays.equals(
- System.getProperty("line.separator").getBytes(), new byte[] { '\r', '\n' }); //$NON-NLS-1$
-
- public static final IStatus OK = new Status(IStatus.OK, CVSProviderPlugin.ID, 0, Policy.bind("ok"), null); //$NON-NLS-1$
-
- private static final int UNIFIED_FORMAT = 0;
- private static final int CONTEXT_FORMAT = 1;
- private static final int STANDARD_FORMAT = 2;
-
- private CVSWorkspaceRoot workspaceRoot;
- private IProject project;
- private String comment = ""; //$NON-NLS-1$
-
- private static MoveDeleteHook moveDeleteHook= new MoveDeleteHook();
- private static IFileModificationValidator fileModificationValidator;
-
- // property used to indicate whether new directories should be discovered for the project
- private final static QualifiedName FETCH_ABSENT_DIRECTORIES_PROP_KEY =
- new QualifiedName("org.eclipse.team.cvs.core", "fetch_absent_directories"); //$NON-NLS-1$ //$NON-NLS-2$
- // property used to indicate whether the project is configured to use Watch/edit
- private final static QualifiedName WATCH_EDIT_PROP_KEY =
- new QualifiedName("org.eclipse.team.cvs.core", "watch_edit"); //$NON-NLS-1$ //$NON-NLS-2$
-
- private static IFileModificationValidator getPluggedInValidator() {
- IExtension[] extensions = Platform.getPluginRegistry().getExtensionPoint(CVSProviderPlugin.ID, CVSProviderPlugin.PT_FILE_MODIFICATION_VALIDATOR).getExtensions();
- if (extensions.length == 0)
- return null;
- IExtension extension = extensions[0];
- IConfigurationElement[] configs = extension.getConfigurationElements();
- if (configs.length == 0) {
- CVSProviderPlugin.log(IStatus.ERROR, Policy.bind("CVSAdapter.noConfigurationElement", new Object[] {extension.getUniqueIdentifier()}), null);//$NON-NLS-1$
- return null;
- }
- try {
- IConfigurationElement config = configs[0];
- return (IFileModificationValidator) config.createExecutableExtension("run");//$NON-NLS-1$
- } catch (CoreException ex) {
- CVSProviderPlugin.log(IStatus.ERROR, Policy.bind("CVSAdapter.unableToInstantiate", new Object[] {extension.getUniqueIdentifier()}), ex);//$NON-NLS-1$
- return null;
- }
- }
-
- /**
- * No-arg Constructor for IProjectNature conformance
- */
- public CVSTeamProvider() {
- }
-
- /**
- * @see IProjectNature#deconfigure()
- */
- public void deconfigure() throws CoreException {
- // when a nature is removed from the project, notify the synchronizer that
- // we no longer need the sync info cached. This does not affect the actual CVS
- // meta directories on disk, and will remain unless a client calls unmanage().
- try {
- EclipseSynchronizer.getInstance().deconfigure(getProject(), null);
- } catch(CVSException e) {
- throw new CoreException(e.getStatus());
- }
- }
-
- public void deconfigured() {
- ResourceStateChangeListeners.getListener().projectDeconfigured(getProject());
- }
- /**
- * @see IProjectNature#getProject()
- */
- public IProject getProject() {
- return project;
- }
-
-
-
- /**
- * @see IProjectNature#setProject(IProject)
- */
- public void setProject(IProject project) {
- this.project = project;
- try {
- this.workspaceRoot = new CVSWorkspaceRoot(project);
- // Ensure that the project has CVS info
- if (workspaceRoot.getLocalRoot().getFolderSyncInfo() == null) {
- CVSProviderPlugin.log(new CVSException(new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSTeamProvider.noFolderInfo", project.getName())))); //$NON-NLS-1$
- }
- } catch (CVSException e) {
- // Ignore exceptions here. They will be surfaced elsewhere
- }
- }
-
-
-
- /**
- * Add the given resources to the project.
- * <p>
- * The sematics follow that of CVS in the sense that any folders
- * being added are created remotely as a result of this operation
- * while files are created remotely on the next commit.
- * </p>
- * <p>
- * This method uses the team file type registry to determine the type
- * of added files. If the extension of the file is not in the registry,
- * the file is assumed to be binary.
- * </p>
- * <p>
- * NOTE: for now we do three operations: one each for folders, text files and binary files.
- * We should optimize this when time permits to either use one operations or defer server
- * contact until the next commit.
- * </p>
- *
- * <p>
- * There are special semantics for adding the project itself to the repo. In this case, the project
- * must be included in the resources array.
- * </p>
- */
- public void add(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
-
- // Visit the children of the resources using the depth in order to
- // determine which folders, text files and binary files need to be added
- // A TreeSet is needed for the folders so they are in the right order (i.e. parents created before children)
- final SortedSet folders = new TreeSet();
- // Sets are required for the files to ensure that files will not appear twice if there parent was added as well
- // and the depth isn't zero
- final Map /* from KSubstOption to Set */ files = new HashMap();
- final TeamException[] eHolder = new TeamException[1];
- for (int i=0; i<resources.length; i++) {
-
- final IResource currentResource = resources[i];
-
- // Throw an exception if the resource is not a child of the receiver
- checkIsChild(currentResource);
-
- try {
- // Auto-add parents if they are not already managed
- IContainer parent = currentResource.getParent();
- ICVSResource cvsParentResource = CVSWorkspaceRoot.getCVSResourceFor(parent);
- while (parent.getType() != IResource.ROOT && parent.getType() != IResource.PROJECT && ! isManaged(cvsParentResource)) {
- folders.add(cvsParentResource);
- parent = parent.getParent();
- cvsParentResource = cvsParentResource.getParent();
- }
-
- // Auto-add children
- final TeamException[] exception = new TeamException[] { null };
- currentResource.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) {
- try {
- ICVSResource mResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- // Add the resource is its not already managed and it was either
- // added explicitly (is equal currentResource) or is not ignored
- if (! isManaged(mResource) && (currentResource.equals(resource) || ! mResource.isIgnored())) {
- if (resource.getType() == IResource.FILE) {
- KSubstOption ksubst = KSubstOption.fromFile((IFile) resource);
- Set set = (Set) files.get(ksubst);
- if (set == null) {
- set = new HashSet();
- files.put(ksubst, set);
- }
- set.add(mResource);
- } else {
- folders.add(mResource);
- }
- }
- // Always return true and let the depth determine if children are visited
- return true;
- } catch (CVSException e) {
- exception[0] = e;
- return false;
- }
- }
- }, depth, false);
- if (exception[0] != null) {
- throw exception[0];
- }
- } catch (CoreException e) {
- throw new CVSException(new Status(IStatus.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE, Policy.bind("CVSTeamProvider.visitError", new Object[] {resources[i].getFullPath()}), e)); //$NON-NLS-1$
- }
- }
- // If an exception occured during the visit, throw it here
- if (eHolder[0] != null)
- throw eHolder[0];
-
- // Add the folders, followed by files!
- progress.beginTask(null, files.size() * 10 + (folders.isEmpty() ? 0 : 10));
- try {
- if (!folders.isEmpty()) {
- Session session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true /* output to console */);
- session.open(Policy.subMonitorFor(progress, 2), true /* open for modification */);
- try {
- IStatus status = Command.ADD.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- (ICVSResource[])folders.toArray(new ICVSResource[folders.size()]),
- null,
- Policy.subMonitorFor(progress, 8));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- } finally {
- session.close();
- }
- }
- for (Iterator it = files.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Map.Entry) it.next();
- final KSubstOption ksubst = (KSubstOption) entry.getKey();
- final Set set = (Set) entry.getValue();
- Session session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true /* output to console */);
- session.open(Policy.subMonitorFor(progress, 2), true /* open for modification */);
- try {
- IStatus status = Command.ADD.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- new LocalOption[] { ksubst },
- (ICVSResource[])set.toArray(new ICVSResource[set.size()]),
- null,
- Policy.subMonitorFor(progress, 8));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- } finally {
- session.close();
- }
- }
- } finally {
- progress.done();
- }
- }
-
- /*
- * Consider a folder managed only if it's also a CVS folder
- */
- private boolean isManaged(ICVSResource cvsResource) throws CVSException {
- return cvsResource.isManaged() && (!cvsResource.isFolder() || ((ICVSFolder)cvsResource).isCVSFolder());
- }
-
- /**
- * Checkin any local changes using "cvs commit ...".
- *
- * @see ITeamProvider#checkin(IResource[], int, IProgressMonitor)
- */
- public void checkin(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
-
- // Build the local options
- List localOptions = new ArrayList();
- localOptions.add(Commit.makeArgumentOption(Command.MESSAGE_OPTION, comment));
-
- // If the depth is not infinite, we want the -l option
- if (depth != IResource.DEPTH_INFINITE) {
- localOptions.add(Commit.DO_NOT_RECURSE);
- }
- LocalOption[] commandOptions = (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]);
-
- // Build the arguments list
- String[] arguments = getValidArguments(resources, commandOptions);
-
- // Commit the resources
- IStatus status;
- Session s = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot());
- progress.beginTask(null, 100);
- try {
- // Opening the session takes 20% of the time
- s.open(Policy.subMonitorFor(progress, 20), true /* open for modification */);
- status = Command.COMMIT.execute(s,
- Command.NO_GLOBAL_OPTIONS,
- commandOptions,
- arguments, null,
- Policy.subMonitorFor(progress, 80));
- } finally {
- s.close();
- progress.done();
- }
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- }
-
- /**
- * @see ITeamProvider#delete(IResource[], int, IProgressMonitor)
- */
- public void delete(IResource[] resources, final IProgressMonitor progress) throws TeamException {
- try {
- progress.beginTask(null, 100);
-
- // Delete any files locally and record the names.
- // Use a resource visitor to ensure the proper depth is obtained
- final IProgressMonitor subProgress = Policy.infiniteSubMonitorFor(progress, 30);
- subProgress.beginTask(null, 256);
- final List files = new ArrayList(resources.length);
- final TeamException[] eHolder = new TeamException[1];
- for (int i=0;i<resources.length;i++) {
- IResource resource = resources[i];
- checkIsChild(resource);
- try {
- if (resource.exists()) {
- resource.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) {
- try {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (cvsResource.isManaged()) {
- String name = resource.getProjectRelativePath().toString();
- if (resource.getType() == IResource.FILE) {
- files.add(name);
- ((IFile)resource).delete(false, true, subProgress);
- }
- }
- } catch (TeamException e) {
- eHolder[0] = e;
- } catch (CoreException e) {
- eHolder[0] = wrapException(e);
- // If there was a problem, don't visit the children
- return false;
- }
- // Always return true and let the depth determine if children are visited
- return true;
- }
- }, IResource.DEPTH_INFINITE, false);
- } else if (resource.getType() == IResource.FILE) {
- // If the resource doesn't exist but is a file, queue it for removal
- files.add(resource.getProjectRelativePath().toString());
- }
- } catch (CoreException e) {
- throw wrapException(e);
- }
- }
- subProgress.done();
- // If an exception occured during the visit, throw it here
- if (eHolder[0] != null) throw eHolder[0];
- // If there are no files to delete, we are done
- if (files.isEmpty()) return;
-
- // Remove the files remotely
- IStatus status;
- Session s = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot());
- s.open(Policy.subMonitorFor(progress, 10), true /* open for modification */);
- try {
- status = Command.REMOVE.execute(s,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- (String[])files.toArray(new String[files.size()]),
- null,
- Policy.subMonitorFor(progress, 60));
- } finally {
- s.close();
- }
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- } finally {
- progress.done();
- }
- }
-
- /**
- * Diff the resources with the repository and write the output to the provided
- * PrintStream in a form that is usable as a patch. The patch is rooted at the
- * project.
- */
- public void diff(IResource resource, LocalOption[] options, PrintStream stream,
- IProgressMonitor progress) throws TeamException {
-
- boolean includeNewFiles = false;
- boolean doNotRecurse = false;
- int format = STANDARD_FORMAT;
-
- // Determine the command root and arguments arguments list
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- ICVSFolder commandRoot;
- String[] arguments;
- if (cvsResource.isFolder()) {
- commandRoot = (ICVSFolder)cvsResource;
- arguments = new String[] {Session.CURRENT_LOCAL_FOLDER};
- } else {
- commandRoot = cvsResource.getParent();
- arguments = new String[] {cvsResource.getName()};
- }
-
- Session s = new Session(workspaceRoot.getRemoteLocation(), commandRoot);
- progress.beginTask(null, 100);
- try {
- s.open(Policy.subMonitorFor(progress, 20), false /* read-only */);
- Command.DIFF.execute(s,
- Command.NO_GLOBAL_OPTIONS,
- options,
- arguments,
- new DiffListener(stream),
- Policy.subMonitorFor(progress, 80));
- } finally {
- s.close();
- progress.done();
- }
-
- // Append our diff output to the server diff output.
- // Our diff output includes new files and new files in new directories.
-
- for (int i = 0; i < options.length; i++) {
- LocalOption option = options[i];
- if (option.equals(Diff.INCLUDE_NEWFILES)) {
- includeNewFiles = true;
- } else if (option.equals(Diff.DO_NOT_RECURSE)) {
- doNotRecurse = true;
- } else if (option.equals(Diff.UNIFIED_FORMAT)) {
- format = UNIFIED_FORMAT;
- } else if (option.equals(Diff.CONTEXT_FORMAT)) {
- format = CONTEXT_FORMAT;
- }
- }
-
- if (includeNewFiles) {
- newFileDiff(commandRoot, stream, doNotRecurse, format);
- }
- }
-
- /**
- * This diff adds new files and directories to the stream.
- * @param resource
- * @param stream
- * @param doNotRecurse
- * @param format
- * @throws CVSException
- */
- private void newFileDiff(final ICVSResource resource, final PrintStream stream, final boolean doNotRecurse, final int format) throws CVSException {
- resource.accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- if (!(file.isIgnored() || file.isManaged())) {
- addFileToDiff(file, stream, format);
- }
- }
- public void visitFolder(ICVSFolder folder) throws CVSException {
- // Even if we are not supposed to recurse we still need to go into
- // the root directory.
- if (!folder.exists() || folder.isIgnored() || (doNotRecurse && !folder.equals(resource))) {
- return;
- } else {
- folder.acceptChildren(this);
- }
- }
- });
- }
-
- private void addFileToDiff(ICVSFile file, PrintStream stream, int format) throws CVSException {
-
- String nullFilePrefix = ""; //$NON-NLS-1$
- String newFilePrefix = ""; //$NON-NLS-1$
- String positionInfo = ""; //$NON-NLS-1$
- String linePrefix = ""; //$NON-NLS-1$
-
- String pathString = file.getIResource().getProjectRelativePath().toString();
-
- BufferedReader fileReader = new BufferedReader(new InputStreamReader(file.getContents()));
- int lines = 0;
- try {
- while (fileReader.readLine() != null) {
- lines++;
- }
- fileReader.close();
-
- switch (format) {
- case UNIFIED_FORMAT :
- nullFilePrefix = "--- "; //$NON-NLS-1$
- newFilePrefix = "+++ "; //$NON-NLS-1$
- positionInfo = "@@ -0,0 +1," + lines + " @@" ; //$NON-NLS-1$ //$NON-NLS-2$
- linePrefix = "+"; //$NON-NLS-1$
- break;
-
- case CONTEXT_FORMAT :
- nullFilePrefix = "*** "; //$NON-NLS-1$
- newFilePrefix = "--- "; //$NON-NLS-1$
- positionInfo = "--- 1," + lines + " ----"; //$NON-NLS-1$ //$NON-NLS-2$
- linePrefix = "+ "; //$NON-NLS-1$
- break;
-
- default :
- positionInfo = "0a1," + lines; //$NON-NLS-1$
- linePrefix = "> "; //$NON-NLS-1$
- break;
- }
-
- fileReader = new BufferedReader(new InputStreamReader(file.getContents()));
-
- stream.println("Index: " + pathString); //$NON-NLS-1$
- stream.println("==================================================================="); //$NON-NLS-1$
- stream.println("RCS file: " + pathString); //$NON-NLS-1$
- stream.println("diff -N " + pathString); //$NON-NLS-1$
-
- if (lines > 0) {
-
- if (format != STANDARD_FORMAT) {
- stream.println(nullFilePrefix + "/dev/null 1 Jan 1970 00:00:00 -0000"); //$NON-NLS-1$
- // Technically this date should be the local file date but nobody really cares.
- stream.println(newFilePrefix + pathString + " 1 Jan 1970 00:00:00 -0000"); //$NON-NLS-1$
- }
-
- if (format == CONTEXT_FORMAT) {
- stream.println("***************"); //$NON-NLS-1$
- stream.println("*** 0 ****"); //$NON-NLS-1$
- }
-
- stream.println(positionInfo);
-
- for (int i = 0; i < lines; i++) {
- stream.print(linePrefix);
- stream.println(fileReader.readLine());
- }
- }
- } catch (IOException e) {
- throw CVSException.wrapException(file.getIResource(), Policy.bind("CVSTeamProvider.errorAddingFileToDiff", pathString), e); //$NON-NLS-1$
- } finally {
- try {
- fileReader.close();
- } catch (IOException e1) {
- }
- }
- }
-
- /**
- * Return the remote location to which the receiver's project is mapped.
- */
- public ICVSRepositoryLocation getRemoteLocation() throws CVSException {
- try {
- return workspaceRoot.getRemoteLocation();
- } catch (CVSException e) {
- // If we can't get the remote location, we should disconnect since nothing can be done with the provider
- try {
- RepositoryProvider.unmap(project);
- } catch (TeamException ex) {
- CVSProviderPlugin.log(ex);
- }
- // We need to trigger a decorator refresh
- throw e;
- }
- }
-
- /*
- * Use specialiazed tagging to move all local changes (including additions and
- * deletions) to the specified branch.
- */
- public void makeBranch(IResource[] resources, final CVSTag versionTag, final CVSTag branchTag, boolean moveToBranch, IProgressMonitor monitor) throws TeamException {
-
- // Determine the total amount of work
- int totalWork = (versionTag!= null ? 60 : 40) + (moveToBranch ? 20 : 0);
- monitor.beginTask(Policy.bind("CVSTeamProvider.makeBranch"), totalWork); //$NON-NLS-1$
- try {
- // Build the arguments list
- final ICVSResource[] arguments = getCVSArguments(resources);
-
- // Tag the remote resources
- IStatus status = null;
- if (versionTag != null) {
- // Version using a custom tag command that skips added but not commited reesources
- Session session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 5), true /* open for modification */);
- try {
- status = Command.CUSTOM_TAG.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- versionTag,
- arguments,
- null,
- Policy.subMonitorFor(monitor, 35));
- } finally {
- session.close();
- }
- if (status.isOK()) {
- // Branch using the tag
- session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 5), true /* open for modification */);
- try {
- status = Command.CUSTOM_TAG.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- branchTag,
- arguments,
- null,
- Policy.subMonitorFor(monitor, 15));
- } finally {
- session.close();
- }
- }
- } else {
- // Just branch using tag
- Session session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 5), true /* open for modification */);
- try {
- status = Command.CUSTOM_TAG.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- branchTag,
- arguments,
- null,
- Policy.subMonitorFor(monitor, 35));
- } finally {
- session.close();
- }
-
- }
- if ( ! status.isOK()) {
- throw new CVSServerException(status);
- }
-
- // Set the tag of the local resources to the branch tag (The update command will not
- // properly update "cvs added" and "cvs removed" resources so a custom visitor is used
- if (moveToBranch) {
- setTag(resources, branchTag, Policy.subMonitorFor(monitor, 20));
- }
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Update the sync info of the local resource associated with the sync element such that
- * the revision of the local resource matches that of the remote resource.
- * This will allow commits on the local resource to succeed.
- *
- * Only file resources can be merged.
- */
- public void merged(IRemoteSyncElement[] elements) throws TeamException {
- for (int i=0;i<elements.length;i++) {
- ((CVSRemoteSyncElement)elements[i]).makeOutgoing(Policy.monitorFor(null));
- }
- }
-
- /**
- * @see ITeamProvider#move(IResource, IPath, IProgressMonitor)
- */
- public void moved(IPath source, IResource resource, IProgressMonitor progress) throws TeamException {
- }
-
- /**
- * Set the comment to be used on the next checkin
- */
- public void setComment(String comment) {
- this.comment = comment;
- }
-
- /**
- * Set the connection method for the given resource's
- * project. If the conection method name is invalid (i.e.
- * no corresponding registered connection method), false is returned.
- */
- public boolean setConnectionInfo(IResource resource, String methodName, IUserInfo userInfo, IProgressMonitor monitor) throws TeamException {
- checkIsChild(resource);
- try {
- monitor.beginTask(Policy.bind("CVSTeamProvider.connectionInfo", project.getName()), 100); //$NON-NLS-1$
-
- if (!CVSRepositoryLocation.validateConnectionMethod(methodName))
- return false;
-
- // Get the original location
- ICVSRepositoryLocation location = workspaceRoot.getRemoteLocation();
-
- // Make a copy to work on
- CVSRepositoryLocation newLocation = CVSRepositoryLocation.fromString(location.getLocation());
- newLocation.setMethod(methodName);
- newLocation.setUserInfo(userInfo);
-
- // Validate that a connection can be made with the new location
- boolean isKnown = CVSProviderPlugin.getPlugin().isKnownRepository(newLocation.getLocation());
- try {
- newLocation.validateConnection(Policy.subMonitorFor(monitor, 20));
- } catch (CVSException e) {
- if (!isKnown)
- CVSProviderPlugin.getPlugin().disposeRepository(newLocation);
- throw e;
- }
-
- // Add the location to the provider
- CVSProviderPlugin.getPlugin().addRepository(newLocation);
-
- // Set the project to use the new Locations
- setRemoteRoot(newLocation, Policy.subMonitorFor(monitor, 80));
- return true;
- } finally {
- monitor.done();
- }
- }
-
- /*
- * This method sets the tag for a project.
- * It expects to be passed an InfiniteSubProgressMonitor
- */
- private void setTag(final IResource[] resources, final CVSTag tag, IProgressMonitor monitor) throws TeamException {
-
- workspaceRoot.getLocalRoot().run(new ICVSRunnable() {
- public void run(IProgressMonitor progress) throws CVSException {
- try {
- // 512 ticks gives us a maximum of 2048 which seems reasonable for folders and files in a project
- progress.beginTask(null, 100);
- final IProgressMonitor monitor = Policy.infiniteSubMonitorFor(progress, 100);
- monitor.beginTask(Policy.bind("CVSTeamProvider.folderInfo", project.getName()), 512); //$NON-NLS-1$
-
- // Visit all the children folders in order to set the root in the folder sync info
- for (int i = 0; i < resources.length; i++) {
- CVSWorkspaceRoot.getCVSResourceFor(resources[i]).accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- monitor.worked(1);
- //ResourceSyncInfo info = file.getSyncInfo();
- byte[] syncBytes = file.getSyncBytes();
- if (syncBytes != null) {
- monitor.subTask(Policy.bind("CVSTeamProvider.updatingFile", file.getName())); //$NON-NLS-1$
- file.setSyncBytes(ResourceSyncInfo.setTag(syncBytes, tag), ICVSFile.UNKNOWN);
- }
- };
- public void visitFolder(ICVSFolder folder) throws CVSException {
- monitor.worked(1);
- FolderSyncInfo info = folder.getFolderSyncInfo();
- if (info != null) {
- monitor.subTask(Policy.bind("CVSTeamProvider.updatingFolder", info.getRepository())); //$NON-NLS-1$
- folder.setFolderSyncInfo(new FolderSyncInfo(info.getRepository(), info.getRoot(), tag, info.getIsStatic()));
- folder.acceptChildren(this);
- }
- };
- });
- }
- } finally {
- progress.done();
- }
- }
- }, monitor);
- }
-
- /**
- * Generally useful update.
- *
- * The tag parameter determines any stickyness after the update is run. If tag is null, any tagging on the
- * resources being updated remain the same. If the tag is a branch, version or date tag, then the resources
- * will be appropriatly tagged. If the tag is HEAD, then there will be no tag on the resources (same as -A
- * clear sticky option).
- *
- * @param createBackups if true, creates .# files for updated files
- */
- public void update(IResource[] resources, LocalOption[] options, CVSTag tag, boolean createBackups, IProgressMonitor progress) throws TeamException {
- progress.beginTask(null, 100);
- Session session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true /* output to console */);
- session.open(Policy.subMonitorFor(progress,10), false /* read-only */);
- try {
- update(session, resources, options, tag, createBackups, Policy.subMonitorFor(progress, 90));
- } finally {
- session.close();
- }
- }
-
- private void update(Session session, IResource[] resources, LocalOption[] options, CVSTag tag, boolean createBackups, IProgressMonitor progress) throws TeamException {
- // Build the local options
- List localOptions = new ArrayList();
-
- // Use the appropriate tag options
- if (tag != null) {
- localOptions.add(Update.makeTagOption(tag));
- }
-
- // Build the arguments list
- localOptions.addAll(Arrays.asList(options));
- final LocalOption[] commandOptions = (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]);
- final ICVSResource[] arguments = getCVSArguments(resources);
-
- IStatus status = Command.UPDATE.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- commandOptions,
- arguments,
- null,
- progress);
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- }
-
- /*
- * @see ITeamProvider#refreshState(IResource[], int, IProgressMonitor)
- */
- public void refreshState(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
- Assert.isTrue(false);
- }
-
- /*
- * @see ITeamProvider#isDirty(IResource)
- */
- public boolean isDirty(IResource resource) {
- Assert.isTrue(false);
- return false;
- }
-
- public CVSWorkspaceRoot getCVSWorkspaceRoot() {
- return workspaceRoot;
- }
-
- /*
- * Generate an exception if the resource is not a child of the project
- */
- private void checkIsChild(IResource resource) throws CVSException {
- if (!isChildResource(resource))
- throw new CVSException(new Status(IStatus.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE,
- Policy.bind("CVSTeamProvider.invalidResource", //$NON-NLS-1$
- new Object[] {resource.getFullPath().toString(), project.getName()}),
- null));
- }
-
- /*
- * Get the arguments to be passed to a commit or update
- */
- private String[] getValidArguments(IResource[] resources, LocalOption[] options) throws CVSException {
- List arguments = new ArrayList(resources.length);
- for (int i=0;i<resources.length;i++) {
- checkIsChild(resources[i]);
- IPath cvsPath = resources[i].getFullPath().removeFirstSegments(1);
- if (cvsPath.segmentCount() == 0) {
- arguments.add(Session.CURRENT_LOCAL_FOLDER);
- } else {
- arguments.add(cvsPath.toString());
- }
- }
- return (String[])arguments.toArray(new String[arguments.size()]);
- }
-
- private ICVSResource[] getCVSArguments(IResource[] resources) {
- ICVSResource[] cvsResources = new ICVSResource[resources.length];
- for (int i = 0; i < cvsResources.length; i++) {
- cvsResources[i] = CVSWorkspaceRoot.getCVSResourceFor(resources[i]);
- }
- return cvsResources;
- }
-
- /*
- * This method expects to be passed an InfiniteSubProgressMonitor
- */
- public void setRemoteRoot(ICVSRepositoryLocation location, IProgressMonitor monitor) throws TeamException {
-
- // Check if there is a differnece between the new and old roots
- final String root = location.getLocation();
- if (root.equals(workspaceRoot.getRemoteLocation()))
- return;
-
- try {
- workspaceRoot.getLocalRoot().run(new ICVSRunnable() {
- public void run(IProgressMonitor progress) throws CVSException {
- try {
- // 256 ticks gives us a maximum of 1024 which seems reasonable for folders is a project
- progress.beginTask(null, 100);
- final IProgressMonitor monitor = Policy.infiniteSubMonitorFor(progress, 100);
- monitor.beginTask(Policy.bind("CVSTeamProvider.folderInfo", project.getName()), 256); //$NON-NLS-1$
-
- // Visit all the children folders in order to set the root in the folder sync info
- workspaceRoot.getLocalRoot().accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {};
- public void visitFolder(ICVSFolder folder) throws CVSException {
- monitor.worked(1);
- FolderSyncInfo info = folder.getFolderSyncInfo();
- if (info != null) {
- monitor.subTask(Policy.bind("CVSTeamProvider.updatingFolder", info.getRepository())); //$NON-NLS-1$
- folder.setFolderSyncInfo(new FolderSyncInfo(info.getRepository(), root, info.getTag(), info.getIsStatic()));
- folder.acceptChildren(this);
- }
- };
- });
- } finally {
- progress.done();
- }
- }
- }, monitor);
- } finally {
- monitor.done();
- }
- }
-
- /*
- * Helper to indicate if the resource is a child of the receiver's project
- */
- private boolean isChildResource(IResource resource) {
- return resource.getProject().getName().equals(project.getName());
- }
-
- private static TeamException wrapException(CoreException e) {
- return CVSException.wrapException(e);
- }
-
- public void configureProject() throws CoreException {
- ResourceStateChangeListeners.getListener().projectConfigured(getProject());
- }
- /**
- * Sets the keyword substitution mode for the specified resources.
- * <p>
- * Applies the following rules in order:<br>
- * <ul>
- * <li>If a file is not managed, skips it.</li>
- * <li>If a file is not changing modes, skips it.</li>
- * <li>If a file is being changed from binary to text, corrects line delimiters
- * then commits it, then admins it.</li>
- * <li>If a file is added, changes the resource sync information locally.</li>
- * <li>Otherwise commits the file (with FORCE to create a new revision), then admins it.</li>
- * </ul>
- * All files that are admin'd are committed with FORCE to prevent other developers from
- * casually trying to commit pending changes to the repository without first checking out
- * a new copy. This is not a perfect solution, as they could just as easily do an UPDATE
- * and not obtain the new keyword sync info.
- * </p>
- *
- * @param changeSet a map from IFile to KSubstOption
- * @param monitor the progress monitor
- * @return a status code indicating success or failure of the operation
- *
- * @throws TeamException
- */
- public IStatus setKeywordSubstitution(final Map /* from IFile to KSubstOption */ changeSet,
- final String comment,
- IProgressMonitor monitor) throws TeamException {
- final IStatus[] result = new IStatus[] { ICommandOutputListener.OK };
- workspaceRoot.getLocalRoot().run(new ICVSRunnable() {
- public void run(final IProgressMonitor monitor) throws CVSException {
- final Map /* from KSubstOption to List of String */ filesToAdmin = new HashMap();
- final List /* of ICVSResource */ filesToCommit = new ArrayList();
- final Collection /* of ICVSFile */ filesToCommitAsText = new HashSet(); // need fast lookup
-
- /*** determine the resources to be committed and/or admin'd ***/
- for (Iterator it = changeSet.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Map.Entry) it.next();
- IFile file = (IFile) entry.getKey();
- KSubstOption toKSubst = (KSubstOption) entry.getValue();
-
- // only set keyword substitution if resource is a managed file
- checkIsChild(file);
- ICVSFile mFile = CVSWorkspaceRoot.getCVSFileFor(file);
- if (! mFile.isManaged()) continue;
-
- // only set keyword substitution if new differs from actual
- byte[] syncBytes = mFile.getSyncBytes();
- KSubstOption fromKSubst = ResourceSyncInfo.getKeywordMode(syncBytes);
- if (toKSubst.equals(fromKSubst)) continue;
-
- // change resource sync info immediately for an outgoing addition
- if (ResourceSyncInfo.isAddition(syncBytes)) {
- mFile.setSyncBytes(ResourceSyncInfo.setKeywordMode(syncBytes, toKSubst), ICVSFile.UNKNOWN);
- continue;
- }
-
- // nothing do to for deletions
- if (ResourceSyncInfo.isDeletion(syncBytes)) continue;
-
- // file exists remotely so we'll have to commit it
- if (fromKSubst.isBinary() && ! toKSubst.isBinary()) {
- // converting from binary to text
- cleanLineDelimiters(file, IS_CRLF_PLATFORM, new NullProgressMonitor()); // XXX need better progress monitoring
- // remember to commit the cleaned resource as text before admin
- filesToCommitAsText.add(mFile);
- }
- // force a commit to bump the revision number
- makeDirty(file);
- filesToCommit.add(mFile);
- // remember to admin the resource
- List list = (List) filesToAdmin.get(toKSubst);
- if (list == null) {
- list = new ArrayList();
- filesToAdmin.put(toKSubst, list);
- }
- list.add(mFile);
- }
-
- /*** commit then admin the resources ***/
- // compute the total work to be performed
- int totalWork = filesToCommit.size() + 1;
- for (Iterator it = filesToAdmin.values().iterator(); it.hasNext();) {
- List list = (List) it.next();
- totalWork += list.size();
- totalWork += 1; // Add 1 for each connection that needs to be made
- }
- if (totalWork != 0) {
- monitor.beginTask(Policy.bind("CVSTeamProvider.settingKSubst"), totalWork); //$NON-NLS-1$
- try {
- // commit files that changed from binary to text
- // NOTE: The files are committed as text with conversions even if the
- // resource sync info still says "binary".
- if (filesToCommit.size() != 0) {
- Session session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 1), true /* open for modification */);
- try {
- String keywordChangeComment = comment;
- if (keywordChangeComment == null || keywordChangeComment.length() == 0)
- keywordChangeComment = Policy.bind("CVSTeamProvider.changingKeywordComment"); //$NON-NLS-1$
- result[0] = Command.COMMIT.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- new LocalOption[] { Commit.DO_NOT_RECURSE, Commit.FORCE,
- Commit.makeArgumentOption(Command.MESSAGE_OPTION, keywordChangeComment) },
- (ICVSResource[]) filesToCommit.toArray(new ICVSResource[filesToCommit.size()]),
- filesToCommitAsText,
- null,
- Policy.subMonitorFor(monitor, filesToCommit.size()));
- } finally {
- session.close();
- }
-
- // if errors were encountered, abort
- if (! result[0].isOK()) return;
- }
-
- // admin files that changed keyword substitution mode
- // NOTE: As confirmation of the completion of a command, the server replies
- // with the RCS command output if a change took place. Rather than
- // assume that the command succeeded, we listen for these lines
- // and update the local ResourceSyncInfo for the particular files that
- // were actually changed remotely.
- for (Iterator it = filesToAdmin.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Map.Entry) it.next();
- final KSubstOption toKSubst = (KSubstOption) entry.getKey();
- final List list = (List) entry.getValue();
- // do it
- Session session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 1), true /* open for modification */);
- try {
- result[0] = Command.ADMIN.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- new LocalOption[] { toKSubst },
- (ICVSResource[]) list.toArray(new ICVSResource[list.size()]),
- new AdminKSubstListener(toKSubst),
- Policy.subMonitorFor(monitor, list.size()));
- } finally {
- session.close();
- }
- // if errors were encountered, abort
- if (! result[0].isOK()) return;
- }
- } finally {
- monitor.done();
- }
- }
- }
- }, Policy.monitorFor(monitor));
- return result[0];
- }
-
- /**
- * This method translates the contents of a file from binary into text (ASCII).
- * Fixes the line delimiters in the local file to reflect the platform's
- * native encoding. Performs CR/LF -> LF or LF -> CR/LF conversion
- * depending on the platform but does not affect delimiters that are
- * already correctly encoded.
- */
- public static void cleanLineDelimiters(IFile file, boolean useCRLF, IProgressMonitor progress)
- throws CVSException {
- try {
- // convert delimiters in memory
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- InputStream is = new BufferedInputStream(file.getContents());
- try {
- // Always convert CR/LF into LFs
- is = new CRLFtoLFInputStream(is);
- if (useCRLF) {
- // For CR/LF platforms, translate LFs to CR/LFs
- is = new LFtoCRLFInputStream(is);
- }
- for (int b; (b = is.read()) != -1;) bos.write(b);
- bos.close();
- } finally {
- is.close();
- }
- // write file back to disk with corrected delimiters if changes were made
- ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
- file.setContents(bis, false /*force*/, false /*keepHistory*/, progress);
- } catch (CoreException e) {
- throw CVSException.wrapException(file, Policy.bind("CVSTeamProvider.cleanLineDelimitersException"), e); //$NON-NLS-1$
- } catch (IOException e) {
- throw CVSException.wrapException(file, Policy.bind("CVSTeamProvider.cleanLineDelimitersException"), e); //$NON-NLS-1$
- }
- }
-
- /*
- * Marks a file as dirty.
- */
- private static void makeDirty(IFile file) throws CVSException {
- ICVSFile mFile = CVSWorkspaceRoot.getCVSFileFor(file);
- ResourceSyncInfo origInfo = mFile.getSyncInfo();
- MutableResourceSyncInfo info = origInfo.cloneMutable();
- info.setTimeStamp(null);/*set the sync timestamp to null to trigger dirtyness*/
- mFile.setSyncInfo(info, ICVSFile.UNKNOWN);
- }
-
- /*
- * @see RepositoryProvider#getID()
- */
- public String getID() {
- return CVSProviderPlugin.getTypeId();
- }
-
- /*
- * @see RepositoryProvider#getMoveDeleteHook()
- */
- public IMoveDeleteHook getMoveDeleteHook() {
- return moveDeleteHook;
- }
-
- /*
- * Return the currently registered Move/Delete Hook
- */
- public static MoveDeleteHook getRegisteredMoveDeleteHook() {
- return moveDeleteHook;
- }
-
- /**
- * @see org.eclipse.team.core.RepositoryProvider#getFileModificationValidator()
- */
- public IFileModificationValidator getFileModificationValidator() {
- if (CVSTeamProvider.fileModificationValidator == null) {
- CVSTeamProvider.fileModificationValidator = CVSTeamProvider.getPluggedInValidator();
- if (CVSTeamProvider.fileModificationValidator == null) {
- CVSTeamProvider.fileModificationValidator =super.getFileModificationValidator();
- }
- }
- return CVSTeamProvider.fileModificationValidator;
- }
-
- /**
- * Checkout (cvs edit) the provided resources so they can be modified locally and committed.
- * This will make any read-only resources in the list writable and will notify the server
- * that the file is being edited. This notification may be done immediately or at some
- * later point depending on whether contact with the server is possble at the time of
- * invocation or the value of the notify server parameter.
- *
- * The recurse parameter is equivalent to the cvs local options -l (<code>true</code>) and
- * -R (<code>false</code>). The notifyServer parameter can be used to defer server contact
- * until the next command. This may be approrpiate if no shell or progress monitor is available
- * to the caller. The notification bit field indicates what temporary watches are to be used while
- * the file is being edited. The possible values that can be ORed together are ICVSFile.EDIT,
- * ICVSFile.UNEDIT and ICVSFile.COMMIT. There pre-ORed convenience values ICVSFile.NO_NOTIFICATION
- * and ICVSFile.NOTIFY_ON_ALL are also available.
- *
- * @param resources the resources to be edited
- * @param recurse indicates whether to recurse (-R) or not (-l)
- * @param notifyServer indicates whether to notify the server now, if possible,
- * or defer until the next command.
- * @param notification the temporary watches.
- * @param progress progress monitor to provide progress indication/cancellation or <code>null</code>
- * @exception CVSException if this method fails.
- * @since 2.1
- *
- * @see CVSTeamProvider#unedit
- */
- public void edit(IResource[] resources, boolean recurse, boolean notifyServer, final int notification, IProgressMonitor progress) throws CVSException {
- notifyEditUnedit(resources, recurse, notifyServer, new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- if (file.isReadOnly())
- file.edit(notification, Policy.monitorFor(null));
- }
- public void visitFolder(ICVSFolder folder) throws CVSException {
- // nothing needs to be done here as the recurse will handle the traversal
- }
- }, progress);
- }
-
- /**
- * Unedit the given resources. Any writtable resources will be reverted to their base contents
- * and made read-only and the server will be notified that the file is no longer being edited.
- * This notification may be done immediately or at some
- * later point depending on whether contact with the server is possble at the time of
- * invocation or the value of the notify server parameter.
- *
- * The recurse parameter is equivalent to the cvs local options -l (<code>true</code>) and
- * -R (<code>false</code>). The notifyServer parameter can be used to defer server contact
- * until the next command. This may be approrpiate if no shell or progress monitor is available
- * to the caller.
- *
- * @param resources the resources to be unedited
- * @param recurse indicates whether to recurse (-R) or not (-l)
- * @param notifyServer indicates whether to notify the server now, if possible,
- * or defer until the next command.
- * @param progress progress monitor to provide progress indication/cancellation or <code>null</code>
- * @exception CVSException if this method fails.
- * @since 2.1
- *
- * @see CVSTeamProvider#edit
- */
- public void unedit(IResource[] resources, boolean recurse, boolean notifyServer, IProgressMonitor progress) throws CVSException {
- notifyEditUnedit(resources, recurse, notifyServer, new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- if (!file.isReadOnly())
- file.unedit(Policy.monitorFor(null));
- }
- public void visitFolder(ICVSFolder folder) throws CVSException {
- // nothing needs to be done here as the recurse will handle the traversal
- }
- }, progress);
- }
-
- /*
- * This method captures the common behavior between the edit and unedit methods.
- */
- private void notifyEditUnedit(final IResource[] resources, final boolean recurse, final boolean notifyServer, final ICVSResourceVisitor editUneditVisitor, IProgressMonitor monitor) throws CVSException {
- final CVSException[] exception = new CVSException[] { null };
- IWorkspaceRunnable workspaceRunnable = new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- final ICVSResource[] cvsResources = getCVSArguments(resources);
-
- // mark the files locally as being checked out
- try {
- for (int i = 0; i < cvsResources.length; i++) {
- cvsResources[i].accept(editUneditVisitor, recurse);
- }
- } catch (CVSException e) {
- exception[0] = e;
- return;
- }
-
- // send the noop command to the server in order to deliver the notifications
- if (notifyServer) {
- monitor.beginTask(null, 100);
- Session session = new Session(workspaceRoot.getRemoteLocation(), workspaceRoot.getLocalRoot(), true);
- try {
- try {
- session.open(Policy.subMonitorFor(monitor, 10), true /* open for modification */);
- } catch (CVSException e1) {
- // If the connection cannot be opened, just exit normally.
- // The notifications will be sent when a connection can be made
- return;
- }
- Command.NOOP.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- cvsResources,
- null,
- Policy.subMonitorFor(monitor, 90));
- } catch (CVSException e) {
- exception[0] = e;
- } finally {
- session.close();
- monitor.done();
- }
- }
- }
- };
- try {
- ResourcesPlugin.getWorkspace().run(workspaceRunnable, getProject(), Policy.monitorFor(monitor));
- } catch (CoreException e) {
- if (exception[0] == null) {
- throw CVSException.wrapException(e);
- } else {
- CVSProviderPlugin.log(CVSException.wrapException(e));
- }
- }
- if (exception[0] != null) {
- throw exception[0];
- }
- }
-
- /**
- * Gets the etchAbsentDirectories.
- * @return Returns a boolean
- */
- public boolean getFetchAbsentDirectories() throws CVSException {
- try {
- String property = getProject().getPersistentProperty(FETCH_ABSENT_DIRECTORIES_PROP_KEY);
- if (property == null) return CVSProviderPlugin.getPlugin().getFetchAbsentDirectories();
- return Boolean.valueOf(property).booleanValue();
- } catch (CoreException e) {
- throw new CVSException(new CVSStatus(IStatus.ERROR, Policy.bind("CVSTeamProvider.errorGettingFetchProperty", project.getName()), e)); //$NON-NLS-1$
- }
- }
-
- /**
- * Sets the fetchAbsentDirectories.
- * @param etchAbsentDirectories The etchAbsentDirectories to set
- */
- public void setFetchAbsentDirectories(boolean fetchAbsentDirectories) throws CVSException {
- try {
- getProject().setPersistentProperty(FETCH_ABSENT_DIRECTORIES_PROP_KEY, fetchAbsentDirectories ? Boolean.TRUE.toString() : Boolean.FALSE.toString());
- } catch (CoreException e) {
- throw new CVSException(new CVSStatus(IStatus.ERROR, Policy.bind("CVSTeamProvider.errorSettingFetchProperty", project.getName()), e)); //$NON-NLS-1$
- }
- }
-
- /**
- * @see org.eclipse.team.core.RepositoryProvider#canHandleLinkedResources()
- */
- public boolean canHandleLinkedResources() {
- return true;
- }
-
- /**
- * @see org.eclipse.team.core.RepositoryProvider#validateCreateLink(org.eclipse.core.resources.IResource, int, org.eclipse.core.runtime.IPath)
- */
- public IStatus validateCreateLink(IResource resource, int updateFlags, IPath location) {
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(resource.getParent().getFolder(new Path(resource.getName())));
- try {
- if (cvsFolder.isCVSFolder()) {
- // There is a remote folder that overlaps with the link so disallow
- return new CVSStatus(IStatus.ERROR, Policy.bind("CVSTeamProvider.overlappingRemoteFolder", resource.getFullPath().toString())); //$NON-NLS-1$
- } else {
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(resource.getParent().getFile(new Path(resource.getName())));
- if (cvsFile.isManaged()) {
- // there is an outgoing file deletion that overlaps the link so disallow
- return new CVSStatus(IStatus.ERROR, Policy.bind("CVSTeamProvider.overlappingFileDeletion", resource.getFullPath().toString())); //$NON-NLS-1$
- }
- }
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- return e.getStatus();
- }
-
- return super.validateCreateLink(resource, updateFlags, location);
- }
-
- /**
- * Get the editors of the resources by calling the <code>cvs editors</code> command.
- *
- * @author <a href="mailto:gregor.kohlwes@csc.com,kohlwes@gmx.net">Gregor Kohlwes</a>
- * @param resources
- * @param progress
- * @return IEditorsInfo[]
- * @throws CVSException
- */
- public EditorsInfo[] editors(
- IResource[] resources,
- IProgressMonitor progress)
- throws CVSException {
-
- // Build the local options
- LocalOption[] commandOptions = new LocalOption[] {
- };
-
- // Build the arguments list
- String[] arguments = getValidArguments(resources, commandOptions);
-
- // Build the listener for the command
- EditorsListener listener = new EditorsListener();
-
- // Check if canceled
- if (progress.isCanceled()) {
- return new EditorsInfo[0];
- }
- // Build the session
- Session session =
- new Session(
- workspaceRoot.getRemoteLocation(),
- workspaceRoot.getLocalRoot());
-
- // Check if canceled
- if (progress.isCanceled()) {
- return new EditorsInfo[0];
- }
- progress.beginTask(null, 100);
- try {
- // Opening the session takes 20% of the time
- session.open(Policy.subMonitorFor(progress, 20), false /* read-only */);
-
- if (!progress.isCanceled()) {
- // Execute the editors command
- Command.EDITORS.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- commandOptions,
- arguments,
- listener,
- Policy.subMonitorFor(progress, 80));
- }
- } finally {
- session.close();
- progress.done();
- }
- // Return the infos about the editors
- return listener.getEditorsInfos();
- }
-
- /**
- * Return the commit comment template that was provided by the server.
- *
- * @return String
- * @throws CVSException
- */
- public String getCommitTemplate() throws CVSException {
- ICVSFolder localFolder = getCVSWorkspaceRoot().getLocalRoot();
- ICVSFile templateFile = CVSWorkspaceRoot.getCVSFileFor(
- SyncFileWriter.getTemplateFile(
- (IContainer)localFolder.getIResource()));
- if (!templateFile.exists()) return null;
- InputStream in = new BufferedInputStream(templateFile.getContents());
- try {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- int b;
- do {
- b = in.read();
- if (b != -1)
- out.write((byte)b);
- } while (b != -1);
- out.close();
- return new String(out.toString());
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- } finally {
- try {
- in.close();
- } catch (IOException e) {
- // Since we already have the contents, just log this exception
- CVSProviderPlugin.log(CVSException.wrapException(e));
- }
- }
- }
-
- /**
- * Return true if the project is configured to use watch/edit. A project will use
- * watch/edit if it was checked out when the global preference to use watch/edit is
- * turned on.
- * @return boolean
- */
- public boolean isWatchEditEnabled() throws CVSException {
- try {
- IProject project = getProject();
- String property = (String)project.getSessionProperty(WATCH_EDIT_PROP_KEY);
- if (property == null) {
- property = project.getPersistentProperty(WATCH_EDIT_PROP_KEY);
- if (property == null) {
- // The persistant property for the project was never set (i.e. old project)
- // Use the global preference to determinw if the project is using watch/edit
- return CVSProviderPlugin.getPlugin().isWatchEditEnabled();
- } else {
- project.setSessionProperty(WATCH_EDIT_PROP_KEY, property);
- }
- }
- return Boolean.valueOf(property).booleanValue();
- } catch (CoreException e) {
- throw new CVSException(new CVSStatus(IStatus.ERROR, Policy.bind("CVSTeamProvider.errorGettingWatchEdit", project.getName()), e)); //$NON-NLS-1$
- }
- }
-
- public void setWatchEditEnabled(boolean enabled) throws CVSException {
- try {
- IProject project = getProject();
- project.setPersistentProperty(WATCH_EDIT_PROP_KEY, enabled ? Boolean.TRUE.toString() : Boolean.FALSE.toString());
- project.setSessionProperty(WATCH_EDIT_PROP_KEY, enabled ? Boolean.TRUE.toString() : Boolean.FALSE.toString());
- } catch (CoreException e) {
- throw new CVSException(new CVSStatus(IStatus.ERROR, Policy.bind("CVSTeamProvider.errorSettingWatchEdit", project.getName()), e)); //$NON-NLS-1$
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProviderType.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProviderType.java
deleted file mode 100644
index b59f85a7d..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProviderType.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-import org.eclipse.team.core.RepositoryProviderType;
-
-
-/**
- * This class represents the CVS Provider's capabilities in the absence of a
- * particular project.
- */
-
-public class CVSTeamProviderType extends RepositoryProviderType {
-
- /**
- * @see org.eclipse.team.core.RepositoryProviderType#supportsProjectSetImportRelocation()
- */
- public boolean supportsProjectSetImportRelocation() {
- return false;
- }
-
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSWorkspaceSubscriber.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSWorkspaceSubscriber.java
deleted file mode 100644
index a97a2faa8..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSWorkspaceSubscriber.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.utils.SynchronizationCache;
-import org.eclipse.team.core.subscribers.utils.SynchronizationSyncBytesCache;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.*;
-import org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners;
-
-/**
- * CVSWorkspaceSubscriber
- */
-public class CVSWorkspaceSubscriber extends CVSSyncTreeSubscriber implements IResourceStateChangeListener {
-
- private SynchronizationCache remoteSynchronizer;
- private SynchronizationCache baseSynchronizer;
-
- // qualified name for remote sync info
- private static final String REMOTE_RESOURCE_KEY = "remote-resource-key"; //$NON-NLS-1$
-
- CVSWorkspaceSubscriber(QualifiedName id, String name, String description) {
- super(id, name, description);
-
- // install sync info participant
- baseSynchronizer = new CVSBaseSynchronizationCache();
- remoteSynchronizer = new CVSDescendantSynchronizationCache(
- baseSynchronizer,
- new SynchronizationSyncBytesCache(new QualifiedName(SYNC_KEY_QUALIFIER, REMOTE_RESOURCE_KEY)));
-
- ResourceStateChangeListeners.getListener().addResourceStateChangeListener(this);
- }
-
- /*
- * Return the list of projects shared with a CVS team provider.
- *
- * [Issue : this will have to change when folders can be shared with
- * a team provider instead of the current project restriction]
- * (non-Javadoc)
- * @see org.eclipse.team.core.sync.ISyncTreeSubscriber#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.isOpen()) {
- RepositoryProvider provider = RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId());
- if(provider != null) {
- result.add(project);
- }
- }
- }
- return (IProject[]) result.toArray(new IProject[result.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#resourceSyncInfoChanged(org.eclipse.core.resources.IResource[])
- */
- public void resourceSyncInfoChanged(IResource[] changedResources) {
- internalResourceSyncInfoChanged(changedResources, true);
- }
-
- private void internalResourceSyncInfoChanged(IResource[] changedResources, boolean canModifyWorkspace) {
- // IMPORTANT NOTE: This will throw exceptions if performed during the POST_CHANGE delta phase!!!
- for (int i = 0; i < changedResources.length; i++) {
- IResource resource = changedResources[i];
- try {
- if (resource.getType() == IResource.FILE
- && (resource.exists() || resource.isPhantom())) {
- byte[] remoteBytes = remoteSynchronizer.getSyncBytes(resource);
- if (remoteBytes == null) {
- if (remoteSynchronizer.isRemoteKnown(resource)) {
- // The remote is known not to exist. If the local resource is
- // managed then this information is stale
- if (getBaseSynchronizationCache().getSyncBytes(resource) != null) {
- if (canModifyWorkspace) {
- remoteSynchronizer.removeSyncBytes(resource, IResource.DEPTH_ZERO);
- } else {
- // The revision comparison will handle the stale sync bytes
- }
- }
- }
- } else {
- byte[] localBytes = baseSynchronizer.getSyncBytes(resource);
- if (localBytes == null || !isLaterRevision(remoteBytes, localBytes)) {
- if (canModifyWorkspace) {
- remoteSynchronizer.removeSyncBytes(resource, IResource.DEPTH_ZERO);
- } else {
- // The getRemoteResource method handles the stale sync bytes
- }
- }
- }
- } else if (resource.getType() == IResource.FOLDER) {
- // If the base has sync info for the folder, purge the remote bytes
- if (getBaseSynchronizationCache().getSyncBytes(resource) != null && canModifyWorkspace) {
- remoteSynchronizer.removeSyncBytes(resource, IResource.DEPTH_ZERO);
- }
- }
- } catch (TeamException e) {
- CVSProviderPlugin.log(e);
- }
- }
-
- fireTeamResourceChange(TeamDelta.asSyncChangedDeltas(this, changedResources));
- }
-
- private boolean isLaterRevision(byte[] remoteBytes, byte[] localBytes) {
- try {
- return ResourceSyncInfo.isLaterRevisionOnSameBranch(remoteBytes, localBytes);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- return false;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#externalSyncInfoChange(org.eclipse.core.resources.IResource[])
- */
- public void externalSyncInfoChange(IResource[] changedResources) {
- internalResourceSyncInfoChanged(changedResources, false);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#resourceModified(org.eclipse.core.resources.IResource[])
- */
- public void resourceModified(IResource[] changedResources) {
- // This is only ever called from a delta POST_CHANGE
- // which causes problems since the workspace tree is closed
- // for modification and we flush the sync info in resourceSyncInfoChanged
-
- // Since the listeners of the Subscriber will also listen to deltas
- // we don't need to propogate this.
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#projectConfigured(org.eclipse.core.resources.IProject)
- */
- public void projectConfigured(IProject project) {
- TeamDelta delta = new TeamDelta(this, TeamDelta.ROOT_ADDED, project);
- fireTeamResourceChange(new TeamDelta[] {delta});
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#projectDeconfigured(org.eclipse.core.resources.IProject)
- */
- public void projectDeconfigured(IProject project) {
- try {
- remoteSynchronizer.removeSyncBytes(project, IResource.DEPTH_INFINITE);
- } catch (TeamException e) {
- CVSProviderPlugin.log(e);
- }
- TeamDelta delta = new TeamDelta(this, TeamDelta.ROOT_REMOVED, project);
- fireTeamResourceChange(new TeamDelta[] {delta});
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.TeamSubscriber#getAllOutOfSync(org.eclipse.core.resources.IResource[], int, org.eclipse.core.runtime.IProgressMonitor)
- */
- public SyncInfo[] getAllOutOfSync(IResource[] resources, final int depth, IProgressMonitor monitor) throws TeamException {
- monitor.beginTask(null, resources.length * 100);
- final List result = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- final IProgressMonitor infinite = Policy.infiniteSubMonitorFor(monitor, 100);
- try {
- // We need to do a scheduling rule on the project to
- // avoid overly desctructive operations from occuring
- // while we gather sync info
- infinite.beginTask(null, 512);
- Platform.getJobManager().beginRule(resource, Policy.subMonitorFor(infinite, 1));
- resource.accept(new IResourceVisitor() {
- public boolean visit(IResource innerResource) throws CoreException {
- try {
- if (isOutOfSync(innerResource, infinite)) {
- SyncInfo info = getSyncInfo(innerResource);
- if (info != null && info.getKind() != 0) {
- result.add(info);
- }
- }
- return true;
- } catch (TeamException e) {
- // TODO:See bug 42795
- throw new CoreException(e.getStatus());
- }
- }
- }, depth, true /* include phantoms */);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- Platform.getJobManager().endRule(resource);
- infinite.done();
- }
- }
- monitor.done();
- return (SyncInfo[]) result.toArray(new SyncInfo[result.size()]);
- }
-
- /* internal use only */ boolean isOutOfSync(IResource resource, IProgressMonitor monitor) throws TeamException {
- return (hasIncomingChange(resource) || hasOutgoingChange(CVSWorkspaceRoot.getCVSResourceFor(resource), monitor));
- }
-
- private boolean hasOutgoingChange(ICVSResource resource, IProgressMonitor monitor) throws CVSException {
- if (resource.isFolder()) {
- // A folder is an outgoing change if it is not a CVS folder and not ignored
- ICVSFolder folder = (ICVSFolder)resource;
- // OPTIMIZE: The following checks load the CVS folder information
- if (folder.getParent().isModified(monitor)) {
- return !folder.isCVSFolder() && !folder.isIgnored();
- }
- } else {
- // A file is an outgoing change if it is modified
- ICVSFile file = (ICVSFile)resource;
- // The parent caches the dirty state so we only need to check
- // the file if the parent is dirty
- // OPTIMIZE: Unfortunately, the modified check on the parent still loads
- // the CVS folder information so not much is gained
- if (file.getParent().isModified(monitor)) {
- return file.isModified(monitor);
- }
- }
- return false;
- }
-
- private boolean hasIncomingChange(IResource resource) throws TeamException {
- return remoteSynchronizer.isRemoteKnown(resource);
- }
-
- public void setRemote(IProject project, ISubscriberResource remote, IProgressMonitor monitor) throws TeamException {
- // TODO: This exposes internal behavior to much
- IResource[] changedResources =
- new CVSRefreshOperation(remoteSynchronizer, baseSynchronizer, null).collectChanges(project, remote, IResource.DEPTH_INFINITE, monitor);
- if (changedResources.length != 0) {
- fireTeamResourceChange(TeamDelta.asSyncChangedDeltas(this, changedResources));
- }
- }
-
- protected IResource[] refreshBase(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException {
- // TODO Ensure that file contents are cached for modified local files
- try {
- monitor.beginTask(null, 100);
- return new IResource[0];
- } finally {
- monitor.done();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getRemoteTag()
- */
- protected CVSTag getRemoteTag() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getBaseTag()
- */
- protected CVSTag getBaseTag() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getBaseSynchronizationCache()
- */
- protected SynchronizationCache getBaseSynchronizationCache() {
- return baseSynchronizer;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber#getRemoteSynchronizationCache()
- */
- protected SynchronizationCache getRemoteSynchronizationCache() {
- return remoteSynchronizer;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/DateUtil.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/DateUtil.java
deleted file mode 100644
index 2c9022a67..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/DateUtil.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
-/**
- * Utilities to handle time stamps in a cvs client.
- */
-public class DateUtil {
-
- private static final String ENTRY_TIMESTAMP_FORMAT= "EEE MMM dd HH:mm:ss yyyy";//$NON-NLS-1$
- private static final String ENTRY_TIMESTAMP_TIME_ZONE= "GMT";//$NON-NLS-1$
- private static final Locale ENTRY_TIMESTAMP_LOCALE= Locale.US;
-
- private static final String MODTIME_TIMESTAMP_FORMAT= "dd MMM yyyy HH:mm:ss zz";//$NON-NLS-1$
- private static final Locale MODTIME_TIMESTAMP_LOCALE= Locale.US;
-
- private static final String LOG_TIMESTAMP_FORMAT= "yyyy/MM/dd HH:mm:ss zzz";//$NON-NLS-1$
- private static final Locale LOG_TIMESTAMP_LOCALE= Locale.US;
-
- private static final String HISTORY_TIMESTAMP_FORMAT= "yyyy-MM-dd HH:mm zzzz";//$NON-NLS-1$
- private static final Locale HISTORY_TIMESTAMP_LOCALE= Locale.US;
-
- /**
- * Converts a time stamp as sent from a cvs server for a "log" command into a
- * <code>Date</code>.
- */
- public static Date convertFromLogTime(String modTime) {
- SimpleDateFormat format= new SimpleDateFormat(LOG_TIMESTAMP_FORMAT,
- LOG_TIMESTAMP_LOCALE);
- try {
- return format.parse(modTime);
- } catch (ParseException e) {
- // fallback is to return null
- return null;
- }
- }
- /**
- * Converts a modifcation time stamp as send from a cvs server into a
- * <code>Date</code>. The format of the modification time stamp is defined
- * in the document CVS Client/Server for CVS 1.11 section 5.6 Dates
- */
- public static Date convertFromModTime(String modTime) {
- SimpleDateFormat format= new SimpleDateFormat(MODTIME_TIMESTAMP_FORMAT,
- MODTIME_TIMESTAMP_LOCALE);
- try {
- return format.parse(modTime);
- } catch (ParseException e) {
- // fallback is to return null
- return null;
- }
- }
- /**
- * Converts a history time stamp as sent from a cvs server into a
- * <code>Date</code>.
- */
- public static Date convertFromHistoryTime(String historyTime) {
- SimpleDateFormat format= new SimpleDateFormat(HISTORY_TIMESTAMP_FORMAT,
- HISTORY_TIMESTAMP_LOCALE);
- try {
- return format.parse(historyTime);
- } catch (ParseException e) {
- // fallback is to return null
- return null;
- }
- }
- /**
- * Converts a date into an entry time format as specified in the document
- * Version Management with CVS for CVS 1.10.6 page 14. Note that the
- * time format is always in GMT also not specified in the document.
- */
- public static String toEntryFormat(Date date) {
- SimpleDateFormat format= new SimpleDateFormat(ENTRY_TIMESTAMP_FORMAT,
- ENTRY_TIMESTAMP_LOCALE);
- format.setTimeZone(TimeZone.getTimeZone(ENTRY_TIMESTAMP_TIME_ZONE));
- return format.format(date);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/EditorsInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/EditorsInfo.java
deleted file mode 100644
index 7612f9446..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/EditorsInfo.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 CSC SoftwareConsult GmbH & Co. OHG, Germany and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * CSC - Intial implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-/**
- * Instances of EditorsInfo represent information for a CVS resurce that results
- * from the cvs editors command.
- *
- * @author <a href="mailto:gregor.kohlwes@csc.com,kohlwes@gmx.net">Gregor Kohlwes</a>
- */
-
-public class EditorsInfo {
- public EditorsInfo() {
- }
-
- private String userName;
- private String fileName;
- private String dateString;
- private String computerName;
-
-
- /**
- * Returns the userName.
- * @return String
- */
- public String getUserName() {
- return userName;
- }
-
- /**
- * Sets the userName.
- * @param userName The userName to set
- */
- public void setUserName(String userName) {
- this.userName = userName;
- }
-
- /**
- * Returns the dateString.
- * @return String
- */
- public String getDateString() {
- return dateString;
- }
-
- /**
- * Returns the fileName.
- * @return String
- */
- public String getFileName() {
- return fileName;
- }
-
- /**
- * Sets the dateString.
- * @param dateString The dateString to set
- */
- public void setDateString(String dateString) {
- this.dateString = dateString;
- }
-
- /**
- * Sets the fileName.
- * @param fileName The fileName to set
- */
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
-
- /**
- * Returns the computerName.
- * @return String
- */
- public String getComputerName() {
- return computerName;
- }
-
- /**
- * Sets the computerName.
- * @param computerName The computerName to set
- */
- public void setComputerName(String computerName) {
- this.computerName = computerName;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSDecoratorEnablementListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSDecoratorEnablementListener.java
deleted file mode 100644
index 935cc0d25..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSDecoratorEnablementListener.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.internal.ccvs.core;
-
-/**
- * A decorator enablement listener is notified of changes to the enablement
- * of CVS state decorators.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see CVSProviderPlugin#addDecoratorEnablementListener(ICVSDecoratorEnablementListener)
- */
-public interface ICVSDecoratorEnablementListener {
- /**
- * Called when CVS decoration is enabled or disabled. Implementers can use the
- * decorator enablement change as a chance to create or destroy cached CVS information
- * that would help decorate CVS elements.
- *
- * @param enabled a flag indicating the enablement state of the decorators.
- */
- void decoratorEnablementChanged(boolean enabled);
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFile.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFile.java
deleted file mode 100644
index babefbd3a..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFile.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-import java.util.Date;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.syncinfo.NotifyInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * The CVS analog of a file. CVS files have access to synchronization information
- * that describes their association with the CVS repository. CVS files also provide
- * mechanisms for sending and receiving content.
- *
- * @see ICVSResource
- */
-public interface ICVSFile extends ICVSResource, ICVSStorage {
-
- // Constants used to indicate the type of updated response from the server
- public static final int UPDATED = 1;
- public static final int MERGED = 2;
- public static final int UPDATE_EXISTING = 3;
- public static final int CREATED = 4;
-
- // Constants used to indicate temporary watches
- public static final int NO_NOTIFICATION = 0;
- public static final int NOTIFY_ON_EDIT = 1;
- public static final int NOTIFY_ON_UNEDIT = 2;
- public static final int NOTIFY_ON_COMMIT = 4;
- public static final int NOTIFY_ON_ALL = NOTIFY_ON_EDIT | NOTIFY_ON_UNEDIT | NOTIFY_ON_COMMIT;
-
- // Constants used to indicate modification state when setting sync info
- public static final int UNKNOWN = 0;
- public static final int CLEAN = 1;
- public static final int DIRTY = 2;
-
- /**
- * Answers the workspace synchronization information for this resource. This would
- * typically include information from the <b>Entries</b> file that is used to track
- * the base revisions of local CVS resources.
- *
- * @return the synchronization information for this resource, or <code>null</code>
- * if the resource does not have synchronization information available.
- */
- public byte[] getSyncBytes() throws CVSException;
-
- /**
- * Called to set the workspace synchronization information for a resource. To
- * clear sync information call <code>unmanage</code>. The sync info will
- * become the persisted between workbench sessions.
- *
- * Note: This method makes use of a ResourceSyncInfo object which has the parsed
- * contents of the resource sync info. Clients can manipulate the values using
- * MutableResourceSyncInfo and then set the sync info using this method.
- *
- * @param info the resource synchronization to associate with this resource.
- */
- public void setSyncInfo(ResourceSyncInfo info, int modificationState) throws CVSException;
-
- /**
- * Called to set the workspace synchronization information for a resource. To
- * clear sync information call <code>unmanage</code>. The sync info will
- * become the persisted between workbench sessions.
- *
- * Note: This method sets the sync info to the bytes provided as-is. It is the caller's
- * responsibility to ensure that these bytes are of the proper format. Use with caution.
- *
- * @param info the resource synchronization to associate with this resource.
- */
- public void setSyncBytes(byte[] syncBytes, int modificationState) throws CVSException;
-
- /**
- * Sets the file to read-only (<code>true</code>) or writable (<code>false</code>).
- *
- * This method is used by the command framework and should not be used by other clients.
- * Other clients should use <code>edit</code> and <code>unedit</code> instead as they
- * will report the change to the server if appropriate.
- */
- void setReadOnly(boolean readOnly) throws CVSException;
-
- /**
- * Answers whether the file is read-only or not. If a file is read-only, <code>edit</code>
- * should be invoked to make the file editable.
- */
- boolean isReadOnly() throws CVSException;
-
- /**
- * Copy the resource to another file in the same directory
- *
- * This method is used by the command framework and should not be used by other clients.
- */
- void copyTo(String filename) throws CVSException;
-
- /**
- * Answers the current timestamp for this file with second precision.
- *
- * This method is used by the command framework and should not be used by other clients.
- */
- Date getTimeStamp();
-
- /**
- * If the date is <code>null</code> then the current time is used. After setTimeStamp is
- * invoked, it is assumed that the file is CLEAN. If this is not the case, it is the clients
- * responsibility to invoke setSyncBytes() with the appropriate modification state.
- *
- * This method is used by the command framework and should not be used by other clients.
- */
- void setTimeStamp(Date date) throws CVSException;
-
- /**
- * Answers <code>true</code> if the file has changed since it was last updated
- * from the repository, if the file does not exist, or is not managed. And <code>false</code>
- * if it has not changed.
- */
- boolean isModified(IProgressMonitor monitor) throws CVSException;
-
- /**
- * Answers the revision history for this file. This is similar to the
- * output of the log command.
- */
- public ILogEntry[] getLogEntries(IProgressMonitor monitor) throws TeamException;
-
- /**
- * Mark the file as checked out to allow local editing (analogous to "cvs edit").
- * If this method is invoked when <code>isCheckedOut()</code> returns <code>false</code>,
- * a notification message that will be sent to the server on the next connection
- * If <code>isCheckedOut()</code> returns <code>true</code> then nothing is done.
- *
- * @param notifications the set of operations for which the local user would like notification
- * while the local file is being edited.
- */
- public void edit(int notifications, IProgressMonitor monitor) throws CVSException;
-
- /**
- * Undo a checkout of the file (analogous to "cvs unedit").
- * If this method is invoked when <code>isCheckedOut()</code> returns <code>true</code>,
- * a notification message that will be sent to the server on the next connection
- * If <code>isCheckedOut()</code> returns <code>false</code> then nothing is done.
- */
- public void unedit(IProgressMonitor monitor) throws CVSException;
-
- /**
- * This method is invoked by the checked-in handler after the file
- * has been committed.
- */
- public void checkedIn(String entryLine) throws CVSException;
-
- /**
- * Answer any pending notification information associated with the receiver.
- *
- * This method is used by the command framework and should not be used by other clients.
- */
- public NotifyInfo getPendingNotification() throws CVSException;
-
- /**
- * Indicate to the file that the pending notification was successfully communicated to the server.
- *
- * This method is used by the command framework and should not be used by other clients.
- */
- public void notificationCompleted() throws CVSException;
-
- /**
- * Indicate whether the file has been "cvs edit"ed. This is determined by
- * looking in the CVS/Base folder for a file of the same name as the
- * file (i.e. no files are read so the method can be called by time critical
- * code like menu enablement).
- *
- * @return boolean
- */
- public boolean isEdited() throws CVSException;
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFileModificationValidator.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFileModificationValidator.java
deleted file mode 100644
index a45887e9b..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFileModificationValidator.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.internal.ccvs.core;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFileModificationValidator;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public interface ICVSFileModificationValidator extends IFileModificationValidator {
-
- public IStatus validateMoveDelete(IFile[] files, IProgressMonitor monitor);
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java
deleted file mode 100644
index b636adc78..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-
-/**
- * The CVS analog of a directory. CVS folders have access to synchronization information
- * that describes the association between the folder and the remote repository.
- *
- * @see ICVSResource
- * @see ICVSFile
- */
-public interface ICVSFolder extends ICVSResource {
-
- public static final int FILE_MEMBERS = 1;
- public static final int FOLDER_MEMBERS = 2;
- public static final int IGNORED_MEMBERS = 4;
- public static final int UNMANAGED_MEMBERS = 8;
- public static final int MANAGED_MEMBERS = 16;
- public static final int EXISTING_MEMBERS = 32;
- public static final int PHANTOM_MEMBERS = 64;
- public static final int ALL_MEMBERS = FILE_MEMBERS
- | FOLDER_MEMBERS
- | IGNORED_MEMBERS
- | UNMANAGED_MEMBERS
- | MANAGED_MEMBERS
- | EXISTING_MEMBERS
- | PHANTOM_MEMBERS;
- public static final int ALL_EXISTING_MEMBERS = FILE_MEMBERS
- | FOLDER_MEMBERS
- | IGNORED_MEMBERS
- | UNMANAGED_MEMBERS
- | MANAGED_MEMBERS
- | EXISTING_MEMBERS;
- public static final int ALL_UNIGNORED_MEMBERS = FILE_MEMBERS
- | FOLDER_MEMBERS
- | UNMANAGED_MEMBERS
- | MANAGED_MEMBERS
- | EXISTING_MEMBERS
- | PHANTOM_MEMBERS;
-
- /**
- * Answers and array of <code>ICVSResource</code> elements that are immediate
- * children of this remote resource, in no particular order. The server may be contacted.
- *
- * @param monitor a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- *
- * @return array of immediate children of this remote resource.
- */
- public ICVSResource[] fetchChildren(IProgressMonitor monitor) throws CVSException;
-
- /**
- * Answer the immediate children of the resource that are known
- * at the time of invocation. The server is never contacted.
- * The flags indicate the type of members to be included.
- * Here are the rules for specifying just one flag:
- *
- * a) FILE_MEMBERS and FOLDER_MEMBERS will return managed
- * and unmanaged resource of the corresponding type
- * b) IGNORED_MEMBERS, MANAGED_RESOURCES and UNMANAGED_RESOURCES
- * will return files and folders of the given type
- * c) EXISTING_MEMBERS and PHANTOM_MEMBERS will return existing
- * and phatom resource of the corresponding type
- *
- * Note: Unmanaged resources are those that are neither managed or ignored.
- *
- * If all of the flags from either group a), group b) or group c)
- * are not present, the same rule for default types applies.
- * For example,
- * - FILE_MEMBERS | FOLDER_MEMBERS will return all managed
- * and unmanaged, existing and phantom files and folders.
- * - IGNORED_MEMBERS | UNMANAGED_MEMBERS will return all
- * ignored or unmanaged, existing or phantom files and folders
- * If a flag from each group is present, the result is the
- * union of the sets. For example,
- * - FILE_MEMBERS | IGNORED_MEMBERS | EXISTING_MEMBERS will return all
- * existing ignored files.
- */
- public ICVSResource[] members(int flags) throws CVSException;
-
- /**
- * Answers a child folder of this resource with the given name or <code>null</code> if
- * the given folder does not have a child with that name.
- */
- public ICVSFolder getFolder(String name) throws CVSException;
-
- /**
- * Answers a child file of this resource with the given name or <code>null</code> if
- * the given folder does not have a child with that name.
- */
- public ICVSFile getFile(String name) throws CVSException;
-
- /**
- * Return the child resource at the given path relative to
- * the receiver.
- */
- public ICVSResource getChild(String path) throws CVSException;
-
- /**
- * Create the folder if it did not exist before. Does only
- * work if the direct subfolder did exist.
- *
- * @throws CVSException if for some reason it was not possible to create the folder
- */
- public void mkdir() throws CVSException;
-
- /**
- * Answers the folder's synchronization information or <code>null</code> if the folder
- * is not a CVS folder.
- * <p>
- * To modify the folder sync info the caller must call <code>setFolderSyncInfo</code> with
- * new sync information.</p>
- */
- public FolderSyncInfo getFolderSyncInfo() throws CVSException;
-
- /**
- * Set the folder sync information for this folder. Setting the folder information
- * to <code>null</code> is not supported. The only mechanism for removing an existing
- * CVS folder is to delete the resource.
- */
- public void setFolderSyncInfo(FolderSyncInfo folderInfo) throws CVSException;
-
- /**
- * Accepts the visitor on all files and all subFolder in the folder. Files are
- * visited first, then all the folders..
- */
- public void acceptChildren(ICVSResourceVisitor visitor) throws CVSException;
-
- /**
- * Answers <code>true</code> if the folder has valid CVS synchronization information and
- * <code>false</code> otherwise.
- *
- * Note: This method does not throw an exception so this method does not differentiate
- * between a folder not be shared with CVS and a folder that is shared but whose sync info has
- * become corrupt. Use getFolderSyncInfo() to differentiate between these situations.
- *
- * Also Note: A folder that is a CVS folder may not exist in the workspace. The purpose of
- * such a folder is to act as a remotely existing folder that does not exist locally.
- * This is normally done in order to remember outgoing file deletions when a parent
- * folder is deleted.
- * Creating the folder will result in a folder that is mapped to a remote folder.
- */
- public boolean isCVSFolder() throws CVSException;
-
- /**
- * Runs the given action as an atomic cvs local workspace operation
- * rooted at this cvs folder.
- * <p>
- * After running a method that modifies cvs resource state in the
- * local workspace, registered listeners receive after-the-fact
- * notification in the form of a resource state change event. In addition,
- * any resource state information persistance is batched.
- * This method allows clients to call a number of
- * methods that modify resources and only have resource
- * change event notifications reported at the end of the entire
- * batch.
- * </p>
- * <p>
- * If this method is called in the dynamic scope of another such
- * call, this method simply runs the action.
- * </p>
- *
- * @param job the action to perform
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @exception CVSException if the operation failed.
- */
- public void run(ICVSRunnable job, IProgressMonitor monitor) throws CVSException;
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSListener.java
deleted file mode 100644
index 7bde4aed5..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSListener.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-
-public interface ICVSListener {
- public void repositoryAdded(ICVSRepositoryLocation root);
- public void repositoryRemoved(ICVSRepositoryLocation root);
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteFile.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteFile.java
deleted file mode 100644
index 61c1916cb..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteFile.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.internal.ccvs.core;
-
-
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-
- /**
- * This interface represents a file in a repository.
- * Instances of this interface can be used to fetch the contents
- * of the remote file.
- *
- * In the future, additional information should be available (tags, revisions, etc.)
- *
- * Clients are not expected to implement this interface.
- */
-public interface ICVSRemoteFile extends ICVSRemoteResource, ICVSFile {
-
- /**
- * Returns a stream over the contents of this remote element.
- *
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- */
- public InputStream getContents(IProgressMonitor progress) throws TeamException;
-
- /**
- * Get the log entry for the revision the remote file represents.
- * This method will return null until after the getContents(IProgressMonitor)
- * method is called (i.e. the call to getContents also fetches the entry.
- */
- public ILogEntry getLogEntry(IProgressMonitor monitor) throws TeamException;
-
- /**
- * Get all the log entries of the remote file
- */
- public ILogEntry[] getLogEntries(IProgressMonitor monitor) throws TeamException;
-
- /**
- * Get the revision of the remote file (e.g. 1.1)
- *
- * The revision depends on any tagging associated with the remote parent used
- * to access the file.
- */
- public String getRevision() throws TeamException;
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteFolder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteFolder.java
deleted file mode 100644
index 7d92ede5a..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteFolder.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.internal.ccvs.core;
-
-
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-
- /**
- * This interface represents a remote folder in a repository. It provides
- * access to the members (remote files and folders) of a remote folder
- *
- * Clients are not expected to implement this interface.
- */
-public interface ICVSRemoteFolder extends ICVSRemoteResource, ICVSFolder {
-
- // This constant is the name of the folder at the root of a repository
- public static final String REPOSITORY_ROOT_FOLDER_NAME = ""; //$NON-NLS-1$
-
- /**
- * Return the context of this handle. The returned tag can be a branch or
- * version tag.
- */
- public CVSTag getTag();
-
- /**
- * Return the local options that are used to determine how memebers are retrieved.
- *
- * Interesting options are:
- * Checkout.ALIAS
- * Command.DO_NOT_RECURSE
- */
- public LocalOption[] getLocalOptions();
-
- /**
- * Indicates whether the remote folder can be expanded.
- *
- * This is a temporary (hopefully) means of indicating certain types of folders
- * (i.e. module definitions) that are not expandable due to lack of mdoule expansion.
- * They can still be checked out.
- */
- public boolean isExpandable();
-
- /**
- * Indicates whether the remote folder is an actual remote folder is a
- * module defined in the CVSROOT/modules file (or some other module
- * definition).
- */
- public boolean isDefinedModule();
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteResource.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteResource.java
deleted file mode 100644
index cfab718cd..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRemoteResource.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-
-/**
- * The interface represents a resource that exists in a CVS repository.
- * It purpose is to provide information about the remote resource from
- * the repository.
- *
- * Clients are not expected to implement this interface.
- */
-public interface ICVSRemoteResource extends ICVSResource, IRemoteResource {
-
- /**
- * Answers if the remote element may have children.
- *
- * @return <code>true</code> if the remote element may have children and
- * <code>false</code> otherwise.
- */
- public boolean isContainer();
-
- /**
- * Return the repository
- */
- public ICVSRepositoryLocation getRepository();
-
- /**
- * Returns the parent of this remote resource or <code>null</code> if the
- * remote resource does not have a parent.
- */
- public ICVSRemoteResource getRemoteParent();
-
- /**
- * Does the remote resource represented by this handle exist on the server. This
- * method may contact the server and be long running.
- */
- public boolean exists(IProgressMonitor monitor) throws TeamException;
-
- /**
- * Answers the repository relative path of this remote folder.
- */
- public String getRepositoryRelativePath();
-
- /**
- * Compares two objects for equality; for cvs remote resources, equality is defined in
- * terms of their handles: same cvs resource type, equal relative paths, and
- * for files, identical revision numbers. Remote resources are not equal to objects other
- * than cvs remote resources.
- *
- * @param other the other object
- * @return an indication of whether the objects are equals
- */
- public boolean equals(Object other);
-
- /**
- * Allows a client to change the context of a remote resource handle. For
- * example, if a remote resource was created with the HEAD context (e.g. can
- * be used to browse the main branch) use this method to change the
- * context to another branch tag or to a version tag.
- */
- public ICVSRemoteResource forTag(CVSTag tagName);
-
- /**
- * Tag the remote resources referenced by the receiver (using rtag)
- */
- public IStatus tag(CVSTag tag, LocalOption[] localOptions, IProgressMonitor monitor) throws CVSException;
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRepositoryLocation.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRepositoryLocation.java
deleted file mode 100644
index 20bb9118c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRepositoryLocation.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * This interface provides access to the specific portions of
- * the repository location string for use by connection methods
- * and the user authenticator.
- *
- * It is not intended to implemented by clients.
- *
- * @see IUserAuthenticator
- * @see IConnectionMethod
- */
-public interface ICVSRepositoryLocation extends IAdaptable {
-
- /**
- * port value which indicates to a connection method to use the default port
- */
- public static int USE_DEFAULT_PORT = 0;
-
- /**
- * Return the connection method for making the connection
- */
- public IConnectionMethod getMethod();
-
- /**
- * Returns the host where the repository is located
- */
- public String getHost();
-
- /**
- * Returns the port to connect to or USE_DEFAULT_PORT if
- * the connection method is to use its default port.
- */
- public int getPort();
-
- /**
- * Returns the root directory of the repository.
- */
- public String getRootDirectory();
-
- /**
- * Returns the string representing the receiver. This string
- * should contain enough information to recreate the receiver.
- */
- public String getLocation();
-
- /**
- * Returns the immediate children of this location. If tag is <code>null</code> the
- * HEAD branch is assumed.
- *
- * If modules is true, then the module definitions from the CVSROOT/modules file are returned.
- * Otherwise, the root level projects are returned.
- *
- * @param tag the context in which to return the members (e.g. branch or version).
- */
- public ICVSRemoteResource[] members(CVSTag tag, boolean modules, IProgressMonitor progress) throws CVSException;
-
- /**
- * Returns a handle to a remote file at this repository location using the given tag as the
- * context. The corresponding remote file may not exist or may be a folder.
- */
- public ICVSRemoteFile getRemoteFile(String remotePath, CVSTag tag);
-
- /**
- * Returns a handle to a remote folder at this repository location using the given tag as the
- * context. The corresponding remote folder may not exist or may be a file.
- */
- public ICVSRemoteFolder getRemoteFolder(String remotePath, CVSTag tag);
-
- /**
- * Return the conection timeout value in milliseconds.
- * A value of 0 means there is no timeout value.
- */
- public int getTimeout();
-
- /**
- * Return the username
- */
- public String getUsername();
-
- /**
- * Returns the user information for the location.
- */
- public IUserInfo getUserInfo(boolean allowModificationOfUsername);
-
- /**
- * Flush any cahced user information related to the repository location
- */
- public void flushUserInfo() throws CVSException;
-
- /**
- * Validate that the receiver can be used to connect to a repository.
- * An exception is thrown if connection fails
- *
- * @param monitor the progress monitor used while validating
- */
- public void validateConnection(IProgressMonitor monitor) throws CVSException;
-
- /**
- * Returns the plugged-in authenticator for this location.
- * @since 3.0
- */
- public IUserAuthenticator getUserAuthenticator();
-
- /**
- * Sets the plugged-in authenticator for this location. This is a hook
- * for testing.
- * @since 3.0
- */
- public void setUserAuthenticator(IUserAuthenticator authenticator);
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java
deleted file mode 100644
index 5bd769057..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * The CVS analog of file system files and directories. These are handles to
- * state maintained by a CVS client. That is, the CVS resource does not
- * actually contain data but rather represents CVS state and behavior. You are
- * free to manipulate handles for CVS resources that do not exist but be aware
- * that some methods require that an actual resource be available.
- * <p>
- * The CVS client has been designed to work on these handles uniquely. As such, the
- * handle could be to a remote resource or a local resource and the client could
- * perform CVS operations ignoring the actual location of the resources.</p>
- *
- * @see ICVSFolder
- * @see ICVSFile
- */
-public interface ICVSResource {
-
- /**
- * Answers the name of the resource.
- *
- * @return the name of the resource this handle represents. It can never
- * be <code>null</code>.
- */
- public String getName();
-
- /**
- * Answers if this resource has CVS synchronization information associated
- * with it.
- *
- * @return <code>true</code> if the resource is
- */
- public boolean isManaged() throws CVSException;
-
- /**
- * Unmanage the given resource by purging any CVS synchronization associated with the
- * resource. The only way a resource can become managed is by running the
- * appropriate CVS commands (e.g. add/commit/update).
- */
- public void unmanage(IProgressMonitor monitor) throws CVSException;
-
- /**
- * Answer whether the resource could be ignored because it is in the one of the
- * ignore lists maintained by CVS. Even if a resource is ignored, it can still be
- * added to a repository, at which time it should never be ignored by the CVS
- * client.
- *
- * @return <code>true</code> if this resource is listed in one of the ignore
- * files maintained by CVS and <code>false</code> otherwise.
- */
- public boolean isIgnored() throws CVSException;
-
- /**
- * Add the following pattern to the file's parent ignore list
- *
- * XXX This should really be a method of ICVSFolder
- */
- public void setIgnoredAs(String pattern) throws CVSException;
-
- /**
- * Answers if the handle is a file or a folder handle.
- *
- * @return <code>true</code> if this is a folder handle and <code>false</code> if
- * it is a file handle.
- */
- public boolean isFolder();
-
- /**
- * Answers if the resource identified by this handle exists.
- *
- * @return <code>true</code> if the resource represented by this handle
- * exists and <code>false</code> false otherwise.
- */
- public boolean exists() throws CVSException;
-
- /**
- * Answers the underlying IResource for the cvs resource (or null if there
- * is not a corresponding local resource).
- *
- * @return the IResource that corresponds to the CVS resource
- */
- public IResource getIResource() throws CVSException;
-
- /**
- * Answers the local relative path from the given ancestor to the receiver.
- * This method will return a path for files that are themselves not added
- * to CVS control but who have an ancestor that is under CVS control.
- *
- * @return the ancestor relative path for this resource.
- */
- public String getRelativePath(ICVSFolder ancestor) throws CVSException;
-
- /**
- * Return the repository relative path of the remote resource. Return
- * <code>null</code> if the resource is not under CVS control.
- *
- * @return
- * @throws CVSException
- */
- public String getRepositoryRelativePath() throws CVSException;
-
- /**
- * Get the absolute remote location of a resource. This method is used by
- * the CVS command infrastructure during command execution. The root is used
- * in situations where the resource is not under CVS control. The remote
- * path that the resource would have if it was is determined by recursively
- * searching the resource's parent until a managed folder is found. The
- * provided root is used to stop the recursive search if no managed parent
- * is found.
- *
- * @param root the root folder of the command.
- *
- * @return the remote location.
- */
- public String getRemoteLocation(ICVSFolder root) throws CVSException;
-
- /**
- * Answers the workspace synchronization information for this resource. This would
- * typically include information from the <b>Entries</b> file that is used to track
- * the base revisions of local CVS resources.
- *
- * @return the synchronization information for this resource, or <code>null</code>
- * if the resource does not have synchronization information available.
- */
- public ResourceSyncInfo getSyncInfo() throws CVSException;
-
- /**
- * Deletes the resource represented by the handle.
- */
- public void delete() throws CVSException;
-
- /**
- * Give the folder that contains this resource. If the resource is not managed
- * then the result of the operation is not specified.
- *
- * @return a handle to the parent of this resource.
- */
- public ICVSFolder getParent();
-
- /**
- * Accept a vistor to this resource.
- */
- public void accept(ICVSResourceVisitor visitor) throws CVSException;
-
- /**
- * Accept a visitor to this resource. The recurse parameter corresponds to the CVS
- * -l (do not recurse) and -R (recurse) options. If recurse is false, only the resource
- * and it's children are visited. Otherwise, the resource and all it's decendants are
- * visited.
- */
- public void accept(ICVSResourceVisitor visitor, boolean recurse) throws CVSException;
-
- /**
- * Method isModified.
- * @return boolean
- */
- public boolean isModified(IProgressMonitor monitor) throws CVSException;
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResourceVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResourceVisitor.java
deleted file mode 100644
index 28cc5cd29..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResourceVisitor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-
-
-/**
- * Interface for an visitor of the IManagedResources.
- */
-public interface ICVSResourceVisitor {
- public void visitFile(ICVSFile file) throws CVSException;
- public void visitFolder(ICVSFolder folder) throws CVSException;
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRunnable.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRunnable.java
deleted file mode 100644
index 378147b8a..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSRunnable.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.internal.ccvs.core;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A runnable which executes as a batch operation within a specific cvs local
- * workspace.
- * The <code>ICVSRunnable</code> interface should be implemented by any class whose
- * instances are intended to be run by <code>IWorkspace.run</code>.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see
- */
-public interface ICVSRunnable {
- /**
- * Runs the operation reporting progress to and accepting
- * cancellation requests from the given progress monitor.
- * <p>
- * Implementors of this method should check the progress monitor
- * for cancellation when it is safe and appropriate to do so. The cancellation
- * request should be propagated to the caller by throwing
- * <code>OperationCanceledException</code>.
- * </p>
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @exception CoreException if this operation fails.
- */
- public void run(IProgressMonitor monitor) throws CVSException;
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSStorage.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSStorage.java
deleted file mode 100644
index af87c02a7..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSStorage.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.internal.ccvs.core;
-
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * This interface is used by the Session to transfer file contents.
- * It is used for regular files in a local sandbox as well as special files
- * such as the CVS/Template file.
- */
-public interface ICVSStorage {
-
- /**
- * Return the name for this ICVSStorage.
- * @return
- */
- String getName();
-
- /**
- * Set the contents of the file to the contents of the provided input stream.
- *
- * This method is used by the command framework and should not be used by other clients.
- * Other clients should set the contents of the underlying <code>IFile</code> which
- * can be obtained using <code>getIResource()</code>.
- *
- * @param responseType the type of reponse that was received from the server
- *
- * UPDATED - could be a new file or an existing file
- * MERGED - merging remote changes with local changes. Failure could result in loss of local changes
- * CREATED - contents for a file that doesn't exist locally
- * UPDATE_EXISTING - Replacing a local file with no local changes with remote changes.
- */
- public void setContents(InputStream stream, int responseType, boolean keepLocalHistory, IProgressMonitor monitor) throws CVSException;
-
- /**
- * Answers the size of the file.
- */
- long getSize();
-
- /**
- * Gets an input stream for reading from the file.
- * It is the responsibility of the caller to close the stream when finished.
- */
- InputStream getContents() throws CVSException;
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IConnectionMethod.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IConnectionMethod.java
deleted file mode 100644
index 6bb199784..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IConnectionMethod.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-/**
- * Implementators of this class can act as factories for creating connections to a CVS server
- * with the desired custom communication protocol. Providers of CVS connection methods must implement
- * this interface and register the implementation with the extension point:
- *
- * org.eclipse.team.cvs.core.connectionmethods
- *
- * The <code>createConnection()</code> method will be invoked by the CVS client when the user
- * is attempting to make a connection to the server using the connection name which matches
- * the <code>String</code> returned by <code>getName()</code> (e.g. "pserver", "ext", etc.).
- */
-public interface IConnectionMethod {
-
- /**
- * Returns the name of this connection method (e.g."local", "ext").
- */
- public String getName();
-
- /**
- * Creates a new server connection using the given repository root
- * (which includes the user name) and the given password.
- */
- public IServerConnection createConnection(ICVSRepositoryLocation location, String password);
-
- /**
- * Some connection method may persist the physical connection to the server
- * through several IServerConnections. For example, when making several
- * successive connections to the same location using SSH2, it would be very
- * expensive to re-connect, re-negotiate and re-authenticate for each
- * operation; therefore the SSH2 connection method will create one SSH
- * session and open several channels (one for each IServerConnection
- * created), and keep the session open until disconnect() is called.
- * <p>
- * This method actually closes any connection to the indicated location.
- * </p>
- */
- public void disconnect(ICVSRepositoryLocation location);
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ILogEntry.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ILogEntry.java
deleted file mode 100644
index 339c51476..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ILogEntry.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.internal.ccvs.core;
-
-
-import java.util.Date;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Instances of ILogEntry represent an entry for a CVS file that results
- * from the cvs log command.
- *
- * Clients are not expected to implement this interface
- */
-public interface ILogEntry extends IAdaptable {
-
- /**
- * Get the revision for the entry
- */
- public String getRevision();
-
- /**
- * Get the author of the revision
- */
- public String getAuthor();
-
- /**
- * Get the date the revision was committed
- */
- public Date getDate();
-
- /**
- * Get the comment for the revision
- */
- public String getComment();
-
- /**
- * Get the state
- */
- public String getState();
-
- /**
- * Get the tags associated with the revision
- */
- public CVSTag[] getTags();
-
- /**
- * Get the remote file for this entry
- */
- public ICVSRemoteFile getRemoteFile();
-
- /**
- * Does the log entry represent a deletion (stat = "dead")
- */
- public boolean isDeletion();
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java
deleted file mode 100644
index b47e3a7f5..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core;
-
-
-import java.util.EventListener;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-
-/**
- * A resource state change listener is notified of changes to resources
- * regarding their team state.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see ITeamManager#addResourceStateChangeListener(IResourceStateChangeListener)
- */
-public interface IResourceStateChangeListener extends EventListener{
-
- /**
- * Notifies this listener that some resource sync info state changes have
- * already happened. For example, a resource's base revision may have
- * changed. The resource tree is open for modification when this method is
- * invoked, so markers can be created, etc.
- * <p>
- * Note: This method is called by the CVS core; it is not intended to be
- * called directly by clients.
- * </p>
- *
- * @param changedResources that have sync info state changes
- *
- * [Note: The changed state event is purposely vague. For now it is only
- * a hint to listeners that they should query the provider to determine the
- * resources new sync info.]
- */
- public void resourceSyncInfoChanged(IResource[] changedResources);
-
- /**
- * Notifies this listener that the resource sync info may have been changed
- * by an external tool. It is not always easy to differentiate external
- * changes from intenal ones. Therefore, the changed resources may include
- * some whose sync info was changed internally. This method is called
- * from a POST_CHANGE delta listener so the workspace cannot be modified.
- *
- * @param changeResources that have sync info state changes
- */
- public void externalSyncInfoChange(IResource[] changedResources);
-
- /**
- * Notifies this listener that the resource's have been modified. This
- * doesn't necessarily mean that the resource state isModified. The listener
- * must check the state.
- * <p>
- * Note: This method is called by CVS team core; it is not intended to be
- * called directly by clients.
- * </p>
- *
- * @param changedResources that have changed state
- * @param changeType the type of state change.
- */
- public void resourceModified(IResource[] changedResources);
-
- /**
- * Notifies this listener that the project has just been configured
- * to be a CVS project.
- * <p>
- * Note: This method is called by the CVS core; it is not intended to be
- * called directly by clients.
- * </p>
- *
- * @param project The project that has just been configured
- */
- public void projectConfigured(IProject project);
-
- /**
- * Notifies this listener that the project has just been deconfigured
- * and no longer has the CVS nature.
- * <p>
- * Note: This method is called by the CVS core; it is not intended to be
- * called directly by clients.
- * </p>
- *
- * @param project The project that has just been configured
- */
- public void projectDeconfigured(IProject project);
-
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IServerConnection.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IServerConnection.java
deleted file mode 100644
index 7ecfc3055..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IServerConnection.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-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.connection.CVSAuthenticationException;
-/**
-* CVS supports different connection methods for communicating between a client and the server.
-* Furthermore, custom connection methods can be added. Connection methods are added
-* to the CVS client as an IConnectionMethod, which can be used to create connections of
-* type IServerConnection.
-*
-* @see IConnectionMethod
-*/
-public interface IServerConnection {
- /**
- * Open a connection to the CVS server.
- *
- * Throw CVSAuthenticationException if the username or password is invalid.
- * Throw IOExceptions for other failures.
- */
- public void open(IProgressMonitor monitor) throws IOException, CVSAuthenticationException;
- /**
- * Close the connection
- *
- * Throw IOException on failures
- */
- public void close() throws IOException;
- /**
- * Get the input stream to receive responses from the server
- */
- public InputStream getInputStream();
- /**
- * Get the output stream to send requests to the server
- */
- public OutputStream getOutputStream();
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IUserAuthenticator.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IUserAuthenticator.java
deleted file mode 100644
index 0019ced2c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IUserAuthenticator.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Atsuhiko Yamanaka, JCraft,Inc. - adding promptForKeyboradInteractive method
- ********************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-/**
- * IUserAuthenticators are used to ensure that the user
- * is validated for access to a given repository. The
- * user is prompted for a username and password as
- * appropriate for the given repository type.
- */
-public interface IUserAuthenticator {
-
- /**
- * Button id for an "Ok" button (value 0).
- */
- public int OK_ID = 0;
-
- /**
- * Button id for a "Cancel" button (value 1).
- */
- public int CANCEL_ID = 1;
-
- /**
- * Button id for a "Yes" button (value 2).
- */
- public int YES_ID = 2;
-
- /**
- * Button id for a "No" button (value 3).
- */
- public int NO_ID = 3;
-
- /**
- * Constant for a prompt with no type (value 0).
- */
- public final static int NONE = 0;
-
- /**
- * Constant for an error prompt (value 1).
- */
- public final static int ERROR = 1;
-
- /**
- * Constant for an information prompt (value 2).
- */
- public final static int INFORMATION = 2;
-
- /**
- * Constant for a question prompt (value 3).
- */
- public final static int QUESTION = 3;
-
- /**
- * Constant for a warning dialog (value 4).
- */
- public final static int WARNING = 4;
-
- /**
- * Authenticates the user for access to a given repository.
- * The obtained values for user name and password will be placed
- * into the supplied user info object. Implementors are allowed to
- * save user names and passwords. The user should be prompted for
- * user name and password if there is no saved one, or if <code>retry</code>
- * is <code>true</code>.
- *
- * @param location The repository location to authenticate the user for.
- * @param info The object to place user validation information into.
- * @param retry <code>true</code> if a previous attempt to log in failed.
- * @param message An optional message to display if, e.g., previous authentication failed.
- * @return true if the validation was successful, and false otherwise.
- */
- public void promptForUserInfo(ICVSRepositoryLocation location, IUserInfo userInfo, String message) throws CVSException;
-
- /**
- * Prompts the user for a number values using text fields. The labels are provided in
- * the <core>prompt</code> array. Implementors will return the entered values, or null if
- * the user cancel the prompt.
- *
- * @param location The repository location to authenticate the user for.
- * @param destination The destination in the format like username@hostname:port
- * @param name A name about this dialog.
- * @param instruction A message for the instruction.
- * @param prompt Labels for text fields.
- * @param echo the array to show which fields are secret.
- * @return the entered values, or null if the user canceled.
- *
- * @since 3.0
- */
- public String[] promptForKeyboradInteractive(ICVSRepositoryLocation location, String destination, String name, String instruction, String[] prompt, boolean[] echo) throws CVSException;
-
- /**
- * Prompts the authenticator for additional information regarding this authentication
- * request. A default implementation of this method should return the <code>defaultResponse</code>,
- * whereas alternate implementations could prompt the user with a dialog.
- *
- * @param location the repository location for this authentication
- * @param promptType one of the following values:
- * <ul>
- * <li> <code>NONE</code> for a unspecified prompt type </li>
- * <li> <code>ERROR</code> for an error prompt </li>
- * <li> <code>INFORMATION</code> for an information prompt </li>
- * <li> <code>QUESTION </code> for a question prompt </li>
- * <li> <code>WARNING</code> for a warning prompt </li>
- * </ul>
- * @param title the prompt title that could be displayed to the user
- * @param message the prompt
- * @param promptResponses the possible responses to the prompt
- * @param defaultResponse the default response to the prompt
- * @return the response to the prompt
- *
- * @since 3.0
- */
- public int prompt(ICVSRepositoryLocation location, int promptType, String title, String message, int[] promptResponses, int defaultResponseIndex);
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IUserInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IUserInfo.java
deleted file mode 100644
index be8a9f26e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IUserInfo.java
+++ /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
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-/**
- * Instances of this class represent a username password pair.
- * Both values can be set and the username can be retrieved.
- * However, it is possible that the username is not mutable.
- * Users must check before trying to set the username.
- *
- * Clients are not expected to implement this interface
- */
-public interface IUserInfo {
- /**
- * Get the username for this user.
- */
- public String getUsername();
- /**
- * Return true if the username is mutable. If not, setUsername should not be called.
- */
- public boolean isUsernameMutable();
- /**
- * Sets the password for this user.
- */
- public void setPassword(String password);
- /**
- * Sets the username for this user. This should not be called if
- * isUsernameMutable() returns false.
- */
- public void setUsername(String username);
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/Policy.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/Policy.java
deleted file mode 100644
index b1e2cc61b..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/Policy.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core;
-
-
-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;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.team.internal.core.InfiniteSubProgressMonitor;
-
-public class Policy {
- protected static ResourceBundle bundle = null;
-
- //debug constants
- public static boolean DEBUG_METAFILE_CHANGES = false;
- public static boolean DEBUG_CVS_PROTOCOL = false;
- public static boolean DEBUG_THREADING = false;
- public static boolean DEBUG_DIRTY_CACHING = false;
- public static boolean DEBUG_SYNC_CHANGE_EVENTS = false;
-
- static {
- //init debug options
- if (CVSProviderPlugin.getPlugin().isDebugging()) {
- DEBUG_METAFILE_CHANGES = "true".equalsIgnoreCase(Platform.getDebugOption(CVSProviderPlugin.ID + "/metafiles"));//$NON-NLS-1$ //$NON-NLS-2$
- DEBUG_CVS_PROTOCOL = "true".equalsIgnoreCase(Platform.getDebugOption(CVSProviderPlugin.ID + "/cvsprotocol"));//$NON-NLS-1$ //$NON-NLS-2$
- DEBUG_THREADING = "true".equalsIgnoreCase(Platform.getDebugOption(CVSProviderPlugin.ID + "/threading"));//$NON-NLS-1$ //$NON-NLS-2$
- DEBUG_DIRTY_CACHING = "true".equalsIgnoreCase(Platform.getDebugOption(CVSProviderPlugin.ID + "/dirtycaching"));//$NON-NLS-1$ //$NON-NLS-2$
- DEBUG_SYNC_CHANGE_EVENTS = "true".equalsIgnoreCase(Platform.getDebugOption(CVSProviderPlugin.ID + "/syncchangeevents"));//$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /**
- * 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;
- }
-
- public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new SubProgressMonitor(monitor, ticks);
- }
- public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks, int style) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new SubProgressMonitor(monitor, ticks, style);
- }
-
- public static IProgressMonitor infiniteSubMonitorFor(IProgressMonitor monitor, int ticks) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new InfiniteSubProgressMonitor(monitor, ticks);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractMessageCommand.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractMessageCommand.java
deleted file mode 100644
index a8ce18820..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractMessageCommand.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-/**
- * Superclass for commands that do not change the structure on
- * the local working copy (it can change the content of the files).<br>
- * Most of the subclasses are asking the server for response in
- * message format (log, status)
- */
-abstract class AbstractMessageCommand extends Command {
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // Send all folders that are already managed to the server
- new FileStructureVisitor(session, false, false).visit(session, resources, monitor);
- return resources;
- }
-
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java
deleted file mode 100644
index cb6310f9c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-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.Policy;
-import org.eclipse.team.internal.ccvs.core.resources.CVSEntryLineTag;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.NotifyInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * An ICVSResourceVisitor that is superclass to all ICVSResourceVisitor's used
- * by Command and it's subclasses.
- * Provides helper methods to send files and folders with modifications
- * to the server.
- *
- * This class does not perform a beginTask of done on the provided monitor.
- * It is used only to signal worl and subTask.
- */
-abstract class AbstractStructureVisitor implements ICVSResourceVisitor {
-
- protected Session session;
- private ICVSFolder lastFolderSent;
- protected IProgressMonitor monitor;
- protected boolean sendQuestionable;
- protected boolean sendModifiedContents;
- private boolean sendBinary;
-
- public AbstractStructureVisitor(Session session, boolean sendQuestionable, boolean sendModifiedContents) {
- this(session, sendQuestionable, sendModifiedContents, true);
- }
-
- public AbstractStructureVisitor(Session session, boolean sendQuestionable, boolean sendModifiedContents, boolean sendBinary) {
- this.session = session;
- this.sendQuestionable = sendQuestionable;
- this.sendModifiedContents = sendModifiedContents;
- this.sendBinary = sendBinary;
- }
-
- /**
- * Helper method to indicate if a directory has already been sent to the server
- */
- protected boolean isLastSent(ICVSFolder folder) {
- return folder.equals(lastFolderSent);
- }
-
- /**
- * Helper method to record if a directory has already been sent to the server
- */
- protected void recordLastSent(ICVSFolder folder) {
- lastFolderSent = folder;
- }
-
- /**
- * Helper which indicates if a folder is an orphaned subtree.
- * That is, a directory which contains a CVS subdirectory but is
- * not managed by its parent. The root directory of the session
- * is not considered orphaned even if it is not managed by its
- * parent.
- */
- protected boolean isOrphanedSubtree(ICVSFolder mFolder) throws CVSException {
- return mFolder.isCVSFolder() && ! mFolder.isManaged() && ! mFolder.equals(session.getLocalRoot()) && mFolder.getParent().isCVSFolder();
- }
-
- /**
- * Send the folder relative to the root to the server. Send all
- * appropiate modifier like Sticky, Questionable, Static-directory.
- * <br>
- * Folders will only be sent once.
- */
- protected void sendFolder(ICVSFolder mFolder) throws CVSException {
-
- Policy.checkCanceled(monitor);
-
- boolean exists = mFolder.exists();
- boolean isCVSFolder = mFolder.isCVSFolder();
-
- // We are only interested in folders that exist or are CVS folders
- // A folder could be a non-existant CVS folder if it is a holder for outgoing file deletions
- if ( ! exists && ! isCVSFolder) return;
-
- // Do not send the same folder twice
- if (isLastSent(mFolder)) return;
-
- // Do not send virtual directories
- if (isCVSFolder && mFolder.getFolderSyncInfo().isVirtualDirectory()) {
- return;
- }
-
- String localPath = mFolder.getRelativePath(session.getLocalRoot());
-
- monitor.subTask(Policy.bind("AbstractStructureVisitor.sendingFolder", Util.toTruncatedPath(mFolder, session.getLocalRoot(), 3))); //$NON-NLS-1$
-
- // Deal with questionable directories
- boolean isQuestionable = exists && (! isCVSFolder || isOrphanedSubtree(mFolder));
- if (isQuestionable) {
- if (sendQuestionable) {
- // We need to make sure the parent folder was sent
- sendFolder(mFolder.getParent());
- session.sendQuestionable(mFolder);
- }
- return;
- }
-
- // Send the directory to the server
- String remotePath = mFolder.getRemoteLocation(session.getLocalRoot());
- if (remotePath == null) {
- throw new CVSException(Policy.bind("AbstractStructureVisitor.noRemote")); //$NON-NLS-1$
- }
- session.sendDirectory(localPath, remotePath);
-
- // Send any directory properties to the server
- FolderSyncInfo info = mFolder.getFolderSyncInfo();
- if (info != null) {
-
- if (info.getIsStatic()) {
- session.sendStaticDirectory();
- }
-
- CVSEntryLineTag tag = info.getTag();
-
- if (tag != null && tag.getType() != CVSTag.HEAD) {
- session.sendSticky(tag.toEntryLineFormat(false));
- }
- }
-
- // Record that we sent this folder
- recordLastSent(mFolder);
-
- monitor.worked(1);
- }
-
- /**
- * Send the information about the file to the server.
- *
- * If the file is modified, its contents are sent as well.
- */
- protected void sendFile(ICVSFile mFile) throws CVSException {
-
- Policy.checkCanceled(monitor);
-
- // Send the parent folder if it hasn't been sent already
- sendFolder(mFile.getParent());
-
- // Send the file's entry line to the server
- byte[] syncBytes = mFile.getSyncBytes();
- boolean isManaged = syncBytes != null;
- if (isManaged) {
- sendPendingNotification(mFile);
- session.sendEntry(syncBytes, ResourceSyncInfo.getTimestampToServer(syncBytes, mFile.getTimeStamp()));
- } else {
- // If the file is not managed, send a questionable to the server if the file exists locally
- // A unmanaged, locally non-existant file results from the explicit use of the file name as a command argument
- if (sendQuestionable) {
- if (mFile.exists()) {
- session.sendQuestionable(mFile);
- }
- return;
- }
- // else we are probably doing an import so send the file contents below
- }
-
- // If the file exists, send the appropriate indication to the server
- if (mFile.exists()) {
- if (mFile.isModified(null)) {
- boolean binary = ResourceSyncInfo.isBinary(syncBytes);
- if (sendModifiedContents) {
- session.sendModified(mFile, binary, sendBinary, monitor);
- } else {
- session.sendIsModified(mFile, binary, monitor);
- }
- } else {
- session.sendUnchanged(mFile);
- }
- }
-
- monitor.worked(1);
- }
-
- protected void sendPendingNotification(ICVSFile mFile) throws CVSException {
- NotifyInfo notify = mFile.getPendingNotification();
- if (notify != null) {
- sendFolder(mFile.getParent());
- session.sendNotify(mFile.getParent(), notify);
- }
- }
-
- /**
- * This method is used to visit a set of ICVSResources. Using it ensures
- * that a common parent between the set of resources is only sent once
- */
- public void visit(Session session, ICVSResource[] resources, IProgressMonitor monitor) throws CVSException {
-
- // Sort the resources to avoid sending the same directory multiple times
- List resourceList = new ArrayList(resources.length);
- resourceList.addAll(Arrays.asList(resources));
- final ICVSFolder localRoot = session.getLocalRoot();
- Collections.sort(resourceList, new Comparator() {
- public int compare(Object object1, Object object2) {
- ICVSResource resource1 = (ICVSResource)object1;
- ICVSResource resource2 = (ICVSResource)object2;
- try {
- String path1 = resource1.getParent().getRelativePath(localRoot);
- String path2 = resource2.getParent().getRelativePath(localRoot);
- int pathCompare = path1.compareTo(path2);
- if (pathCompare == 0) {
- if (resource1.isFolder() == resource2.isFolder()) {
- return resource1.getName().compareTo(resource2.getName());
- } else if (resource1.isFolder()) {
- return 1;
- } else {
- return -1;
- }
- } else {
- return pathCompare;
- }
- } catch (CVSException e) {
- return resource1.getName().compareTo(resource2.getName());
- }
- }
- });
-
- // Create a progress monitor suitable for the visit
- int resourceHint = 64;
- monitor.beginTask(null, resourceHint);
- this.monitor = Policy.infiniteSubMonitorFor(monitor, resourceHint);
- try {
- // Visit all the resources
- this.monitor.beginTask(null, resourceHint);
- session.setSendFileTitleKey(getSendFileTitleKey());
- for (int i = 0; i < resourceList.size(); i++) {
- ((ICVSResource)resourceList.get(i)).accept(this);
- }
- } finally {
- monitor.done();
- }
- }
-
- protected String getSendFileTitleKey() {
- return "AbstractStructureVisitor.sendingFile"; //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Add.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Add.java
deleted file mode 100644
index d08be90bf..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Add.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-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.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-public class Add extends Command {
- /*** Local options: specific to add ***/
-
- protected Add() { }
- protected String getRequestId() {
- return "add"; //$NON-NLS-1$
- }
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // Check that all the arguments can give you an
- // repo that you will need while traversing the
- // file-structure
- for (int i = 0; i < resources.length; i++) {
- Assert.isNotNull(resources[i].getRemoteLocation(session.getLocalRoot()));
- }
-
- // Get a vistor and use it on every resource we should
- // work on
- AddStructureVisitor visitor = new AddStructureVisitor(session);
- visitor.visit(session, resources, monitor);
- return resources;
- }
-
- /**
- * If the add succeeded then folders have to be initialized with the
- * sync info
- */
- protected IStatus commandFinished(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor,
- IStatus status) throws CVSException {
-
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- return status;
- }
-
- for (int i = 0; i < resources.length; i++) {
- if (resources[i].isFolder()) {
- ICVSFolder mFolder = (ICVSFolder) resources[i];
- FolderSyncInfo info = mFolder.getParent().getFolderSyncInfo();
- if (info == null) {
- status = mergeStatus(status, new CVSStatus(CVSStatus.ERROR, Policy.bind("Add.invalidParent", mFolder.getRelativePath(session.getLocalRoot())))); //$NON-NLS-1$
- } else {
- String repository = info.getRepository() + "/" + mFolder.getName(); //$NON-NLS-1$
- mFolder.setFolderSyncInfo(new FolderSyncInfo(repository, info.getRoot(), info.getTag(), info.getIsStatic()));
- }
- }
- }
- return status;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AddStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AddStructureVisitor.java
deleted file mode 100644
index 033daa40d..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AddStructureVisitor.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.internal.ccvs.core.client;
-
-
-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.util.Assert;
-
-/**
- * This visitor is used by the Add command to ensure that the parent
- * folder is sent along with the added resource.
- */
-class AddStructureVisitor extends AbstractStructureVisitor {
-
- public AddStructureVisitor(Session session) {
- super(session, false, true);
- }
-
- /**
- * @see ICVSResourceVisitor#visitFile(IManagedFile)
- */
- public void visitFile(ICVSFile mFile) throws CVSException {
-
- // Send the parent folder
- sendFolder(mFile.getParent());
-
- // Sends the Is-modified request if it is supported, otherwise
- // the file contents are sent as binary. The server does not
- // need the contents at this stage so this should not be a problem.
- session.sendIsModified(mFile, true, monitor);
-
- }
-
- /**
- * @see ICVSResourceVisitor#visitFolder(ICVSFolder)
- */
- public void visitFolder(ICVSFolder mFolder) throws CVSException {
-
- Assert.isNotNull(mFolder);
-
- // Send the parent folder
- sendFolder(mFolder.getParent());
-
- // Send the directory
- String localPath = mFolder.getRelativePath(session.getLocalRoot());
- String remotePath = mFolder.getRemoteLocation(session.getLocalRoot());
- session.sendDirectory(localPath, remotePath);
-
- // Record that we sent this folder
- recordLastSent(mFolder);
- }
-
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Admin.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Admin.java
deleted file mode 100644
index f4e5dd2c6..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Admin.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.internal.ccvs.core.client;
-
-
-public class Admin extends AbstractMessageCommand {
- /*** Local options: specific to admin ***/
-
- protected Admin() { }
- protected String getRequestId() {
- return "admin"; //$NON-NLS-1$
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Annotate.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Annotate.java
deleted file mode 100644
index f47b0a82d..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Annotate.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-public class Annotate extends AbstractMessageCommand {
-
-/**
- * The CVS Annotate Command.
- * Answers a resource with each line annotated with the revision the line
- * was added/changed and the user making the change.
- */
-
- protected Annotate() { }
-
- protected String getRequestId() {
- return "annotate"; //$NON-NLS-1$
- }
-
- // Local options specific to Annotate - revision (can be tag or revision)
- public static LocalOption makeRevisionOption(String revision) {
- return new LocalOption("-r" + revision, null); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ByteCountOutputStream.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ByteCountOutputStream.java
deleted file mode 100644
index e81e91cf0..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ByteCountOutputStream.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.core.client;
-
-import java.io.*;
-
-class ByteCountOutputStream extends OutputStream {
-
- private long size = 0;
-
- public void write(int b) throws IOException {
- size++;
- }
- public long getSize() {
- return size;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CRLFDetectInputStream.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CRLFDetectInputStream.java
deleted file mode 100644
index d4aac1251..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CRLFDetectInputStream.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.team.internal.ccvs.core.client;
-
-import java.io.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.*;
-
-/**
- * Stream which detects CRLF in text file contents recieved from the server
- */
-public class CRLFDetectInputStream extends FilterInputStream {
-
- private boolean previousCR;
- private String filename;
- private boolean reported = false;
-
- protected CRLFDetectInputStream(InputStream in, ICVSStorage file) {
- super(in);
- try {
- this.filename = getFileName(file);
- } catch (CVSException e) {
- this.filename = file.getName();
- }
- }
-
- private String getFileName(ICVSStorage storage) throws CVSException {
- String fileName;
- if (storage instanceof ICVSFile) {
- ICVSFile file = (ICVSFile)storage;
- fileName = file.getRepositoryRelativePath();
- if (fileName == null) {
- IResource resource = file.getIResource();
- if (resource == null) {
- fileName = file.getName();
- } else {
- // Use the resource path if there is one since the remote pat
- fileName = file.getIResource().getFullPath().toString();
- }
- }
- } else {
- fileName = storage.getName();
- }
- return fileName;
- }
-
- /**
- * Wraps the underlying stream's method.
- * Translates CR/LF sequences to LFs transparently.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred will be zero
- * @throws IOException if an i/o error occurs
- */
- public int read() throws IOException {
- int next = in.read();
- if (next != -1) {
- testForCRLF((byte)next);
- }
- return next;
- }
-
- /**
- * Wraps the underlying stream's method.
- * Translates CR/LF sequences to LFs transparently.
- * @throws InterruptedIOException if the operation was interrupted before all of the
- * bytes specified have been skipped, bytesTransferred may be non-zero
- * @throws IOException if an i/o error occurs
- */
- public int read(byte[] buffer, int off, int len) throws IOException {
- int count = super.read(buffer, off, len);
- for (int i = off; i < count; i++) {
- testForCRLF(buffer[i]);
- }
- return count;
- }
-
- /**
- * Test the byte to see if a CRLF sequence was read
- */
- private void testForCRLF(byte next) {
- if (reported) return;
- if (previousCR && next == '\n') {
- CVSProviderPlugin.log(IStatus.WARNING, Policy.bind("CRLFDetectInputStream.0", filename), null); //$NON-NLS-1$
- reported = true;
- }
- previousCR = (next == '\r');
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CheckedInHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CheckedInHandler.java
deleted file mode 100644
index 649b08e8c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CheckedInHandler.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * Handles a "Checked-in" response from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Checked-in ??? \n
- * [...]
- * </pre>
- * Then
- * </p>
- */
-class CheckedInHandler extends ResponseHandler {
- public String getResponseID() {
- return "Checked-in"; //$NON-NLS-1$
- }
-
- public void handle(Session session, String localDir, IProgressMonitor monitor) throws CVSException {
- // read additional data for the response
- String repositoryFile = session.readLine();
- String entryLine = session.readLine();
-
- // clear file update modifiers
- session.setModTime(null);
-
- // Get the local file
- String fileName = repositoryFile.substring(repositoryFile.lastIndexOf("/") + 1); //$NON-NLS-1$
- ICVSFolder mParent = session.getLocalRoot().getFolder(localDir);
- ICVSFile mFile = mParent.getFile(fileName);
-
- // Marked the local file as checked-in
- monitor.subTask(Policy.bind("CheckInHandler.checkedIn", Util.toTruncatedPath((ICVSResource)mFile, session.getLocalRoot(), 3))); //$NON-NLS-1$
- mFile.checkedIn(entryLine);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Checkout.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Checkout.java
deleted file mode 100644
index 54d3d926f..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Checkout.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ModuleDefinitionsListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.UpdateListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteModule;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-public class Checkout extends Command {
- /*** Local options: specific to checkout ***/
- public static final LocalOption DO_NOT_SHORTEN = new LocalOption("-N"); //$NON-NLS-1$
- public static final LocalOption FETCH_MODULE_ALIASES = new LocalOption("-c"); //$NON-NLS-1$
- public static LocalOption makeDirectoryNameOption(String moduleName) {
- return new LocalOption("-d", moduleName); //$NON-NLS-1$
- }
-
- /*** Default command output listener ***/
- private static final ICommandOutputListener DEFAULT_OUTPUT_LISTENER = new UpdateListener(null);
-
- /** Command options found in the CVSROOT/modules file */
- public static LocalOption ALIAS = new LocalOption("-a"); //$NON-NLS-1$
- public static LocalOption makeStatusOption(String status) {
- return new LocalOption("-s", status); //$NON-NLS-1$
- }
-
- protected Checkout() { }
- protected String getRequestId() {
- return "co"; //$NON-NLS-1$
- }
-
- protected ICommandOutputListener getDefaultCommandOutputListener() {
- return DEFAULT_OUTPUT_LISTENER;
- }
-
- protected ICVSResource[] computeWorkResources(Session session, LocalOption[] localOptions,
- String[] arguments) throws CVSException {
-
- // We shouldn't have any arguments if we're fetching the module definitions
- if (arguments.length < 1 && ! FETCH_MODULE_ALIASES.isElementOf(localOptions)) throw new IllegalArgumentException();
-
- // We can determine the local directories using either the -d option or the module expansions
- Option dOption = findOption(localOptions, "-d"); //$NON-NLS-1$
- if (dOption != null) {
- // Should we append the expansions to the -d argument?
- return new ICVSResource[] {session.getLocalRoot().getFolder(dOption.argument)};
- }
- String[] modules = session.getModuleExpansions();
- ICVSResource[] resources = new ICVSResource[modules.length];
- for (int i = 0; i < resources.length; i++) {
- resources[i] = session.getLocalRoot().getFolder(modules[i]);
- }
- return resources;
- }
-
- /**
- * Start the Checkout command:
- * Send the module that is going to be checked-out to the server
- * by reading the name of the resource given
- * (This has to change to we give it the name of the modul and the
- * Checkout creates everything for us)
- */
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // We need a folder to put the project(s) we checkout into
- Assert.isTrue(session.getLocalRoot().isFolder());
-
- // Send the information about the local workspace resources to the server
- List resourcesToSend = new ArrayList(resources.length);
- for (int i = 0; i < resources.length; i++) {
- ICVSResource resource = resources[i];
- if (resource.exists() && resource.isFolder() && ((ICVSFolder)resource).isCVSFolder()) {
- resourcesToSend.add(resource);
- }
- }
- if ( ! resourcesToSend.isEmpty()) {
- resources = (ICVSResource[]) resourcesToSend.toArray(new ICVSResource[resourcesToSend.size()]);
- new FileStructureVisitor(session, true, true).visit(session, resources, monitor);
- }
- return resources;
- }
-
- protected void sendLocalWorkingDirectory(Session session) throws CVSException {
- session.sendConstructedRootDirectory();
- }
-
- /**
- * On sucessful finish, prune empty directories if
- * the -P option was specified (or is implied by -D or -r)
- */
- protected IStatus commandFinished(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor,
- IStatus status) throws CVSException {
- // If we didn't succeed, don't do any post processing
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- return status;
- }
-
- // If we are retrieving the modules file, ignore other options
- if (FETCH_MODULE_ALIASES.isElementOf(localOptions)) return status;
-
- // If we are pruning (-P) or getting a sticky copy (-D or -r), then prune empty directories
- if (PRUNE_EMPTY_DIRECTORIES.isElementOf(localOptions) ||
- (findOption(localOptions, "-D") != null) || //$NON-NLS-1$
- (findOption(localOptions, "-r") != null)) { //$NON-NLS-1$
-
- // Prune empty directories
- new PruneFolderVisitor().visit(session, resources);
- }
-
- session.handleCaseCollisions();
- return status;
- }
-
- /**
- * Override execute to perform a expand-modules before the checkout
- */
- protected IStatus doExecute(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, String[] arguments, ICommandOutputListener listener,
- IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, 100);
-
- if ( ! FETCH_MODULE_ALIASES.isElementOf(localOptions)) {
- // Execute the expand-modules command.
- // This will put the expansions in the session for later retrieval
- IStatus status = Request.EXPAND_MODULES.execute(session, arguments, Policy.subMonitorFor(monitor, 10));
- if (status.getCode() == CVSStatus.SERVER_ERROR)
- return status;
-
- // If -d is not included in the local options, then send -N (do not shorten directory paths)
- // to the server (as is done by other cvs clients)
- if (findOption(localOptions, "-d") == null) { //$NON-NLS-1$
- if ( ! DO_NOT_SHORTEN.isElementOf(localOptions)) {
- LocalOption[] newLocalOptions = new LocalOption[localOptions.length + 1];
- newLocalOptions[0] = DO_NOT_SHORTEN;
- System.arraycopy(localOptions, 0, newLocalOptions, 1, localOptions.length);
- localOptions = newLocalOptions;
- }
- }
- }
-
- return super.doExecute(session, globalOptions, localOptions, arguments, listener, Policy.subMonitorFor(monitor, 90));
- }
-
- /**
- * Perform a checkout to get the module expansions defined in the CVSROOT/modules file
- */
- public RemoteModule[] getRemoteModules(Session session, CVSTag tag, IProgressMonitor monitor)
- throws CVSException {
-
- ModuleDefinitionsListener moduleDefinitionListener = new ModuleDefinitionsListener();
-
- IStatus status = super.execute(session, NO_GLOBAL_OPTIONS, new LocalOption[] {FETCH_MODULE_ALIASES}, NO_ARGUMENTS,
- moduleDefinitionListener, monitor);
-
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
-
- return RemoteModule.createRemoteModules(moduleDefinitionListener.getModuleExpansions(), session.getCVSRepositoryLocation(), tag);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CheckoutWithOverwrite.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CheckoutWithOverwrite.java
deleted file mode 100644
index 803f10e35..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CheckoutWithOverwrite.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.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-
-/**
- * This checkout will overwrite any resources even for created responses
- */
-public class CheckoutWithOverwrite extends Checkout {
-
- /**
- * This class overrides the "Created" handler but uses the "Updated"
- * behavior which will overwrite existing files.
- */
- public class CreatedResponseHandler extends UpdatedHandler {
- public CreatedResponseHandler() {
- super(UpdatedHandler.HANDLE_UPDATED);
- }
- public String getResponseID() {
- return "Created"; //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.Command#doExecute(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption[], org.eclipse.team.internal.ccvs.core.client.Command.LocalOption[], java.lang.String[], org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus doExecute(
- Session session,
- GlobalOption[] globalOptions,
- LocalOption[] localOptions,
- String[] arguments,
- ICommandOutputListener listener,
- IProgressMonitor monitor)
- throws CVSException {
-
- ResponseHandler newCreated = new CreatedResponseHandler();
- ResponseHandler oldCreated = session.getResponseHandler(newCreated.getResponseID());
- session.registerResponseHandler(newCreated);
- try {
- return super.doExecute(
- session,
- globalOptions,
- localOptions,
- arguments,
- listener,
- monitor);
- } finally {
- session.registerResponseHandler(oldCreated);
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java
deleted file mode 100644
index 8e49ad97f..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java
+++ /dev/null
@@ -1,768 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener;
-
-/**
- * Abstract base class for command requests.
- * Provides a framework for implementing command execution.
- */
-public abstract class Command extends Request {
- /*** Command singleton instances ***/
- public final static Add ADD = new Add();
- public final static Admin ADMIN = new Admin();
- public final static Annotate ANNOTATE = new Annotate();
- public final static Checkout CHECKOUT = new CheckoutWithOverwrite();
- public final static Commit COMMIT = new Commit();
- public final static Diff DIFF = new Diff();
- public final static RDiff RDIFF = new RDiff();
- public final static Editors EDITORS = new Editors();
- public final static Import IMPORT = new Import();
- public final static Log LOG = new Log();
- public final static Remove REMOVE = new Remove();
- public final static Status STATUS = new Status();
- public final static Tag TAG = new Tag();
- // The CUSTOM_TAG command has special handling for added and removed resources.
- // This behavior supports branching with local changes in the workspace
- public final static Tag CUSTOM_TAG = new Tag(true);
- public final static RTag RTAG = new RTag();
- public final static Update UPDATE = new Update();
- public final static Update REPLACE = new UpdateWithOverwrite();
- public final static SyncUpdate SYNCUPDATE = new SyncUpdate();
- public final static Version VERSION = new Version();
- public final static NOOPCommand NOOP = new NOOPCommand();
-
- // Empty argument array
- public final static String[] NO_ARGUMENTS = new String[0];
-
- /*** Global options ***/
- // Empty global option array
- public static final GlobalOption[] NO_GLOBAL_OPTIONS = new GlobalOption[0];
- // Do not change file contents
- public static final GlobalOption DO_NOT_CHANGE = new GlobalOption("-n"); //$NON-NLS-1$
- // Do not record this operation into CVS command history
- public static final GlobalOption DO_NOT_LOG = new GlobalOption("-l"); //$NON-NLS-1$
- // Make new working files read-only
- public static final GlobalOption MAKE_READ_ONLY = new GlobalOption("-r"); //$NON-NLS-1$
- // Trace command execution
- public static final GlobalOption TRACE_EXECUTION = new GlobalOption("-t"); //$NON-NLS-1$
-
- /*** Global options: quietness ***/
- // Don't be quiet (normal verbosity)
- public static final QuietOption VERBOSE = new QuietOption(""); //$NON-NLS-1$
- // Be somewhat quiet (suppress informational messages)
- public static final QuietOption PARTLY_QUIET = new QuietOption("-q"); //$NON-NLS-1$
- // Be really quiet (silent but for serious problems)
- public static final QuietOption SILENT = new QuietOption("-Q"); //$NON-NLS-1$
-
- /*** Local options: common to many commands ***/
- // Empty local option array
- public static final LocalOption[] NO_LOCAL_OPTIONS = new LocalOption[0];
- // valid for: annotate checkout commit diff export log rdiff remove rtag status tag update
- public static final LocalOption DO_NOT_RECURSE = new LocalOption("-l"); //$NON-NLS-1$
- // valid for: checkout export update
- public static final LocalOption PRUNE_EMPTY_DIRECTORIES = new LocalOption("-P"); //$NON-NLS-1$
- // valid for: checkout export update
- public static final LocalOption MESSAGE_OPTION = new LocalOption("-m"); //$NON-NLS-1$
-
- /*** Local options: keyword substitution mode ***/
- // valid for: add admin checkout export import update
- private static final Map ksubstOptionMap = new HashMap();
- public static final KSubstOption KSUBST_BINARY = new KSubstOption("-kb"); //$NON-NLS-1$
- public static final KSubstOption KSUBST_TEXT = new KSubstOption("-ko"); //$NON-NLS-1$
- public static final KSubstOption KSUBST_TEXT_EXPAND = new KSubstOption("-kkv"); //$NON-NLS-1$
- public static final KSubstOption KSUBST_TEXT_EXPAND_LOCKER = new KSubstOption("-kkvl"); //$NON-NLS-1$
- public static final KSubstOption KSUBST_TEXT_VALUES_ONLY = new KSubstOption("-kv"); //$NON-NLS-1$
- public static final KSubstOption KSUBST_TEXT_KEYWORDS_ONLY = new KSubstOption("-kk"); //$NON-NLS-1$
-
- /*** Default command output listener ***/
- protected static final ICommandOutputListener DEFAULT_OUTPUT_LISTENER = new CommandOutputListener();
-
- /**
- * Prevents client code from instantiating us.
- */
- protected Command() { }
-
- /**
- * Provides the default command output listener which is used to accumulate errors.
- *
- * Subclasses can override this method in order to properly interpret information
- * received from the server.
- */
- protected ICommandOutputListener getDefaultCommandOutputListener() {
- return DEFAULT_OUTPUT_LISTENER;
- }
-
- /**
- * Sends the command's arguments to the server.
- * [template method]
- * <p>
- * The default implementation sends all arguments. Subclasses may override
- * this method to provide alternate behaviour.
- * </p>
- *
- * @param session the CVS session
- * @param arguments the arguments that were supplied by the caller of execute()
- */
- protected void sendArguments(Session session, String[] arguments) throws CVSException {
- for (int i = 0; i < arguments.length; ++i) {
- session.sendArgument(arguments[i]);
- }
- }
-
- /**
- * Describes the local resource state to the server prior to command execution.
- * [template method]
- * <p>
- * Commands must override this method to inform the server about the state of
- * local resources using the Entries, Modified, Unchanged, and Questionable
- * requests as needed.
- * </p>
- * <p>
- * This method should return the resources that are of interest to the
- * <code>Command#commandFinished()</code> method. In most cases, it
- * is the same resources that are provided but in some cases (e.g. Commit)
- * the resources to be passed to the above method are different.
- * </p>
- *
- * @param session the CVS session
- * @param globalOptions the global options for the command
- * @param localOptions the local options for the command
- * @param resources the resource arguments for the command
- * @param monitor the progress monitor
- * @return ICVSResource[]
- */
- protected abstract ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException;
-
- /**
- * Cleans up after command execution.
- * [template method]
- * <p>
- * The default implementation is a no-op. Subclasses may override this
- * method to follow up command execution on the server with clean up
- * operations on local resources.
- * </p>
- *
- * @param session the CVS session
- * @param globalOptions the global options for the command
- * @param localOptions the local options for the command
- * @param resources the resource arguments for the command
- * @param monitor the progress monitor
- * @param status the status accumulated so far. If the code == CVSStatus.SERVER_ERROR
- * then the command failed
- * @return status the status past in plus any additional status accumulated during the finish
- */
- protected IStatus commandFinished(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor,
- IStatus status) throws CVSException {
- return status;
- }
-
- /**
- * Sends the local working directory path prior to command execution.
- * [template method]
- * <p>
- * The default implementation sends the paths of local root directory
- * (assuming it exists). Subclasses may override this method to provide
- * alternate behaviour.
- * </p>
- *
- * @param session the CVS session
- */
- protected void sendLocalWorkingDirectory(Session session) throws CVSException {
- ICVSFolder localRoot = session.getLocalRoot();
- if (localRoot.isCVSFolder()) {
- session.sendLocalRootDirectory();
- } else {
- session.sendConstructedRootDirectory();
- }
- }
-
- /**
- * Computes an array of ICVSResources corresponding to command arguments.
- * [template method]
- * <p>
- * The default implementation assumes that all arguments supplied to the
- * command represent resources in the local root that are to be manipulated.
- * Subclasses must override this method if this assumption does not hold.
- * </p>
- * @param session the CVS session
- * @param localOptions the command local options
- * @param arguments the command arguments
- * @return the resource arguments for the command
- */
- protected ICVSResource[] computeWorkResources(Session session,
- LocalOption[] localOptions, String[] arguments) throws CVSException {
- ICVSFolder localRoot = session.getLocalRoot();
-
- if (arguments.length == 0) {
- // As a convenience, passing no arguments to the CVS command
- // implies the command will operate on the local root folder.
- return new ICVSResource[] { localRoot };
- } else {
- // Assume all arguments represent resources that are descendants
- // of the local root folder.
- ICVSResource[] resources = new ICVSResource[arguments.length];
- for (int i = 0; i < arguments.length; i++) {
- ICVSResource resource = localRoot.getChild(arguments[i]);
- // file does not exist, it could have been deleted. It doesn't matter
- // which type we return since only the name of the resource is used
- // and sent to the server.
- if(resource==null) {
- if(localRoot.getName().length()==0) {
- // Return a folder because it is the safest choice when
- // localRoot is a handle to the IWorkspaceRoot!
- resource = localRoot.getFolder(arguments[i]);
- } else {
- resource = localRoot.getFile(arguments[i]);
- }
- }
- resources[i] = resource;
- }
- return resources;
- }
- }
-
- /**
- * Send an array of Resources.
- *
- * @see Command#sendFileStructure(ICVSResource,IProgressMonitor,boolean,boolean,boolean)
- */
- protected void sendFileStructure(Session session, ICVSResource[] resources,
- boolean emptyFolders, IProgressMonitor monitor) throws CVSException {
- checkResourcesManaged(resources);
-
- new FileStructureVisitor(session, emptyFolders, true).visit(session, resources, monitor);
- }
-
- /**
- * Checks that all work resources are managed.
- *
- * @param resources the resource arguments for the command
- * @throws CVSException if some resources are not managed
- */
- protected void checkResourcesManaged(ICVSResource[] resources) throws CVSException {
- for (int i = 0; i < resources.length; ++i) {
- ICVSFolder folder;
- if (resources[i].isFolder()) {
- folder = (ICVSFolder) resources[i];
- }
- else {
- folder = resources[i].getParent();
- }
- if (folder==null || (!folder.isCVSFolder() && folder.exists())) {
- throw new CVSException(Policy.bind("Command.argumentNotManaged", folder.getName()));//$NON-NLS-1$
- }
- }
- }
-
- /**
- * Executes a CVS command.
- * <p>
- * Dispatches the commands, retrieves the results, and determines whether or
- * not an error occurred. A listener may be supplied to capture message text
- * that would normally be written to the standard error and standard output
- * streams of a command line CVS client.
- * </p>
- * @param session the open CVS session
- * @param globalOptions the array of global options, or NO_GLOBAL_OPTIONS
- * @param localOptions the array of local options, or NO_LOCAL_OPTIONS
- * @param arguments the array of arguments (usually filenames relative to localRoot), or NO_ARGUMENTS
- * @param listener the command output listener, or null to discard all messages
- * @param monitor the progress monitor
- * @return a status code indicating success or failure of the operation
- * @throws CVSException if a fatal error occurs (e.g. connection timeout)
- */
- public final IStatus execute(final Session session, final GlobalOption[] globalOptions,
- final LocalOption[] localOptions, final String[] arguments, final ICommandOutputListener listener,
- IProgressMonitor pm) throws CVSException {
- final IStatus[] status = new IStatus[1];
- ICVSRunnable job = new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- // update the global and local options
- GlobalOption[] gOptions = filterGlobalOptions(session, globalOptions);
- LocalOption[] lOptions = filterLocalOptions(session, gOptions, localOptions);
-
- // print the invocation string to the console
- if (session.isOutputToConsole() || Policy.DEBUG_CVS_PROTOCOL) {
- IPath commandRootPath;
- IResource resource = session.getLocalRoot().getIResource();
- if (resource == null) {
- commandRootPath = Path.EMPTY;
- } else {
- commandRootPath = resource.getFullPath();
- }
- String line = constructCommandInvocationString(commandRootPath, gOptions, lOptions, arguments);
- if (session.isOutputToConsole()) {
- IConsoleListener consoleListener = CVSProviderPlugin.getPlugin().getConsoleListener();
- if (consoleListener != null) consoleListener.commandInvoked(line);
- }
- if (Policy.DEBUG_CVS_PROTOCOL) System.out.println("CMD> " + line); //$NON-NLS-1$
- }
-
- // run the command
- try {
- status[0] = doExecute(session, gOptions, lOptions, arguments, listener, monitor);
- notifyConsoleOnCompletion(session, status[0], null);
- } catch (CVSException e) {
- notifyConsoleOnCompletion(session, null, e);
- throw e;
- } catch (RuntimeException e) {
- notifyConsoleOnCompletion(session, null, e);
- throw e;
- }
- }
- };
- session.getLocalRoot().run(job, pm);
- return status[0];
- }
-
- private void notifyConsoleOnCompletion(Session session, IStatus status, Exception exception) {
- if (session.isOutputToConsole()) {
- IConsoleListener consoleListener = CVSProviderPlugin.getPlugin().getConsoleListener();
- if (consoleListener != null) consoleListener.commandCompleted(status, exception);
- }
- if (Policy.DEBUG_CVS_PROTOCOL) {
- if (status != null) System.out.println("RESULT> " + status.toString()); //$NON-NLS-1$
- else System.out.println("RESULT> " + exception.toString()); //$NON-NLS-1$
- }
- }
-
- protected IStatus doExecute(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, String[] arguments, ICommandOutputListener listener,
- IProgressMonitor monitor) throws CVSException {
- ICVSResource[] resources = null;
- /*** setup progress monitor ***/
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- Policy.checkCanceled(monitor);
- try {
- /*** prepare for command ***/
- // clear stale command state from previous runs
- session.setNoLocalChanges(DO_NOT_CHANGE.isElementOf(globalOptions));
- session.setModTime(null);
-
- /*** initiate command ***/
- // send global options
- for (int i = 0; i < globalOptions.length; i++) {
- globalOptions[i].send(session);
- }
- Policy.checkCanceled(monitor);
- // send local options
- for (int i = 0; i < localOptions.length; i++) {
- localOptions[i].send(session);
- }
- Policy.checkCanceled(monitor);
- // compute the work resources
- resources = computeWorkResources(session, localOptions, arguments);
- Policy.checkCanceled(monitor);
- // send local working directory state contributes 48% of work
- resources = sendLocalResourceState(session, globalOptions, localOptions,
- resources, Policy.infiniteSubMonitorFor(monitor, 48));
- Policy.checkCanceled(monitor);
- // send arguments
- sendArguments(session, arguments);
- // send local working directory path
- sendLocalWorkingDirectory(session);
-
- // if no listener was provided, use the command's default in order to get error reporting
- if (listener == null) listener = getDefaultCommandOutputListener();
-
- /*** execute command and process responses ***/
- // Processing responses contributes 50% of work.
- IStatus status = executeRequest(session, listener, Policy.subMonitorFor(monitor, 50));
-
- // Finished adds last 2% of work.
- status = commandFinished(session, globalOptions, localOptions, resources, Policy.subMonitorFor(monitor, 2),
- status);
- return status;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Constucts the CVS command invocation string corresponding to the arguments.
- *
- * @param globalOptions the global options
- * @param localOption the local options
- * @param arguments the arguments
- * @return the command invocation string
- */
- private String constructCommandInvocationString(IPath commandRootPath, GlobalOption[] globalOptions,
- LocalOption[] localOptions, String[] arguments) {
- StringBuffer commandLine = new StringBuffer("cvs"); //$NON-NLS-1$
- for (int i = 0; i < globalOptions.length; ++i) {
- String option = globalOptions[i].toString();
- if (option.length() == 0) continue;
- commandLine.append(' ');
- commandLine.append(option);
- }
- commandLine.append(' ');
- commandLine.append(getRequestId());
- for (int i = 0; i < localOptions.length; ++i) {
- String option = localOptions[i].toString();
- if (option.length() == 0) continue;
- commandLine.append(' ');
- commandLine.append(option);
- }
- for (int i = 0; i < arguments.length; ++i) {
- if (arguments[i].length() == 0) continue;
- commandLine.append(" \""); //$NON-NLS-1$
- IPath completePath = commandRootPath;
- if (!arguments[i].equals(Session.CURRENT_LOCAL_FOLDER)) {
- completePath = completePath.append(arguments[i]);
- }
- commandLine.append(completePath.toString());
- commandLine.append('"'); //$NON-NLS-1$
- }
- return commandLine.toString();
- }
-
- /**
- * Superclass for all CVS command options
- */
- protected static abstract class Option {
- protected String option, argument;
- protected Option(String option, String argument) {
- this.option = option;
- this.argument = argument;
- }
- /**
- * Determines if this option is an element of an array of options
- * @param array the array of options
- * @return true iff the array contains this option
- */
- public boolean isElementOf(Option[] array) {
- return findOption(array, option) != null;
- }
- /**
- * Returns the option part of the option
- */
- String getOption() {
- return option;
- }
- /**
- * Compares two options for equality.
- * @param other the other option
- */
- public boolean equals(Object other) {
- if (this == other) return true;
- if (other instanceof Option) {
- Option otherOption = (Option) other;
- return option.equals(otherOption.option);
- }
- return false;
- }
- /**
- * Sends the option to a CVS server
- * @param session the CVS session
- */
- public abstract void send(Session session) throws CVSException;
- /*
- * To make debugging a tad easier.
- */
- public String toString() {
- if (argument != null && argument.length() != 0) {
- return option + " \"" + argument + '"'; //$NON-NLS-1$
- } else {
- return option;
- }
- }
- }
- /**
- * Option subtype for global options that are common to all commands.
- */
- public static class GlobalOption extends Option {
- protected GlobalOption(String option) {
- super(option, null);
- }
- public void send(Session session) throws CVSException {
- session.sendGlobalOption(option);
- }
- /**
- * Add the given global option to the end of the provided list
- *
- * @param newOption
- * @param options
- * @return GlobalOption[]
- */
- protected GlobalOption[] addToEnd(GlobalOption[] options) {
- GlobalOption[] globalOptions = new GlobalOption[options.length + 1];
- System.arraycopy(options, 0, globalOptions, 0, options.length);
- globalOptions[globalOptions.length - 1] = this;
- return globalOptions;
- }
- }
- /**
- * Option subtype for global quietness options.
- */
- public static final class QuietOption extends GlobalOption {
- private QuietOption(String option) {
- super(option);
- }
- public void send(Session session) throws CVSException {
- if (option.length() != 0) super.send(session);
- }
- }
- /**
- * Option subtype for local options that vary from command to command.
- */
- public static class LocalOption extends Option {
- protected LocalOption(String option) {
- super(option, null);
- }
- protected LocalOption(String option, String argument) {
- super(option, argument);
- }
- public void send(Session session) throws CVSException {
- session.sendArgument(option);
- if (argument != null) session.sendArgument(argument);
- }
- }
- /**
- * Options subtype for keyword substitution options.
- */
- public static class KSubstOption extends LocalOption {
- private boolean isUnknownMode;
- private KSubstOption(String option) {
- this(option, false);
- }
- private KSubstOption(String option, boolean isUnknownMode) {
- super(option);
- this.isUnknownMode = isUnknownMode;
- ksubstOptionMap.put(option, this);
- }
- /**
- * Gets the KSubstOption instance for the specified mode.
- *
- * @param mode the mode, e.g. -kb
- * @return an instance for that mode
- */
- public static KSubstOption fromMode(String mode) {
- if (mode.length() == 0) mode = "-kkv"; // use default //$NON-NLS-1$
- KSubstOption option = (KSubstOption) ksubstOptionMap.get(mode);
- if (option == null) option = new KSubstOption(mode, true);
- return option;
- }
- /**
- * Gets the KSubstOption instance for the specified file.
- *
- * @param file the file to get the option for
- * @return an instance for that mode
- */
- public static KSubstOption fromFile(IFile file) {
- if (CVSProviderPlugin.isText(file))
- return getDefaultTextMode();
- return KSUBST_BINARY;
- }
- /**
- * Returns an array of all valid modes.
- */
- public static KSubstOption[] getAllKSubstOptions() {
- return (KSubstOption[]) ksubstOptionMap.values().toArray(new KSubstOption[ksubstOptionMap.size()]);
- }
- /**
- * Returns the entry line mode string for this instance.
- */
- public String toMode() {
- if (KSUBST_TEXT_EXPAND.equals(this)) return ""; //$NON-NLS-1$
- return getOption();
- }
- /**
- * Returns true if the substitution mode requires no data translation
- * during file transfer.
- */
- public boolean isBinary() {
- return KSUBST_BINARY.equals(this);
- }
- /**
- * Returns a short localized text string describing this mode.
- */
- public String getShortDisplayText() {
- if (isUnknownMode) return Policy.bind("KSubstOption.unknown.short", option); //$NON-NLS-1$
- return Policy.bind("KSubstOption." + option + ".short"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- /**
- * Returns a long localized text string describing this mode.
- */
- public String getLongDisplayText() {
- if (isUnknownMode) return Policy.bind("KSubstOption.unknown.long", option); //$NON-NLS-1$
- return Policy.bind("KSubstOption." + option + ".long"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- /**
- * Return the text mode that will be used by default
- */
- public static KSubstOption getDefaultTextMode() {
- return CVSProviderPlugin.getPlugin().getDefaultTextKSubstOption();
- }
- }
-
- /**
- * Makes a -m log message option.
- * Valid for: add commit import
- */
- public static LocalOption makeArgumentOption(LocalOption option, String argument) {
- if(argument == null) {
- argument = ""; //$NON-NLS-1$
- }
- return new LocalOption(option.getOption(), argument); //$NON-NLS-1$
- }
-
- /**
- * Makes a -r or -D option for a tag.
- * Valid for: checkout export history rdiff update
- */
- public static LocalOption makeTagOption(CVSTag tag) {
- int type = tag.getType();
- switch (type) {
- case CVSTag.BRANCH:
- case CVSTag.VERSION:
- return new LocalOption("-r", tag.getName()); //$NON-NLS-1$
- case CVSTag.DATE:
- return new LocalOption("-D", tag.getName()); //$NON-NLS-1$
- default:
- // tag must not be HEAD
- throw new IllegalArgumentException(Policy.bind("Command.invalidTag")); //$NON-NLS-1$
- }
- }
-
- /**
- * Find a specific option in an array of options
- * @param array the array of options
- * @param option the option string to search for
- * @return the first element matching the option string, or null if none
- */
- public static Option findOption(Option[] array, String option) {
- for (int i = 0; i < array.length; ++i) {
- if (array[i].getOption().equals(option)) return array[i];
- }
- return null;
- }
-
- /**
- * Collect all arguments of a specific option from an array of options
- * @param array the array of options
- * @param option the option string to search for
- * @return an array of all arguments of belonging to matching options
- */
- protected static String[] collectOptionArguments(Option[] array, String option) {
- List /* of String */ list = new ArrayList();
- for (int i = 0; i < array.length; ++i) {
- if (array[i].getOption().equals(option)) {
- list.add(array[i].argument);
- }
- }
- return (String[]) list.toArray(new String[list.size()]);
- }
-
- /**
- * Allows commands to filter the set of global options to be sent.
- * This method invokes the method of the same name on the session
- * itself in order to get any session wide or globally set options.
- * Subclasses that override this method should call the superclass.
- *
- * @param session the session
- * @param globalOptions the global options, read-only
- * @return the filtered global options
- */
- protected GlobalOption[] filterGlobalOptions(Session session, GlobalOption[] globalOptions) {
- return session.filterGlobalOptions(globalOptions);
- }
-
- /**
- * Allows commands to filter the set of local options to be sent.
- * Subclasses that override this method should call the superclass.
- *
- * @param session the session
- * @param globalOptions the global options, read-only
- * @param localOptions the local options, read-only
- * @return the filtered local options
- */
- protected LocalOption[] filterLocalOptions(Session session, GlobalOption[] globalOptions, LocalOption[] localOptions) {
- return localOptions;
- }
-
- /**
- * Execute a CVS command on an array of ICVSResource. This method simply converts
- * the ICVSResource to String paths relative to the local root of the session and
- * invokes <code>execute(Session, GlobalOption[], LocalOption[], String[], ICommandOutputListener, IProgressMonitor)</code>.
- * </p>
- * @param session the open CVS session
- * @param globalOptions the array of global options, or NO_GLOBAL_OPTIONS
- * @param localOptions the array of local options, or NO_LOCAL_OPTIONS
- * @param arguments the array of ICVSResource to be operated on
- * @param listener the command output listener, or null to discard all messages
- * @param monitor the progress monitor
- * @return a status code indicating success or failure of the operation
- * @throws CVSException if a fatal error occurs (e.g. connection timeout)
- *
- * @see Command#execute(Session, GlobalOption[], LocalOption[], String[], ICommandOutputListener, IProgressMonitor)
- */
- public final IStatus execute(Session session, GlobalOption[] globalOptions, LocalOption[] localOptions, ICVSResource[] arguments,
- ICommandOutputListener listener, IProgressMonitor pm) throws CVSException {
-
- String[] stringArguments = convertArgumentsForOpenSession(arguments, session);
- return execute(session, globalOptions, localOptions, stringArguments, listener, pm);
- }
-
- protected String[] convertArgumentsForOpenSession(ICVSResource[] arguments, Session openSession) throws CVSException {
- // Convert arguments
- List stringArguments = new ArrayList(arguments.length);
- for (int i = 0; i < arguments.length; i++) {
- stringArguments.add(arguments[i].getRelativePath(openSession.getLocalRoot()));
- }
- return (String[]) stringArguments.toArray(new String[stringArguments.size()]);
- }
-
- /**
- * Method mergeStatus.
- * @param status
- * @param cVSStatus
- * @return IStatus
- */
- protected IStatus mergeStatus(IStatus accumulatedStatus, IStatus newStatus) {
- if (accumulatedStatus.isMultiStatus()) {
- ((MultiStatus)accumulatedStatus).merge(newStatus);
- return accumulatedStatus;
- }
- if (accumulatedStatus.isOK()) return newStatus;
- if (newStatus.isOK()) return accumulatedStatus;
- MultiStatus result = new MultiStatus(CVSProviderPlugin.ID, CVSStatus.INFO,
- new IStatus[] {accumulatedStatus, newStatus},
- Policy.bind("Command.warnings", Policy.bind("Command." + getRequestId())), null); //$NON-NLS-1$ //$NON-NLS-2$
- return result;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CommandOutputListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CommandOutputListener.java
deleted file mode 100644
index 2ed422c99..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CommandOutputListener.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.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-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.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-
-public class CommandOutputListener implements ICommandOutputListener {
- public IStatus messageLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot, IProgressMonitor monitor) {
- return OK;
- }
- public IStatus errorLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot, IProgressMonitor monitor) {
- String protocolError = getProtocolError(line, location);
- if (protocolError != null) {
- return new CVSStatus(CVSStatus.ERROR, CVSStatus.PROTOCOL_ERROR, commandRoot, protocolError);
- }
- return new CVSStatus(CVSStatus.ERROR, CVSStatus.ERROR_LINE, commandRoot, line);
- }
-
- /**
- * Return the portion of the line that describes the error if the error line
- * is a protocol error or null if the line is not a protocol error.
- *
- * @param line the error line received from the server
- * @param location the repository location
- * @return String the potocol error or null
- */
- protected String getProtocolError(String line, ICVSRepositoryLocation location) {
- if (line.startsWith("Protocol error:")) { //$NON-NLS-1$
- return line;
- }
- return null;
- }
-
- public String getServerMessage(String line, ICVSRepositoryLocation location) {
- return ((CVSRepositoryLocation)location).getServerMessageWithoutPrefix(line, SERVER_PREFIX);
- }
-
- public String getServerAbortedMessage(String line, ICVSRepositoryLocation location) {
- return ((CVSRepositoryLocation)location).getServerMessageWithoutPrefix(line, SERVER_ABORTED_PREFIX);
- }
-
- public String getServerRTagMessage(String line, ICVSRepositoryLocation location) {
- return ((CVSRepositoryLocation)location).getServerMessageWithoutPrefix(line, RTAG_PREFIX);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Commit.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Commit.java
deleted file mode 100644
index 9de2d52ae..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Commit.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-
-import java.util.Collection;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-
-public class Commit extends Command {
- /*** Local options: specific to commit ***/
- // Forces a file to be committed even if it has not been modified; implies -l.
- // NOTE: This option is not fully supported -- a file will not be sent
- // unless it is dirty. The primary use is to resend a file that may
- // or may not be changed (e.g. could depend on CR/LF translations, etc...)
- // and force the server to create a new revision and reply Checked-in.
- public static final LocalOption FORCE = new LocalOption("-f"); //$NON-NLS-1$
-
- protected Commit() { }
- protected String getRequestId() {
- return "ci"; //$NON-NLS-1$
- }
-
- /**
- * Send all files under the workingFolder as changed files to
- * the server.
- */
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // Get the folders we want to work on
- checkResourcesManaged(resources);
-
- // Send all changed files to the server
- ModifiedFileSender visitor = new ModifiedFileSender(session);
- visitor.visit(session, resources, monitor);
-
- // Send the changed files as arguments (because this is what other cvs clients do)
- ICVSFile[] changedFiles = visitor.getModifiedFiles();
- for (int i = 0; i < changedFiles.length; i++) {
- session.sendArgument(changedFiles[i].getRelativePath(session.getLocalRoot()));
- }
- return changedFiles;
- }
-
- /**
- * On successful finish, prune empty directories if the -P or -D option was specified.
- */
- protected IStatus commandFinished(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor,
- IStatus status) throws CVSException {
- // If we didn't succeed, don't do any post processing
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- return status;
- }
-
- // If pruning is enable, prune empty directories after a commit
- if (CVSProviderPlugin.getPlugin().getPruneEmptyDirectories()) { //$NON-NLS-1$
- new PruneFolderVisitor().visit(session, resources);
- }
-
- // Reset the timestamps of any committed files that are still dirty.
- // Only do so if there were no E messages from the server
- if (status.isOK()) {
- for (int i = 0; i < resources.length; i++) {
- ICVSResource resource = resources[i];
- if (!resource.isFolder()) {
- ICVSFile cvsFile = (ICVSFile)resources[i];
- if (cvsFile.exists() && cvsFile.isModified(null)) {
- status = mergeStatus(status, clearModifiedState(cvsFile));
- }
- }
- }
- }
- return status;
- }
-
- protected IStatus clearModifiedState(ICVSFile cvsFile) throws CVSException {
- byte[] info = cvsFile.getSyncBytes();
- if (info == null) {
- // There should be sync info. Log the problem
- return new Status(IStatus.WARNING, CVSProviderPlugin.ID, 0, Policy.bind("Commit.syncInfoMissing", cvsFile.getIResource().getFullPath().toString()), null); //$NON-NLS-1$
- }
- cvsFile.checkedIn(null);
- return new Status(IStatus.INFO, CVSProviderPlugin.ID, 0, Policy.bind("Commit.timestampReset", cvsFile.getIResource().getFullPath().toString()), null); //$NON-NLS-1$;
- }
-
- /**
- * We do not want to send the arguments here, because we send
- * them in sendRequestsToServer (special handling).
- */
- protected void sendArguments(Session session, String[] arguments) throws CVSException {
- }
-
- public final IStatus execute(Session session, GlobalOption[] globalOptions, LocalOption[] localOptions,
- ICVSResource[] arguments, Collection filesToCommitAsText,
- ICommandOutputListener listener, IProgressMonitor pm) throws CVSException {
-
- session.setTextTransferOverride(filesToCommitAsText);
- try {
- return super.execute(session, globalOptions, localOptions, arguments, listener, pm);
- } finally {
- session.setTextTransferOverride(null);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CopyHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CopyHandler.java
deleted file mode 100644
index 67f042950..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/CopyHandler.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-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.util.Assert;
-
-/**
- * Handles a "Copy-file" response from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Copy-file myproject/ \n
- * /u/cvsroot/myproject/oldfile.txt \n
- * newfile.txt
- * [...]
- * </pre>
- * Then we copy (or optionally rename) the local file "oldfile.txt" in
- * folder "myproject" to "newfile.txt". This response is used to create
- * a backup copy of an existing file before merging in new changes.
- * </p>
- */
-class CopyHandler extends ResponseHandler {
- public String getResponseID() {
- return "Copy-file"; //$NON-NLS-1$
- }
-
- public void handle(Session session, String localDir,
- IProgressMonitor monitor) throws CVSException {
- // read additional data for the response
- String repositoryFile = session.readLine();
- String newFile = session.readLine();
- if (session.isNoLocalChanges() || ! session.isCreateBackups()) return;
-
- // Get the local file
- String fileName = repositoryFile.substring(repositoryFile.lastIndexOf("/") + 1); //$NON-NLS-1$
- ICVSFolder mParent = session.getLocalRoot().getFolder(localDir);
- ICVSFile mFile = mParent.getFile(fileName);
-
- Assert.isTrue(mParent.exists());
- Assert.isTrue(mFile.exists() && mFile.isManaged());
-
- // rename the file
- mFile.copyTo(newFile);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Diff.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Diff.java
deleted file mode 100644
index dc32ec188..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Diff.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-
-/**
- * Runs the CVS diff command.
- */
-public class Diff extends Command {
- /*** Local options: specific to diff ***/
- public static final LocalOption UNIFIED_FORMAT = new LocalOption("-u"); //$NON-NLS-1$
- public static final LocalOption CONTEXT_FORMAT = new LocalOption("-c"); //$NON-NLS-1$
- public static final LocalOption INCLUDE_NEWFILES = new LocalOption("-N"); //$NON-NLS-1$
- public static final LocalOption BRIEF = new LocalOption("--brief"); //$NON-NLS-1$
-
- protected Diff() { }
- protected String getRequestId() {
- return "diff"; //$NON-NLS-1$
- }
-
- /**
- * Overwritten to throw the CVSDiffException if the server returns an error, because it just does
- * so when there is a difference between the checked files.
- */
- protected IStatus doExecute(Session session, GlobalOption[] globalOptions, LocalOption[] localOptions,
- String[] arguments, ICommandOutputListener listener, IProgressMonitor monitor) throws CVSException {
- try {
- return super.doExecute(session, globalOptions, localOptions, arguments, listener, monitor);
- } catch (CVSServerException e) {
- if (e.containsErrors()) throw e;
- return e.getStatus();
- }
- }
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- checkResourcesManaged(resources);
- DiffStructureVisitor visitor = new DiffStructureVisitor(session);
- visitor.visit(session, resources, monitor);
- return resources;
- }
-
- protected String getServerErrorMessage() {
- return Policy.bind("Diff.serverError"); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/DiffStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/DiffStructureVisitor.java
deleted file mode 100644
index 3dcf82cb3..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/DiffStructureVisitor.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.core.client;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * The diff command needs to send a file structure to the server that differs somewhat from the canonical
- * format sent by other commands. Instead of sending new files as questionables this class sends
- * new files as modified and fakes them being added. The contents are sent to the server and are
- * included in the returned diff report.
- */
-class DiffStructureVisitor extends FileStructureVisitor {
-
- public DiffStructureVisitor(Session session) {
- super(session, false, true);
- }
-
- /**
- * Send unmanaged files as modified with a default entry line.
- */
- protected void sendFile(ICVSFile mFile) throws CVSException {
- byte[] info = mFile.getSyncBytes();
- if (info==null) {
- return;
- }
-
- // Send the parent folder if it hasn't been sent already
- sendFolder(mFile.getParent());
- Policy.checkCanceled(monitor);
- session.sendEntry(info, null);
-
- if (!mFile.exists()) {
- return;
- }
-
- if (mFile.isModified(null)) {
- session.sendModified(mFile, ResourceSyncInfo.isBinary(info), monitor);
- } else {
- session.sendUnchanged(mFile);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Editors.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Editors.java
deleted file mode 100644
index dd1645d15..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Editors.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 CSC SoftwareConsult GmbH & Co. OHG, Germany and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * CSC - Intial implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-
-/**
- *
- * The editors command
- *
- * @author <a href="mailto:kohlwes@gmx.net">Gregor Kohlwes</a>
- */
-public class Editors extends AbstractMessageCommand {
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.Request#getRequestId()
- */
- protected String getRequestId() {
- return "editors"; //$NON-NLS-1$
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ExpandModules.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ExpandModules.java
deleted file mode 100644
index 55364fd36..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ExpandModules.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-
-public class ExpandModules extends Request {
- protected ExpandModules() { }
- protected String getRequestId() {
- return "expand-modules"; //$NON-NLS-1$
- }
-
- public IStatus execute(Session session, String[] modules, IProgressMonitor monitor) throws CVSException {
- // Reset the module expansions before the responses arrive
- session.resetModuleExpansion();
- for (int i = 0; i < modules.length; ++i) {
- session.sendArgument(modules[i]);
- }
- return executeRequest(session, Command.DEFAULT_OUTPUT_LISTENER, monitor);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/FileStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/FileStructureVisitor.java
deleted file mode 100644
index 6e10dcb30..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/FileStructureVisitor.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-
-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;
-
-/**
- * Visitor to send the local file structure to the CVS Server.
- *
- * Files are sent as Unchanged or Modified.
- * Folders are sent if they contain files unless sendEmptyFolders is true
- * in which case all folders are sent.
- *
- * @param sendEmptyFolders sends the folder-entrie even if there is no file
- to send in it
- */
-
-class FileStructureVisitor extends AbstractStructureVisitor {
-
- private boolean sendEmptyFolders;
-
- public FileStructureVisitor(Session session, boolean sendEmptyFolders, boolean sendModifiedContents) {
- this(session, sendEmptyFolders, sendModifiedContents, true);
- }
-
- public FileStructureVisitor(Session session, boolean sendEmptyFolders, boolean sendModifiedContents, boolean sendBinary) {
- super(session, true, sendModifiedContents, sendBinary);
- this.sendEmptyFolders = sendEmptyFolders;
- }
-
- /**
- * @see ICVSResourceVisitor#visitFile(IManagedFile)
- */
- public void visitFile(ICVSFile mFile) throws CVSException {
- sendFile(mFile);
- }
-
- /**
- * @see ICVSResourceVisitor#visitFolder(ICVSFolder)
- */
- public void visitFolder(ICVSFolder mFolder) throws CVSException {
-
- if (sendEmptyFolders) {
- // If we want to send empty folder, that just send it when
- // we come to it
- sendFolder(mFolder);
- }
-
- boolean exists = mFolder.exists();
- boolean isCVSFolder = mFolder.isCVSFolder();
-
- // We are only interested in CVS folders
- // A folder could be a non-existant CVS folder if it is a holder for outgoing file deletions
- if ( ! isCVSFolder) return;
-
- if (exists && isOrphanedSubtree(mFolder)) {
- return;
- }
-
- // Send files, then the questionable folders, then the managed folders
- ICVSResource[] children = mFolder.members(ICVSFolder.ALL_UNIGNORED_MEMBERS);
- sendFiles(children);
- sendQuestionableFolders(children);
- sendManagedFolders(children);
- }
-
- /**
- * Method sendManagedFolders.
- * @param children
- */
- private void sendManagedFolders(ICVSResource[] children) throws CVSException {
- for (int i = 0; i < children.length; i++) {
- ICVSResource resource = children[i];
- if (resource.isFolder() && resource.isManaged()) {
- resource.accept(this);
- }
- }
- }
-
- /**
- * Method sendQuestionableFolders.
- * @param children
- */
- private void sendQuestionableFolders(ICVSResource[] children) throws CVSException {
- for (int i = 0; i < children.length; i++) {
- ICVSResource resource = children[i];
- if (resource.isFolder() && ! resource.isManaged()) {
- resource.accept(this);
- }
- }
- }
-
- /**
- * Method sendFiles.
- * @param children
- */
- private void sendFiles(ICVSResource[] children) throws CVSException {
- for (int i = 0; i < children.length; i++) {
- ICVSResource resource = children[i];
- if (!resource.isFolder()) {
- resource.accept(this);
- }
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Import.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Import.java
deleted file mode 100644
index e654bf075..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Import.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-
-
-public class Import extends Command {
- /*** Local options: specific to import ***/
- public static LocalOption makeBinaryWrapperOption(String pattern) {
- return new LocalOption("-W", pattern + " -k 'b'"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- protected Import() { }
- protected String getRequestId() {
- return "import"; //$NON-NLS-1$
- }
-
- protected ICVSResource[] computeWorkResources(Session session, LocalOption[] localOptions,
- String[] arguments) throws CVSException {
- if (arguments.length < 3) throw new IllegalArgumentException();
- return new ICVSResource[0];
- }
-
- protected IStatus doExecute(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, String[] arguments, ICommandOutputListener listener,
- IProgressMonitor monitor) throws CVSException {
-
- // If the branch option is not provided, a default value of 1.1.1 is used.
- // This is done to maintain reference client compatibility
- if (findOption(localOptions, "-b") == null) { //$NON-NLS-1$
- LocalOption[] newLocalOptions = new LocalOption[localOptions.length + 1];
- newLocalOptions[0] = new LocalOption("-b", "1.1.1"); //$NON-NLS-1$ //$NON-NLS-2$
- System.arraycopy(localOptions, 0, newLocalOptions, 1, localOptions.length);
- localOptions = newLocalOptions;
- }
- return super.doExecute(session, globalOptions, localOptions, arguments, listener, monitor);
- }
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- ICVSResourceVisitor visitor = new ImportStructureVisitor(session,
- collectOptionArguments(localOptions, "-W"), monitor); //$NON-NLS-1$
- session.getLocalRoot().accept(visitor);
- return resources;
- }
-
- protected void sendLocalWorkingDirectory(Session session) throws CVSException {
- session.sendConstructedRootDirectory();
- }
-
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java
deleted file mode 100644
index 6aaa205f7..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ImportStructureVisitor.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.Team;
-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.Policy;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.util.FileNameMatcher;
-
-/**
- * The ImportStructureVisitor sends the content of the folder it is
- * used on to the server. It constructs the locations of the resources
- * because the resources do not yet have a remote-location.<br>
- * It can also ignore certain files and decides wether to send
- * a file in binary or text mode due to a specification that is passed
- * as a "wrapper" argument.
- */
-class ImportStructureVisitor implements ICVSResourceVisitor {
-
- private static final String KEYWORD_OPTION = "-k"; //$NON-NLS-1$
- private static final String QUOTE = "'"; //$NON-NLS-1$
-
- protected Session session;
- private Set sentFolders;
- protected IProgressMonitor monitor;
- private String[] wrappers;
-
- private FileNameMatcher ignoreMatcher;
- private FileNameMatcher wrapMatcher;
-
- /**
- * Constructor for ImportStructureVisitor.
- * @param requestSender
- * @param mRoot
- * @param monitor
- */
- public ImportStructureVisitor(Session session,
- String[] wrappers, IProgressMonitor monitor) {
-
- this.session = session;
- this.monitor = Policy.infiniteSubMonitorFor(monitor, 512);
- this.wrappers = wrappers;
- wrapMatcher = initWrapMatcher(wrappers);
- }
-
-
- /**
- * Inits the wrapMatcher, that is responsible to find out
- * whether a file is to be send as a binary (on an import)
- * or not.
- *
- * Takes wrappers of this format:
- * *.class -k 'o'
- *
- * and inits the FileNameMatcher to give
- * -ko back if you call it with match("somename.class")
- *
- * ignores all wrappers, that do not contain -k
- */
- private FileNameMatcher initWrapMatcher(String[] wrappers) {
-
- FileNameMatcher wrapMatcher;
-
- if (wrappers == null) {
- return null;
- }
-
- wrapMatcher = new FileNameMatcher();
-
- for (int i = 0; i < wrappers.length; i++) {
-
- if (wrappers[i].indexOf(KEYWORD_OPTION) == -1) {
- continue;
- }
-
- StringTokenizer st = new StringTokenizer(wrappers[i]);
- String pattern = st.nextToken();
- String option = st.nextToken();
- // get rid of the quotes
- StringTokenizer quoteSt =
- new StringTokenizer(st.nextToken(),QUOTE);
- option += quoteSt.nextToken();
-
- wrapMatcher.register(pattern,option);
- }
-
- return wrapMatcher;
- }
-
- /**
- * @see ICVSResourceVisitor#visitFile(IManagedFile)
- */
- public void visitFile(ICVSFile mFile) throws CVSException {
- if (ignoreMatcher != null && ignoreMatcher.match(mFile.getName())) {
- return;
- }
-
- boolean binary = Team.getType((IFile)mFile.getIResource()) == Team.BINARY;
- if (wrapMatcher != null) {
- String mode = wrapMatcher.getMatch(mFile.getName());
- if (mode != null) binary = KSubstOption.fromMode(mode).isBinary();
- }
- session.sendModified(mFile, binary, monitor);
- }
-
- /**
- * @see ICVSResourceVisitor#visitFolder(ICVSFolder)
- */
- public void visitFolder(ICVSFolder mFolder) throws CVSException {
-
- if (ignoreMatcher != null && ignoreMatcher.match(mFolder.getName())) {
- return;
- }
-
- String localPath = mFolder.getRelativePath(session.getLocalRoot());
- monitor.subTask(Policy.bind("AbstractStructureVisitor.sendingFolder", localPath)); //$NON-NLS-1$
-
- session.sendConstructedDirectory(localPath);
- mFolder.acceptChildren(this);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Log.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Log.java
deleted file mode 100644
index 7c6f03266..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Log.java
+++ /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
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-public class Log extends AbstractMessageCommand {
- /*** Local options: specific to log ***/
-
- public static LocalOption makeRevisionOption(String revision) {
- return new LocalOption("-r" + revision, null); //$NON-NLS-1$
- }
- public static final LocalOption RCS_FILE_NAMES_ONLY = new LocalOption("-R"); //$NON-NLS-1$
-
- protected Log() { }
- protected String getRequestId() {
- return "log"; //$NON-NLS-1$
- }
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // Send all folders that are already managed to the server
- boolean sendEmptyFolders = Command.findOption(localOptions, RCS_FILE_NAMES_ONLY.getOption()) != null;
- new FileStructureVisitor(session, sendEmptyFolders, false /* send modified contents */).visit(session, resources, monitor);
- return resources;
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/MTHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/MTHandler.java
deleted file mode 100644
index 6e7f20fc3..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/MTHandler.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.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-
-public class MTHandler extends ResponseHandler {
-
- private String nextLine;
- private boolean isLineAvailable;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.ResponseHandler#getInstance()
- */
- ResponseHandler getInstance() {
- return new MTHandler();
- }
-
- /**
- * @see ResponseHandler#getResponseID()
- */
- public String getResponseID() {
- return "MT"; //$NON-NLS-1$
- }
-
- /**
- * @see ResponseHandler#handle(Session, String, IProgressMonitor)
- */
- public void handle(Session session, String argument, IProgressMonitor monitor)
- throws CVSException {
-
- // If there was a line available from before, clear it
- if (isLineAvailable()) {
- startNextLine();
- }
-
- if (argument.charAt(0) == '+') {
- // Reset any previously accumulated text
- startNextLine();
- } else if (argument.charAt(0) == '-') {
- // Mark the line as available in case there was no trailing newline
- if (nextLine != null) {
- isLineAvailable = true;
- }
- } else {
- // Extract the tag and text from the line
- String tag;
- String text;
- int spaceIndex = argument.indexOf(' ');
- if (spaceIndex == -1) {
- tag = argument;
- text = null;
- } else {
- tag = argument.substring(0, spaceIndex);
- text = argument.substring(spaceIndex + 1);
- }
-
- // Accumulate the line and indicate if its available for use
- if (tag.equals("newline")) { //$NON-NLS-1$
- isLineAvailable = true;
- } else if (text != null) {
- // Reset the previous line if required
- if (isLineAvailable()) {
- startNextLine();
- }
- // Accumulate the line
- if (nextLine == null) {
- nextLine = text;
- } else {
- // The text from the sevrver contains spaces when appropriate so just append
- nextLine = nextLine + text;
- }
- }
- }
- }
-
- /**
- * Check if there is a line available. If there is, it should be fetched with
- * getLine() immediatly before the next MT response is processed.
- */
- public boolean isLineAvailable() {
- return isLineAvailable;
- }
-
- /**
- * Get the available line. This purges the line from the handler
- */
- public String getLine() {
- return nextLine;
- }
-
- private void startNextLine() {
- isLineAvailable = false;
- nextLine = null;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModTimeHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModTimeHandler.java
deleted file mode 100644
index 7ccc793e4..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModTimeHandler.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-
-import java.text.ParseException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.util.CVSDateFormatter;
-
-/**
- * Handles a "Mod-time" response from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Mod-time 18 Oct 2001 20:21:13 -0330\n
- * [...]
- * </pre>
- * Then we parse and remember the date for use in subsequent
- * file transfer responses such as Updated.
- * </p>
- */
-class ModTimeHandler extends ResponseHandler {
- public String getResponseID() {
- return "Mod-time"; //$NON-NLS-1$
- }
-
- public void handle(Session session, String timeStamp,
- IProgressMonitor monitor) throws CVSException {
- try {
- session.setModTime(CVSDateFormatter.serverStampToDate(timeStamp));
- } catch (ParseException e) {
- throw new CVSException(Policy.bind("ModTimeHandler.invalidFormat", timeStamp), e); //$NON-NLS-1$
- }
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.java
deleted file mode 100644
index 7496408cc..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModifiedFileSender.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.core.client;
-
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-
-/**
- * Visit the CVS file structure, only sending files if they are modified.
- */
-class ModifiedFileSender extends FileStructureVisitor {
-
- private final Set modifiedFiles;
-
- public ModifiedFileSender(Session session) {
- super(session, false, true);
- modifiedFiles = new HashSet();
- }
-
- /**
- * Override sendFile to only send modified files
- */
- protected void sendFile(ICVSFile mFile) throws CVSException {
- // Only send the file if its modified
- if (mFile.isManaged() && mFile.isModified(null)) {
- super.sendFile(mFile);
- modifiedFiles.add(mFile);
- }
- }
-
- protected String getSendFileTitleKey() {
- return null;
- }
-
- /**
- * Return all the files that have been send to the server
- */
- public ICVSFile[] getModifiedFiles() {
- return (ICVSFile[]) modifiedFiles.toArray(new ICVSFile[modifiedFiles.size()]);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModuleExpansionHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModuleExpansionHandler.java
deleted file mode 100644
index f4797416a..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ModuleExpansionHandler.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-
-public class ModuleExpansionHandler extends ResponseHandler {
-
- /*
- * @see ResponseHandler#getResponseID()
- */
- public String getResponseID() {
- return "Module-expansion";//$NON-NLS-1$
- }
-
- /*
- * @see ResponseHandler#handle(Session, String, IProgressMonitor)
- */
- public void handle(Session session, String expansion, IProgressMonitor monitor)
- throws CVSException {
-
- session.addModuleExpansion(expansion);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NOOPCommand.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NOOPCommand.java
deleted file mode 100644
index 4278862ab..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NOOPCommand.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.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class NOOPCommand extends Command {
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.Command#sendLocalResourceState(Session, GlobalOption[], LocalOption[], ICVSResource[], IProgressMonitor)
- */
- protected ICVSResource[] sendLocalResourceState(
- Session session,
- GlobalOption[] globalOptions,
- LocalOption[] localOptions,
- ICVSResource[] resources,
- IProgressMonitor monitor)
- throws CVSException {
-
- // The noop visitor will send any pending notifications
- new NOOPVisitor(session).visit(session, resources, monitor);
- return resources;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.Request#getRequestId()
- */
- protected String getRequestId() {
- return "noop"; //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.Command#sendArguments(Session, String[])
- */
- protected void sendArguments(Session session, String[] arguments)throws CVSException {
- // don't send any arguments
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NOOPVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NOOPVisitor.java
deleted file mode 100644
index c16a3ae50..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NOOPVisitor.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.team.internal.ccvs.core.client;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-
-/**
- * Send the contents of the CVS/Notify files to the server
- */
-public class NOOPVisitor extends AbstractStructureVisitor {
-
- public NOOPVisitor(Session session) {
- // Only send non-empty folders
- super(session, false, false);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor#visitFile(ICVSFile)
- */
- public void visitFile(ICVSFile file) throws CVSException {
- sendPendingNotification(file);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor#visitFolder(ICVSFolder)
- */
- public void visitFolder(ICVSFolder folder) throws CVSException {
- if (folder.isCVSFolder()) {
- folder.acceptChildren(this);
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NewEntryHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NewEntryHandler.java
deleted file mode 100644
index 2b143e9f1..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NewEntryHandler.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.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-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.syncinfo.MutableResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-public class NewEntryHandler extends ResponseHandler {
-
- /*
- * @see ResponseHandler#getResponseID()
- */
- public String getResponseID() {
- return "New-entry"; //$NON-NLS-1$
- }
-
- /*
- * @see ResponseHandler#handle(Session, String, IProgressMonitor)
- */
- public void handle(Session session, String localDir, IProgressMonitor monitor)
- throws CVSException {
-
- // read additional data for the response
- String repositoryFile = session.readLine();
- String entryLine = session.readLine();
-
- // Clear the recorded mod-time
- session.setModTime(null);
-
- // Get the local file
- String fileName = repositoryFile.substring(repositoryFile.lastIndexOf("/") + 1); //$NON-NLS-1$
- ICVSFolder mParent = session.getLocalRoot().getFolder(localDir);
- ICVSFile mFile = mParent.getFile(fileName);
-
- ResourceSyncInfo fileInfo = mFile.getSyncInfo();
- MutableResourceSyncInfo newInfo = fileInfo.cloneMutable();
- newInfo.setEntryLine(entryLine);
- mFile.setSyncInfo(newInfo, ICVSFile.UNKNOWN);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NotifiedHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NotifiedHandler.java
deleted file mode 100644
index 741a884a2..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/NotifiedHandler.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-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;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class NotifiedHandler extends ResponseHandler {
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.ResponseHandler#getResponseID()
- */
- public String getResponseID() {
- return "Notified"; //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.ResponseHandler#handle(Session, String, IProgressMonitor)
- */
- public void handle(
- Session session,
- String localDir,
- IProgressMonitor monitor)
- throws CVSException {
-
- // read additional data for the response
- // (which is the full repository path of the file)
- String repositoryFilePath = session.readLine();
-
- // clear the notify info for the file
- ICVSFolder folder = session.getLocalRoot().getFolder(localDir);
- ICVSFile file = folder.getFile(new Path(repositoryFilePath).lastSegment());
- file.notificationCompleted();
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/PruneFolderVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/PruneFolderVisitor.java
deleted file mode 100644
index 58f2b392e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/PruneFolderVisitor.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.internal.ccvs.core.client;
-
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-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;
-
-/**
- * Goes recursivly through the folders checks if they are empyty
- * and deletes them. Of course it is starting at the leaves of the
- * recusion (the folders that do not have subfolders).
- */
-public class PruneFolderVisitor implements ICVSResourceVisitor {
-
- private ICVSFolder localRoot;
-
- public PruneFolderVisitor() {
- }
-
- /**
- * This method is used to visit a set of ICVSResources.
- */
- public void visit(Session s, ICVSResource[] resources) throws CVSException {
- visit(s.getLocalRoot(), resources);
- }
-
- /**
- * This method is used to visit a set of ICVSResources.
- */
- public void visit(ICVSFolder root, ICVSResource[] resources) throws CVSException {
- localRoot = root;
-
- // Visit the resources
- Set prunableParents = new HashSet();
- for (int i = 0; i < resources.length; i++) {
- ICVSResource cvsResource = resources[i];
- // prune the resource and it's children when appropriate
- cvsResource.accept(this);
- // if the resource doesn't exists, attempt to prune it's parent
- if (!cvsResource.exists())
- prunableParents.add(cvsResource.getParent());
- }
- for (Iterator iter = prunableParents.iterator(); iter.hasNext();) {
- ICVSFolder cvsFolder = (ICVSFolder)iter.next();
- pruneFolderAndParentsIfAppropriate(cvsFolder);
- }
- }
- /**
- * @see ICVSResourceVisitor#visitFile(IManagedFile)
- */
- public void visitFile(ICVSFile file) throws CVSException {
- // nothing to do here
- }
-
- /**
- * @see ICVSResourceVisitor#visitFolder(ICVSFolder)
- */
- public void visitFolder(ICVSFolder folder) throws CVSException {
- // First prune any empty children
- folder.acceptChildren(this);
- // Then prune the folder if it is empty
- pruneFolderIfAppropriate(folder);
- }
-
- private void pruneFolderIfAppropriate(ICVSFolder folder) throws CVSException {
- // Only prune managed folders that are not the root of the operation
- if (folder.exists() && folder.isManaged()
- && ! folder.equals(getLocalRoot())
- && folder.members(ICVSFolder.ALL_EXISTING_MEMBERS).length == 0) {
-
- // Delete the folder but keep a phantom for local folders
- folder.delete();
- }
- }
-
- private ICVSFolder getLocalRoot() {
- return localRoot;
- }
-
- /**
- * Attemp to prunt the given folder. If the folder is pruned, attempt to prune it's parent.
- */
- private void pruneFolderAndParentsIfAppropriate(ICVSFolder folder) throws CVSException {
- pruneFolderIfAppropriate(folder);
- if (!folder.exists()) {
- ICVSFolder parent = folder.getParent();
- pruneFolderAndParentsIfAppropriate(parent);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RDiff.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RDiff.java
deleted file mode 100644
index de27da825..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RDiff.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.internal.ccvs.core.client;
-
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-
-public class RDiff extends RemoteCommand {
-
- /*** Local options: specific to rdiff ***/
- public static final LocalOption SUMMARY = new LocalOption("-s", null); //$NON-NLS-1$
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.Request#getRequestId()
- */
- protected String getRequestId() {
- return "rdiff"; //$NON-NLS-1$
- }
-
- /**
- * Makes a -r or -D option for a tag.
- * Valid for: checkout export history rdiff update
- */
- public static LocalOption makeTagOption(CVSTag tag) {
- if (tag == null) tag = CVSTag.DEFAULT;
- int type = tag.getType();
- switch (type) {
- case CVSTag.BRANCH:
- case CVSTag.VERSION:
- case CVSTag.HEAD:
- return new LocalOption("-r", tag.getName()); //$NON-NLS-1$
- case CVSTag.DATE:
- return new LocalOption("-D", tag.getName()); //$NON-NLS-1$
- default:
- // Unknow tag type!!!
- throw new IllegalArgumentException();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java
deleted file mode 100644
index 0baca4b3a..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RTag.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.TagListener;
-
-public class RTag extends RemoteCommand {
- /*** Local options: specific to tag ***/
- public static final LocalOption CREATE_BRANCH = Tag.CREATE_BRANCH;
- public static final LocalOption CLEAR_FROM_REMOVED = new LocalOption("-a", null); //$NON-NLS-1$
- public static final LocalOption FORCE_REASSIGNMENT = new LocalOption("-F", null); //$NON-NLS-1$
-
- /*** Default command output listener ***/
- private static final ICommandOutputListener DEFAULT_OUTPUT_LISTENER = new TagListener();
-
- /**
- * Makes a -r or -D option for a tag.
- * Valid for: checkout export history rdiff update
- */
- public static LocalOption makeTagOption(CVSTag tag) {
- int type = tag.getType();
- switch (type) {
- case CVSTag.BRANCH:
- case CVSTag.VERSION:
- case CVSTag.HEAD:
- return new LocalOption("-r", tag.getName()); //$NON-NLS-1$
- case CVSTag.DATE:
- return new LocalOption("-D", tag.getName()); //$NON-NLS-1$
- default:
- // Unknow tag type!!!
- throw new IllegalArgumentException();
- }
- }
-
- protected String getRequestId() {
- return "rtag"; //$NON-NLS-1$
- }
-
- protected ICVSResource[] computeWorkResources(Session session, LocalOption[] localOptions,
- String[] arguments) throws CVSException {
- if (arguments.length < 2) throw new IllegalArgumentException();
- return super.computeWorkResources(session, localOptions, arguments);
- }
-
- public IStatus execute(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, CVSTag sourceTag, CVSTag tag, String[] arguments,
- IProgressMonitor monitor) throws CVSException {
-
- if(tag.getType() != CVSTag.VERSION && tag.getType() != CVSTag.BRANCH) {
- throw new CVSException(new CVSStatus(IStatus.ERROR, Policy.bind("Tag.notVersionOrBranchError"))); //$NON-NLS-1$
- }
-
- // Add the source tag to the local options
- List modifiedLocalOptions = new ArrayList(localOptions.length + 1);
- if (sourceTag==null) sourceTag = CVSTag.DEFAULT;
- modifiedLocalOptions.addAll(Arrays.asList(localOptions));
- modifiedLocalOptions.add(makeTagOption(sourceTag));
-
- // Add the CREATE_BRANCH option for a branch tag
- if (tag.getType() == CVSTag.BRANCH) {
- if ( ! CREATE_BRANCH.isElementOf(localOptions)) {
- modifiedLocalOptions.add(CREATE_BRANCH);
- }
- }
-
- // Add the tag name to the start of the arguments
- String[] newArguments = new String[arguments.length + 1];
- newArguments[0] = tag.getName();
- System.arraycopy(arguments, 0, newArguments, 1, arguments.length);
-
- return execute(session, globalOptions,
- (LocalOption[]) modifiedLocalOptions.toArray(new LocalOption[modifiedLocalOptions.size()]),
- newArguments, null, monitor);
- }
-
- public IStatus execute(Session session, GlobalOption[] globalOptions, LocalOption[] localOptions,
- CVSTag sourceTag, CVSTag tag, ICVSRemoteResource[] arguments, IProgressMonitor monitor)
- throws CVSException {
-
- String[] stringArguments = convertArgumentsForOpenSession(arguments, session);
-
- return execute(session, globalOptions, localOptions, sourceTag, tag, stringArguments, monitor);
- }
-
- protected ICommandOutputListener getDefaultCommandOutputListener() {
- return DEFAULT_OUTPUT_LISTENER;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemoteCommand.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemoteCommand.java
deleted file mode 100644
index bc99a257d..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemoteCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-/**
- * This class acts as a super class for those CVS commands that do not send up the local file structure
- */
-public abstract class RemoteCommand extends Command {
-
- protected ICVSResource[] computeWorkResources(Session session, LocalOption[] localOptions,
- String[] arguments) throws CVSException {
- return new ICVSResource[0];
- }
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // do nothing
- monitor.beginTask(null, 100);
- monitor.done();
- return resources;
- }
-
- protected void sendLocalWorkingDirectory(Session session) throws CVSException {
- // do nothing
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.Command#convertArgumentsForOpenSession(org.eclipse.team.internal.ccvs.core.ICVSResource[], org.eclipse.team.internal.ccvs.core.client.Session)
- */
- protected String[] convertArgumentsForOpenSession(
- ICVSResource[] arguments,
- Session openSession)
- throws CVSException {
-
- // Convert arguments
- List stringArguments = new ArrayList(arguments.length);
- for (int i = 0; i < arguments.length; i++) {
- stringArguments.add(arguments[i].getRepositoryRelativePath());
- }
- return (String[]) stringArguments.toArray(new String[stringArguments.size()]);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Remove.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Remove.java
deleted file mode 100644
index 75a587ad7..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Remove.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-public class Remove extends Command {
- /*** Local options: specific to remove ***/
-
- protected Remove() { }
- protected String getRequestId() {
- return "remove"; //$NON-NLS-1$
- }
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // Send all modified files to the server
- // XXX Does the command line client send all modified files?
- new ModifiedFileSender(session).visit(session, resources, monitor);
- return resources;
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemoveEntryHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemoveEntryHandler.java
deleted file mode 100644
index 78f34a266..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemoveEntryHandler.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * Handles a "Remove-entry" response from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Remove-entry ??? \n
- * [...]
- * </pre>
- * Then
- * </p>
- */
-
-/**
- * It removes the file from both the entries of the parent-folder.
- * This happen, when the folder has allready been removed locally
- * what happens on a checkin that includes a removed file.
- */
-class RemoveEntryHandler extends ResponseHandler {
- public String getResponseID() {
- return "Remove-entry"; //$NON-NLS-1$
- }
-
- public void handle(Session session, String localDir,
- IProgressMonitor monitor) throws CVSException {
- // read additional data for the response
- String repositoryFile = session.readLine();
-
- // Get the local file
- String fileName = repositoryFile.substring(repositoryFile.lastIndexOf("/") + 1); //$NON-NLS-1$
- ICVSFolder mParent = session.getLocalRoot().getFolder(localDir);
- ICVSFile mFile = mParent.getFile(fileName);
- if (mFile.exists()) {
- CVSProviderPlugin.log(new CVSException(Policy.bind("RemoveEntryHandler.2", mFile.getRepositoryRelativePath()))); //$NON-NLS-1$
- } else {
- mFile.unmanage(null);
- }
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemovedHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemovedHandler.java
deleted file mode 100644
index 15ec09e62..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/RemovedHandler.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-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.Policy;
-
-/**
- * Handles a "Removed" response from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Removed ??? \n
- * [...]
- * </pre>
- * Then
- * </p>
- */
-
-/**
- * It removes the file from both the entries of the parent-folder
- * and from the local filesystem.
- */
-class RemovedHandler extends ResponseHandler {
- public String getResponseID() {
- return "Removed"; //$NON-NLS-1$
- }
-
- public void handle(Session session, String localDir, IProgressMonitor monitor) throws CVSException {
-
- // read additional data for the response
- String repositoryFile = session.readLine();
-
- // Get the local file
- String fileName = repositoryFile.substring(repositoryFile.lastIndexOf("/") + 1); //$NON-NLS-1$
- ICVSFolder mParent = session.getLocalRoot().getFolder(localDir);
- ICVSFile mFile = mParent.getFile(fileName);
-
- if ( ! mFile.isManaged()) {
- throw new CVSException(Policy.bind("RemovedHandler.invalid", new Path(localDir).append(fileName).toString())); //$NON-NLS-1$
- }
-
- // delete then unmanage the file
- if (mFile.isReadOnly()) mFile.setReadOnly(false);
- mFile.delete();
- mFile.unmanage(null);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Request.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Request.java
deleted file mode 100644
index 5066ce408..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Request.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-
-/**
- * Abstract base class for requests that are to be sent to the server.
- */
-public abstract class Request {
- public static final ExpandModules EXPAND_MODULES = new ExpandModules();
- public static final ValidRequests VALID_REQUESTS = new ValidRequests();
-
- /*** Response handler map ***/
- private static final Map responseHandlers = new HashMap();
-
- private static void initializeHandlerCache() {
- synchronized(responseHandlers) {
- registerResponseHandler(new CheckedInHandler());
- registerResponseHandler(new CopyHandler());
- registerResponseHandler(new ModTimeHandler());
- registerResponseHandler(new NewEntryHandler());
- registerResponseHandler(new RemovedHandler());
- registerResponseHandler(new RemoveEntryHandler());
- registerResponseHandler(new StaticHandler(true));
- registerResponseHandler(new StaticHandler(false));
- registerResponseHandler(new StickyHandler(true));
- registerResponseHandler(new StickyHandler(false));
- registerResponseHandler(new UpdatedHandler(UpdatedHandler.HANDLE_UPDATED));
- registerResponseHandler(new UpdatedHandler(UpdatedHandler.HANDLE_UPDATE_EXISTING));
- registerResponseHandler(new UpdatedHandler(UpdatedHandler.HANDLE_CREATED));
- registerResponseHandler(new UpdatedHandler(UpdatedHandler.HANDLE_MERGED));
- registerResponseHandler(new ValidRequestsHandler());
- registerResponseHandler(new ModuleExpansionHandler());
- registerResponseHandler(new MTHandler());
- registerResponseHandler(new NotifiedHandler());
- registerResponseHandler(new TemplateHandler());
- }
- }
- private static void registerResponseHandler(ResponseHandler handler) {
- synchronized(responseHandlers) {
- responseHandlers.put(handler.getResponseID(), handler);
- }
- }
-
- /**
- * This method is invoked by Session to get a mutable copy of the
- * global list of acceptable response handlers.
- *
- * @return a map of reponse handlers
- */
- protected static Map getReponseHandlerMap() {
- synchronized(responseHandlers) {
- if (responseHandlers.isEmpty()) {
- initializeHandlerCache();
- }
- Map copy = new HashMap();
- for (Iterator iter = responseHandlers.values().iterator(); iter.hasNext();) {
- ResponseHandler handler = (ResponseHandler) iter.next();
- copy.put(handler.getResponseID(), handler.getInstance());
-
- }
- return copy;
- }
- }
- /**
- * Prevents client code from instantiating us.
- */
- protected Request() { }
-
- /**
- * Returns the string used to invoke this request on the server.
- * [template method]
- *
- * @return the request identifier string
- */
- protected abstract String getRequestId();
-
- /**
- * Executes a request and processes the responses.
- *
- * @param session the open CVS session
- * @param listener the command output listener, or null to discard all messages
- * @param monitor the progress monitor
- * @return a status code indicating success or failure of the operation
- */
- protected IStatus executeRequest(Session session, ICommandOutputListener listener,
- IProgressMonitor monitor) throws CVSException {
- // send request
- session.sendRequest(getRequestId());
-
- // This number can be tweaked if the monitor is judged to move too
- // quickly or too slowly. After some experimentation this is a good
- // number for both large projects (it doesn't move so quickly as to
- // give a false sense of speed) and smaller projects (it actually does
- // move some rather than remaining still and then jumping to 100).
- final int TOTAL_WORK = 300;
- monitor.beginTask(Policy.bind("Command.receivingResponses"), TOTAL_WORK); //$NON-NLS-1$
- int halfWay = TOTAL_WORK / 2;
- int currentIncrement = 4;
- int nextProgress = currentIncrement;
- int worked = 0;
-
- // If the session is connected to a CVSNT server (1.11.1.1), we'll need to do some special handling for
- // some errors. Unfortunately, CVSNT 1.11.1.1 will drop the connection after so some functionality is
- // still effected
- boolean isCVSNT = session.isCVSNT();
-
- List accumulatedStatus = new ArrayList();
- for (;;) {
- // update monitor work amount
- if (--nextProgress <= 0) {
- monitor.worked(1);
- worked++;
- if (worked >= halfWay) {
- // we have passed the current halfway point, so double the
- // increment and reset the halfway point.
- currentIncrement *= 2;
- halfWay += (TOTAL_WORK - halfWay) / 2;
- }
- // reset the progress counter to another full increment
- nextProgress = currentIncrement;
- }
- Policy.checkCanceled(monitor);
-
- // retrieve a response line
- String response = session.readLine();
- int spacePos = response.indexOf(' ');
- String argument;
- if (spacePos != -1) {
- argument = response.substring(spacePos + 1);
- response = response.substring(0, spacePos);
- } else argument = ""; //$NON-NLS-1$
-
- // handle completion responses
- if (response.equals("ok")) { //$NON-NLS-1$
- break;
- } else if (response.equals("error") || (isCVSNT && response.equals(""))) { //$NON-NLS-1$ //$NON-NLS-2$
- argument = argument.trim();
- boolean serious = false;
- if (argument.length() == 0) {
- argument = getServerErrorMessage();
- } else {
- argument = Policy.bind("Command.seriousServerError", argument); //$NON-NLS-1$
- if (!accumulatedStatus.isEmpty()) {
- accumulatedStatus.add(new CVSStatus(CVSStatus.ERROR, CVSStatus.SERVER_ERROR, argument));
- }
- serious = true;
- }
-
- if (accumulatedStatus.isEmpty()) {
- accumulatedStatus.add(new CVSStatus(CVSStatus.ERROR, CVSStatus.SERVER_ERROR, Policy.bind("Command.noMoreInfoAvailable")));//$NON-NLS-1$
- }
- IStatus status = new MultiStatus(CVSProviderPlugin.ID, CVSStatus.SERVER_ERROR,
- (IStatus[]) accumulatedStatus.toArray(new IStatus[accumulatedStatus.size()]),
- argument, null);
- if (serious) {
- throw new CVSServerException(status);
- } else {
- // look for particularly bad errors in the accumulated statii
- for (Iterator iter = accumulatedStatus.iterator(); iter.hasNext();) {
- IStatus s = (IStatus) iter.next();
- if (s.getCode() == CVSStatus.PROTOCOL_ERROR) {
- throw new CVSServerException(status);
- }
- }
- }
- return status;
- // handle message responses
- } else if (response.equals("MT")) { //$NON-NLS-1$
- // Handle the MT response
- MTHandler handler = (MTHandler) session.getResponseHandler(response);
- if (handler != null) {
- handler.handle(session, argument, monitor);
- } else {
- throw new CVSException(new org.eclipse.core.runtime.Status(IStatus.ERROR,
- CVSProviderPlugin.ID, CVSException.IO_FAILED,
- Policy.bind("Command.unsupportedResponse", response, argument), null)); //$NON-NLS-1$
- }
- // If a line is available, pass it on to the message listener
- // and console as if it were an M response
- if (handler.isLineAvailable()) {
- String line = handler.getLine();
- IStatus status = listener.messageLine(line, session.getCVSRepositoryLocation(), session.getLocalRoot(), monitor);
- if (status != ICommandOutputListener.OK) accumulatedStatus.add(status);
- if (session.isOutputToConsole()) {
- IConsoleListener consoleListener = CVSProviderPlugin.getPlugin().getConsoleListener();
- if (consoleListener != null) consoleListener.messageLineReceived(line);
- }
- }
- } else if (response.equals("M")) { //$NON-NLS-1$
- IStatus status = listener.messageLine(argument, session.getCVSRepositoryLocation(), session.getLocalRoot(), monitor);
- if (status != ICommandOutputListener.OK) accumulatedStatus.add(status);
- if (session.isOutputToConsole()) {
- IConsoleListener consoleListener = CVSProviderPlugin.getPlugin().getConsoleListener();
- if (consoleListener != null) consoleListener.messageLineReceived(argument);
- }
- } else if (response.equals("E")) { //$NON-NLS-1$
- IStatus status = listener.errorLine(argument, session.getCVSRepositoryLocation(), session.getLocalRoot(), monitor);
- if (status != ICommandOutputListener.OK) accumulatedStatus.add(status);
- if (session.isOutputToConsole()) {
- IConsoleListener consoleListener = CVSProviderPlugin.getPlugin().getConsoleListener();
- if (consoleListener != null) consoleListener.errorLineReceived(argument);
- }
- // handle other responses
- } else {
- ResponseHandler handler = (ResponseHandler) session.getResponseHandler(response);
- if (handler != null) {
- handler.handle(session, argument, monitor);
- } else {
- throw new CVSException(new org.eclipse.core.runtime.Status(IStatus.ERROR,
- CVSProviderPlugin.ID, CVSException.IO_FAILED,
- Policy.bind("Command.unsupportedResponse", response, argument), null)); //$NON-NLS-1$
- }
- }
- }
- if (accumulatedStatus.isEmpty()) {
- return ICommandOutputListener.OK;
- } else {
- return new MultiStatus(CVSProviderPlugin.ID, CVSStatus.INFO,
- (IStatus[]) accumulatedStatus.toArray(new IStatus[accumulatedStatus.size()]),
- Policy.bind("Command.warnings", Policy.bind("Command." + getRequestId())), null); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /*
- * Provide the message that is used for the status that is generated when the server
- * reports as error.
- */
- protected String getServerErrorMessage() {
- return Policy.bind("Command.serverError", Policy.bind("Command." + getRequestId())); //$NON-NLS-1$ //$NON-NLS-2$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ResponseHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ResponseHandler.java
deleted file mode 100644
index e3a00037e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ResponseHandler.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * Handles server responses that arise as a result of issuing a request
- * (usually a command) to a CVS server. The processing of each such
- * response is deferred to subclasses.
- */
-public abstract class ResponseHandler {
- /**
- * Returns the text string of the server response handled by this object.
- * @return the id
- */
- public abstract String getResponseID();
-
- /**
- * Handles a server response.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Clear-sticky myDirectory \n
- * /u/cvsroot/myDirectory \n
- * [...]
- * </pre>
- * Then the <code>handle</code> method of the <code>ResponseHandler</code>
- * for <em>Clear-sticky</em> will be invoked with <code>argument</code>
- * set to <em>"myDirectory"</em>. It must then read the remaining
- * response data from the connection (<em>"/u/cvsroot/myDirectory"</em>
- * including the newline) and take any necessary action.
- * </p><p>
- * Note: The type and quantity of additional data that must be read
- * from the connection varies on a per-response basis.
- * </p>
- * @param session the Session used for CVS communication
- * @param argument the argument supplied with the response
- * @param monitor the progress monitor for the current CVS command
- */
- public abstract void handle(Session session, String argument,
- IProgressMonitor monitor) throws CVSException;
-
- /**
- * Creates a new CVS folder.
- * @param localDir the local path of the folder relative to root
- * @param repositoryDir the remote path of the folder relative to the repository
- * @return the new folder
- */
- protected static ICVSFolder createFolder(
- Session session,
- String localDir,
- String repositoryDir) throws CVSException {
-
- ICVSFolder folder = session.getLocalRoot().getFolder(localDir);
- if (! folder.exists()) {
- try {
- folder.mkdir();
- } catch (CVSException original) {
- boolean caseInvariant = false;
- switch (original.getStatus().getCode()) {
- case IResourceStatus.CASE_VARIANT_EXISTS :
- // We will try to create the mapped child below.
- caseInvariant = true;
- break;
-
- case IResourceStatus.RESOURCE_NOT_FOUND :
- // The parent of the folder doesn't exist. It could be due to case invariance.
- // Check if there is a case invariant mapping for the folder
- String actualLocalDir = session.getUniquePathForCaseSensitivePath(localDir, false);
- folder = session.getLocalRoot().getFolder(actualLocalDir);
- try {
- if (! folder.exists()) folder.mkdir();
- // We succeed in creating the child of a mapped parent
- // Since caseInvariant is false, we will fall through
- } catch (CVSException ex) {
- if (ex.getStatus().getCode() == IResourceStatus.CASE_VARIANT_EXISTS) {
- // We will try to create he mapped child below.
- caseInvariant = true;
- } else {
- // The attempt to get the mapped parent failed.
- // Throw the original exception
- throw original;
- }
- }
- break;
-
- case IResourceStatus.INVALID_VALUE :
- // the folder name is not supported by the platform. Try to compensate.
- String validLocalDir = session.getUniquePathForInvalidPath(localDir);
- folder = session.getLocalRoot().getFolder(validLocalDir);
- try {
- if (! folder.exists()) folder.mkdir();
- // We succeed in creating the child of a mapped parent
- // Since caseInvariant is false, we will fall through
- } catch (CVSException ex) {
- // The attempt to get a unique path failed.
- // Throw the original exception
- throw original;
- }
- break;
- default :
- throw original;
-
- }
- if (caseInvariant) {
- // Change the name (last segment) of the localDir to a unique name for the case invariant one
- String newlocalDir = session.getUniquePathForCaseSensitivePath(localDir, true);
- folder = session.getLocalRoot().getFolder(newlocalDir);
- if (! folder.exists()) folder.mkdir();
- // Signal to the session that there is a renamed folder.
- session.addCaseCollision(localDir, newlocalDir);
- }
- }
- }
- if (! folder.isCVSFolder()) {
- folder.setFolderSyncInfo(new FolderSyncInfo(
- Util.getRelativePath(session.getRepositoryRoot(), repositoryDir),
- session.getCVSRepositoryLocation().getLocation(),
- null, false));
- }
- return folder;
- }
-
- protected ICVSFolder getExistingFolder(Session session, String localDir)
- throws CVSException {
- ICVSFolder mParent = session.getLocalRoot().getFolder(localDir);
- if (! mParent.exists()) {
- // First, check if the parent is a phantom
- IContainer container = (IContainer)mParent.getIResource();
- if (container != null && container.isPhantom()) {
- // Create all the parents as need
- recreatePhatomFolders(mParent);
- } else {
- // It is possible that we have a case variant.
- localDir = session.getUniquePathForCaseSensitivePath(localDir, false);
- mParent = session.getLocalRoot().getFolder(localDir);
- if (!mParent.exists()) {
- // It is also possible that the path is invalid for this platform
- localDir = session.getUniquePathForInvalidPath(localDir);
- mParent = session.getLocalRoot().getFolder(localDir);
- Assert.isTrue(mParent.exists());
- }
- }
- }
- return mParent;
- }
-
- /**
- * Method recreatePhatomFolders.
- * @param mParent
- */
- private void recreatePhatomFolders(ICVSFolder folder) throws CVSException {
- ICVSFolder parent = folder.getParent();
- if (!parent.exists()) {
- recreatePhatomFolders(parent);
- }
- folder.mkdir();
- }
-
- /**
- * Return as instance that can be used by an open session. Subclasses that contain
- * session related state must override this message to return a copy of themselves.
- */
- /* package */ ResponseHandler getInstance() {
- return this;
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java
deleted file mode 100644
index fd0432ab8..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java
+++ /dev/null
@@ -1,1141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption;
-import org.eclipse.team.internal.ccvs.core.client.Command.QuietOption;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.Connection;
-import org.eclipse.team.internal.ccvs.core.syncinfo.NotifyInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-import org.eclipse.team.internal.core.streams.*;
-
-/**
- * Maintains CVS communication state for the lifetime of a connection
- * to a remote repository. This class covers the initialization, use,
- * and eventual shutdown of a dialogue between a CVS client and a
- * remote server. This dialogue may be monitored through the use of
- * a console.
- *
- * Initially the Session is in a CLOSED state during which communication
- * with the server cannot take place. Once OPENED, any number of commands
- * may be issued serially to the server, one at a time. When finished, the
- * Session MUST be CLOSED once again to prevent eventual local and/or
- * remote resource exhaustion. The session can either be discarded, or
- * re-opened for use with the same server though no state is persisted from
- * previous connections except for console attributes.
- *
- * CVSExceptions are thrown only as a result of unrecoverable errors. Once
- * this happens, commands must no longer be issued to the server. If the
- * Session is in the OPEN state, it is still the responsibility of the
- * caller to CLOSE it before moving on.
- */
-public class Session {
- public static final String CURRENT_LOCAL_FOLDER = "."; //$NON-NLS-1$
- public static final String CURRENT_REMOTE_FOLDER = ""; //$NON-NLS-1$
- public static final String SERVER_SEPARATOR = "/"; //$NON-NLS-1$
-
- // default file transfer buffer size (in bytes)
- private static final int TRANSFER_BUFFER_SIZE = 8192;
- // update progress bar in increments of this size (in bytes)
- // no incremental progress shown for files smaller than this size
- private static final int TRANSFER_PROGRESS_INCREMENT = 32768;
-
- private static final boolean IS_CRLF_PLATFORM = Arrays.equals(
- System.getProperty("line.separator").getBytes(), new byte[] { '\r', '\n' }); //$NON-NLS-1$
-
- private CVSRepositoryLocation location;
- private ICVSFolder localRoot;
- private boolean outputToConsole;
- private Connection connection = null;
- private String validRequests = null;
- private Date modTime = null;
- private boolean noLocalChanges = false;
- private boolean createBackups = true;
- private int compressionLevel = 0;
- private List expansions;
- private Collection /* of ICVSFile */ textTransferOverrideSet = null;
- private Map caseMappings;
-
- // state need to indicate whether
- private boolean ignoringLocalChanges = false;
-
- // The resource bundle key that provides the file sending message
- private String sendFileTitleKey;
- private Map responseHandlers;
-
- /**
- * Creates a new CVS session, initially in the CLOSED state.
- * By default, command output is directed to the console.
- *
- * @param location the CVS repository location used for this session
- * @param localRoot represents the current working directory of the client
- */
- public Session(ICVSRepositoryLocation location, ICVSFolder localRoot) {
- this(location, localRoot, true);
- }
-
- /**
- * Creates a new CVS session, initially in the CLOSED state.
- *
- * @param location the CVS repository location used for this session
- * @param localRoot represents the current working directory of the client
- * @param outputToConsole if true, command output is directed to the console
- */
- public Session(ICVSRepositoryLocation location, ICVSFolder localRoot, boolean outputToConsole) {
- this.location = (CVSRepositoryLocation) location;
- this.localRoot = localRoot;
- this.outputToConsole = outputToConsole;
- }
-
- /**
- * Register a case collision with the session.
- *
- * For folders, the desired path is where the folder should be and the actual path
- * is where is was put temporarily. If one of the folders involved is pruned, the
- * other can be placed properly (see Session#handleCaseCollisions())
- *
- * For files, the desired path is where the file should be and the actual path is
- * the emtpy path indicating that the resource was not loaded.
- *
- * This makes sense because the files in a folder are always communicated before the folders
- * so a file can only collide with anothe file which can never be pruned so there's no
- * point in loading the file in a temporary place.
- */
- protected void addCaseCollision(String desiredLocalPath, String actualLocalPath) {
- if (caseMappings == null) caseMappings = new HashMap();
- IPath desiredPath = new Path(desiredLocalPath);
- IPath actualPath = new Path(actualLocalPath);
- Assert.isTrue(actualPath.equals(Path.EMPTY) || (desiredPath.segmentCount() == actualPath.segmentCount()));
- caseMappings.put(desiredPath, actualPath);
- }
- /*
- * Add a module expansion receivered from the server.
- * This is only used by the ModuleExpansionsHandler
- */
- protected void addModuleExpansion(String expansion) {
- expansions.add(expansion);
- }
-
- /*
- * Add a module expansion receivered from the server.
- * This is only used by the ExpandModules command
- */
- protected void resetModuleExpansion() {
- if (expansions == null)
- expansions = new ArrayList();
- else
- expansions.clear();
- }
-
- /**
- * Opens, authenticates and initializes a connection to the server specified
- * for the remote location.
- *
- * @param monitor the progress monitor
- * @throws IllegalStateException if the Session is not in the CLOSED state
- */
- public void open(IProgressMonitor monitor) throws CVSException {
- open(monitor, true /* write access*/);
- }
-
- public void open(IProgressMonitor monitor, boolean writeAccess) throws CVSException {
- if (connection != null) throw new IllegalStateException();
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- boolean opened = false;
-
- try {
- connection = getLocationForConnection(writeAccess).openConnection(Policy.subMonitorFor(monitor, 50));
-
- // If we're connected to a CVSNT server or we don't know the platform,
- // accept MT. Otherwise don't.
- boolean useMT = ! (location.getServerPlatform() == CVSRepositoryLocation.CVS_SERVER);
- if ( ! useMT) {
- removeResponseHandler("MT"); //$NON-NLS-1$
- }
-
- // tell the server the names of the responses we can handle
- connection.writeLine("Valid-responses " + makeResponseList()); //$NON-NLS-1$
-
- // ask for the set of valid requests
- IStatus status = Request.VALID_REQUESTS.execute(this, Policy.subMonitorFor(monitor, 40));
- if (!status.isOK()) {
- throw new CVSException(status);
- }
-
- // set the root directory on the server for this connection
- connection.writeLine("Root " + getRepositoryRoot()); //$NON-NLS-1$
-
- // enable compression
- compressionLevel = CVSProviderPlugin.getPlugin().getCompressionLevel();
- if (compressionLevel != 0 && isValidRequest("gzip-file-contents")) { //$NON-NLS-1$
- // Enable the use of CVS 1.8 per-file compression mechanism.
- // The newer Gzip-stream request seems to be problematic due to Java's
- // GZIPInputStream tendency to block on read() rather than to return a
- // partially filled buffer. The latter option would be better since it
- // can make more effective use of the code dictionary, if it can be made
- // to work...
- connection.writeLine("gzip-file-contents " + Integer.toString(compressionLevel)); //$NON-NLS-1$
- } else {
- compressionLevel = 0;
- }
-
- // get the server platform if it is unknown
- if (CVSProviderPlugin.getPlugin().isDetermineVersionEnabled() && location.getServerPlatform() == CVSRepositoryLocation.UNDETERMINED_PLATFORM) {
- Command.VERSION.execute(this, location, Policy.subMonitorFor(monitor, 10));
- }
- opened = true;
- } finally {
- if (connection != null && ! opened) {
- try {
- close();
- } catch (CVSException ex) {
- CVSProviderPlugin.log(ex);
- }
- }
- monitor.done();
- }
- }
-
- /*
- * Return the location to be used for this connection
- */
- private CVSRepositoryLocation getLocationForConnection(boolean writeAccess) {
- try {
- if (writeAccess) {
- String writeLocation = location.getWriteLocation();
- if (writeLocation != null) {
- return (CVSRepositoryLocation)CVSProviderPlugin.getPlugin().getRepository(writeLocation);
- }
- } else {
- String readLocation = location.getReadLocation();
- if (readLocation != null) {
- return (CVSRepositoryLocation)CVSProviderPlugin.getPlugin().getRepository(readLocation);
- }
- }
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- return location;
- }
-
- /**
- * Closes a connection to the server.
- *
- * @throws IllegalStateException if the Session is not in the OPEN state
- */
- public void close() throws CVSException {
- if (connection != null) {
- connection.close();
- connection = null;
- validRequests = null;
- }
- }
-
- /**
- * Determines if the server supports the specified request.
- *
- * @param request the request string to verify
- * @return true iff the request is supported
- */
- public boolean isValidRequest(String request) {
- return (validRequests == null) ||
- (validRequests.indexOf(" " + request + " ") != -1); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public boolean isCVSNT() {
- if (location.getServerPlatform() == CVSRepositoryLocation.UNDETERMINED_PLATFORM) {
- return location.getRootDirectory().indexOf(':') == 1;
- } else {
- return location.getServerPlatform() == CVSRepositoryLocation.CVSNT_SERVER;
- }
- }
-
- /**
- * Return a local path that can be used to uniquely identify a resource
- * if the platform does not support case variant names and there is a name collision
- */
- protected String getUniquePathForCaseSensitivePath(String localPath, boolean creatingFolder) {
- IPath path = new Path(localPath);
- IPath existingMapping = null;
- if (caseMappings != null) {
- // Look for an existing parent path that has already been mapped
- for (int i = 0; i < path.segmentCount(); i++) {
- IPath key = path.removeLastSegments(i);
- existingMapping = (IPath)caseMappings.get(key);
- if (existingMapping != null) break;
- }
- }
- if (existingMapping != null) {
- if (existingMapping.segmentCount() == path.segmentCount()) {
- return existingMapping.toString();
- }
- // Convert the path to the mapped path
- path = existingMapping.append(path.removeFirstSegments(existingMapping.segmentCount()));
- }
- if (creatingFolder) {
- // Change the name of the folder to a case insensitive one
- String folderName = path.lastSegment();
- // XXX We should ensure that each permutation of characters is unique
- folderName = getUniqueNameForCaseVariant(folderName);
- path = path.removeLastSegments(1).append(folderName);
- }
- return path.toString();
- }
-
- /*
- * Return a name that is unique for a give case variant.
- */
- private String getUniqueNameForCaseVariant(String name) {
- char[] buffer = new char[name.length() * 2];
- int position = 0;
- for (int i = 0; i < name.length(); i++) {
- char c = name.charAt(i);
- buffer[position++] = c;
- if (Character.isLetter(c)) {
- if (Character.isUpperCase(c)) {
- buffer[position++] = '-';
- } else {
- buffer[position++] = '_';
- }
- }
- }
- return new String(buffer, 0, position);
- }
-
- /**
- * Returns the local root folder for this session.
- * <p>
- * Generally speaking, specifies the "current working directory" at
- * the time of invocation of an equivalent CVS command-line client.
- * </p>
- *
- * @return the local root folder
- */
- public ICVSFolder getLocalRoot() {
- return localRoot;
- }
-
- /**
- * Return the list of module expansions communicated from the server.
- *
- * The modules expansions are typically a directory path of length 1
- * but can be of greater length on occasion.
- */
- public String[] getModuleExpansions() {
- if (expansions == null) return new String[0];
- return (String[]) expansions.toArray(new String[expansions.size()]);
- }
-
- /**
- * Returns the repository root folder for this session.
- * <p>
- * Specifies the unqualified path to the CVS repository root folder
- * on the server.
- * </p>
- *
- * @return the repository root folder
- */
- public String getRepositoryRoot() {
- return location.getRootDirectory();
- }
-
- /**
- * Returns an object representing the CVS repository location for this session.
- *
- * @return the CVS repository location
- */
- public ICVSRepositoryLocation getCVSRepositoryLocation() {
- return location;
- }
-
- private IContainer getIResourceFor(ICVSFolder cvsFolder) throws CoreException, CVSException {
- if (cvsFolder.isManaged()) {
- return getIResourceFor(cvsFolder.getParent()).getFolder(new Path(cvsFolder.getName()));
- } else {
- return ResourcesPlugin.getWorkspace().getRoot().getProject(cvsFolder.getName());
- }
- }
-
- protected void handleCaseCollisions() throws CVSException {
- // Handle any case variant mappings
- Map mappings = caseMappings;
- if (mappings == null || mappings.size() == 0) return;
- // We need to start at the longest paths and work to the shortest
- // in case there are nested case collisions
- List sortedCollisions = new ArrayList();
- sortedCollisions.addAll(mappings.keySet());
- Collections.sort(sortedCollisions, new Comparator() {
- public int compare(Object arg0, Object arg1) {
- int length0 = ((IPath)arg0).segmentCount();
- int length1 = ((IPath)arg1).segmentCount();
- if (length0 == length1) {
- return arg0.toString().compareTo(arg1.toString());
- }
- return length0 > length1 ? -1 : 1;
- }
- });
- // For each mapping, we need to see if one of the culprits was pruned
- List unhandledMappings = new ArrayList();
- Iterator iterator = sortedCollisions.iterator();
- while (iterator.hasNext()) {
- IPath desiredPath = (IPath)iterator.next();
- IPath actualPath = (IPath)mappings.get(desiredPath);
- // Check for the empty path (i.e. unloaded file)
- if (actualPath.equals(Path.EMPTY)) {
- unhandledMappings.add(desiredPath);
- continue;
- }
- // Check if the actualPath still exists (it may have been pruned)
- ICVSFolder actualFolder = getLocalRoot().getFolder(actualPath.toString());
- if ( ! actualFolder.exists()) continue;
- // Check if the desiredPath exists (we can only do this by trying to create it
- ICVSFolder desiredFolder = getLocalRoot().getFolder(desiredPath.toString());
- try {
- desiredFolder.mkdir();
- desiredFolder.delete();
- } catch (CVSException e) {
- // Must still exists. Delete the collision
- actualFolder.delete();
- actualFolder.unmanage(null);
- unhandledMappings.add(desiredPath);
- continue;
- }
- // The desired location is open (probably due to pruning)
- try {
- // We need to get the IResource for the actual and desired locations
- IResource actualResource = getIResourceFor(actualFolder);
- IResource desiredResource = actualResource.getParent().getFolder(new Path(desiredFolder.getName()));
- // Move the actual to the desired location
- actualResource.move(desiredResource.getFullPath(), false, null);
- // We need to also move the sync info. Since sync info is a session property
- // of the object, we can simpy reset the info for each moved resource
- desiredFolder.accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- file.setSyncBytes(file.getSyncBytes(), ICVSFile.UNKNOWN);
- }
- public void visitFolder(ICVSFolder folder) throws CVSException {
- folder.setFolderSyncInfo(folder.getFolderSyncInfo());
- folder.acceptChildren(this);
- }
- });
- // Unmanage the old location in order to remove the entry from the parent
- actualFolder.unmanage(null);
- } catch (CoreException e) {
- CVSProviderPlugin.log(e);
- unhandledMappings.add(desiredPath);
- }
- }
-
- if (unhandledMappings.size() > 0) {
- MultiStatus status = new MultiStatus(CVSProviderPlugin.ID, CVSStatus.CASE_VARIANT_EXISTS, Policy.bind("PruneFolderVisitor.caseVariantsExist"), null);//$NON-NLS-1$
- Iterator iter = unhandledMappings.iterator();
- while (iter.hasNext()) {
- IPath desiredPath = (IPath) iter.next();
- status.add(new CVSStatus(IStatus.ERROR, CVSStatus.CASE_VARIANT_EXISTS,
- Policy.bind("PruneFolderVisitor.caseVariantExists", desiredPath.toString())));//$NON-NLS-1$
- }
- if (status.getChildren().length == 1) {
- throw new CVSException(status.getChildren()[0]);
- } else {
- throw new CVSException(status);
- }
- }
- }
-
- /**
- * Receives a line of text minus the newline from the server.
- *
- * @return the line of text
- */
- public String readLine() throws CVSException {
- return connection.readLine();
- }
-
- /**
- * Sends a line of text followed by a newline to the server.
- *
- * @param line the line of text
- */
- public void writeLine(String line) throws CVSException {
- connection.writeLine(line);
- }
-
- /**
- * Sends an argument to the server.
- * <p>e.g. sendArgument("Hello\nWorld\n Hello World") sends:
- * <pre>
- * Argument Hello \n
- * Argumentx World \n
- * Argumentx Hello World \n
- * </pre></p>
- *
- * @param arg the argument to send
- */
- public void sendArgument(String arg) throws CVSException {
- connection.write("Argument "); //$NON-NLS-1$
- int oldPos = 0;
- for (;;) {
- int pos = arg.indexOf('\n', oldPos);
- if (pos == -1) break;
- connection.writeLine(arg.substring(oldPos, pos));
- connection.write("Argumentx "); //$NON-NLS-1$
- oldPos = pos + 1;
- }
- connection.writeLine(arg.substring(oldPos));
- }
-
- /**
- * Sends a request to the server and flushes any output buffers.
- *
- * @param requestId the string associated with the request to be executed
- */
- public void sendRequest(String requestId) throws CVSException {
- connection.writeLine(requestId);
- connection.flush();
- }
-
- /**
- * Sends an Is-modified request to the server without the file contents.
- * <p>e.g. if a file called "local_file" was modified, sends:
- * <pre>
- * Is-modified local_file \n
- * </pre></p><p>
- * This request is an optimized form of the Modified request and may not
- * be supported by all servers. Hence, if it is not supported, a Modified
- * request is sent instead along with the file's contents. According to
- * the CVS protocol specification, this request is only safe for use with
- * some forms of: admin, annotate, diff, editors, log, watch-add, watch-off,
- * watch-on, watch-remove, and watchers.<br>
- * It may be possible to use this for: add, export, remove and status.<br>
- * Do not use with co, ci, history, init, import, release, rdiff, rtag, or update.
- * </p><p>
- * Note: The most recent Directory request must have specified the file's
- * parent folder.
- * </p>
- *
- * @param file the file that was modified
- * @see #sendModified
- */
- public void sendIsModified(ICVSFile file, boolean isBinary, IProgressMonitor monitor)
- throws CVSException {
- if (isValidRequest("Is-modified")) { //$NON-NLS-1$
- connection.writeLine("Is-modified " + file.getName()); //$NON-NLS-1$
- } else {
- sendModified(file, isBinary, monitor);
- }
- }
-
- /**
- * Sends a Static-directory request to the server.
- * <p>
- * Indicates that the directory specified in the most recent Directory request
- * is static. No new files will be checked out into this directory unless
- * explicitly requested.
- * </p>
- */
- public void sendStaticDirectory() throws CVSException {
- connection.writeLine("Static-directory"); //$NON-NLS-1$
- }
-
- /**
- * Sends a Directory request to the server with a constructed path.
- * <p>
- * It may be necessary at times to guess the remote path of a directory since
- * it does not exist yet. In this case we construct a remote path based on the
- * local path by prepending the local path with the repository root. This may
- * not work in the presence of modules, so only use it for creating new projects.
- * </p><p>
- * Note: A CVS repository root can end with a trailing slash. The CVS server
- * expects that the repository root sent contain this extra slash. Including
- * the foward slash in addition to the absolute remote path makes for a string
- * containing two consecutive slashes (e.g. /home/cvs/repo//projecta/a.txt).
- * This is valid in the CVS protocol.
- * </p>
- */
- public void sendConstructedDirectory(String localDir) throws CVSException {
- sendDirectory(localDir, getRepositoryRoot() + "/" + localDir); //$NON-NLS-1$
- }
-
- /**
- * Sends a Directory request to the server.
- * <p>e.g. sendDirectory("local_dir", "remote_dir") sends:
- * <pre>
- * Directory local_dir
- * repository_root/remote_dir
- * </pre></p>
- *
- * @param localDir the path of the local directory relative to localRoot
- * @param remoteDir the path of the remote directory relative to repositoryRoot
- */
- public void sendDirectory(String localDir, String remoteDir) throws CVSException {
- if (localDir.length() == 0) localDir = "."; //$NON-NLS-1$
- connection.writeLine("Directory " + localDir); //$NON-NLS-1$
- connection.writeLine(remoteDir);
- }
-
- /**
- * Sends a Directory request for the localRoot.
- */
- public void sendLocalRootDirectory() throws CVSException {
- sendDirectory(".", localRoot.getRemoteLocation(localRoot)); //$NON-NLS-1$
- }
-
- /**
- * Sends a Directory request for the localRoot with a constructed path.
- * <p>
- * Use this when creating a new project that does not exist in the repository.
- * </p>
- * @see #sendConstructedDirectory
- */
- public void sendConstructedRootDirectory() throws CVSException {
- sendConstructedDirectory(""); //$NON-NLS-1$
- }
-
- /**
- * Sends an Entry request to the server.
- * <p>
- * Indicates that a file is managed (but it may not exist locally). Sends
- * the file's entry line to the server to indicate the version that was
- * previously checked out.
- * </p><p>
- * Note: The most recent Directory request must have specified the file's
- * parent folder.
- * </p>
- *
- * @param entryLine the formatted entry line of the managed file.
- */
- public void sendEntry(byte[] syncBytes, String serverTimestamp) throws CVSException {
- connection.write("Entry "); //$NON-NLS-1$
- if (serverTimestamp == null) {
- serverTimestamp = ""; //$NON-NLS-1$
- }
- int start = Util.getOffsetOfDelimeter(syncBytes, (byte)'/', 0, 3);
- if (start == -1) {
- // something is wrong with the entry line so just send it as is
- // and let the server report the error.
- connection.writeLine(syncBytes, 0, syncBytes.length);
- return;
- }
- int end = Util.getOffsetOfDelimeter(syncBytes, (byte)'/', start + 1, 1);
- if (end == -1) {
- // something is wrong with the entry line so just send it as is
- // and let the server report the error.
- connection.writeLine(syncBytes, 0, syncBytes.length);
- return;
- }
- connection.write(syncBytes, 0, start + 1);
- connection.write(serverTimestamp);
- connection.writeLine(syncBytes, end, syncBytes.length - end);
- }
-
- /**
- * Sends a global options to the server.
- * <p>e.g. sendGlobalOption("-n") sends:
- * <pre>
- * Global_option -n \n
- * </pre></p>
- *
- * @param option the global option to send
- */
- public void sendGlobalOption(String option) throws CVSException {
- connection.writeLine("Global_option " + option); //$NON-NLS-1$
- }
-
- /**
- * Sends an Unchanged request to the server.
- * <p>e.g. if a file called "local_file" was not modified, sends:
- * <pre>
- * Unchanged local_file \n
- * </pre></p><p>
- * Note: The most recent Directory request must have specified the file's
- * parent folder.
- * </p>
- *
- * @param file the file that was not modified
- */
- public void sendUnchanged(ICVSFile file) throws CVSException {
- connection.writeLine("Unchanged " + file.getName()); //$NON-NLS-1$
- }
-
- /**
- * Sends the Notify request to the server
- */
- public void sendNotify(ICVSFolder parent, NotifyInfo info)
- throws CVSException {
-
- String filename = info.getName();
- connection.writeLine("Notify " + filename); //$NON-NLS-1$
- connection.writeLine(info.getServerLine(parent));
- }
-
- /**
- * Sends a Questionable request to the server.
- * <p>
- * Indicates that a file exists locally but is unmanaged. Asks the server
- * whether or not the file should be ignored in subsequent CVS operations.
- * The reply to the request occurs in the form of special M-type message
- * responses prefixed with '?' when the next command is executed.
- * </p><p>
- * Note: The most recent Directory request must have specified the file's
- * parent folder.
- * </p>
- *
- * @param resource the local file or folder
- */
- public void sendQuestionable(ICVSResource resource) throws CVSException {
- connection.writeLine("Questionable " + resource.getName()); //$NON-NLS-1$
- }
-
- /**
- * Sends a Sticky tag request to the server.
- * <p>
- * Indicates that the directory specified in the most recent Directory request
- * has a sticky tag or date, and sends the tag's contents.
- * </p>
- *
- * @param tag the sticky tag associated with the directory
- */
- public void sendSticky(String tag) throws CVSException {
- connection.writeLine("Sticky " + tag); //$NON-NLS-1$
- }
-
- /**
- * Sends a Modified request to the server along with the file contents.
- * <p>e.g. if a file called "local_file" was modified, sends:
- * <pre>
- * Modified local_file \n
- * file_permissions \n
- * file_size \n
- * [... file_contents ...]
- * </pre></p><p>
- * Under some circumstances, Is-modified may be used in place of this request.<br>
- * Do not use with history, init, import, rdiff, release, rtag, or update.
- * </p><p>
- * Note: The most recent Directory request must have specified the file's
- * parent folder.
- * </p>
- *
- * @param file the file that was modified
- * @param isBinary if true the file is sent without translating line delimiters
- * @param monitor the progress monitor
- * @see #sendIsModified
- */
- public void sendModified(ICVSFile file, boolean isBinary, IProgressMonitor monitor)
- throws CVSException {
- sendModified(file, isBinary, true, monitor);
- }
-
- public void sendModified(ICVSFile file, boolean isBinary, boolean sendBinary, IProgressMonitor monitor)
- throws CVSException {
-
- String filename = file.getName();
- connection.writeLine("Modified " + filename); //$NON-NLS-1$
- // send the default permissions for now
- connection.writeLine(ResourceSyncInfo.getDefaultPermissions());
- sendFile(file, isBinary, sendBinary, monitor);
- }
-
- /**
- * Sends a file to the remote CVS server, possibly translating line delimiters.
- * <p>
- * Line termination sequences are automatically converted to linefeeds only
- * (required by the CVS specification) when sending non-binary files. This
- * may alter the actual size and contents of the file that is sent.
- * </p><p>
- * Note: Non-binary files must be small enough to fit in available memory.
- * </p>
- * @param file the file to be sent
- * @param isBinary is true if the file should be sent without translation
- * @param monitor the progress monitor
- */
- public void sendFile(ICVSFile file, boolean isBinary, IProgressMonitor monitor) throws CVSException {
- sendFile(file, isBinary, true, monitor);
- }
-
- public void sendFile(ICVSStorage file, boolean isBinary, boolean sendBinary, IProgressMonitor monitor) throws CVSException {
- // check overrides
- if (textTransferOverrideSet != null &&
- textTransferOverrideSet.contains(file)) isBinary = false;
-
- // update progress monitor
- final String title = Policy.bind(getSendFileTitleKey(), new Object[]{ Util.toTruncatedPath(file, localRoot, 3) }); //$NON-NLS-1$
- monitor.subTask(Policy.bind("Session.transferNoSize", title)); //$NON-NLS-1$
- try {
- InputStream in = null;
- long length;
- try {
- if (isBinary && !sendBinary) {
- byte[] bytes = "hello".getBytes(); //$NON-NLS-1$
- sendUncompressedBytes(new ByteArrayInputStream(bytes), bytes.length);
- return;
- }
-
- if (compressionLevel == 0) {
- in = file.getContents();
- if (!isBinary && IS_CRLF_PLATFORM){
- // uncompressed text
- byte[] buffer = new byte[TRANSFER_BUFFER_SIZE];
- in = new CRLFtoLFInputStream(in);
- ByteCountOutputStream counter = new ByteCountOutputStream();
- try {
- for (int count; (count = in.read(buffer)) != -1;) counter.write(buffer, 0, count);
- } finally {
- counter.close();
- }
- in.close();
- length = counter.getSize();
- in = new CRLFtoLFInputStream(file.getContents());
- } else {
- // uncompressed binary
- length = file.getSize();
- }
- in = new ProgressMonitorInputStream(in, length, TRANSFER_PROGRESS_INCREMENT, monitor) {
- protected void updateMonitor(long bytesRead, long bytesTotal, IProgressMonitor monitor) {
- if (bytesRead == 0) return;
- Assert.isTrue(bytesRead <= bytesTotal);
- monitor.subTask(Policy.bind("Session.transfer", //$NON-NLS-1$
- new Object[] { title, Long.toString(bytesRead >> 10), Long.toString(bytesTotal >> 10) }));
- }
- };
- sendUncompressedBytes(in, length);
- } else {
- monitor.subTask(Policy.bind("Session.calculatingCompressedSize", Util.toTruncatedPath(file, localRoot, 3))); //$NON-NLS-1$
- in = file.getContents();
- byte[] buffer = new byte[TRANSFER_BUFFER_SIZE];
- ByteCountOutputStream counter = new ByteCountOutputStream();
- OutputStream zout = new GZIPOutputStream(counter);
- if (!isBinary && IS_CRLF_PLATFORM) in = new CRLFtoLFInputStream(in);
- try {
- for (int count; (count = in.read(buffer)) != -1;) zout.write(buffer, 0, count);
- } finally {
- zout.close();
- }
- in.close();
- in = file.getContents();
- in = new ProgressMonitorInputStream(in, file.getSize(), TRANSFER_PROGRESS_INCREMENT, monitor) {
- protected void updateMonitor(long bytesRead, long bytesTotal, IProgressMonitor monitor) {
- if (bytesRead == 0) return;
- Assert.isTrue(bytesRead <= bytesTotal);
- monitor.subTask(Policy.bind("Session.transfer", //$NON-NLS-1$
- new Object[] { title, Long.toString(bytesRead >> 10), Long.toString(bytesTotal >> 10) }));
- }
- };
- if (!isBinary && IS_CRLF_PLATFORM) in = new CRLFtoLFInputStream(in);
- sendCompressedBytes(in, counter.getSize());
- }
- } finally {
- if (in != null) in.close();
- }
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /*
- * Send the contents of the input stream to CVS.
- * Length must equal the number of bytes that will be transferred
- * across the wire, that is, the compressed file size.
- */
- private void sendCompressedBytes(InputStream in, long length) throws IOException, CVSException {
- String sizeLine = "z" + Long.toString(length); //$NON-NLS-1$
- writeLine(sizeLine);
- OutputStream out = connection.getOutputStream();
- GZIPOutputStream zo = new GZIPOutputStream(out);
- byte[] buffer = new byte[TRANSFER_BUFFER_SIZE];
- for (int count;
- (count = in.read(buffer)) != -1;)
- zo.write(buffer, 0, count);
- zo.finish();
- }
-
- /*
- * Send the contents of the input stream to CVS.
- * Length must equal the number of bytes that will be transferred
- * across the wire.
- */
- private void sendUncompressedBytes(InputStream in, long length) throws IOException, CVSException {
- OutputStream out = connection.getOutputStream();
- String sizeLine = Long.toString(length);
- writeLine(sizeLine);
- byte[] buffer = new byte[TRANSFER_BUFFER_SIZE];
- for (int count; (count = in.read(buffer)) != -1;) out.write(buffer, 0, count);
- }
-
-
-
-
- /**
- * Receives a file from the remote CVS server, possibly translating line delimiters.
- * <p>
- * Line termination sequences are automatically converted to platform format
- * only when receiving non-binary files. This may alter the actual size and
- * contents of the file that is received.
- * </p><p>
- * Translation is performed on-the-fly, so the file need not fit in available memory.
- * </p>
- * @param file the file to be received
- * @param isBinary is true if the file should be received without translation
- * @param responseType one of the ICVSFile updated types (UPDATED, CREATED, MERGED, UPDATE_EXISTING)
- * indicating what repsonse type provided the file contents
- * @param monitor the progress monitor
- */
- public void receiveFile(ICVSStorage file, boolean isBinary, int responseType, IProgressMonitor monitor)
- throws CVSException {
- // check overrides
- if (textTransferOverrideSet != null &&
- textTransferOverrideSet.contains(file)) isBinary = false;
-
- // update progress monitor
- final String title = Policy.bind("Session.receiving", new Object[]{ Util.toTruncatedPath(file, localRoot, 3) }); //$NON-NLS-1$
- monitor.subTask(Policy.bind("Session.transferNoSize", title)); //$NON-NLS-1$
- // get the file size from the server
- long size;
- boolean compressed = false;
- try {
- String sizeLine = readLine();
- if (sizeLine.charAt(0) == 'z') {
- compressed = true;
- sizeLine = sizeLine.substring(1);
- }
- size = Long.parseLong(sizeLine, 10);
- } catch (NumberFormatException e) {
- throw new CVSException(Policy.bind("Session.badInt"), e); //$NON-NLS-1$
- }
- // create an input stream that spans the next 'size' bytes from the connection
- InputStream in = new SizeConstrainedInputStream(connection.getInputStream(), size, true /*discardOnClose*/);
- // setup progress monitoring
- in = new ProgressMonitorInputStream(in, size, TRANSFER_PROGRESS_INCREMENT, monitor) {
- protected void updateMonitor(long bytesRead, long bytesTotal, IProgressMonitor monitor) {
- if (bytesRead == 0) return;
- monitor.subTask(Policy.bind("Session.transfer", //$NON-NLS-1$
- new Object[] { title, Long.toString(bytesRead >> 10), Long.toString(bytesTotal >> 10) }));
- }
- };
- // if compression enabled, decompress on the fly
- if (compressed) {
- try {
- in = new GZIPInputStream(in);
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- }
- }
- // if not binary, translate line delimiters on the fly
- if (! isBinary) {
- // switch from LF to CRLF if appropriate
- if (IS_CRLF_PLATFORM) {
- // auto-correct for CRLF line-ends that come from the server
- in = new CRLFtoLFInputStream(in);
- // convert LF to CRLF
- in = new LFtoCRLFInputStream(in);
- } else {
- // be nice and warn about text files that contain CRLF
- in = new CRLFDetectInputStream(in, file);
- }
- }
- // write the file locally
- file.setContents(in, responseType, true, new NullProgressMonitor());
- }
-
- /**
- * Stores the value of the last Mod-time response encountered.
- * Valid only for the duration of a single CVS command.
- */
- void setModTime(Date modTime) {
- this.modTime = modTime;
- }
-
- /**
- * Returns the stored value of the last Mod-time response,
- * or null if there was none while processing the current command.
- */
- Date getModTime() {
- return modTime;
- }
-
- /**
- * Stores true if the -n global option was specified for the current command.
- * Valid only for the duration of a single CVS command.
- */
- void setNoLocalChanges(boolean noLocalChanges) {
- this.noLocalChanges = noLocalChanges;
- }
-
- /**
- * Returns true if the -n global option was specified for the current command,
- * false otherwise.
- */
- boolean isNoLocalChanges() {
- return noLocalChanges;
- }
-
- /**
- * Callback hook for the ValidRequestsHandler to specify the set of valid
- * requests for this session.
- */
- void setValidRequests(String validRequests) {
- this.validRequests = " " + validRequests + " "; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- boolean isOutputToConsole() {
- return outputToConsole;
- }
-
- /**
- * Stores a flag as to whether .# files will be created. (Default is true)
- * @param createBackups if true, creates .# files at the server's request
- */
- void setCreateBackups(boolean createBackups) {
- this.createBackups = createBackups;
- }
-
- /**
- * Returns a flag as to whether .# files will be created.
- */
- boolean isCreateBackups() {
- return createBackups;
- }
-
- /**
- * Gets the sendFileTitleKey.
- * @return Returns a String
- */
- String getSendFileTitleKey() {
- if (sendFileTitleKey == null)
- return "Session.sending"; //$NON-NLS-1$
- return sendFileTitleKey;
- }
-
- /**
- * Sets the sendFileTitleKey.
- * @param sendFileTitleKey The sendFileTitleKey to set
- */
- public void setSendFileTitleKey(String sendFileTitleKey) {
- this.sendFileTitleKey = sendFileTitleKey;
- }
-
- /**
- * Remembers a set of files that must be transferred as 'text'
- * regardless of what the isBinary parameter to sendFile() is.
- *
- * @param textTransferOverrideSet the set of ICVSFiles to override, or null if none
- */
- public void setTextTransferOverride(Collection textTransferOverrideSet) {
- this.textTransferOverrideSet = textTransferOverrideSet;
- }
-
- /**
- * Filter the provided global options using parameters set on this session
- * or globally. The session may add global options that correspond to user
- * preferences or remove those that contradict requirements for this
- * particular session.
- *
- * @param globalOptions the global options, read-only
- * @return the filtered global options
- */
- protected GlobalOption[] filterGlobalOptions(GlobalOption[] globalOptions) {
- if (! Command.DO_NOT_CHANGE.isElementOf(globalOptions)) {
- // Get the user preference for verbosity
- QuietOption quietOption = CVSProviderPlugin.getPlugin().getQuietness();
- if (quietOption != null) {
- globalOptions = quietOption.addToEnd(globalOptions);
- }
- // Get the user preference for read-only
- if (CVSProviderPlugin.getPlugin().getPluginPreferences().getBoolean(CVSProviderPlugin.READ_ONLY)) {
- if (!Command.MAKE_READ_ONLY.isElementOf(globalOptions)) {
- globalOptions = Command.MAKE_READ_ONLY.addToEnd(globalOptions);
- }
- }
- }
- return globalOptions;
- }
- /**
- * Method setIgnoringLocalChanges.
- * @param b
- */
- protected void setIgnoringLocalChanges(boolean b) {
- ignoringLocalChanges = b;
- }
- /**
- * Returns the ignoringLocalChanges.
- * @return boolean
- */
- protected boolean isIgnoringLocalChanges() {
- return ignoringLocalChanges;
- }
-
- /**
- * Method getUniquePathForInvalidPath.
- * @param localDir
- * @return String
- */
- public String getUniquePathForInvalidPath(String localDir) {
- IPath oldPath = new Path(localDir);
- int count = oldPath.segmentCount();
- for (int i = 0; i < count; i++) {
- String segment = oldPath.segment(i);
- if (segment.endsWith(".")) { //$NON-NLS-1$
- segment = segment + Policy.bind("Session.dot_2"); //$NON-NLS-1$
- oldPath = oldPath.removeLastSegments(count - i).append(segment).append(oldPath.removeFirstSegments(i + 1));
- }
- }
- return oldPath.toString();
- }
-
- /*
- * Get the response handler map to be used for this session. The map is created by making a copy of the global
- * reponse handler map.
- */
- protected Map getReponseHandlers() {
- if (responseHandlers == null) {
- responseHandlers = Request.getReponseHandlerMap();
- }
- return responseHandlers;
- }
-
- /*
- * Makes a list of all valid responses; for initializing a session.
- * @return a space-delimited list of all valid response strings
- */
- private String makeResponseList() {
- StringBuffer result = new StringBuffer("ok error M E"); //$NON-NLS-1$
- Iterator elements = getReponseHandlers().keySet().iterator();
- while (elements.hasNext()) {
- result.append(' ');
- result.append((String) elements.next());
- }
-
- return result.toString();
- }
- public void registerResponseHandler(ResponseHandler handler) {
- getReponseHandlers().put(handler.getResponseID(), handler);
- }
-
- public void removeResponseHandler(String responseID) {
- getReponseHandlers().remove(responseID);
- }
-
- public ResponseHandler getResponseHandler(String responseID) {
- return (ResponseHandler)getReponseHandlers().get(responseID);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/StaticHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/StaticHandler.java
deleted file mode 100644
index 2c6d46e98..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/StaticHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-/**
- * Handles any "Set-static-directory" and "Clear-static-directory" responses
- * from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Set-static-directory myproject/ \n
- * /u/cvsroot/myproject/ \n
- * [...]
- * </pre>
- * Then we set or clear the static flag of the folder "myproject",
- * automatically creating it if it does not exist locally,
- * </p>
- */
-class StaticHandler extends ResponseHandler {
- private final boolean setStaticDirectory;
-
- public StaticHandler(boolean setStaticDirectory) {
- this.setStaticDirectory = setStaticDirectory;
- }
-
- public String getResponseID() {
- if (setStaticDirectory) {
- return "Set-static-directory"; //$NON-NLS-1$
- } else {
- return "Clear-static-directory"; //$NON-NLS-1$
- }
- }
-
- public void handle(Session session, String localDir,
- IProgressMonitor monitor) throws CVSException {
- // read additional data for the response
- String repositoryDir = session.readLine();
-
- // create the directory then set or clear the static flag
- Assert.isTrue(repositoryDir.endsWith("/")); //$NON-NLS-1$
- repositoryDir = repositoryDir.substring(0, repositoryDir.length() - 1);
- ICVSFolder folder = createFolder(session, localDir, repositoryDir);
- FolderSyncInfo syncInfo = folder.getFolderSyncInfo();
- // Added to ignore sync info for workspace root
- if (syncInfo == null) return;
- FolderSyncInfo newInfo = new FolderSyncInfo(syncInfo.getRepository(),
- syncInfo.getRoot(), syncInfo.getTag(), setStaticDirectory);
- // only set the sync info if it has changed
- if (!syncInfo.equals(newInfo))
- folder.setFolderSyncInfo(newInfo);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Status.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Status.java
deleted file mode 100644
index 31b2d5a63..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Status.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.internal.ccvs.core.client;
-
-
-public class Status extends AbstractMessageCommand {
- /*** Local options: specific to status ***/
-
- protected Status() { }
- protected String getRequestId() {
- return "status"; //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/StickyHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/StickyHandler.java
deleted file mode 100644
index 6364f84ca..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/StickyHandler.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.resources.CVSEntryLineTag;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-/**
- * Handles any "Set-sticky" and "Clear-stick" responses from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Set-sticky myproject/ \n
- * /u/cvsroot/myproject/ \n
- * Tsometag \n
- * [...]
- * </pre>
- * Then we set or clear the sticky tag property of the folder "myproject",
- * automatically creating it if it does not exist locally,
- * </p>
- */
-class StickyHandler extends ResponseHandler {
- private final boolean setSticky;
-
- public StickyHandler(boolean setSticky) {
- this.setSticky = setSticky;
- }
-
- public String getResponseID() {
- if (setSticky) {
- return "Set-sticky"; //$NON-NLS-1$
- } else {
- return "Clear-sticky"; //$NON-NLS-1$
- }
- }
-
- public void handle(Session session, String localDir,
- IProgressMonitor monitor) throws CVSException {
- // read additional data for the response
- String repositoryDir = session.readLine();
- String tag = null;
- if (setSticky) {
- tag = session.readLine();
- if (tag.length() == 0) tag = null; // FIXME: is this correct
- }
-
- // create the directory then set or clear the sticky tag
- Assert.isTrue(repositoryDir.endsWith("/")); //$NON-NLS-1$
- repositoryDir = repositoryDir.substring(0, repositoryDir.length() - 1);
- ICVSFolder folder = createFolder(session, localDir, repositoryDir);
- FolderSyncInfo syncInfo = folder.getFolderSyncInfo();
- // Added to ignore sync info for workspace root
- if (syncInfo == null) return;
- FolderSyncInfo newInfo = new FolderSyncInfo(syncInfo.getRepository(),
- syncInfo.getRoot(), tag != null ? new CVSEntryLineTag(tag) : null,
- syncInfo.getIsStatic());
- // only set the sync info if it has changed
- if (!syncInfo.equals(newInfo))
- folder.setFolderSyncInfo(newInfo);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/SyncUpdate.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/SyncUpdate.java
deleted file mode 100644
index c57928998..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/SyncUpdate.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-public class SyncUpdate extends Update {
-
- public SyncUpdate() { };
-
- /*
- * @see Command#sendFileStructure(ICVSResource,IProgressMonitor,boolean,boolean,boolean)
- */
- protected void sendFileStructure(Session session, ICVSResource[] resources,
- boolean emptyFolders, IProgressMonitor monitor) throws CVSException {
-
- checkResourcesManaged(resources);
- new FileStructureVisitor(session, emptyFolders, true, false).visit(session, resources, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Tag.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Tag.java
deleted file mode 100644
index 63176791f..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Tag.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.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.TagListener;
-
-public class Tag extends Command {
- /*** Local options: specific to tag ***/
- public static final LocalOption CREATE_BRANCH = new LocalOption("-b", null); //$NON-NLS-1$
- public static final LocalOption FORCE_REASSIGNMENT = new LocalOption("-F", null); //$NON-NLS-1$
-
- /*** Default command output listener ***/
- private static final ICommandOutputListener DEFAULT_OUTPUT_LISTENER = new TagListener();
-
- // handle added and removed resources in a special way
- private boolean customBehaviorEnabled;
-
- protected Tag(boolean customBehaviorEnabled) {
- this.customBehaviorEnabled = customBehaviorEnabled;
- }
-
- protected Tag() {
- this(false);
- }
-
- protected String getRequestId() {
- return "tag"; //$NON-NLS-1$
- }
-
- protected ICVSResource[] computeWorkResources(Session session, LocalOption[] localOptions,
- String[] arguments) throws CVSException {
-
- if (arguments.length < 1) throw new IllegalArgumentException();
- String[] allButFirst = new String[arguments.length - 1];
- System.arraycopy(arguments, 1, allButFirst, 0, arguments.length - 1);
- return super.computeWorkResources(session, localOptions, allButFirst);
- }
-
- public IStatus execute(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, CVSTag tag, String[] arguments, ICommandOutputListener listener,
- IProgressMonitor monitor) throws CVSException {
-
- if(tag.getType() != CVSTag.VERSION && tag.getType() != CVSTag.BRANCH) {
- throw new CVSException(new CVSStatus(IStatus.ERROR, Policy.bind("Tag.notVersionOrBranchError"))); //$NON-NLS-1$
- }
-
- // Add the CREATE_BRANCH option for a branch tag
- if (tag.getType() == CVSTag.BRANCH) {
- if ( ! CREATE_BRANCH.isElementOf(localOptions)) {
- LocalOption[] newLocalOptions = new LocalOption[localOptions.length + 1];
- System.arraycopy(localOptions, 0, newLocalOptions, 0, localOptions.length);
- newLocalOptions[newLocalOptions.length - 1] = CREATE_BRANCH;
- localOptions = newLocalOptions;
- }
- }
-
- // Add the tag name to the start of the arguments
- String[] newArguments = new String[arguments.length + 1];
- newArguments[0] = tag.getName();
- System.arraycopy(arguments, 0, newArguments, 1, arguments.length);
-
- return execute(session, globalOptions, localOptions, newArguments, listener, monitor);
- }
-
- public IStatus execute(Session session, GlobalOption[] globalOptions, LocalOption[] localOptions,
- CVSTag tag, ICVSResource[] arguments, ICommandOutputListener listener, IProgressMonitor monitor)
- throws CVSException {
-
- String[] stringArguments = convertArgumentsForOpenSession(arguments, session);
-
- return execute(session, globalOptions, localOptions, tag, stringArguments, listener, monitor);
- }
-
- protected ICommandOutputListener getDefaultCommandOutputListener() {
- return DEFAULT_OUTPUT_LISTENER;
- }
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // Send all folders that are already managed to the server
- if (customBehaviorEnabled) {
- new TagFileSender(session).visit(session, resources, monitor);
- } else {
- new FileStructureVisitor(session, false, false).visit(session, resources, monitor);
- }
- return resources;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/TagFileSender.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/TagFileSender.java
deleted file mode 100644
index ee408f14f..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/TagFileSender.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * Special visitor which handles added and removed files in a special way.
- * Added resources are skipped. Deleted resources are sent as if they were not deleted.
- */
-class TagFileSender extends FileStructureVisitor {
-
- public TagFileSender(Session session) {
- super(session, false, false);
- }
-
- /**
- * Override sendFile to provide custom handling of added and deleted resources.
- * Added resources are skipped. Deleted resources are sent as if they were not deleted.
- */
- protected void sendFile(ICVSFile mFile) throws CVSException {
- Policy.checkCanceled(monitor);
- byte[] syncBytes = mFile.getSyncBytes();
- if (syncBytes != null) {
- // Send the parent folder if it hasn't been sent already
- sendFolder(mFile.getParent());
- // Send the file if appropriate
- if (ResourceSyncInfo.isDeletion(syncBytes)) {
- // makes this resource sync undeleted
- syncBytes = ResourceSyncInfo.convertFromDeletion(syncBytes);
- }
- if (!ResourceSyncInfo.isAddition(syncBytes)) {
- session.sendEntry(syncBytes, ResourceSyncInfo.getTimestampToServer(syncBytes, mFile.getTimeStamp()));
- session.sendIsModified(mFile, ResourceSyncInfo.isBinary(syncBytes), monitor);
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/TemplateHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/TemplateHandler.java
deleted file mode 100644
index e55ead110..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/TemplateHandler.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-import java.io.*;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.util.SyncFileWriter;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class TemplateHandler extends ResponseHandler {
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.ResponseHandler#getResponseID()
- */
- public String getResponseID() {
- return "Template"; //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.ResponseHandler#handle(org.eclipse.team.internal.ccvs.core.client.Session, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
- */
- public void handle(Session session, String localDir, IProgressMonitor monitor) throws CVSException {
- String remoteDir = session.readLine();
- ICVSFolder localFolder = getExistingFolder(session, localDir);
- IContainer container = (IContainer)localFolder.getIResource();
- ICVSStorage templateFile;
- if (container == null) {
- // Create a dummy storage handle to recieve the contents from the server
- templateFile = new ICVSStorage() {
- public String getName() {
- return "Template"; //$NON-NLS-1$
- }
- public void setContents(
- InputStream stream,
- int responseType,
- boolean keepLocalHistory,
- IProgressMonitor monitor)
- throws CVSException {
-
- try {
- // Transfer the contents
- OutputStream out = new ByteArrayOutputStream();
- try {
- byte[] buffer = new byte[1024];
- int read;
- while ((read = stream.read(buffer)) >= 0) {
- Policy.checkCanceled(monitor);
- out.write(buffer, 0, read);
- }
- } finally {
- out.close();
- }
- } catch (IOException e) {
- throw CVSException.wrapException(e); //$NON-NLS-1$
- } finally {
- try {
- stream.close();
- } catch (IOException e1) {
- // Ignore close errors
- }
- }
- }
- public long getSize() {
- return 0;
- }
- public InputStream getContents() throws CVSException {
- return new ByteArrayInputStream(new byte[0]);
- }
- };
- } else {
- templateFile = CVSWorkspaceRoot.getCVSFileFor(SyncFileWriter.getTemplateFile(container));
- }
- session.receiveFile(templateFile, false, UpdatedHandler.HANDLE_UPDATED, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Update.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Update.java
deleted file mode 100644
index 1e5423c16..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Update.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.UpdateListener;
-
-public class Update extends Command {
- /*** Local options: specific to update ***/
- public static final LocalOption CLEAR_STICKY = new LocalOption("-A"); //$NON-NLS-1$
- public static final LocalOption IGNORE_LOCAL_CHANGES = new LocalOption("-C"); //$NON-NLS-1$
- public static final LocalOption RETRIEVE_ABSENT_DIRECTORIES = new LocalOption("-d"); //$NON-NLS-1$
- public static final LocalOption JOIN = new LocalOption("-j"); //$NON-NLS-1$
-
- /*** Default command output listener ***/
- private static final ICommandOutputListener DEFAULT_OUTPUT_LISTENER = new UpdateListener(null);
-
- /*** File information status returned from update ***/
- public static final int STATE_NONE = 0; // no state information available
- public static final int STATE_ADDED_LOCAL = 1; // new file locally that was added but not comitted to server yet
- public static final int STATE_UNKOWN = 2; // new file locally but not added to server
- public static final int STATE_REMOTE_CHANGES = 3; // remote changes to an unmodified local file
- public static final int STATE_DELETED = 4; // removed locally but still exists on the server
- public static final int STATE_MODIFIED = 5; // modified locally
- public static final int STATE_CONFLICT = 6; // modified locally and on the server but cannot be auto-merged
- public static final int STATE_MERGEABLE_CONFLICT = 7; // modified locally and on the server but can be auto-merged
-
- /**
- * Makes a -r or -D or -A option for a tag.
- * Valid for: checkout export history rdiff update
- */
- public static LocalOption makeTagOption(CVSTag tag) {
- int type = tag.getType();
- switch (type) {
- case CVSTag.HEAD:
- return CLEAR_STICKY;
- default:
- return Command.makeTagOption(tag);
- }
- }
-
- protected Update() { }
- protected String getRequestId() {
- return "update"; //$NON-NLS-1$
- }
-
- protected ICommandOutputListener getDefaultCommandOutputListener() {
- return DEFAULT_OUTPUT_LISTENER;
- }
-
- protected ICVSResource[] sendLocalResourceState(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor)
- throws CVSException {
-
- // Send all folders that are already managed to the server
- // even folders that are empty
- sendFileStructure(session, resources, true, monitor);
- return resources;
- }
-
- /**
- * Convenience method that allows the creation of .# files to be disabled.
- * @param createBackups if true, creates .# files
- * @see Command.execute
- */
- public final IStatus execute(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, String[] arguments, ICommandOutputListener listener,
- IProgressMonitor pm, boolean createBackups) throws CVSException {
- session.setCreateBackups(createBackups);
- try {
- return super.execute(session, globalOptions, localOptions, arguments, listener, pm);
- } finally {
- session.setCreateBackups(true);
- }
- }
-
- /**
- * On successful finish, prune empty directories if the -P or -D option was specified.
- */
- protected IStatus commandFinished(Session session, GlobalOption[] globalOptions,
- LocalOption[] localOptions, ICVSResource[] resources, IProgressMonitor monitor,
- IStatus status) throws CVSException {
- // If we didn't succeed, don't do any post processing
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- return status;
- }
-
- // If we are pruning (-P), then prune empty directories
- // Note, the CVS spec says that Date (-D) and version (-r) updates
- // should automatically prune but this is a problem for remote CVS handles
- // which fetch a level at a time
- if (PRUNE_EMPTY_DIRECTORIES.isElementOf(localOptions)) { //$NON-NLS-1$
- // Delete empty directories
- new PruneFolderVisitor().visit(session, resources);
-
- }
- session.handleCaseCollisions();
- return status;
- }
-
- protected LocalOption[] filterLocalOptions(Session session, GlobalOption[] globalOptions, LocalOption[] localOptions) {
- List newOptions = new ArrayList(Arrays.asList(localOptions));
-
- // Look for absent directories if enabled and the option is not already included
- ICVSFolder sessionRoot = session.getLocalRoot();
- IResource resource = null;
- RepositoryProvider provider = null;
- // If there is a provider, use the providers setting
- try {
- resource = session.getLocalRoot().getIResource();
- if (resource != null) {
- provider = RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId());
- if (provider != null) {
- if (((CVSTeamProvider)provider).getFetchAbsentDirectories() && ! RETRIEVE_ABSENT_DIRECTORIES.isElementOf(localOptions)) {
- newOptions.add(Update.RETRIEVE_ABSENT_DIRECTORIES);
- }
- }
- }
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- // If there is no provider, use the global setting
- if (provider == null) {
- if (CVSProviderPlugin.getPlugin().getFetchAbsentDirectories() && ! RETRIEVE_ABSENT_DIRECTORIES.isElementOf(localOptions)) {
- newOptions.add(Update.RETRIEVE_ABSENT_DIRECTORIES);
- }
- }
-
- // Prune empty directories if pruning is enabled and the command in not being run in non-update mode
- if (CVSProviderPlugin.getPlugin().getPruneEmptyDirectories() && ! PRUNE_EMPTY_DIRECTORIES.isElementOf(localOptions)) {
- if (! DO_NOT_CHANGE.isElementOf(globalOptions)) {
- newOptions.add(Update.PRUNE_EMPTY_DIRECTORIES);
- }
- }
- localOptions = (LocalOption[]) newOptions.toArray(new LocalOption[newOptions.size()]);
- return super.filterLocalOptions(session, globalOptions, localOptions);
- }
-
- /**
- * We allow unmanaged resources as long as there parents are managed.
- *
- * @see Command#checkResourcesManaged(ICVSResource[])
- */
- protected void checkResourcesManaged(ICVSResource[] resources) throws CVSException {
- for (int i = 0; i < resources.length; ++i) {
- ICVSFolder folder;
- if (resources[i].isFolder()) {
- if (((ICVSFolder)resources[i]).isCVSFolder()) {
- folder = (ICVSFolder)resources[i];
- } else {
- folder = resources[i].getParent();
- }
- }
- else {
- folder = resources[i].getParent();
- }
- if (folder==null || (!folder.isCVSFolder() && folder.exists())) {
- throw new CVSException(Policy.bind("Command.argumentNotManaged", folder.getName()));//$NON-NLS-1$
- }
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.Command#doExecute(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption, org.eclipse.team.internal.ccvs.core.client.Command.LocalOption, java.lang.String, org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus doExecute(
- Session session,
- GlobalOption[] globalOptions,
- LocalOption[] localOptions,
- String[] arguments,
- ICommandOutputListener listener,
- IProgressMonitor monitor)
- throws CVSException {
-
- session.setIgnoringLocalChanges(IGNORE_LOCAL_CHANGES.isElementOf(localOptions));
- try {
- return super.doExecute(
- session,
- globalOptions,
- localOptions,
- arguments,
- listener,
- monitor);
- } finally {
- session.setIgnoringLocalChanges(false);
- }
-
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdateMergableOnly.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdateMergableOnly.java
deleted file mode 100644
index a4406bbbd..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdateMergableOnly.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-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.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * This custom update command will only update files that
- * are either incoming changes (Update-existing) or auto-mergable
- * (Merged with no "+=" in entry line).
- */
-public class UpdateMergableOnly extends Update {
-
- List skippedFiles = new ArrayList();
-
- public class MergableOnlyUpdatedHandler extends UpdatedHandler {
-
- public MergableOnlyUpdatedHandler() {
- // handle "Merged" responses
- super(UpdatedHandler.HANDLE_MERGED);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.UpdatedHandler#getTargetFile(org.eclipse.team.internal.ccvs.core.ICVSFolder, java.lang.String, byte[])
- */
- protected ICVSFile getTargetFile(ICVSFolder mParent, String fileName, byte[] entryBytes) throws CVSException {
- String adjustedFileName = fileName;
- if (ResourceSyncInfo.isMergedWithConflicts(entryBytes)) {
- // for merged-with-conflict, return a temp file
- adjustedFileName = ".##" + adjustedFileName + " " + ResourceSyncInfo.getRevision(entryBytes); //$NON-NLS-1$ //$NON-NLS-2$
- skippedFiles.add(((IContainer)mParent.getIResource()).getFile(new Path(fileName)));
- }
- return super.getTargetFile(mParent, adjustedFileName, entryBytes);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.UpdatedHandler#receiveTargetFile(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.ICVSFile, java.lang.String, java.util.Date, boolean, boolean, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void receiveTargetFile(
- Session session,
- ICVSFile mFile,
- String entryLine,
- Date modTime,
- boolean binary,
- boolean readOnly,
- IProgressMonitor monitor)
- throws CVSException {
-
- if (ResourceSyncInfo.isMergedWithConflicts(entryLine.getBytes())) {
- // For merged-with-conflict, just recieve the file contents.
- // Use the Updated handler type so that the file will be created or
- // updated.
- session.receiveFile(mFile, binary, UpdatedHandler.HANDLE_UPDATED, monitor);
- // Now delete the file since it is not used
- mFile.delete();
- } else {
- super.receiveTargetFile(session, mFile, entryLine, modTime, binary, readOnly, monitor);
- }
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.Command#doExecute(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption[], org.eclipse.team.internal.ccvs.core.client.Command.LocalOption[], java.lang.String[], org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus doExecute(
- Session session,
- GlobalOption[] globalOptions,
- LocalOption[] localOptions,
- String[] arguments,
- ICommandOutputListener listener,
- IProgressMonitor monitor)
- throws CVSException {
-
- MergableOnlyUpdatedHandler newHandler = new MergableOnlyUpdatedHandler();
- ResponseHandler oldHandler = session.getResponseHandler(newHandler.getResponseID());
- skippedFiles.clear();
- try {
- session.registerResponseHandler(newHandler);
- // Don't create backup files since merges won't be overridden
- session.setCreateBackups(false);
- return super.doExecute(
- session,
- globalOptions,
- localOptions,
- arguments,
- listener,
- monitor);
- } finally {
- session.registerResponseHandler(oldHandler);
- session.setCreateBackups(true);
- }
- }
-
- public IFile[] getSkippedFiles() {
- return (IFile[]) skippedFiles.toArray(new IFile[skippedFiles.size()]);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdateWithOverwrite.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdateWithOverwrite.java
deleted file mode 100644
index 8d662ced1..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdateWithOverwrite.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.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-
-/**
- * A specialized update that will ignore unmanaged local content.
- * It is the same os CheckoutWithOverwrite.
- */
-public class UpdateWithOverwrite extends Update {
-
- /**
- * This class overrides the "Created" handler but uses the "Updated"
- * behavior which will overwrite existing files.
- */
- public class CreatedResponseHandler extends UpdatedHandler {
- public CreatedResponseHandler() {
- super(UpdatedHandler.HANDLE_UPDATED);
- }
- public String getResponseID() {
- return "Created"; //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.Command#doExecute(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption[], org.eclipse.team.internal.ccvs.core.client.Command.LocalOption[], java.lang.String[], org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus doExecute(
- Session session,
- GlobalOption[] globalOptions,
- LocalOption[] localOptions,
- String[] arguments,
- ICommandOutputListener listener,
- IProgressMonitor monitor)
- throws CVSException {
-
- ResponseHandler newCreated = new CreatedResponseHandler();
- ResponseHandler oldCreated = session.getResponseHandler(newCreated.getResponseID());
- session.registerResponseHandler(newCreated);
- try {
- return super.doExecute(
- session,
- globalOptions,
- localOptions,
- arguments,
- listener,
- monitor);
- } finally {
- session.registerResponseHandler(oldCreated);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdatedHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdatedHandler.java
deleted file mode 100644
index 0ef75b15f..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/UpdatedHandler.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import java.util.Date;
-
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.syncinfo.MutableResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * Handles any "Updated" and "Merged" responses
- * from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Updated ???\n
- * [...]
- * </pre>
- * Then
- * </p>
- */
-
-/**
- * Does get information about the file that is updated
- * and the file-content itself and puts it on the fileSystem.
- *
- * The difference beetween the "Updated" and the "Merged" is, that
- * an "Merged" file is not going to be up-to-date after the operation.
- *
- * Requiers a exisiting parent-folder.
- */
-public class UpdatedHandler extends ResponseHandler {
-
- private int handlerType;
-
- protected static final int HANDLE_UPDATED = ICVSFile.UPDATED;
- protected static final int HANDLE_MERGED = ICVSFile.MERGED;
- protected static final int HANDLE_UPDATE_EXISTING = ICVSFile.UPDATE_EXISTING;
- protected static final int HANDLE_CREATED = ICVSFile.CREATED;
-
- private static final String READ_ONLY_FLAG = "u=rw"; //$NON-NLS-1$
-
- public UpdatedHandler(int handlerType) {
- this.handlerType = handlerType;
- }
-
- public String getResponseID() {
- switch (handlerType) {
- case HANDLE_UPDATED: return "Updated"; //$NON-NLS-1$
- case HANDLE_MERGED: return "Merged"; //$NON-NLS-1$
- case HANDLE_UPDATE_EXISTING: return "Update-existing"; //$NON-NLS-1$
- case HANDLE_CREATED: return "Created"; //$NON-NLS-1$
- }
- return null;
- }
-
- public void handle(Session session, String localDir, IProgressMonitor monitor) throws CVSException {
- // read additional data for the response
- String repositoryFile = session.readLine();
- String entryLine = session.readLine();
- byte[] entryBytes = entryLine.getBytes();
- String permissionsLine = session.readLine();
-
- // clear file update modifiers
- Date modTime = session.getModTime();
- session.setModTime(null);
-
- // Get the local file
- String fileName = repositoryFile.substring(repositoryFile.lastIndexOf("/") + 1); //$NON-NLS-1$
- ICVSFolder mParent = getExistingFolder(session, localDir);
- ICVSFile mFile = getTargetFile(mParent, fileName, entryBytes);
-
- boolean binary = ResourceSyncInfo.isBinary(entryBytes);
- boolean readOnly = permissionsLine.indexOf(READ_ONLY_FLAG) == -1;
-
- // The file may have been set as read-only by a previous checkout/update
- if (mFile.isReadOnly()) mFile.setReadOnly(false);
-
- try {
- receiveTargetFile(session, mFile, entryLine, modTime, binary, readOnly, monitor);
- } catch (CVSException e) {
- if (e.getStatus().getCode() == IResourceStatus.CASE_VARIANT_EXISTS) {
- // Record that we have a case collision and continue;
- session.addCaseCollision(new Path(localDir).append(fileName).toString(), Path.EMPTY.toString());
- return;
- } else {
- throw e;
- }
- }
- }
-
- protected ICVSFile getTargetFile(ICVSFolder mParent, String fileName, byte[] entryBytes) throws CVSException {
- return mParent.getFile(fileName);
- }
-
- protected void receiveTargetFile(Session session, ICVSFile mFile, String entryLine, Date modTime, boolean binary, boolean readOnly, IProgressMonitor monitor) throws CVSException {
-
- // receive the file contents from the server
- session.receiveFile(mFile, binary, handlerType, monitor);
-
- // Set the timestamp in the file and get it again so that we use the *real* timestamp
- // in the sync info. The os may not actually set the time we provided :)
- mFile.setTimeStamp(modTime);
- modTime = mFile.getTimeStamp();
- ResourceSyncInfo info = new ResourceSyncInfo(entryLine, null, null);
- MutableResourceSyncInfo newInfoWithTimestamp = info.cloneMutable();
- newInfoWithTimestamp.setTimeStamp(modTime);
- int modificationState = ICVSFile.UNKNOWN;
- if(handlerType==HANDLE_MERGED) {
- newInfoWithTimestamp.setMerged();
- } else if (!session.isIgnoringLocalChanges()
- && !info.isAdded() /* could be an added entry during a merge in which case it is dirty */
- && (handlerType==HANDLE_UPDATE_EXISTING || handlerType==HANDLE_CREATED)) {
- // both these cases result in an unmodified file.
- // reporting is handled by the FileModificationManager
- modificationState = ICVSFile.CLEAN;
- CVSProviderPlugin.getPlugin().getFileModificationManager().updated(mFile);
- }
- mFile.setSyncInfo(newInfoWithTimestamp, modificationState);
- if (readOnly) mFile.setReadOnly(true);
- }
-
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ValidRequests.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ValidRequests.java
deleted file mode 100644
index 4272e132a..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ValidRequests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-
-class ValidRequests extends Request {
-
- protected ValidRequests() { }
-
- protected String getRequestId() {
- return "valid-requests"; //$NON-NLS-1$
- }
-
- public IStatus execute(Session session, IProgressMonitor monitor) throws CVSException {
- return executeRequest(session, Command.DEFAULT_OUTPUT_LISTENER, monitor);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ValidRequestsHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ValidRequestsHandler.java
deleted file mode 100644
index 965ce9fd7..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/ValidRequestsHandler.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.team.internal.ccvs.core.client;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-
-/**
- * Handles a "Valid-requests" response from the CVS server.
- * <p>
- * Suppose as a result of performing a command the CVS server responds
- * as follows:<br>
- * <pre>
- * [...]
- * Valid-requests ci co update Root Directory Valid-responses Argument ...\n
- * [...]
- * </pre>
- * Then we remember the set of valid requests for this session in
- * preparation for isValidRequests queries.
- * </p>
- */
-class ValidRequestsHandler extends ResponseHandler {
- public String getResponseID() {
- return "Valid-requests"; //$NON-NLS-1$
- }
-
- public void handle(Session session, String validRequests,
- IProgressMonitor monitor) throws CVSException {
- // remember the set of valid requests for this session
- session.setValidRequests(validRequests);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Version.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Version.java
deleted file mode 100644
index abb426e3f..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Version.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.internal.ccvs.core.client;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-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.Policy;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-
-/**
- * Here are some of the output formats we know about:
- *
- * Concurrent Versions System (CVS) 1.11.1p1 (client/server)
- * Concurrent Versions System (CVS) NT 1.11.1.1 (Build 27)
- * Concurrent Versions System (CVSNT) 1.11.1.3 (Build 57a) (client/server)
- */
-public class Version extends RemoteCommand {
-
- private static final String CVS_NT_PREFIX_1 = "Concurrent Versions System (CVS) NT "; //$NON-NLS-1$
- private static final String CVS_NT_PREFIX_2 = "Concurrent Versions System (CVSNT) "; //$NON-NLS-1$
- private static final String CVS_PREFIX = "Concurrent Versions System (CVS) "; //$NON-NLS-1$
- /**
- * @see Request#getRequestId()
- */
- protected String getRequestId() {
- return "version"; //$NON-NLS-1$
- }
-
- public IStatus execute(Session session, final ICVSRepositoryLocation location, IProgressMonitor monitor) throws CVSException {
-
- // The server may not support the version request
- if ( ! session.isValidRequest(getRequestId())) {
- IStatus status = new CVSStatus(IStatus.WARNING, CVSStatus.SERVER_IS_UNKNOWN, Policy.bind("Version.versionNotValidRequest", location.getHost()));//$NON-NLS-1$
- ((CVSRepositoryLocation)location).setServerPlaform(status);
- CVSProviderPlugin.log(status);
- return status;
- }
-
- ICommandOutputListener listener = new ICommandOutputListener() {
- public IStatus messageLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot, IProgressMonitor monitor) {
- String knownPrefix = null;
- boolean isCVSNT = false;
- if (line.startsWith(CVS_NT_PREFIX_1)) {
- isCVSNT = true;
- knownPrefix = CVS_NT_PREFIX_1;
- } else if (line.startsWith(CVS_NT_PREFIX_2)) {
- isCVSNT = true;
- knownPrefix = CVS_NT_PREFIX_2;
- } else if (line.startsWith(CVS_PREFIX)) {
- knownPrefix = CVS_PREFIX;
- }
- IStatus status = OK;
- if (knownPrefix != null) {
- String versionNumber = line.substring(knownPrefix.length(), line.indexOf(' ', knownPrefix.length() + 1));
- if (versionNumber.startsWith("1.10") || versionNumber.equals("1.11") || versionNumber.equals("1.11.1")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- status = new CVSStatus(IStatus.ERROR, CVSStatus.UNSUPPORTED_SERVER_VERSION, Policy.bind("Version.unsupportedVersion", location.getHost(), versionNumber));//$NON-NLS-1$
- } else if (isCVSNT) {
- status = new CVSStatus(IStatus.WARNING, CVSStatus.SERVER_IS_CVSNT, Policy.bind("Version.unsupportedCVSNT", location.getHost(), versionNumber));//$NON-NLS-1$
- }
- } else {
- status = new CVSStatus(IStatus.INFO, CVSStatus.SERVER_IS_UNKNOWN, Policy.bind("Version.unknownVersionFormat", location.getHost(), line));//$NON-NLS-1$
- }
- ((CVSRepositoryLocation)location).setServerPlaform(status);
- return status;
- }
- public IStatus errorLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot, IProgressMonitor monitor) {
- return new CVSStatus(IStatus.ERROR, CVSStatus.ERROR_LINE, line);
- }
- };
-
- return execute(session, NO_GLOBAL_OPTIONS, NO_LOCAL_OPTIONS, new String[] {}, listener, monitor);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/AdminKSubstListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/AdminKSubstListener.java
deleted file mode 100644
index 386841dc7..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/AdminKSubstListener.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.internal.ccvs.core.client.listeners;
-
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-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.Policy;
-import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * Used with 'admin -ksubst' to capture lines of text that are issued
- * as confirmation that the remote keyword substitution mode has been
- * changed. When encountered, updates the local ResourceSyncInfo for
- * the file in question to reflect
- *
- * e.g.
- * RCS file: path/filename,v
- * done
- *
- * We don't expect to see anything special on stderr if the command succeeds.
- */
-public class AdminKSubstListener extends CommandOutputListener {
- private KSubstOption ksubstMode;
-
- public AdminKSubstListener(KSubstOption ksubstMode) {
- this.ksubstMode = ksubstMode;
- }
-
- public IStatus messageLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot,
- IProgressMonitor monitor) {
- if (line.startsWith("RCS file:")) { //$NON-NLS-1$
- String rcsFile = line.substring(10).trim();
- if (! rcsFile.endsWith(",v")) { //$NON-NLS-1$
- return new CVSStatus(CVSStatus.ERROR,
- Policy.bind("AdminKSubstListener.expectedRCSFile", rcsFile)); //$NON-NLS-1$
- }
- String remoteRootLocation = null;
- try {
- FolderSyncInfo info = commandRoot.getFolderSyncInfo();
- remoteRootLocation = info.getRemoteLocation();
- } catch (CVSException e) {
- return e.getStatus();
- }
- if (remoteRootLocation == null) {
- return new CVSStatus(CVSStatus.ERROR,
- Policy.bind("AdminKSubstListener.commandRootNotManaged")); //$NON-NLS-1$
- }
- IPath rcsFilePath = new Path(rcsFile.substring(0, rcsFile.length() - 2));
- IPath remoteRootPath = new Path(remoteRootLocation);
- if (! remoteRootPath.isPrefixOf(rcsFilePath)) {
- return new CVSStatus(CVSStatus.ERROR,
- Policy.bind("AdminKSubstListener.expectedChildOfCommandRoot", //$NON-NLS-1$
- rcsFilePath.toString(), remoteRootPath.toString()));
- }
- rcsFilePath = rcsFilePath.removeFirstSegments(remoteRootPath.segmentCount());
- try {
- ICVSFile file = commandRoot.getFile(rcsFilePath.toString());
- //ResourceSyncInfo info = file.getSyncInfo();
- byte[] syncBytes = file.getSyncBytes();
- if (syncBytes != null) {
- // only update sync info if we have it locally
- file.setSyncBytes(ResourceSyncInfo.setKeywordMode(syncBytes, ksubstMode), ICVSFile.UNKNOWN);
- }
- } catch (CVSException e) {
- return new CVSStatus(CVSStatus.ERROR,
- Policy.bind("AdminKSubstListener.couldNotSetResourceSyncInfo", //$NON-NLS-1$
- rcsFilePath.toString(), e.toString()));
- }
- }
- return OK;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/AnnotateListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/AnnotateListener.java
deleted file mode 100644
index 205bc93f2..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/AnnotateListener.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client.listeners;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-public class AnnotateListener extends CommandOutputListener {
-
-/**
- * Handle output from the CVS Annotate command.
- */
- ByteArrayOutputStream aStream = new ByteArrayOutputStream();
- List blocks = new ArrayList();
- int lineNumber;
- String error;
-
- public String getError() {
- return error;
- }
-
- public IStatus messageLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot, IProgressMonitor monitor) {
-
- CVSAnnotateBlock aBlock = new CVSAnnotateBlock(line, lineNumber++);
- if (!aBlock.isValid()) {
- error = line;
- }
-
- /**
- * Make sure all lines have a line terminator.
- */
- try {
- aStream.write(line.substring(aBlock.getSourceOffset()).getBytes());
- if (!(line.endsWith("\r") || line.endsWith("\r\n"))) { //$NON-NLS-1$ //$NON-NLS-2$
- aStream.write(System.getProperty("line.separator").getBytes()); //$NON-NLS-1$
- }
- } catch (IOException e) {
- }
- add(aBlock);
- return OK;
- }
-
- public InputStream getContents() {
- return new ByteArrayInputStream(aStream.toByteArray());
- }
-
- public List getCvsAnnotateBlocks() {
- return blocks;
- }
- /**
- * Add an annotate block to the receiver merging this block with the
- * previous block if it is part of the same change.
- * @param aBlock
- */
- private void add(CVSAnnotateBlock aBlock) {
-
- int size = blocks.size();
- if (size == 0) {
- blocks.add(aBlock);
- } else {
- CVSAnnotateBlock lastBlock = (CVSAnnotateBlock) blocks.get(size - 1);
- if (lastBlock.getRevision().equals(aBlock.getRevision())) {
- lastBlock.setEndLine(aBlock.getStartLine());
- } else {
- blocks.add(aBlock);
- }
- }
- }
-
- public boolean hasError() {
- return (error != null);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener#errorLine(java.lang.String, org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, org.eclipse.team.internal.ccvs.core.ICVSFolder, org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus errorLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot, IProgressMonitor monitor) {
- if(line.startsWith(Policy.bind("AnnotateListener.3"))) { //$NON-NLS-1$
- error = Policy.bind("AnnotateListener.4"); //$NON-NLS-1$
- return new CVSStatus(CVSStatus.ERROR, CVSStatus.SERVER_ERROR, commandRoot, error);
- }
- return super.errorLine(line, location, commandRoot, monitor);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/CompareDiffListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/CompareDiffListener.java
deleted file mode 100644
index cb898cbd6..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/CompareDiffListener.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.internal.ccvs.core.client.listeners;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-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.CommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * This class interprets the output of "cvs diff --brief ..." in order to get the revisions
- * of two compared versions of a project or folder.
- */
-public class CompareDiffListener extends CommandOutputListener {
-
- private static ServerMessageLineMatcher LOCAL_FILE_MATCHER;
- private static ServerMessageLineMatcher REMOTE_FILE_MATCHER;
- private static ServerMessageLineMatcher REVISION_LINE_MATCHER;
-
- static {
- try {
- LOCAL_FILE_MATCHER = new ServerMessageLineMatcher(
- "Index: (localFile:.*:localFile)", new String[] {"localFile"}); //$NON-NLS-1$ //$NON-NLS-2$
- REMOTE_FILE_MATCHER = new ServerMessageLineMatcher(
- "RCS file: (remoteFile:.*:remoteFile),v", new String[] {"remoteFile"}); //$NON-NLS-1$ //$NON-NLS-2$
- REVISION_LINE_MATCHER = new ServerMessageLineMatcher(
- "diff .* -r(leftRevision:.*:leftRevision) -r(rightRevision:.*:rightRevision)", new String[] {"leftRevision", "rightRevision"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- } catch (CVSException e) {
- // This is serious as the listener will not function properly
- CVSProviderPlugin.log(e);
- LOCAL_FILE_MATCHER = null;
- REMOTE_FILE_MATCHER = null;
- REVISION_LINE_MATCHER = null;
- }
- }
-
- private String localFilePath, remoteFilePath, leftRevision, rightRevision;
-
- private IFileDiffListener listener;
-
- public interface IFileDiffListener {
- public void fileDiff(
- String localFilePath,
- String remoteFilePath,
- String leftRevision,
- String rightRevision);
- }
-
- public CompareDiffListener(IFileDiffListener listener) {
- this.listener = listener;
- }
-
- public IStatus messageLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
- // ignore any server messages
- if (getServerMessage(line, location) != null) {
- return OK;
- }
- Map map = LOCAL_FILE_MATCHER.processServerMessage(line);
- if (map != null) {
- localFilePath = (String)map.get("localFile"); //$NON-NLS-1$
- return OK;
- }
- map = REMOTE_FILE_MATCHER.processServerMessage(line);
- if (map != null) {
- remoteFilePath = (String)map.get("remoteFile"); //$NON-NLS-1$
- return OK;
- }
- map = REVISION_LINE_MATCHER.processServerMessage(line);
- if (map != null) {
- leftRevision = (String)map.get("leftRevision"); //$NON-NLS-1$
- rightRevision = (String)map.get("rightRevision"); //$NON-NLS-1$
- if (localFilePath == null || remoteFilePath == null) {
- return new CVSStatus(IStatus.ERROR, Policy.bind("CompareDiffListener.11")); //$NON-NLS-1$
- }
- listener.fileDiff(localFilePath, remoteFilePath, leftRevision, rightRevision);
- localFilePath = remoteFilePath = leftRevision = rightRevision = null;
- return OK;
- }
- // Ignore all other lines
- return OK;
- }
-
- private IStatus handleUnknownDiffFormat(String line) {
- return new CVSStatus(IStatus.ERROR, Policy.bind("CompareDiffListener.12", line)); //$NON-NLS-1$
- }
-
- public IStatus errorLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
- // ignore server messages for now - this is used only with the diff
- // request and the errors can be safely ignored.
- if (getServerMessage(line, location) != null) {
- return OK;
- }
- return super.errorLine(line, location, commandRoot, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/DiffListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/DiffListener.java
deleted file mode 100644
index a9d0765f5..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/DiffListener.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.internal.ccvs.core.client.listeners;
-
-
-import java.io.PrintStream;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
-
-public class DiffListener extends CommandOutputListener {
- PrintStream patchStream;
-
- public DiffListener(PrintStream patchStream) {
- this.patchStream = patchStream;
- }
-
- public IStatus messageLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
- // ignore any server messages
- if (getServerMessage(line, location) == null) {
- // Ensure that the line doesn't end with a CR.
- // This can happen if the remote file has CR/LF in it.
- if (line.length() > 0 && line.charAt(line.length() - 1) == '\r') {
- line = line.substring(0, line.length() - 1);
- }
- patchStream.println(line);
- }
- return OK;
- }
-
- public IStatus errorLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
- // ignore server messages for now - this is used only with the diff
- // request and the errors can be safely ignored.
- if (getServerMessage(line, location) != null) {
- return OK;
- }
- return super.errorLine(line, location, commandRoot, monitor);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/EditorsListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/EditorsListener.java
deleted file mode 100644
index 096684f15..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/EditorsListener.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 CSC SoftwareConsult GmbH & Co. OHG, Germany and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * CSC - Intial implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client.listeners;
-
-import java.util.LinkedList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.EditorsInfo;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
-
-
-/**
- *
- *
- * Listener for the Editors command
- *
- * @author <a href="mailto:kohlwes@gmx.net">Gregor Kohlwes</a>
- *
- */
-public class EditorsListener extends CommandOutputListener {
- /**
- * List to store the EditorsInfos
- */
- private List infos = new LinkedList();
-
- /**
- * Name of the current file
- */
- private String fileName;
-
- /**
- * Constructor EditorsListener.
- */
- public EditorsListener() {
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener#messageLine(java.lang.String, org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, org.eclipse.team.internal.ccvs.core.ICVSFolder, org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus messageLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- // If there is a file with multiple editors
- // then cvs will write the filename only
- // in the first line and the following
- // line will start with a Tab
- if (line.startsWith("\t")) { //$NON-NLS-1$
- line = fileName + line;
- }
- EditorsInfo info = new EditorsInfo();
- StringTokenizer tokenizer = new StringTokenizer(line,"\t"); //$NON-NLS-1$
- int i = 0;
- while(tokenizer.hasMoreTokens()) {
- String token = tokenizer.nextToken();
- switch (i) {
- case 0:
- info.setFileName(token);
- fileName = token;
- break;
- case 1:
- info.setUserName(token);
- break;
- case 2:
- info.setDateString(token);
- break;
- case 3:
- info.setComputerName(token);
- break;
- default :
- break;
- }
- i++;
- }
-
- infos.add(info);
- return OK;
-
- }
- /**
- * Method getEditorsInfos.
- * @return IEditorsInfo[]
- */
- public EditorsInfo[] getEditorsInfos() {
- return (EditorsInfo[]) infos.toArray(new EditorsInfo[infos.size()]);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ICommandOutputListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ICommandOutputListener.java
deleted file mode 100644
index 58281d8ae..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ICommandOutputListener.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client.listeners;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-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.Policy;
-
-/**
- * Instances of this interface can be passed to the <code>Command#execute</code> methods
- * and will receive notification when M or E messages are received from the server.
- */
-public interface ICommandOutputListener {
-
- /*** Status to be returned when no error or warning occured ***/
- public static final IStatus OK = new CVSStatus(CVSStatus.OK, Policy.bind("ok")); //$NON-NLS-1$
-
- public static final String SERVER_PREFIX = "server: "; //$NON-NLS-1$
- public static final String SERVER_ABORTED_PREFIX = "[server aborted]: "; //$NON-NLS-1$
- public static final String RTAG_PREFIX = "rtag: "; //$NON-NLS-1$
-
- /**
- * Invoked when a message line is received from the server.
- * <p>
- * Any status other than ICommandOutputListener.OK will be accumulated
- * by the command and returned. The severity of the status matches those of
- * IStatus and must indicate whether this is a warning, error, or informational
- * text.while the code should be one of the codes provided by CVSStatus.
- * The status code must not be CVSStatus.SERVER_ERROR.
- * </p>
- *
- * @param line the line of message text sent by the server
- * @param commandRoot the root directory of the command
- * @param monitor the progress monitor
- * @return a status indicating success or failure based on the text
- */
- public IStatus messageLine(String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor);
-
- /**
- * Invoked when an error line is received from the server.
- * <p>
- * Any status other than ICommandOutputListener.OK will be accumulated
- * by the command and returned. The severity of the status matches those of
- * IStatus and must indicate whether this is a warning, error, or informational
- * text.while the code should be one of the codes provided by CVSStatus.
- * The status code must not be CVSStatus.SERVER_ERROR.
- * </p>
- *
- * @param line the line of error text sent by the server
- * @param commandRoot the root directory of the command
- * @param monitor the progress monitor
- * @return a status indicating success or failure based on the text
- */
- public IStatus errorLine(String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor);
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IConsoleListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IConsoleListener.java
deleted file mode 100644
index ec5aa2c8b..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IConsoleListener.java
+++ /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
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client.listeners;
-
-import org.eclipse.core.runtime.IStatus;
-
-public interface IConsoleListener {
- /**
- * Called when a command is invoked.
- * @param line the command invocation string
- */
- public void commandInvoked(String line);
-
- /**
- * Called when a line of message text has been received.
- * @param line the line of text
- */
- public void messageLineReceived(String line);
-
- /**
- * Called when a line of error text has been received.
- * @param line the line of text
- */
- public void errorLineReceived(String line);
-
- /**
- * Called when a command has been completed.
- * @param status the status code, or null if not applicable
- * @param exception an exception, or null if not applicable
- */
- public void commandCompleted(IStatus status, Exception exception);
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IMessagePatterns.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IMessagePatterns.java
deleted file mode 100644
index e3207ec7c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IMessagePatterns.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.internal.ccvs.core.client.listeners;
-
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * This class contains the default server message patterns
- */
-public interface IMessagePatterns {
-
- public static final String SERVER_MESSAGE_PREFIX = "\\w* \\w*: "; //$NON-NLS-1$
- public static final String SERVER_ABORTED_MESSAGE_PREFIX = "\\w* [\\w* aborted]: "; //$NON-NLS-1$
-
- // TODO: These patterns could be more specific but this would require non-capturing
- // groups which currently throw off variable matching
- public static final String TAG_PATTERN = "\\w*"; //$NON-NLS-1$
- public static final String REVISION_PATTERN = ".*"; //$NON-NLS-1$
- public static final String FILE_PATH_PATTERN = ".*"; //$NON-NLS-1$
-
- // TODO: It would be better if the prefix was optional but this requires the use of a capturing group which throws the group count off
- public static final String RDIFF_DIRECTORY = SERVER_MESSAGE_PREFIX + "Diffing " + Util.getVariablePattern(FILE_PATH_PATTERN, "remoteFolderPath"); //$NON-NLS-1$ //$NON-NLS-2$
- public static final String RDIFF_SUMMARY_FILE_DIFF = "File " + Util.getVariablePattern(FILE_PATH_PATTERN, "remoteFilePath") + " changed from revision " + Util.getVariablePattern(REVISION_PATTERN, "leftRevision") + " to " + Util.getVariablePattern(REVISION_PATTERN, "rightRevision"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- public static final String RDIFF_SUMMARY_NEW_FILE = "File " + Util.getVariablePattern(FILE_PATH_PATTERN, "remoteFilePath") + " is new; " + TAG_PATTERN + " revision " + Util.getVariablePattern(REVISION_PATTERN, "rightRevision"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- public static final String RDIFF_SUMMARY_DELETED_FILE = "File " + Util.getVariablePattern(FILE_PATH_PATTERN, "remoteFilePath") + " is removed; not included in release tag " + TAG_PATTERN; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // This format was introduced in 1.11.7
- public static final String RDIFF_SUMMARY_DELETED_FILE2 = "File " + Util.getVariablePattern(FILE_PATH_PATTERN, "remoteFilePath") + " is removed; " + TAG_PATTERN + " revision " + Util.getVariablePattern(REVISION_PATTERN, "leftRevision"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IStatusListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IStatusListener.java
deleted file mode 100644
index b7744fcab..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IStatusListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client.listeners;
-
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-
-public interface IStatusListener {
-
- public static final String FOLDER_REVISION = ""; //$NON-NLS-1$
-
- /**
- * Provides access to the revision of a file through the use of the Status command.
- *
- * @param commandRoot the root directory of the command
- * @param path the absolute remote path of the resource including the repository root directory
- * @param remoteRevision the remote revision of the file
- */
- public void fileStatus(ICVSFolder commandRoot, String path, String remoteRevision);
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IUpdateMessageListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IUpdateMessageListener.java
deleted file mode 100644
index 67874f531..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/IUpdateMessageListener.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client.listeners;
-
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-
-/**
- * This listener is used by RemoteFolder to listener for E and M messages
- * from the CVS server in order to determine the files and folders contained in a parent folder.
- */
-public interface IUpdateMessageListener {
- /**
- * Notification that a directory (which may or may not have been reported by
- * directoryInformation()) does not exist.
- *
- * @param commandRoot the root directory of the command
- * @param path the path of the directory relative to the commandRoot
- */
- public void directoryDoesNotExist(ICVSFolder commandRoot, String path);
- /**
- * Notification of information about a directory.
- *
- * @param commandRoot the root directory of the command
- * @param path the path of the directory relative to the commandRoot
- * @param newDirectory true if the directory does not exist locally (i.e. in the commandRoot hierarchy)
- */
- public void directoryInformation(ICVSFolder commandRoot, String path, boolean newDirectory);
- /**
- * Notification of information about a file
- *
- * @param type the type of update for the file (see Update for type constants)
- * @param commandRoot the root directory of the command
- * @param filename the path of the file relative to the commandRoot
- */
- public void fileInformation(int type, ICVSFolder parent, String filename);
- /**
- * Notification that a file does not exists remotely
- *
- * @param commandRoot the root directory of the command
- * @param filename the path of the file relative to the commandRoot
- */
- public void fileDoesNotExist(ICVSFolder parent, String filename);
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/LogEntry.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/LogEntry.java
deleted file mode 100644
index 1d5e49960..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/LogEntry.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client.listeners;
-
-
-import java.util.Date;
-
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFile;
-
-public class LogEntry extends PlatformObject implements ILogEntry {
-
- private RemoteFile file;
- private String author;
- private Date date;
- private String comment;
- private String state;
- private CVSTag[] tags;
-
- public LogEntry(RemoteFile file, String revision, String author, Date date, String comment, String state, CVSTag[] tags) {
- this.file = file.toRevision(revision);
- this.author = author;
- this.date = date;
- this.comment = comment;
- this.state = state;
- this.tags = tags;
- }
-
- /**
- * @see ILogEntry#getRevision()
- */
- public String getRevision() {
- return file.getRevision();
- }
-
- /**
- * @see ILogEntry#getAuthor()
- */
- public String getAuthor() {
- return author;
- }
-
- /**
- * @see ILogEntry#getDate()
- */
- public Date getDate() {
- return date;
- }
-
- /**
- * @see ILogEntry#getComment()
- */
- public String getComment() {
- return comment;
- }
-
- /**
- * @see ILogEntry#getState()
- */
- public String getState() {
- return state;
- }
-
- /**
- * @see ILogEntry#getTags()
- */
- public CVSTag[] getTags() {
- CVSTag[] result = new CVSTag[tags.length];
- System.arraycopy(tags, 0, result, 0, tags.length);
- return result;
- }
-
- /**
- * @see ILogEntry#getRemoteFile()
- */
- public ICVSRemoteFile getRemoteFile() {
- return file;
- }
-
- /**
- * @see ILogEntry#isDeletion()
- */
- public boolean isDeletion() {
- return getState().equals("dead"); //$NON-NLS-1$
- }
-
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/LogListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/LogListener.java
deleted file mode 100644
index 9b6fd024e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/LogListener.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client.listeners;
-
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.DateUtil;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFile;
-
-public class LogListener extends CommandOutputListener {
- private List entries;
- private RemoteFile file;
-
- // state
- private final int BEGIN = 0, SYMBOLIC_NAMES = 1, REVISION = 2, COMMENT = 3, DONE = 4;
- private List tagNames = new ArrayList(5);
- private List tagRevisions = new ArrayList(5);
- private int state = BEGIN; // current state
- private String creationDate;
- private String author;
- private String revision; // revision number
- private String fileState; //
- private StringBuffer comment; // comment
-
- private static final String NOTHING_KNOWN_ABOUT = "nothing known about "; //$NON-NLS-1$
-
- public LogListener(RemoteFile file, List entries) {
- this.file = file;
- this.entries = entries;
- }
-
- public IStatus messageLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot,
- IProgressMonitor monitor) {
- // Fields we will find in the log for a file
- // keys = String (tag name), values = String (tag revision number) */
- switch (state) {
- case BEGIN:
- if (line.startsWith("symbolic names:")) { //$NON-NLS-1$
- state = SYMBOLIC_NAMES;
- } else if (line.startsWith("revision ")) { //$NON-NLS-1$
- revision = line.substring(9);
- state = REVISION;
- }
- break;
- case SYMBOLIC_NAMES:
- if (line.startsWith("keyword substitution:")) { //$NON-NLS-1$
- state = BEGIN;
- } else {
- int firstColon = line.indexOf(':');
- String tagName = line.substring(1, firstColon);
- String tagRevision = line.substring(firstColon + 2);
- tagNames.add(tagName);
- tagRevisions.add(tagRevision);
- }
- break;
- case REVISION:
- // date: 2000/06/19 04:56:21; author: somebody; state: Exp; lines: +114 -45
- // get the creation date
- int endOfDateIndex = line.indexOf(';', 6);
- creationDate = line.substring(6, endOfDateIndex) + " GMT"; //$NON-NLS-1$
-
- // get the author name
- int endOfAuthorIndex = line.indexOf(';', endOfDateIndex + 1);
- author = line.substring(endOfDateIndex + 11, endOfAuthorIndex);
-
- // get the file state (because this revision might be "dead")
- fileState = line.substring(endOfAuthorIndex + 10, line.indexOf(';', endOfAuthorIndex + 1));
- comment = new StringBuffer();
- state = COMMENT;
- break;
- case COMMENT:
- // skip next line (info about branches) if it exists, if not then it is a comment line.
- if (line.startsWith("branches:")) break; //$NON-NLS-1$
- if (line.equals("=============================================================================") //$NON-NLS-1$
- || line.equals("----------------------------")) { //$NON-NLS-1$
- state = DONE;
- break;
- }
- if (comment.length() != 0) comment.append('\n');
- comment.append(line);
- break;
- }
- if (state == DONE) {
- // we are only interested in tag names for this revision, remove all others.
- List thisRevisionTags = new ArrayList(3);
- for (int i = 0; i < tagNames.size(); i++) {
- String tagName = (String) tagNames.get(i);
- String tagRevision = (String) tagRevisions.get(i);
- // If this is a branch tag then only include this tag with the revision
- // that is the root of this branch (e.g. 1.1 is root of branch 1.1.2).
- boolean isBranch = isBranchTag(tagRevision);
- if (isBranch) {
- int lastDot = tagRevision.lastIndexOf('.');
- if (lastDot == -1) {
- CVSProviderPlugin.log(IStatus.ERROR,
- Policy.bind("LogListener.invalidRevisionFormat", tagName, tagRevision), null); //$NON-NLS-1$
- } else {
- if (tagRevision.charAt(lastDot - 1) == '0' && tagRevision.charAt(lastDot - 2) == '.') {
- lastDot = lastDot - 2;
- }
- tagRevision = tagRevision.substring(0, lastDot);
- }
- }
- if (tagRevision.equals(revision)) {
- int type = isBranch ? CVSTag.BRANCH : CVSTag.VERSION;
- thisRevisionTags.add(new CVSTag(tagName, type));
- }
- }
- Date date = DateUtil.convertFromLogTime(creationDate);
- LogEntry entry = new LogEntry(file, revision, author, date,
- comment.toString(), fileState, (CVSTag[]) thisRevisionTags.toArray(new CVSTag[0]));
- entries.add(entry);
- state = BEGIN;
- // XXX should we reset the tagNames and tagRevisions stuff?
- }
- return OK;
- }
-
- public IStatus errorLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot, IProgressMonitor monitor) {
- String serverMessage = getServerMessage(line, location);
- if (serverMessage != null) {
- // look for the following condition
- // E cvs server: nothing known about fileName
- if (serverMessage.startsWith(NOTHING_KNOWN_ABOUT)) {
- return new CVSStatus(IStatus.ERROR, CVSStatus.DOES_NOT_EXIST, commandRoot, line);
- }
- }
- return OK;
- }
-
- /** branch tags have odd number of segments or have
- * an even number with a zero as the second last segment
- * e.g: 1.1.1, 1.26.0.2 are branch revision numbers */
- protected boolean isBranchTag(String tagName) {
- // First check if we have an odd number of segments (i.e. even number of dots)
- int numberOfDots = 0;
- int lastDot = 0;
- for (int i = 0; i < tagName.length(); i++) {
- if (tagName.charAt(i) == '.') {
- numberOfDots++;
- lastDot = i;
- }
- }
- if ((numberOfDots % 2) == 0) return true;
- if (numberOfDots == 1) return false;
-
- // If not, check if the second lat segment is a zero
- if (tagName.charAt(lastDot - 1) == '0' && tagName.charAt(lastDot - 2) == '.') return true;
- return false;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ModuleDefinitionsListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ModuleDefinitionsListener.java
deleted file mode 100644
index 4de19a23b..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ModuleDefinitionsListener.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.client.listeners;
-
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
-
-/*
- * This class pares the output of the "cvs checkout -c" command which returns the list of modules
- * defined in the CVSROOT/modules file.
- */
-public class ModuleDefinitionsListener extends CommandOutputListener {
-
- // the last line read from the context (used to accumulate multi-line definitions)
- private String lastLine = ""; //$NON-NLS-1$
-
- private Map moduleMap;
-
- public ModuleDefinitionsListener() {
- reset();
- }
-
- /*
- * @see ICommandOutputListener#messageLine(String, ICVSFolder, IProgressMonitor)
- */
- public IStatus messageLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- // Lines that start with a space indicate a multi line entry
- if( line.charAt(0) == ' ' ) {
- lastLine += line;
- line = lastLine;
- }
- else
- lastLine = line;
-
- // Use the module name as the key so that multi-line modules will be recorded properly
- int firstSpace = line.indexOf(" "); //$NON-NLS-1$
- if (firstSpace > -1) {
- String module = line.substring(0, firstSpace);
- moduleMap.put(module, line);
- }
- return OK;
- }
-
- public String[] getModuleExpansions() {
- return (String[])moduleMap.values().toArray(new String[moduleMap.size()]);
- }
-
- public void reset() {
- this.moduleMap = new HashMap();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ModuleExpansion.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ModuleExpansion.java
deleted file mode 100644
index 12badc099..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ModuleExpansion.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.internal.ccvs.core.client.listeners;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-
-/**
- *
- */
-public class ModuleExpansion {
-
- /** Name of the CVS module as found in the CVSROOT/modules file */
- private String moduleName;
-
- /** Expansion of the module name returned by the CVS server */
- private String[] expansions;
-
- private LocalOption[] options;
-
- ModuleExpansion(String moduleName, String[] expansions, LocalOption[] options) {
- this.moduleName = moduleName;
- this.expansions = expansions;
- this.options = options;
- }
-
- /**
- * @see IModuleExpansion#getModuleName()
- */
- public String getModuleName() {
- return moduleName;
- }
-
- /**
- * @see IModuleExpansion#getModuleExpansionString()
- */
- public String getModuleExpansionString() {
- String result = expansions[0];
- for (int i=1;i<expansions.length; i++)
- result = result + ", " + expansions[i]; //$NON-NLS-1$
- return result;
- }
-
- /**
- * @see IModuleExpansion#getExpansions()
- */
- public String[] getExpansions() {
- return expansions;
- }
-
- public LocalOption[] getOptions() {
- return options;
- }
-
- /**
- * Translate an array of module names to their expansions.
- * The resulting List of Strings may be bigger than the original
- */
- private List getExpansionsFor(String[] possibleModules, Map moduleMappings, int depth) throws CVSException {
- List result = new ArrayList();
- for (int i=0;i<possibleModules.length;i++) {
- // Is it a module?
- if (possibleModules[i].charAt(0) == '&')
- result.addAll(getExpansionsFor(possibleModules[i].substring(1), moduleMappings, depth));
- else
- result.add(possibleModules[i]);
- }
- return result;
- }
-
- /**
- * Translate a module name to its expansion.
- * The resulting List may contain one or more Strings
- */
- private List getExpansionsFor(String module, Map moduleMappings, int depth) throws CVSException {
- if (depth > moduleMappings.size()) {
- // Indicate that a circular reference exists
- throw new CVSException(Policy.bind("ModuleExpansion.circular", module));//$NON-NLS-1$
- }
- Object mappings = moduleMappings.get(module);
- if (mappings == null) {
- // If there's no mapping assume it is a project name
- List result = new ArrayList();
- result.add(module);
- return result;
- } else {
- // Follow any expansion chains
- return getExpansionsFor(((ModuleExpansion)mappings).expansions, moduleMappings, depth + 1);
- }
- }
-
- /**
- * Resolve the module mappings using moduleMappings which maps
- * module names to their ModuleExpansion
- */
- public void resolveModuleReferencesUsing(Map moduleMappings) {
- try {
- List result = getExpansionsFor(expansions, moduleMappings, 0);
- expansions = (String[])result.toArray(new String[result.size()]);
- } catch (CVSException e) {
- // Is this the best way to show the circular reference problem?
- // Or should we just leave the expansions untouched?
- List result = new ArrayList();
- result.add(e.getStatus().getMessage());
- result.addAll(Arrays.asList(expansions));
- expansions = (String[])result.toArray(new String[result.size()]);
- }
- }
-}
-
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/RDiffSummaryListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/RDiffSummaryListener.java
deleted file mode 100644
index 29d2ec260..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/RDiffSummaryListener.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client.listeners;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
-
-/**
- * This class parses the messages recieved in response to an "cvs rdiff -s ..." command
- */
-public class RDiffSummaryListener extends CommandOutputListener {
-
- private static final String RIGHT_REVISION_VARIABLE_NAME = "rightRevision"; //$NON-NLS-1$
- private static final String LEFT_REVISION_VARIABLE_NAME = "leftRevision"; //$NON-NLS-1$
- private static final String REMOTE_FILE_PATH_VARIABLE_NAME = "remoteFilePath"; //$NON-NLS-1$
- private static final String REMOTE_FOLDER_PATH_VARIABLE_NAME = "remoteFolderPath"; //$NON-NLS-1$
-
- private IFileDiffListener listener;
- private static ServerMessageLineMatcher DIRECTORY_MATCHER;
- private static ServerMessageLineMatcher FILE_DIFF_MATCHER;
- private static ServerMessageLineMatcher NEW_FILE_MATCHER;
- private static ServerMessageLineMatcher DELETED_FILE_MATCHER;
- private static ServerMessageLineMatcher DELETED_FILE_MATCHER2;
-
- static {
- // TODO: temprary until proper lifecycle is defined
- initializePatterns();
- }
- public static void initializePatterns() {
- try {
- DIRECTORY_MATCHER = new ServerMessageLineMatcher(
- IMessagePatterns.RDIFF_DIRECTORY, new String[] {REMOTE_FOLDER_PATH_VARIABLE_NAME});
- FILE_DIFF_MATCHER = new ServerMessageLineMatcher(
- IMessagePatterns.RDIFF_SUMMARY_FILE_DIFF, new String[] {REMOTE_FILE_PATH_VARIABLE_NAME, LEFT_REVISION_VARIABLE_NAME, RIGHT_REVISION_VARIABLE_NAME});
- NEW_FILE_MATCHER = new ServerMessageLineMatcher(
- IMessagePatterns.RDIFF_SUMMARY_NEW_FILE, new String[] {REMOTE_FILE_PATH_VARIABLE_NAME, RIGHT_REVISION_VARIABLE_NAME});
- DELETED_FILE_MATCHER = new ServerMessageLineMatcher(
- IMessagePatterns.RDIFF_SUMMARY_DELETED_FILE, new String[] {REMOTE_FILE_PATH_VARIABLE_NAME});
- DELETED_FILE_MATCHER2 = new ServerMessageLineMatcher(
- IMessagePatterns.RDIFF_SUMMARY_DELETED_FILE2, new String[] {REMOTE_FILE_PATH_VARIABLE_NAME, LEFT_REVISION_VARIABLE_NAME});
- } catch (CVSException e) {
- // This is serious as the listener will not function properly
- CVSProviderPlugin.log(e);
- }
- }
-
- public interface IFileDiffListener {
- public void fileDiff(
- String remoteFilePath,
- String leftRevision,
- String rightRevision);
- public void newFile(
- String remoteFilePath,
- String rightRevision);
- public void deletedFile(
- String remoteFilePath,
- String leftRevision);
- public void directory(String remoteFolderPath);
- }
-
- public RDiffSummaryListener(IFileDiffListener listener) {
- this.listener = listener;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener#messageLine(java.lang.String, org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, org.eclipse.team.internal.ccvs.core.ICVSFolder, org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus messageLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- Map variables = FILE_DIFF_MATCHER.processServerMessage(line);
- if (variables != null) {
- listener.fileDiff(
- (String)variables.get(REMOTE_FILE_PATH_VARIABLE_NAME),
- (String)variables.get(LEFT_REVISION_VARIABLE_NAME),
- (String)variables.get(RIGHT_REVISION_VARIABLE_NAME));
- return OK;
- }
-
- variables = NEW_FILE_MATCHER.processServerMessage(line);
- if (variables != null) {
- listener.newFile(
- (String)variables.get(REMOTE_FILE_PATH_VARIABLE_NAME),
- (String)variables.get(RIGHT_REVISION_VARIABLE_NAME));
- return OK;
- }
-
- variables = DELETED_FILE_MATCHER.processServerMessage(line);
- if (variables != null) {
- listener.deletedFile(
- (String)variables.get(REMOTE_FILE_PATH_VARIABLE_NAME),
- null);
- return OK;
- }
-
- variables = DELETED_FILE_MATCHER2.processServerMessage(line);
- if (variables != null) {
- listener.deletedFile(
- (String)variables.get(REMOTE_FILE_PATH_VARIABLE_NAME),
- (String)variables.get(LEFT_REVISION_VARIABLE_NAME));
- return OK;
- }
-
- return super.messageLine(line, location, commandRoot, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener#errorLine(java.lang.String, org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, org.eclipse.team.internal.ccvs.core.ICVSFolder, org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus errorLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- Map variables = DIRECTORY_MATCHER.processServerMessage(line);
- if (variables != null) {
- listener.directory(
- (String)variables.get(REMOTE_FOLDER_PATH_VARIABLE_NAME));
- return OK;
- }
-
- return super.errorLine(line, location, commandRoot, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ServerMessageLineMatcher.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ServerMessageLineMatcher.java
deleted file mode 100644
index 3e42ee1a6..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/ServerMessageLineMatcher.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.client.listeners;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * This class extracts matches server lines to expected patterns and extracts
- * required information from the line.
- */
-public class ServerMessageLineMatcher {
-
- protected static final Pattern VARIABLE_MATCHING_PATTERN = Pattern.compile("(\\((\\w*):.*:\\2\\))"); //$NON-NLS-1$
-
- Pattern pattern;
- String[] variables;
-
- public ServerMessageLineMatcher(String template, String[] expectedVariables) throws CVSException {
- // Extract the variable names from the template
- Matcher matcher = VARIABLE_MATCHING_PATTERN.matcher(template);
- List variables = new ArrayList();
- while (matcher.find()) {
- if (matcher.groupCount() != 2) {
- throw new CVSException(Policy.bind("ServerMessageLineMatcher.5", template)); //$NON-NLS-1$
- }
- variables.add(matcher.group(2));
- }
- ensureMatches(template, variables, expectedVariables);
- this.variables = (String[]) variables.toArray(new String[variables.size()]);
-
- // Modify the template so it can be used to match message lines from the server
- // (i.e. remove the variable markup)
- for (Iterator iter = variables.iterator(); iter.hasNext();) {
- String element = (String) iter.next();
- template = template.replaceAll(element + ":", ""); //$NON-NLS-1$ //$NON-NLS-2$
- template = template.replaceAll(":" + element, ""); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- // Ensure that the number of groups in the pattern match the number of variables
- int count = 0;
- int start = -1;
- while ((start = template.indexOf('(', start + 1)) != -1) {
- count++;
- }
- if (count != variables.size()) {
- throw new CVSException(Policy.bind("ServerMessageLineMatcher.6", template)); //$NON-NLS-1$
- }
-
- // Create the pattern fir matching lines from the server
- this.pattern = Pattern.compile(template);
- }
-
- /*
- * Throw an exception if the found variables do not match the expected variables
- */
- private void ensureMatches(String template, List variables, String[] expectedVariables) throws CVSException {
- for (int i = 0; i < expectedVariables.length; i++) {
- String expected = expectedVariables[i];
- if (!variables.contains(expected)) {
- throw new CVSException(Policy.bind("ServerMessageLineMatcher.7", expected, template)); //$NON-NLS-1$
- }
- }
- }
-
- public Map processServerMessage(String line) {
- Matcher matcher = pattern.matcher(line);
- if (!matcher.find()) return null;
- Assert.isTrue(matcher.groupCount() == variables.length);
- Map result = new HashMap();
- for (int i = 1; i <= matcher.groupCount(); i++) {
- result.put(variables[i - 1], matcher.group(i));
- }
- return result;
- }
-
- public boolean matches(String line) {
- Matcher matcher = pattern.matcher(line);
- return (matcher.find());
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/StatusListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/StatusListener.java
deleted file mode 100644
index eb6b778ce..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/StatusListener.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.internal.ccvs.core.client.listeners;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-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.CommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-
-public class StatusListener extends CommandOutputListener {
- private static boolean isFolder = false;
- private IStatusListener statusListener;
-
- public StatusListener(IStatusListener statusListener) {
- this.statusListener = statusListener;
- }
-
- public IStatus messageLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- // We're only concerned about file revisions.
- if (line.startsWith(" Repository revision:")) { //$NON-NLS-1$
- if (!line.startsWith(" Repository revision: No revision control file")) { //$NON-NLS-1$
- int separatingTabIndex = line.indexOf('\t', 24);
- String remoteRevision = line.substring(24, separatingTabIndex);
-
- // This is the full location on the server (e.g. /home/cvs/repo/project/file.txt)
- String fileLocation = line.substring(separatingTabIndex + 1, line.length() - 2);
-
- // Inform the listener about the file revision
- statusListener.fileStatus(commandRoot, removeAtticSegment(fileLocation), remoteRevision);
- }
- }
- return OK;
- }
-
- public IStatus errorLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot, IProgressMonitor monitor) {
- String serverMessage = getServerMessage(line, location);
- if (serverMessage != null) {
- if (serverMessage.startsWith("conflict:")) {//$NON-NLS-1$
- // We get this because we made up an entry line to send to the server
- // Therefore, we make this a warning!!!
- return new CVSStatus(CVSStatus.WARNING, CVSStatus.CONFLICT, commandRoot, line);
- }
- if (serverMessage.startsWith("Examining")) {//$NON-NLS-1$
- isFolder = true;
- return OK;
- }
- }
- if (isFolder) {
- // This used to do something but it was obviously wrong and there was no indication
- // why it was needed. Therefore, I have removed the code to see if anything is effected
- isFolder = false;
- }
- return super.errorLine(line, location, commandRoot, monitor);
- }
-
- /**
- * If the status returns that the file is in the Attic, then remove the
- * Attic segment. This is because files added to a branch that are not in
- * the main trunk (HEAD) are added to the Attic but cvs does magic on
- * updateto put them in the correct location.
- * (e.g. /project/Attic/file.txt -> /project/file.txt)
- */
- private String removeAtticSegment(String path) {
- int lastSeparator = path.lastIndexOf(Session.SERVER_SEPARATOR);
- if (lastSeparator == -1) return path;
- int secondLastSeparator = path.lastIndexOf(Session.SERVER_SEPARATOR, lastSeparator - 1);
- if (secondLastSeparator == -1) return path;
- String secondLastSegment = path.substring(secondLastSeparator + 1, lastSeparator);
- if (secondLastSegment.equals("Attic")) { //$NON-NLS-1$
- return path.substring(0, secondLastSeparator) + path.substring(lastSeparator);
- }
- return path;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/TagListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/TagListener.java
deleted file mode 100644
index 8242ab9e6..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/TagListener.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.internal.ccvs.core.client.listeners;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-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.CommandOutputListener;
-
-public class TagListener extends CommandOutputListener {
-
- /*
- * @see ICommandOutputListener#messageLine(String, ICVSFolder, IProgressMonitor)
- */
- public IStatus messageLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- // Received a warning in the form:
- // W folder/file : v1 already exists on version 1.2 : NOT MOVING tag to version 1.3
- // Indicate this as an error since no tagging was done
- if( line.charAt(0) == 'W' ) {
- return new CVSStatus(CVSStatus.ERROR, CVSStatus.TAG_ALREADY_EXISTS, commandRoot, line.substring(2));
- }
-
- return OK;
- }
-
- /*
- * @see ICommandOutputListener#errorLine(String, ICVSFolder, IProgressMonitor)
- */
- public IStatus errorLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- // Ignore the lines: Tagging folder1/folder2
- String serverMessage = getServerMessage(line, location);
- if ((serverMessage != null) && serverMessage.startsWith("Tagging")) { //$NON-NLS-1$
- return OK;
- }
- String rtagMessage = getServerRTagMessage(line, location);
- if(rtagMessage != null && rtagMessage.startsWith("Tagging") ) { //$NON-NLS-1$
- return OK;
- }
-
- return super.errorLine(line, location, commandRoot, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/UpdateListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/UpdateListener.java
deleted file mode 100644
index f57ff4530..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/listeners/UpdateListener.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.team.internal.ccvs.core.client.listeners;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-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.CommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-
-public class UpdateListener extends CommandOutputListener {
-
- IUpdateMessageListener updateMessageListener;
- boolean merging = false;
-
- public UpdateListener(IUpdateMessageListener updateMessageListener) {
- this.updateMessageListener = updateMessageListener;
- }
-
- public IStatus messageLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot,
- IProgressMonitor monitor) {
- if (updateMessageListener == null) return OK;
- if(line.startsWith("Merging differences")) { //$NON-NLS-1$
- merging = true;
- } else if(line.indexOf(' ')==1) {
- // We have a message that indicates the type of update. The possible messages are
- // defined by the prefix constants MLP_*.
- String path = line.substring(2);
- char changeType = line.charAt(0);
-
- // calculate change type
- int type = 0;
- switch(changeType) {
- case 'A': type = Update.STATE_ADDED_LOCAL; break; // new file locally that was added but not comitted to server yet
- case '?': type = Update.STATE_UNKOWN; break; // new file locally but not added to server
- case 'U': type = Update.STATE_REMOTE_CHANGES; break; // remote changes to an unmodified local file
- case 'R': type = Update.STATE_DELETED; break; // removed locally but still exists on the server
- case 'M': type = Update.STATE_MODIFIED; break; // modified locally
- case 'C': type = Update.STATE_CONFLICT; break; // modified locally and on the server but cannot be auto-merged
- case 'D': type = Update.STATE_DELETED; break; // deleted locally but still exists on server
- default: type = Update.STATE_NONE;
- }
-
- if (merging) {
- // If we are merging the modified prefix is used both to show merges and
- // local changes. We have to detect this case and use a more specific change
- // type.
- if (type == Update.STATE_MODIFIED)
- type = Update.STATE_MERGEABLE_CONFLICT;
- merging = false;
- }
- updateMessageListener.fileInformation(type, commandRoot, path);
- }
- return OK;
- }
-
- /**
- * This handler is used by the RemoteResource hierarchy to retrieve E messages
- * from the CVS server in order to determine the folders contained in a parent folder.
- *
- * WARNING: This class parses the message output to determine the state of files in the
- * repository. Unfortunately, these messages seem to be customizable on a server by server basis.
- *
- * Here's a list of responses we expect in various situations:
- *
- * Directory exists remotely:
- * cvs server: Updating folder1/folder2
- * Directory doesn't exist remotely:
- * cvs server: skipping directory folder1/folder2
- * New (or unknown) remote directory
- * cvs server: New Directory folder1/folder2
- * File removed remotely
- * cvs server: folder1/file.ext is no longer in the repository
- * cvs server: warning: folder1/file.ext is not (any longer) pertinent
- * Locally added file was added remotely as well
- * cvs server: conflict: folder/file.ext created independently by second party
- * File removed locally and modified remotely
- * cvs server: conflict: removed file.txt was modified by second party
- * File modified locally but removed remotely
- * cvs server: conflict: file.txt is modified but no longer in the repository
- * Ignored Messages
- * cvs server: cannot open directory ...
- * cvs server: nothing known about ...
- * Tag error that really means there are no files in a directory
- * cvs [server aborted]: no such tag
- * Merge contained conflicts
- * rcsmerge: warning: conflicts during merge
- */
- public IStatus errorLine(String line, ICVSRepositoryLocation location, ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- try {
- String serverMessage = getServerMessage(line, location);
- if (serverMessage != null) {
- // Strip the prefix from the line
- String message = serverMessage;
- if (message.startsWith("Updating")) { //$NON-NLS-1$
- if (updateMessageListener != null) {
- String path = message.substring(9);
- updateMessageListener.directoryInformation(commandRoot, path, false);
- }
- return OK;
- } else if (message.startsWith("skipping directory")) { //$NON-NLS-1$
- if (updateMessageListener != null) {
- String path = message.substring(18).trim();
- updateMessageListener.directoryDoesNotExist(commandRoot, path);
- }
- return OK;
- } else if (message.startsWith("New directory")) { //$NON-NLS-1$
- if (updateMessageListener != null) {
- String path = message.substring(15, message.lastIndexOf('\''));
- updateMessageListener.directoryInformation(commandRoot, path, true);
- }
- return OK;
- } else if (message.endsWith("is no longer in the repository")) { //$NON-NLS-1$
- if (updateMessageListener != null) {
- String filename = message.substring(0, message.length() - 31);
- updateMessageListener.fileDoesNotExist(commandRoot, filename);
- }
- return OK;
- } else if (message.startsWith("conflict:")) { //$NON-NLS-1$
- /*
- * We can get the following conflict warnings
- * cvs server: conflict: folder/file.ext created independently by second party
- * cvs server: conflict: removed file.txt was modified by second party
- * cvs server: conflict: file.txt is modified but no longer in the repository
- * If we get the above line, we have conflicting additions or deletions and we can expect a server error.
- * We still get "C foler/file.ext" so we don't need to do anything else (except in the remotely deleted case)
- */
- if (updateMessageListener != null) {
- if (message.endsWith("is modified but no longer in the repository")) { //$NON-NLS-1$
- // The "C foler/file.ext" will come after this so if whould be ignored!
- String filename = message.substring(10, message.length() - 44);
- updateMessageListener.fileDoesNotExist(commandRoot, filename);
- }
- }
- return new CVSStatus(CVSStatus.WARNING, CVSStatus.CONFLICT, commandRoot, line);
- } else if (message.startsWith("warning:")) { //$NON-NLS-1$
- /*
- * We can get the following conflict warnings
- * cvs server: warning: folder1/file.ext is not (any longer) pertinent
- * If we get the above line, we have local changes to a remotely deleted file.
- */
- if (updateMessageListener != null) {
- if (message.endsWith("is not (any longer) pertinent")) { //$NON-NLS-1$
- String filename = message.substring(9, message.length() - 30);
- updateMessageListener.fileDoesNotExist(commandRoot, filename);
- }
- }
- return new CVSStatus(CVSStatus.WARNING, CVSStatus.CONFLICT, commandRoot, line);
- } else if (message.startsWith("conflicts")) { //$NON-NLS-1$
- // This line is info only. The server doesn't report an error.
- return new CVSStatus(IStatus.INFO, CVSStatus.CONFLICT, commandRoot, line);
- } else if (!message.startsWith("cannot open directory") //$NON-NLS-1$
- && !message.startsWith("nothing known about")) { //$NON-NLS-1$
- return super.errorLine(line, location, commandRoot, monitor);
- }
- } else {
- String serverAbortedMessage = getServerAbortedMessage(line, location);
- if (serverAbortedMessage != null) {
- // Strip the prefix from the line
- String message = serverAbortedMessage;
- if (message.startsWith("no such tag")) { //$NON-NLS-1$
- // This is reported from CVS when a tag is used on the update there are no files in the directory
- // To get the folders, the update request should be re-issued for HEAD
- return new CVSStatus(CVSStatus.WARNING, CVSStatus.NO_SUCH_TAG, commandRoot, line);
- } else {
- return super.errorLine(line, location, commandRoot, monitor);
- }
- } else if (line.equals("rcsmerge: warning: conflicts during merge")) { //$NON-NLS-1$
- // There were conflicts in the merge
- return new CVSStatus(CVSStatus.WARNING, CVSStatus.CONFLICT, commandRoot, line);
- }
- }
- } catch (StringIndexOutOfBoundsException e) {
- // Something went wrong in the parsing of the message.
- // Return a status indicating the problem
- if (CVSProviderPlugin.getPlugin().isDebugging()) {
- System.out.println("Error parsing E line: " + line); //$NON-NLS-1$
- }
- return new CVSStatus(CVSStatus.ERROR, CVSStatus.ERROR_LINE_PARSE_FAILURE, commandRoot, line);
- }
- return super.errorLine(line, location, commandRoot, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSAuthenticationException.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSAuthenticationException.java
deleted file mode 100644
index c8ba5e5e2..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSAuthenticationException.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.connection;
-
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-public class CVSAuthenticationException extends CVSException {
-
- /**
- * Code indicating that authentication can be retried after
- * prompting the user for corrected authentication information
- */
- public static final int RETRY = 1;
-
- /**
- * Code indicating that authentication should not be reattempted.
- */
- public static final int NO_RETRY = 2;
-
- /**
- * Creates a new <code>CVSAuthenticationException</code>
- *
- * @param detail a message that describes the exception in detail.
- * @param code indicates whether authentication can be retried or not
- */
- public CVSAuthenticationException(String detail, int code) {
- this(new CVSStatus(IStatus.ERROR, code,
- Policy.bind("CVSAuthenticationException.detail", new Object[] { detail }))); //$NON-NLS-1$
- }
-
- /**
- * Creates a new <code>CVSAuthenticationException</code>
- *
- * @param status the status result describing this exception.
- */
- public CVSAuthenticationException(IStatus status) {
- super(status);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSCommunicationException.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSCommunicationException.java
deleted file mode 100644
index 684ea5c39..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSCommunicationException.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.team.internal.ccvs.core.connection;
-
-
-import java.io.InterruptedIOException;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-public class CVSCommunicationException extends CVSException {
-
- /**
- * Create a new <code>CVSCommunicationException with the
- * given status.
- */
- private CVSCommunicationException(IStatus status) {
- super(status);
- }
- /**
- * Create a new <code>CVSCommunicationException with the
- * given message.
- */
- public CVSCommunicationException(String message) {
- super(message);
- }
- /**
- * Create a new <code>CVSCommunicationException.
- *
- * @param message a message describing the exception in detail.
- * @param the caught exception that has caused the communication
- * exception.
- */
- public CVSCommunicationException(String message, Exception e) {
- super(message, e);
- }
- /**
- * Create a new <code>CVSCommunicationException.
- *
- * @param the caught exception that has caused the communication
- * exception.
- */
- public CVSCommunicationException(Exception e) {
- this(getStatusFor(e));
- }
-
- public static IStatus getStatusFor(Exception e) {
- if (e instanceof InterruptedIOException) {
- InterruptedIOException ioEx = (InterruptedIOException) e;
- MultiStatus status = new MultiStatus(CVSProviderPlugin.ID, 0, getMessageFor(e), e);
- status.add(new CVSStatus(IStatus.ERROR, Policy.bind("CVSCommunicationException.interruptCause"))); //$NON-NLS-1$
- status.add(new CVSStatus(IStatus.ERROR, Policy.bind("CVSCommunicationException.interruptSolution"))); //$NON-NLS-1$
- status.add(new CVSStatus(IStatus.ERROR, Policy.bind("CVSCommunicationException.alternateInterruptCause"))); //$NON-NLS-1$
- status.add(new CVSStatus(IStatus.ERROR, Policy.bind("CVSCommunicationException.alternateInterruptSolution"))); //$NON-NLS-1$
- return status;
- }
- return new CVSStatus(IStatus.ERROR, getMessageFor(e), e);
- }
-
- public static String getMessageFor(Throwable throwable) {
- String message = Policy.bind(throwable.getClass().getName(), new Object[] {throwable.getMessage()});
- if (message.equals(throwable.getClass().getName()))
- message = Policy.bind("CVSCommunicationException.io", new Object[] {throwable.toString()}); //$NON-NLS-1$
- return message;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSRepositoryLocation.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSRepositoryLocation.java
deleted file mode 100644
index 7482480ce..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSRepositoryLocation.java
+++ /dev/null
@@ -1,1032 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.connection;
-
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.*;
-import org.eclipse.team.internal.ccvs.core.resources.*;
-
-/**
- * This class manages a CVS repository location.
- *
- * It provides the mapping between connection method name and the
- * plugged in ICunnectionMethod.
- *
- * It parses location strings into instances.
- *
- * It provides a method to open a connection to the server along
- * with a method to validate that connections can be made.
- *
- * It manages its user info using the plugged in IUserAuthenticator
- * (unless a username and password are provided as part of the creation
- * string, in which case, no authenticator is used).
- *
- * Instances must be disposed of when no longer needed in order to
- * notify the authenticator so cached properties can be cleared
- *
- */
-public class CVSRepositoryLocation extends PlatformObject implements ICVSRepositoryLocation, IUserInfo {
-
- // server platform constants
- public static final int UNDETERMINED_PLATFORM = 0;
- public static final int CVS_SERVER = 1;
- public static final int CVSNT_SERVER = 2;
- public static final int UNSUPPORTED_SERVER = 3;
- public static final int UNKNOWN_SERVER = 4;
-
- // static variables for extension points
- private static IUserAuthenticator authenticator;
- private static IConnectionMethod[] pluggedInConnectionMethods = null;
-
- private IConnectionMethod method;
- private String user;
- private String password;
- private String host;
- private int port;
- private String root;
- private boolean userFixed;
- private boolean passwordFixed;
-
- private int serverPlatform = UNDETERMINED_PLATFORM;
-
- public static final char COLON = ':';
- public static final char HOST_SEPARATOR = '@';
- public static final char PORT_SEPARATOR = '#';
- public static final boolean STANDALONE_MODE = (System.getProperty("eclipse.cvs.standalone")==null) ? //$NON-NLS-1$
- false :(new Boolean(System.getProperty("eclipse.cvs.standalone")).booleanValue()); //$NON-NLS-1$
-
- // command to start remote cvs in server mode
- private static final String INVOKE_SVR_CMD = "server"; //$NON-NLS-1$
-
- // fields needed for caching the password
- public static final String INFO_PASSWORD = "org.eclipse.team.cvs.core.password";//$NON-NLS-1$
- public static final String INFO_USERNAME = "org.eclipse.team.cvs.core.username";//$NON-NLS-1$
- public static final String AUTH_SCHEME = "";//$NON-NLS-1$
- public static final URL FAKE_URL;
-
- public static final String USER_VARIABLE = "{user}"; //$NON-NLS-1$
- public static final String PASSWORD_VARIABLE = "{password}"; //$NON-NLS-1$
- public static final String HOST_VARIABLE = "{host}"; //$NON-NLS-1$
- public static final String PORT_VARIABLE = "{port}"; //$NON-NLS-1$
-
- // alternate repository connection details to be used when reading or writting
- private String readLocation;
- private String writeLocation;
-
- static {
- URL temp = null;
- try {
- temp = new URL("http://org.eclipse.team.cvs.core");//$NON-NLS-1$
- } catch (MalformedURLException e) {
- }
- FAKE_URL = temp;
- }
-
- /*
- * Create a CVSRepositoryLocation from its composite parts.
- */
- private CVSRepositoryLocation(IConnectionMethod method, String user, String password, String host, int port, String root, boolean userFixed, boolean passwordFixed) {
- this.method = method;
- this.user = user;
- this.password = password;
- this.host = host;
- this.port = port;
- this.root = root;
- // The username can be fixed only if one is provided
- if (userFixed && (user != null))
- this.userFixed = true;
- // The password can only be fixed if the username is and a password is provided
- if (userFixed && passwordFixed && (password != null))
- this.passwordFixed = true;
- }
-
- /*
- * Create the connection to the remote server.
- * If anything fails, an exception will be thrown and must
- * be handled by the caller.
- */
- private Connection createConnection(String password, IProgressMonitor monitor) throws CVSException {
- // FIXME Should the open() of Connection be done in the constructor?
- // The only reason it should is if connections can be reused (they aren't reused now).
- // FIXME! monitor is unused
- Connection connection = new Connection(this, method.createConnection(this, password));
- connection.open(monitor);
- return connection;
- }
-
- /*
- * Dispose of the receiver by clearing any cached authorization information.
- * This method shold only be invoked when the corresponding adapter is shut
- * down or a connection is being validated.
- */
- public void dispose() throws CVSException {
- flushCache();
- }
-
- /*
- * Flush the keyring entry associated with the receiver
- */
- private void flushCache() throws CVSException {
- try {
- Platform.flushAuthorizationInfo(FAKE_URL, getLocation(), AUTH_SCHEME);
- } catch (CoreException e) {
- // We should probably wrap the CoreException here!
- CVSProviderPlugin.log(e);
- throw new CVSException(IStatus.ERROR, IStatus.ERROR, Policy.bind("CVSRepositoryLocation.errorFlushing", getLocation()), e);//$NON-NLS-1$
- }
- }
-
- /*
- * @see ICVSRepositoryLocation#getHost()
- */
- public String getHost() {
- return host;
- }
-
- /*
- * @see IRepositoryLocation#getLocation()
- *
- * The username is included if it is fixed.
- * The password is never included even if it is fixed.
- * The port is included if it is not the default port.
- */
- public String getLocation() {
- return getLocation(false);
- }
-
- public String getLocation(boolean forDisplay) {
- return COLON + method.getName() + COLON +
- (userFixed?(user +
- ((passwordFixed && !forDisplay)?(COLON + password):"")//$NON-NLS-1$
- + HOST_SEPARATOR):"") +//$NON-NLS-1$
- host + COLON +
- ((port == USE_DEFAULT_PORT)?"":(new Integer(port).toString())) + //$NON-NLS-1$
- root;
- }
-
- /*
- * @see ICVSRepositoryLocation#getMethod()
- */
- public IConnectionMethod getMethod() {
- return method;
- }
-
- public boolean setMethod(String methodName) {
- IConnectionMethod newMethod = getPluggedInConnectionMethod(methodName);
- if (newMethod == null)
- return false;
- method = newMethod;
- return true;
- }
-
- /*
- * @see ICVSRepositoryLocation#getPort()
- */
- public int getPort() {
- return port;
- }
-
- /*
- * @see ICVSRepositoryLocation#members(CVSTag, boolean, IProgressMonitor)
- */
- public ICVSRemoteResource[] members(CVSTag tag, boolean modules, IProgressMonitor progress) throws CVSException {
- try {
- if (modules) {
- return RemoteModule.getRemoteModules(this, tag, progress);
- } else {
- RemoteFolder root = new RemoteFolder(null, this, ICVSRemoteFolder.REPOSITORY_ROOT_FOLDER_NAME, tag);
- ICVSRemoteResource[] resources = (ICVSRemoteResource[])root.members(progress);
- // There is the off chance that there is a file in the root of the repository.
- // This is not supported by cvs so we need to make sure there are no files
- List folders = new ArrayList(resources.length);
- for (int i = 0; i < resources.length; i++) {
- ICVSRemoteResource remoteResource = resources[i];
- if (remoteResource.isContainer()) {
- folders.add(remoteResource);
- }
- }
- return (ICVSRemoteResource[]) folders.toArray(new ICVSRemoteResource[folders.size()]);
- }
- } catch(TeamException e) {
- throw new CVSException(e.getStatus());
- }
- }
-
- /*
- * @see ICVSRepositoryLocation#getRemoteFolder(String, CVSTag)
- */
- public ICVSRemoteFolder getRemoteFolder(String remotePath, CVSTag tag) {
- return new RemoteFolder(null, this, remotePath, tag);
- }
-
- /*
- * @see ICVSRepositoryLocation#getRemoteFile(String, CVSTag)
- */
- public ICVSRemoteFile getRemoteFile(String remotePath, CVSTag tag) {
- IPath path = new Path(remotePath);
- RemoteFolderTree remoteFolder = new RemoteFolderTree(null, this, path.removeLastSegments(1).toString(), tag);
- RemoteFile remoteFile = new RemoteFile(remoteFolder, Update.STATE_ADDED_LOCAL, path.lastSegment(), null, null, tag);
- remoteFolder.setChildren(new ICVSRemoteResource[] { remoteFile });
- return remoteFile;
- }
-
- /*
- * @see ICVSRepositoryLocation#getRootDirectory()
- */
- public String getRootDirectory() {
- return root;
- }
-
- /*
- * @see ICVSRepositoryLocation#getTimeout()
- *
- * For the time being, the timeout value is a system wide value
- * associated with the CVSPlugin singleton.
- */
- public int getTimeout() {
- return CVSProviderPlugin.getPlugin().getTimeout();
- }
-
- /*
- * @see ICVSRepositoryLocation#getUserInfo()
- */
- public IUserInfo getUserInfo(boolean makeUsernameMutable) {
- return new UserInfo(getUsername(), password, makeUsernameMutable ? true : isUsernameMutable());
- }
-
- /*
- * @see ICVSRepositoryLocation#getUsername()
- * @see IUserInfo#getUsername()
- */
- public String getUsername() {
- // If the username is mutable, get it from the cache if it's there
- if (user == null && isUsernameMutable()) {
- try {
- retrievePassword();
- } catch (CVSException e) {
- }
- }
- return user == null ? "" : user; //$NON-NLS-1$
- }
-
- /*
- * @see IUserInfo#isUsernameMutable()
- */
- public boolean isUsernameMutable() {
- return !userFixed;
- }
-
- /*
- * Open a connection to the repository represented by the receiver.
- * If the username or password are not fixed, openConnection will
- * use the plugged-in authenticator to prompt for the username and/or
- * password if one has not previously been provided or if the previously
- * supplied username and password are invalid.
- *
- * This method is synchronized to ensure that authentication with the
- * remote server is serialized. This is needed to avoid the situation where
- * multiple failed authentications occur and result in the remote account
- * being locked. The CVSProviderPlugin enforces that there is one instance
- * of a CVSRepositoryLocation per remote location thus this method is called
- * for any connection made to this remote location.
- */
- public synchronized Connection openConnection(IProgressMonitor monitor) throws CVSException {
-
- try {
- // Allow two ticks in case of a retry
- monitor.beginTask(Policy.bind("CVSRepositoryLocation.openingConnection", getHost()), 2);//$NON-NLS-1$
-
- // If we have a username and password, use them to attempt a connection
- if ((user != null) && (password != null)) {
- return createConnection(password, monitor);
- }
-
- // Get the repository in order to ensure that the location is known by CVS.
- // (The get will record the location if it's not already recorded.
- CVSProviderPlugin.getPlugin().getRepository(getLocation());
-
- while (true) {
- try {
- // The following will throw an exception if authentication fails
- String password = retrievePassword();
- if (user == null) {
- // This is possible if the cache was cleared somehow for a location with a mutable username
- throw new CVSAuthenticationException(new CVSStatus(CVSStatus.ERROR, CVSAuthenticationException.RETRY, Policy.bind("CVSRepositoryLocation.usernameRequired"))); //$NON-NLS-1$
- }
- if (password == null)
- password = "";//$NON-NLS-1$
- return createConnection(password, monitor);
- } catch (CVSAuthenticationException ex) {
- if (ex.getStatus().getCode() == CVSAuthenticationException.RETRY) {
- String message = ex.getMessage();
- try {
- IUserAuthenticator authenticator = getAuthenticator();
- if (authenticator == null) {
- throw new CVSAuthenticationException(Policy.bind("Client.noAuthenticator"), CVSAuthenticationException.NO_RETRY);//$NON-NLS-1$
- }
- authenticator.promptForUserInfo(this, this, message);
- updateCache();
- } catch (OperationCanceledException e) {
- throw new CVSAuthenticationException(new CVSStatus(CVSStatus.ERROR, CVSAuthenticationException.NO_RETRY, message));
- }
- } else {
- throw ex;
- }
- }
- }
- } finally {
- monitor.done();
- }
- }
-
- /*
- * Implementation of inherited toString()
- */
- public String toString() {
- return getLocation(true);
- }
-
- public boolean equals(Object o) {
- if (!(o instanceof CVSRepositoryLocation)) return false;
- return getLocation().equals(((CVSRepositoryLocation)o).getLocation());
- }
- public int hashCode() {
- return getLocation().hashCode();
- }
-
- /*
- * Return the cached password from the keyring.
- * Also, set the username of the receiver if the username is mutable
- */
- private String retrievePassword() throws CVSException {
- Map map = Platform.getAuthorizationInfo(FAKE_URL, getLocation(), AUTH_SCHEME);
- if (map != null) {
- String username = (String) map.get(INFO_USERNAME);
- if (username != null && isUsernameMutable())
- setUsername(username);
- String password = (String) map.get(INFO_PASSWORD);
- if (password != null) {
- return password;
- }
- }
- return null;
- }
- /*
- * @see IUserInfo#setPassword(String)
- */
- public void setPassword(String password) {
- if (passwordFixed)
- throw new UnsupportedOperationException();
- // We set the password here but it will be cleared
- // if the user info is cached using updateCache()
- this.password = password;
- }
-
- public void setUserInfo(IUserInfo userinfo) {
- user = userinfo.getUsername();
- password = ((UserInfo)userinfo).getPassword();
- }
- /*
- * @see IUserInfo#setUsername(String)
- */
- public void setUsername(String user) {
- if (userFixed)
- throw new UnsupportedOperationException();
- this.user = user;
- }
-
- public void setUserMuteable(boolean muteable) {
- userFixed = !muteable;
- }
-
- public void updateCache() throws CVSException {
- if (passwordFixed)
- return;
- updateCache(user, password, true);
- password = null;
- // Ensure that the receiver is known by the CVS provider
- CVSProviderPlugin.getPlugin().getRepository(getLocation());
- }
-
- /*
- * Cache the user info in the keyring
- */
- private void updateCache(String username, String password, boolean createIfAbsent) throws CVSException {
- // put the password into the Platform map
- Map map = Platform.getAuthorizationInfo(FAKE_URL, getLocation(), AUTH_SCHEME);
- if (map == null) {
- if ( ! createIfAbsent) return;
- map = new java.util.HashMap(10);
- }
- if (username != null)
- map.put(INFO_USERNAME, username);
- if (password != null)
- map.put(INFO_PASSWORD, password);
- try {
- Platform.addAuthorizationInfo(FAKE_URL, getLocation(), AUTH_SCHEME, map);
- } catch (CoreException e) {
- // We should probably wrap the CoreException here!
- CVSProviderPlugin.log(e);
- throw new CVSException(IStatus.ERROR, IStatus.ERROR, Policy.bind("CVSRepositoryLocation.errorCaching", getLocation()), e);//$NON-NLS-1$
- }
- }
-
- /*
- * Validate that the receiver contains valid information for
- * making a connection. If the receiver contains valid
- * information, the method returns. Otherwise, an exception
- * indicating the problem is throw.
- */
- public void validateConnection(IProgressMonitor monitor) throws CVSException {
- try {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- ICVSFolder root = CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot());
- Session session = new Session(this, root, false /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 50), false /* read-only */);
- try {
- IStatus status = Command.VERSION.execute(session, this, Policy.subMonitorFor(monitor, 50));
- // Log any non-ok status
- if (! status.isOK()) {
- CVSProviderPlugin.log(status);
- }
- } finally {
- session.close();
- monitor.done();
- }
- if (getServerPlatform() == CVSNT_SERVER) {
- // check for the use of a repository prefix
- if (getRootDirectory().startsWith(Session.SERVER_SEPARATOR)) {
- // A prefix is in use. Log a warning
- CVSProviderPlugin.log(IStatus.WARNING, Policy.bind("CVSRepositoryLocation.cvsntPrefix", getLocation()), null); //$NON-NLS-1$
- throw new CVSAuthenticationException(new Status(IStatus.WARNING, CVSProviderPlugin.ID, 0,
- Policy.bind("CVSRepositoryLocation.cvsntPrefix", getLocation()), null)); //$NON-NLS-1$
- }
- }
- } catch (CVSException e) {
- // If the validation failed, dispose of any cached info
- dispose();
- throw e;
- }
- }
-
- /**
- * Return the server platform type. It will be one of the following:
- * UNDETERMINED_PLATFORM: The platform has not been determined
- * CVS_SERVER: The platform is regular CVS server
- * CVSNT_SERVER: The platform in CVSNT
- * If UNDETERMINED_PLATFORM is returned, the platform can be determined
- * using the Command.VERSION command.
- */
- public int getServerPlatform() {
- return serverPlatform;
- }
-
- /**
- * This method is called from Command.VERSION to set the platform type.
- */
- public void setServerPlaform(IStatus status) {
- // OK means that its a regular cvs server
- if (status.isOK()) {
- serverPlatform = CVS_SERVER;
- return;
- }
- // Find the status that reports the CVS platform
- if (status.isMultiStatus()) {
- IStatus[] children = status.getChildren();
- for (int i = 0; i < children.length; i++) {
- IStatus iStatus = children[i];
- if (iStatus.getCode() == CVSStatus.SERVER_IS_CVSNT
- || iStatus.getCode() == CVSStatus.UNSUPPORTED_SERVER_VERSION
- || iStatus.getCode() == CVSStatus.SERVER_IS_UNKNOWN) {
- status = iStatus;
- break;
- }
- }
- }
- // Second, check the code of the status itself to see if it is NT
- switch (status.getCode()) {
- case CVSStatus.SERVER_IS_CVSNT:
- serverPlatform = CVSNT_SERVER;
- break;
- case CVSStatus.UNSUPPORTED_SERVER_VERSION:
- serverPlatform = UNSUPPORTED_SERVER;
- break;
- case CVSStatus.SERVER_IS_UNKNOWN:
- serverPlatform = UNKNOWN_SERVER;
- break;
- default:
- // We had an error status with no info about the server.
- // Mark it as undetermined.
- serverPlatform = UNDETERMINED_PLATFORM;
- }
- }
-
- public static boolean validateConnectionMethod(String methodName) {
- IConnectionMethod[] methods = getPluggedInConnectionMethods();
- for (int i=0;i<methods.length;i++) {
- if (methodName.equals(methods[i].getName()))
- return true;
- }
- return false;
- }
-
- /*
- * Create a repository location instance from the given properties.
- * The supported properties are:
- *
- * connection The connection method to be used
- * user The username for the connection (optional)
- * password The password used for the connection (optional)
- * host The host where the repository resides
- * port The port to connect to (optional)
- * root The server directory where the repository is located
- */
- public static CVSRepositoryLocation fromProperties(Properties configuration) throws CVSException {
- // We build a string to allow validation of the components that are provided to us
- String connection = configuration.getProperty("connection");//$NON-NLS-1$
- if (connection == null)
- connection = "pserver";//$NON-NLS-1$
- IConnectionMethod method = getPluggedInConnectionMethod(connection);
- if (method == null)
- throw new CVSException(new Status(IStatus.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE, Policy.bind("CVSRepositoryLocation.methods", new Object[] {getPluggedInConnectionMethodNames()}), null));//$NON-NLS-1$
- String user = configuration.getProperty("user");//$NON-NLS-1$
- if (user.length() == 0)
- user = null;
- String password = configuration.getProperty("password");//$NON-NLS-1$
- if (user == null)
- password = null;
- String host = configuration.getProperty("host");//$NON-NLS-1$
- if (host == null)
- throw new CVSException(new Status(IStatus.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE, Policy.bind("CVSRepositoryLocation.hostRequired"), null));//$NON-NLS-1$
- String portString = configuration.getProperty("port");//$NON-NLS-1$
- int port;
- if (portString == null)
- port = ICVSRepositoryLocation.USE_DEFAULT_PORT;
- else
- port = Integer.parseInt(portString);
- String root = configuration.getProperty("root");//$NON-NLS-1$
- if (root == null)
- throw new CVSException(new Status(IStatus.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE, Policy.bind("CVSRepositoryLocation.rootRequired"), null));//$NON-NLS-1$
- root = root.replace('\\', '/');
-
- return new CVSRepositoryLocation(method, user, password, host, port, root, user != null, false);
- }
-
- /*
- * Parse a location string and return a CVSRepositoryLocation.
- *
- * On failure, the status of the exception will be a MultiStatus
- * that includes the original parsing error and a general status
- * displaying the passed location and proper form. This form is
- * better for logging, etc.
- */
- public static CVSRepositoryLocation fromString(String location) throws CVSException {
- try {
- return fromString(location, false);
- } catch (CVSException e) {
- // Parsing failed. Include a status that
- // shows the passed location and the proper form
- MultiStatus error = new MultiStatus(CVSProviderPlugin.ID, CVSStatus.ERROR, Policy.bind("CVSRepositoryLocation.invalidFormat", new Object[] {location}), null);//$NON-NLS-1$
- error.merge(new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSRepositoryLocation.locationForm")));//$NON-NLS-1$
- error.merge(e.getStatus());
- throw new CVSException(error);
- }
- }
-
- /*
- * Parse a location string and return a CVSRepositoryLocation.
- *
- * The valid format (from the cederqvist) is:
- *
- * :method:[[user][:password]@]hostname[:[port]]/path/to/repository
- *
- * However, this does not work with CVS on NT so we use the format
- *
- * :method:[user[:password]@]hostname[#port]:/path/to/repository
- *
- * Some differences to note:
- * The : after the host/port is not optional because of NT naming including device
- * e.g. :pserver:username:password@hostname#port:D:\cvsroot
- *
- * If validateOnly is true, this method will always throw an exception.
- * The status of the exception indicates success or failure. The status
- * of the exception contains a specific message suitable for displaying
- * to a user who has knowledge of the provided location string.
- * @see CVSRepositoryLocation.fromString(String)
- */
- public static CVSRepositoryLocation fromString(String location, boolean validateOnly) throws CVSException {
- String partId = null;
- try {
- // Get the connection method
- partId = "CVSRepositoryLocation.parsingMethod";//$NON-NLS-1$
- int start = location.indexOf(COLON);
- String methodName;
- int end;
- if (start == 0) {
- end = location.indexOf(COLON, start + 1);
- methodName = location.substring(start + 1, end);
- start = end + 1;
- } else {
- // this could be an alternate format for ext: username:password@host:path
- methodName = "ext"; //$NON-NLS-1$
- start = 0;
- }
-
- IConnectionMethod method = getPluggedInConnectionMethod(methodName);
- if (method == null)
- throw new CVSException(new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSRepositoryLocation.methods", new Object[] {getPluggedInConnectionMethodNames()})));//$NON-NLS-1$
-
- // Get the user name and password (if provided)
- partId = "CVSRepositoryLocation.parsingUser";//$NON-NLS-1$
-
- end = location.indexOf(HOST_SEPARATOR, start);
- String user = null;
- String password = null;
- // if end is -1 then there is no host separator meaning that the username is not present
- if (end != -1) {
- // Get the optional user and password
- user = location.substring(start, end);
- // Separate the user and password (if there is a password)
- start = user.indexOf(COLON);
- if (start != -1) {
- partId = "CVSRepositoryLocation.parsingPassword";//$NON-NLS-1$
- password = user.substring(start+1);
- user = user.substring(0, start);
- }
- // Set start to point after the host separator
- start = end + 1;
- }
-
- // Get the host (and port)
- partId = "CVSRepositoryLocation.parsingHost";//$NON-NLS-1$
- end= location.indexOf(COLON, start);
- String host = location.substring(start, end);
- int port = USE_DEFAULT_PORT;
- // Separate the port and host if there is a port
- start = host.indexOf(PORT_SEPARATOR);
- if (start != -1) {
- // Initially, we used a # between the host and port
- partId = "CVSRepositoryLocation.parsingPort";//$NON-NLS-1$
- port = Integer.parseInt(host.substring(start+1));
- host = host.substring(0, start);
- } else {
- // In the correct CVS format, the port follows the COLON
- partId = "CVSRepositoryLocation.parsingPort";//$NON-NLS-1$
- int index = end;
- char c = location.charAt(++index);
- String portString = new String();
- while (Character.isDigit(c)) {
- portString += c;
- c = location.charAt(++index);
- }
- if (portString.length() > 0) {
- end = index - 1;
- port = Integer.parseInt(portString);
- }
- }
-
- // Get the repository path (translating backslashes to slashes)
- partId = "CVSRepositoryLocation.parsingRoot";//$NON-NLS-1$
- start = end + 1;
- String root = location.substring(start).replace('\\', '/');
-
- if (validateOnly)
- throw new CVSException(new CVSStatus(CVSStatus.OK, Policy.bind("ok")));//$NON-NLS-1$
-
- return new CVSRepositoryLocation(method, user, password, host, port, root, (user != null), (password != null));
- }
- catch (IndexOutOfBoundsException e) {
- // We'll get here if anything funny happened while extracting substrings
- throw new CVSException(Policy.bind(partId));
- }
- catch (NumberFormatException e) {
- // We'll get here if we couldn't parse a number
- throw new CVSException(Policy.bind(partId));
- }
- }
-
- public static IUserAuthenticator getAuthenticator() {
- if (authenticator == null) {
- authenticator = getPluggedInAuthenticator();
- }
- return authenticator;
- }
-
- /*
- * Return the connection method registered for the given name or null if none
- * are registered
- */
- private static IConnectionMethod getPluggedInConnectionMethod(String methodName) {
- IConnectionMethod[] methods = getPluggedInConnectionMethods();
- for(int i=0; i<methods.length; i++) {
- if(methodName.equals(methods[i].getName()))
- return methods[i];
- }
- return null;
- }
-
- /*
- * Return a string containing a list of all connection methods
- */
- private static String getPluggedInConnectionMethodNames() {
- IConnectionMethod[] methods = getPluggedInConnectionMethods();
- StringBuffer methodNames = new StringBuffer();
- for(int i=0; i<methods.length; i++) {
- String name = methods[i].getName();
- if (i>0)
- methodNames.append(", ");//$NON-NLS-1$
- methodNames.append(name);
- }
- return methodNames.toString();
- }
-
- public static IConnectionMethod[] getPluggedInConnectionMethods() {
- if(pluggedInConnectionMethods==null) {
- List connectionMethods = new ArrayList();
-
- if (STANDALONE_MODE) {
- connectionMethods.add(new PServerConnectionMethod());
- } else {
- IExtension[] extensions = Platform.getPluginRegistry().getExtensionPoint(CVSProviderPlugin.ID, CVSProviderPlugin.PT_CONNECTIONMETHODS).getExtensions();
- for(int i=0; i<extensions.length; i++) {
- IExtension extension = extensions[i];
- IConfigurationElement[] configs = extension.getConfigurationElements();
- if (configs.length == 0) {
- CVSProviderPlugin.log(IStatus.ERROR, Policy.bind("CVSProviderPlugin.execProblem"), null);//$NON-NLS-1$
- continue;
- }
- try {
- IConfigurationElement config = configs[0];
- connectionMethods.add(config.createExecutableExtension("run"));//$NON-NLS-1$
- } catch (CoreException ex) {
- CVSProviderPlugin.log(IStatus.ERROR, Policy.bind("CVSProviderPlugin.execProblem"), ex);//$NON-NLS-1$
- }
- }
- }
- pluggedInConnectionMethods = (IConnectionMethod[])connectionMethods.toArray(new IConnectionMethod[0]);
- }
- return pluggedInConnectionMethods;
- }
-
- private static IUserAuthenticator getPluggedInAuthenticator() {
- IExtension[] extensions = Platform.getPluginRegistry().getExtensionPoint(CVSProviderPlugin.ID, CVSProviderPlugin.PT_AUTHENTICATOR).getExtensions();
- if (extensions.length == 0)
- return null;
- IExtension extension = extensions[0];
- IConfigurationElement[] configs = extension.getConfigurationElements();
- if (configs.length == 0) {
- CVSProviderPlugin.log(IStatus.ERROR, Policy.bind("CVSAdapter.noConfigurationElement", new Object[] {extension.getUniqueIdentifier()}), null);//$NON-NLS-1$
- return null;
- }
- try {
- IConfigurationElement config = configs[0];
- return (IUserAuthenticator) config.createExecutableExtension("run");//$NON-NLS-1$
- } catch (CoreException ex) {
- CVSProviderPlugin.log(IStatus.ERROR, Policy.bind("CVSAdapter.unableToInstantiate", new Object[] {extension.getUniqueIdentifier()}), ex);//$NON-NLS-1$
- return null;
- }
- }
-
- /*
- * Validate that the given string could ne used to succesfully create
- * an instance of the receiver.
- *
- * This method performs some initial checks to provide displayable
- * feedback and also tries a more in-depth parse using fromString(String, boolean).
- */
- public static IStatus validate(String location) {
-
- // Check some simple things that are not checked in creation
- if (location == null)
- return new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSRepositoryLocation.nullLocation"));//$NON-NLS-1$
- if (location.equals(""))//$NON-NLS-1$
- return new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSRepositoryLocation.emptyLocation"));//$NON-NLS-1$
- if (location.endsWith(" ") || location.endsWith("\t"))//$NON-NLS-1$ //$NON-NLS-2$
- return new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSRepositoryLocation.endWhitespace"));//$NON-NLS-1$
- if (!location.startsWith(":") || location.indexOf(COLON, 1) == -1)//$NON-NLS-1$
- return new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSRepositoryLocation.startOfLocation"));//$NON-NLS-1$
-
- // Do some quick checks to provide geberal feedback
- String formatError = Policy.bind("CVSRepositoryLocation.locationForm");//$NON-NLS-1$
- int secondColon = location.indexOf(COLON, 1);
- int at = location.indexOf(HOST_SEPARATOR);
- if (at != -1) {
- String user = location.substring(secondColon + 1, at);
- if (user.equals(""))//$NON-NLS-1$
- return new CVSStatus(CVSStatus.ERROR, formatError);
- } else
- at = secondColon;
- int colon = location.indexOf(COLON, at + 1);
- if (colon == -1)
- return new CVSStatus(CVSStatus.ERROR, formatError);
- String host = location.substring(at + 1, colon);
- if (host.equals(""))//$NON-NLS-1$
- return new CVSStatus(CVSStatus.ERROR, formatError);
- String path = location.substring(colon + 1, location.length());
- if (path.equals(""))//$NON-NLS-1$
- return new CVSStatus(CVSStatus.ERROR, formatError);
-
- // Do a full parse and see if it passes
- try {
- fromString(location, true);
- } catch (CVSException e) {
- // An exception is always throw. Return the status
- return e.getStatus();
- }
-
- // Looks ok (we'll actually never get here because above
- // fromString(String, boolean) will always throw an exception).
- return new CVSStatus(IStatus.OK, Policy.bind("ok"));//$NON-NLS-1$
- }
- /**
- * @see ICVSRepositoryLocation#flushUserInfo()
- */
- public void flushUserInfo() throws CVSException {
- flushCache();
- }
-
- /*
- * Return the command string that is to be used by the EXT connection method.
- */
- String[] getExtCommand(String password) throws IOException {
- // Get the user specified connection parameters
- String CVS_RSH = CVSProviderPlugin.getPlugin().getCvsRshCommand();
- String CVS_RSH_PARAMETERS = CVSProviderPlugin.getPlugin().getCvsRshParameters();
- String CVS_SERVER = CVSProviderPlugin.getPlugin().getCvsServer();
- if(CVS_RSH == null || CVS_SERVER == null) {
- throw new IOException(Policy.bind("EXTServerConnection.varsNotSet")); //$NON-NLS-1$
- }
-
- // If there is only one token, assume it is the command and use the default parameters and order
- if (CVS_RSH_PARAMETERS == null || CVS_RSH_PARAMETERS.length() == 0) {
- if (port != USE_DEFAULT_PORT)
- throw new IOException(Policy.bind("EXTServerConnection.invalidPort")); //$NON-NLS-1$
- return new String[] {CVS_RSH, host, "-l", user, CVS_SERVER, INVOKE_SVR_CMD}; //$NON-NLS-1$
- }
-
- // Substitute any variables for their appropriate values
- CVS_RSH_PARAMETERS = stringReplace(CVS_RSH_PARAMETERS, USER_VARIABLE, user);
- CVS_RSH_PARAMETERS = stringReplace(CVS_RSH_PARAMETERS, PASSWORD_VARIABLE, password);
- CVS_RSH_PARAMETERS = stringReplace(CVS_RSH_PARAMETERS, HOST_VARIABLE, host);
- CVS_RSH_PARAMETERS = stringReplace(CVS_RSH_PARAMETERS, PORT_VARIABLE, new Integer(port).toString());
-
- // Build the command list to be sent to the OS.
- List commands = new ArrayList();
- commands.add(CVS_RSH);
- StringTokenizer tokenizer = new StringTokenizer(CVS_RSH_PARAMETERS);
- while (tokenizer.hasMoreTokens()) {
- String next = tokenizer.nextToken();
- commands.add(next);
- }
- commands.add(CVS_SERVER);
- commands.add(INVOKE_SVR_CMD);
- return (String[]) commands.toArray(new String[commands.size()]);
- }
-
- /*
- * Replace all occurances of oldString with newString
- */
- private String stringReplace(String string, String oldString, String newString) {
- int index = string.toLowerCase().indexOf(oldString);
- if (index == -1) return string;
- return stringReplace(
- string.substring(0, index) + newString + string.substring(index + oldString.length()),
- oldString, newString);
- }
-
- /**
- * Return the server message with the prefix removed.
- * Server aborted messages typically start with
- * "cvs server: ..."
- * "cvs [server aborted]: ..."
- * "cvs rtag: ..."
- */
- public String getServerMessageWithoutPrefix(String errorLine, String prefix) {
- String message = errorLine;
- int firstSpace = message.indexOf(' ');
- if(firstSpace != -1) {
- // remove the program name and the space
- message = message.substring(firstSpace + 1);
- // Quick fix to handle changes in server message format (see Bug 45138)
- if (prefix.startsWith("[")) { //$NON-NLS-1$
- // This is the server aborted message
- // Remove the pattern "[command_name aborted]: "
- int closingBracket = message.indexOf("]: "); //$NON-NLS-1$
- if (closingBracket == -1) return null;
- // get what is inside the brackets
- String realPrefix = message.substring(1, closingBracket);
- // check that there is two words and the second word is "aborted"
- int space = realPrefix.indexOf(' ');
- if (space == -1) return null;
- if (realPrefix.indexOf(' ', space +1) != -1) return null;
- if (!realPrefix.substring(space +1).equals("aborted")) return null; //$NON-NLS-1$
- // It's a match, return the rest of the line
- message = message.substring(closingBracket + 2);
- if (message.charAt(0) == ' ') {
- message = message.substring(1);
- }
- return message;
- } else {
- // This is the server command message
- // Remove the pattern "command_name: "
- int colon = message.indexOf(": "); //$NON-NLS-1$
- if (colon == -1) return null;
- // get what is before the colon
- String realPrefix = message.substring(0, colon);
- // ensure that it is a single word
- if (realPrefix.indexOf(' ') != -1) return null;
- message = message.substring(colon + 1);
- if (message.charAt(0) == ' ') {
- message = message.substring(1);
- }
- return message;
- }
- }
- // This is not a server message with the desired prefix
- return null;
- }
-
- /**
- * The read location is a string that contains the connection details
- * to be used when performing an operation that only requires read-access
- * to the repository.
- *
- * @return Returns the readLocation.
- */
- public String getReadLocation() {
- return readLocation;
- }
-
- /**
- * Set the location used to perform operations that only require
- * read-access to the repository. Passing a value of <code>null</code>
- * will cause the receiver's information to be used when connecting
- * for read access.
- * @param readLocation The readLocation to set.
- */
- public void setReadLocation(String readLocation) {
- if (readLocation != null && readLocation.equals(getLocation())) {
- this.readLocation = null;
- } else {
- this.readLocation = readLocation;
- }
- }
-
- /**
- * The write location is a string that contains the connection details
- * to be used when performing an operation that only requires read-access
- * to the repository.
- * @return Returns the writeLocation.
- */
- public String getWriteLocation() {
- return writeLocation;
- }
-
- /**
- * Set the location used to perform operations that require
- * write-access to the repository. Passing a value of <code>null</code>
- * will cause the receiver's information to be used when connecting
- * for write access.
- * @param writeLocation The writeLocation to set.
- */
- public void setWriteLocation(String writeLocation) {
- if (writeLocation != null && writeLocation.equals(getLocation())) {
- this.writeLocation = null;
- } else {
- this.writeLocation = writeLocation;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation#getUserAuthenticator()
- */
- public IUserAuthenticator getUserAuthenticator() {
- return getAuthenticator();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation#setUserAuthenticator()
- */
- public void setUserAuthenticator(IUserAuthenticator authenticator) {
- this.authenticator = authenticator;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSServerException.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSServerException.java
deleted file mode 100644
index 99bf0b6dc..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/CVSServerException.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.connection;
-
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-
-/**
- * Client has received an error response from the server.
- */
-public class CVSServerException extends CVSException {
-
- /**
- * Return true if the exception from the cvs server is the no tag error, and false
- * otherwise.
- */
- public boolean isNoTagException() {
- IStatus status = getStatus();
- if ( ! status.isMultiStatus())
- return false;
- IStatus[] children = ((MultiStatus)status).getChildren();
- for (int i = 0; i < children.length; i++) {
- if (children[i].getCode() == CVSStatus.NO_SUCH_TAG) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Return true if the exceptions status contains any error status messages
- */
- public boolean containsErrors() {
- IStatus status = getStatus();
- if ( ! status.isMultiStatus())
- return status.getSeverity() == IStatus.ERROR;
- IStatus[] children = ((MultiStatus)status).getChildren();
- for (int i=0;i<children.length;i++) {
- if (children[i].getSeverity() == IStatus.ERROR)
- return true;
- }
- return false;
- }
-
- /**
- * Return the CVSServerException for the given error message and error list
- *
- * This is public due to packaging and should not be used by clients.
- */
- public static CVSServerException forError(String message, IStatus[] children) {
- if (children.length > 0) {
- return new CVSServerException(message, children);
- } else {
- return new CVSServerException(new CVSStatus(IStatus.ERROR, CVSStatus.SERVER_ERROR, message, null));
- }
- }
-
- public CVSServerException(IStatus status) {
- super(status);
- }
-
- private CVSServerException(String message, IStatus[] children) {
- super(new MultiStatus(CVSProviderPlugin.ID, CVSStatus.SERVER_ERROR, children, message, null));
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/Connection.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/Connection.java
deleted file mode 100644
index e99e4f12e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/Connection.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.connection;
-
-
-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.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.IServerConnection;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * A connection to talk to a cvs server. The life cycle of a connection is
- * as follows:
- * <ul>
- * <li> constructor: creates a new connection object that wraps the given
- * repository location and connection method.
- * <li> open: opens a connection.
- * <li> send a request: use write* method or use the request stream directly.
- * <code>GetRequestStream</code> returns an output stream to directly
- * talk to the server.
- * <li> read responses: use read* methods or use the response stream directly.
- * <code>GetResponseStream</code> returns an input stream to directly
- * read output from the server.
- * <li> close: closes the connection. A closed connection can be reopened by
- * calling open again.
- * </ul>
- */
-public class Connection {
- private static final byte NEWLINE= 0xA;
-
- private IServerConnection serverConnection;
- private ICVSRepositoryLocation fCVSRoot;
- private String fCVSRootDirectory;
- private boolean fIsEstablished;
- private InputStream fResponseStream;
- private byte[] readLineBuffer = new byte[256];
-
- public Connection(ICVSRepositoryLocation cvsroot, IServerConnection serverConnection) {
- fCVSRoot = cvsroot;
- this.serverConnection = serverConnection;
- }
-
- private static byte[] append(byte[] buffer, int index, byte b) {
- if (index >= buffer.length) {
- byte[] newBuffer= new byte[index * 2];
- System.arraycopy(buffer, 0, newBuffer, 0, buffer.length);
- buffer= newBuffer;
- }
- buffer[index]= b;
- return buffer;
- }
- /**
- * Closes the connection.
- */
- public void close() throws CVSException {
- if (!isEstablished())
- return;
- try {
- serverConnection.close();
- } catch (IOException ex) {
- // Generally, errors on close are of no interest.
- // However, log them if debugging is on
- if (CVSProviderPlugin.getPlugin().isDebugging()) {
- CVSProviderPlugin.log(new CVSCommunicationException(Policy.bind("Connection.cannotClose"), ex));//$NON-NLS-1$
- }
- } finally {
- fResponseStream = null;
- fIsEstablished = false;
- }
- }
- /**
- * Flushes the request stream.
- */
- public void flush() throws CVSException {
- if (!isEstablished())
- return;
- try {
- getOutputStream().flush();
- } catch(IOException e) {
- throw new CVSCommunicationException(e);
- }
- }
-
- /**
- * Returns the <code>OutputStream</code> used to send requests
- * to the server.
- */
- public OutputStream getOutputStream() throws CVSException {
- if (!isEstablished())
- return null;
- return serverConnection.getOutputStream();
- }
- /**
- * Returns the <code>InputStream</code> used to read responses from
- * the server.
- */
- public InputStream getInputStream() throws CVSException {
- if (!isEstablished())
- return null;
- if (fResponseStream == null)
- fResponseStream = serverConnection.getInputStream();
- return fResponseStream;
- }
-
- /**
- * Returns <code>true</code> if the connection is established;
- * otherwise <code>false</code>.
- */
- public boolean isEstablished() {
- return fIsEstablished;
- }
-
- /**
- * Opens the connection.
- */
- public void open(IProgressMonitor monitor) throws CVSException {
- if (isEstablished())
- return;
- try {
- serverConnection.open(monitor);
- } catch (IOException e) {
- throw new CVSCommunicationException(e);
- }
- fIsEstablished= true;
- }
- /**
- * Reads a line from the response stream.
- */
- public String readLine() throws CVSException {
- if (!isEstablished())
- throw new CVSCommunicationException(Policy.bind("Connection.readUnestablishedConnection"));//$NON-NLS-1$
- try {
- InputStream in = getInputStream();
- int index = 0;
- int r;
- while ((r = in.read()) != -1) {
- if (r == NEWLINE) break;
- readLineBuffer = append(readLineBuffer, index++, (byte) r);
- }
- String result = new String(readLineBuffer, 0, index);
- if (Policy.DEBUG_CVS_PROTOCOL) System.out.println(result);
- return result;
- } catch (IOException e) {
- throw new CVSCommunicationException(e);
- }
- }
-
- static String readLine(InputStream in) throws IOException {
- byte[] buffer = new byte[256];
- int index = 0;
- int r;
- while ((r = in.read()) != -1) {
- if (r == NEWLINE)
- break;
- buffer = append(buffer, index++, (byte) r);
- }
- String result = new String(buffer, 0, index);
- if (Policy.DEBUG_CVS_PROTOCOL)
- System.out.println(result);
- return result;
- }
-
- //---- Helper to send strings to the server ----------------------------
-
- /**
- * Sends the given string to the server.
- */
- public void write(String s) throws CVSException {
- write(s.getBytes(), false);
- }
-
- /**
- * Sends the given bytes to the server.
- */
- public void write(byte[] b, int off, int len) throws CVSException {
- write(b, off, len, false);
- }
- /**
- * Sends the given string and a newline to the server.
- */
- public void writeLine(String s) throws CVSException {
- write(s.getBytes(), true);
- }
- /**
- * Sends the given bytes and a newline to the server.
- */
- public void writeLine(byte[] b, int off, int len) throws CVSException {
- write(b, off, len, true);
- }
-
- void write (byte[] bytes, boolean newLine) throws CVSException {
- write(bytes, 0, bytes.length, newLine);
- }
-
- /**
- * Low level method to write a string to the server. All write* methods are
- * funneled through this method.
- */
- void write(byte[] b, int off, int len, boolean newline) throws CVSException {
- if (!isEstablished())
- throw new CVSCommunicationException(Policy.bind("Connection.writeUnestablishedConnection"));//$NON-NLS-1$
-
- if (Policy.DEBUG_CVS_PROTOCOL)
- System.out.print(new String(b, off, len) + (newline ? "\n" : ""));//$NON-NLS-1$ //$NON-NLS-2$
-
- try {
- OutputStream out= getOutputStream();
- out.write(b, off, len);
- if (newline)
- out.write(NEWLINE);
- out.flush();
-
- } catch (IOException e) {
- throw new CVSCommunicationException(e);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/ExtConnection.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/ExtConnection.java
deleted file mode 100644
index b5617526c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/ExtConnection.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.connection;
-
-
-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.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.TimeoutInputStream;
-import org.eclipse.team.internal.core.streams.TimeoutOutputStream;
-
-/**
- * Implements a connection method which invokes an external tool to
- * establish the connection to the cvs server. Authentication and starting
- * of the cvs server are the responsibility of the external connection
- * tool.
- */
-public class ExtConnection implements IServerConnection {
-
- // The default port for rsh
- private static final int DEFAULT_PORT = 9999;
-
- // cvs format for the repository (e.g. :extssh:user@host:/home/cvs/repo)
- private ICVSRepositoryLocation location;
- private String password;
-
- // incoming from remote host
- InputStream inputStream;
-
- // outgoing to remote host
- OutputStream outputStream;
-
- // Process spawn to run the command
- Process process;
-
- protected ExtConnection(ICVSRepositoryLocation location, String password) {
- this.location = location;
- this.password = password;
- }
-
- /**
- * Closes the connection.
- */
- public void close() throws IOException {
- try {
- if (inputStream != null) inputStream.close();
- } finally {
- inputStream = null;
- try {
- if (outputStream != null) outputStream.close();
- } finally {
- outputStream = null;
- if (process != null) process.destroy();
- }
- }
- }
-
- /**
- * 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 {
- String[] command = ((CVSRepositoryLocation)location).getExtCommand(password);
- boolean connected = false;
- try {
- process = Util.createProcess(command, monitor);
-
- inputStream = new PollingInputStream(new TimeoutInputStream(process.getInputStream(),
- 8192 /*bufferSize*/, 1000 /*readTimeout*/, -1 /*closeTimeout*/), location.getTimeout(), monitor);
- outputStream = new PollingOutputStream(new TimeoutOutputStream(process.getOutputStream(),
- 8192 /*buffersize*/, 1000 /*writeTimeout*/, 1000 /*closeTimeout*/), location.getTimeout(), monitor);
-
- // XXX need to do something more useful with stderr
- // discard the input to prevent the process from hanging due to a full pipe
- Thread thread = new DiscardInputThread(process.getErrorStream());
- connected = true;
- } finally {
- if (! connected) {
- try {
- close();
- } finally {
- // Ignore any exceptions during close
- }
- }
- }
- }
-
- private static class DiscardInputThread extends Thread {
- private InputStream in;
- public DiscardInputThread(InputStream in) {
- this.in = in;
- }
- public void run() {
- try {
- try {
- while (in.read() != -1);
- } finally {
- in.close();
- }
- } catch (IOException e) {
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/ExtConnectionMethod.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/ExtConnectionMethod.java
deleted file mode 100644
index 94c5f0de9..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/ExtConnectionMethod.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.internal.ccvs.core.connection;
-
-
-import org.eclipse.team.internal.ccvs.core.*;
-
-public class ExtConnectionMethod implements IConnectionMethod {
- /**
- * @see IConnectionMethod#getName
- */
- public String getName() {
- return "ext"; //$NON-NLS-1$
- }
-
- /**
- * @see IConnectionMethod#createConnection
- */
- public IServerConnection createConnection(ICVSRepositoryLocation repositoryRoot, String password) {
- return new ExtConnection(repositoryRoot, password);
- }
-
- public void disconnect(ICVSRepositoryLocation location) {
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/PServerConnection.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/PServerConnection.java
deleted file mode 100644
index 8d9faa04e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/PServerConnection.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.connection;
-
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-import java.io.OutputStream;
-import java.net.Socket;
-
-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.Policy;
-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;
-
-/**
- * A connection used to talk to an cvs pserver.
- */
-public class PServerConnection implements IServerConnection {
-
- public static final char NEWLINE= 0xA;
-
- /** default CVS pserver port */
- private static final int DEFAULT_PORT= 2401;
-
- /** error line indicators */
- private static final char ERROR_CHAR = 'E';
- private static final String ERROR_MESSAGE = "error 0";//$NON-NLS-1$
- private static final String NO_SUCH_USER = "no such user";//$NON-NLS-1$
-
- private static final char[] SCRAMBLING_TABLE=new char[] {
- 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
- 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
- 114,120,53,79,96,109,72,108,70,64,76,67,116,74,68,87,
- 111,52,75,119,49,34,82,81,95,65,112,86,118,110,122,105,
- 41,57,83,43,46,102,40,89,38,103,45,50,42,123,91,35,
- 125,55,54,66,124,126,59,47,92,71,115,78,88,107,106,56,
- 36,121,117,104,101,100,69,73,99,63,94,93,39,37,61,48,
- 58,113,32,90,44,98,60,51,33,97,62,77,84,80,85,223,
- 225,216,187,166,229,189,222,188,141,249,148,200,184,136,248,190,
- 199,170,181,204,138,232,218,183,255,234,220,247,213,203,226,193,
- 174,172,228,252,217,201,131,230,197,211,145,238,161,179,160,212,
- 207,221,254,173,202,146,224,151,140,196,205,130,135,133,143,246,
- 192,159,244,239,185,168,215,144,139,165,180,157,147,186,214,176,
- 227,231,219,169,175,156,206,198,129,164,150,210,154,177,134,127,
- 182,128,158,208,162,132,167,209,149,241,153,251,237,236,171,195,
- 243,233,253,240,194,250,191,155,142,137,245,235,163,242,178,152
- };
-
- /** Communication strings */
- private static final String BEGIN= "BEGIN AUTH REQUEST";//$NON-NLS-1$
- private static final String END= "END AUTH REQUEST";//$NON-NLS-1$
- private static final String LOGIN_OK= "I LOVE YOU";//$NON-NLS-1$
- private static final String LOGIN_FAILED= "I HATE YOU";//$NON-NLS-1$
-
- private String password;
- private ICVSRepositoryLocation cvsroot;
-
- private Socket fSocket;
-
- private InputStream inputStream;
- private OutputStream outputStream;
-
- /**
- * @see Connection#doClose()
- */
- public void close() throws IOException {
- try {
- if (inputStream != null) inputStream.close();
- } finally {
- inputStream = null;
- try {
- if (outputStream != null) outputStream.close();
- } finally {
- outputStream = null;
- try {
- if (fSocket != null) fSocket.close();
- } finally {
- fSocket = null;
- }
- }
- }
- }
-
- /**
- * @see Connection#doOpen()
- */
- public void open(IProgressMonitor monitor) throws IOException, CVSAuthenticationException {
-
- monitor.subTask(Policy.bind("PServerConnection.authenticating"));//$NON-NLS-1$
- monitor.worked(1);
-
- fSocket = createSocket(monitor);
- boolean connected = false;
- try {
- this.inputStream = new BufferedInputStream(new PollingInputStream(fSocket.getInputStream(),
- cvsroot.getTimeout(), monitor));
- this.outputStream = new PollingOutputStream(new TimeoutOutputStream(
- fSocket.getOutputStream(), 8192 /*bufferSize*/, 1000 /*writeTimeout*/, 1000 /*closeTimeout*/),
- cvsroot.getTimeout(), monitor);
- authenticate();
- connected = true;
- } finally {
- if (! connected) cleanUpAfterFailedConnection();
- }
- }
-
- /**
- * @see Connection#getInputStream()
- */
- public InputStream getInputStream() {
- return inputStream;
- }
- /**
- * @see Connection#getOutputStream()
- */
- public OutputStream getOutputStream() {
- return outputStream;
- }
-
- /**
- * Creates a new <code>PServerConnection</code> for the given
- * cvs root.
- */
- PServerConnection(ICVSRepositoryLocation cvsroot, String password) {
- this.cvsroot = cvsroot;
- this.password = password;
- }
- /**
- * Does the actual authentification.
- */
- private void authenticate() throws IOException, CVSAuthenticationException {
- String scrambledPassword = scramblePassword(password);
-
- String user = cvsroot.getUsername();
- OutputStream out = getOutputStream();
-
- StringBuffer request = new StringBuffer();
- request.append(BEGIN);
- request.append(NEWLINE);
- request.append(cvsroot.getRootDirectory());
- request.append(NEWLINE);
- request.append(user);
- request.append(NEWLINE);
- request.append(scrambledPassword);
- request.append(NEWLINE);
- request.append(END);
- request.append(NEWLINE);
- out.write(request.toString().getBytes());
- out.flush();
- String line = Connection.readLine(getInputStream());
-
- // Return if we succeeded
- if (LOGIN_OK.equals(line))
- return;
-
- // Otherwise, determine the type of error
- if (line.length() == 0)
- throw new IOException(Policy.bind("PServerConnection.noResponse"));//$NON-NLS-1$
- if (LOGIN_FAILED.equals(line))
- throw new CVSAuthenticationException(Policy.bind("PServerConnection.loginRefused"), CVSAuthenticationException.RETRY);//$NON-NLS-1$
- String message = "";//$NON-NLS-1$
- // Skip any E messages for now
- while (line.charAt(0) == ERROR_CHAR) {
- // message += line.substring(1) + " ";
- line = Connection.readLine(getInputStream());
- }
- // Remove leading "error 0"
- if (line.startsWith(ERROR_MESSAGE))
- message += line.substring(ERROR_MESSAGE.length() + 1);
- else
- message += line;
- if (message.indexOf(NO_SUCH_USER) != -1)
- throw new CVSAuthenticationException(Policy.bind("PServerConnection.invalidUser", new Object[] {message}), CVSAuthenticationException.RETRY);//$NON-NLS-1$
- throw new IOException(Policy.bind("PServerConnection.connectionRefused", new Object[] { message }));//$NON-NLS-1$
- }
- /*
- * Called if there are exceptions when connecting.
- * This method makes sure that all connections are closed.
- */
- private void cleanUpAfterFailedConnection() throws IOException {
- try {
- if (inputStream != null)
- inputStream.close();
- } finally {
- try {
- if (outputStream != null)
- outputStream.close();
- } finally {
- try {
- if (fSocket != null)
- fSocket.close();
- } finally {
- fSocket = null;
- }
- }
- }
-
- }
- /**
- * Creates the actual socket
- */
- protected Socket createSocket(IProgressMonitor monitor) throws IOException {
- // Determine what port to use
- int port = cvsroot.getPort();
- if (port == ICVSRepositoryLocation.USE_DEFAULT_PORT)
- port = DEFAULT_PORT;
- // Make the connection
- Socket result;
- try {
- result= Util.createSocket(cvsroot.getHost(), port, monitor);
- // Bug 36351: disable buffering and send bytes immediately
- result.setTcpNoDelay(true);
- } catch (InterruptedIOException e) {
- // If we get this exception, chances are the host is not responding
- throw new InterruptedIOException(Policy.bind("PServerConnection.socket", new Object[] {cvsroot.getHost()}));//$NON-NLS-1$
- }
- result.setSoTimeout(1000); // 1 second between timeouts
- return result;
- }
-
- private String scramblePassword(String password) throws CVSAuthenticationException {
- int length = password.length();
- char[] out= new char[length];
- for (int i= 0; i < length; i++) {
- char value = password.charAt(i);
- if( value < 0 || value > 255 )
- throwInValidCharacter();
- out[i]= SCRAMBLING_TABLE[value];
- }
- return "A" + new String(out);//$NON-NLS-1$
- }
-
- private void throwInValidCharacter() throws CVSAuthenticationException {
- throw new CVSAuthenticationException(Policy.bind("PServerConnection.invalidChars"), CVSAuthenticationException.RETRY);//$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/PServerConnectionMethod.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/PServerConnectionMethod.java
deleted file mode 100644
index 48e152429..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/PServerConnectionMethod.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.internal.ccvs.core.connection;
-
-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 PServerConnectionMethod implements IConnectionMethod {
- /**
- * @see IConnectionMethod#createConnection(ICVSRepositoryLocation, String)
- */
- public IServerConnection createConnection(ICVSRepositoryLocation location, String password) {
- return new PServerConnection(location, password);
- }
- /**
- * @see IConnectionMethod#getName()
- */
- public String getName() {
- return "pserver";//$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.IConnectionMethod#disconnect(org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation)
- */
- public void disconnect(ICVSRepositoryLocation location) {
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/UserInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/UserInfo.java
deleted file mode 100644
index 110aeedcb..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/connection/UserInfo.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.internal.ccvs.core.connection;
-
-
-import org.eclipse.team.internal.ccvs.core.IUserInfo;
-
-/**
- * @version 1.0
- * @author
- */
-public class UserInfo implements IUserInfo {
-
- private String username;
- private String password;
- private boolean isUsernameMutable;
-
- protected UserInfo(String username, String password, boolean isUsernameMutable) {
- this.username = username;
- this.password = password;
- this.isUsernameMutable = isUsernameMutable;
- }
-
- /*
- * @see IUserInfo#getUsername()
- */
- public String getUsername() {
- return username;
- }
-
- protected String getPassword() {
- return password;
- }
-
- /*
- * @see IUserInfo#isUsernameMutable()
- */
- public boolean isUsernameMutable() {
- return false;
- }
-
- /*
- * @see IUserInfo#setPassword(String)
- */
- public void setPassword(String password) {
- this.password = password;
- }
-
- /*
- * @see IUserInfo#setUsername(String)
- */
- public void setUsername(String username) {
- this.username = username;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties
deleted file mode 100644
index 7a2eb31f4..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/messages.properties
+++ /dev/null
@@ -1,346 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-org.eclipse.team.internal.provider.cvs.CVSException=CVS Error: {0}
-
-ok=ok
-null=null
-internal=An internal error has occurred. Consult the error log for details.
-
-AbstractStructureVisitor.sendingFolder=Processing {0}
-AbstractStructureVisitor.sendingFile=Processing {0}
-AbstractStructureVisitor.noRemote=Unable to determine remote location for resource
-
-AddDeleteMoveListener.deletedResource={0} has been deleted locally
-AddDeleteMoveListener.Error_creating_deletion_marker_1=Error creating deletion marker
-AddDeleteMoveListener.Local_addition_not_under_CVS_control_2=Local addition not under CVS control
-AddDeleteMoveListener.Error_creating_addition_marker_3=Error creating addition marker
-AddDeleteMoveListener.Error_updating_marker_state_4=Error updating marker state
-
-CVSAuthenticationException.detail=Authentication error: {0}
-CVSCommunicationException.io=CVS communication error: {0}
-CVSCommunicationException.interruptCause=The most likely cause of the interrupt is either an intermittent network failure or a communications timeout.
-CVSCommunicationException.interruptSolution=The CVS communications timeout can be adjusted in the Team/CVS preferences.
-CVSCommunicationException.alternateInterruptCause=Another possible cause is the improper configuration of the "ext" connection method.
-CVSCommunicationException.alternateInterruptSolution=The "ext" connection method can be configured on the Team/CVS/EXT Connection Method preference page
-CVSFileException.io=Error accessing CVS file
-CVSDiffException.message=The compared files are different
-CVSStatus.messageWithRoot={0}: {1}
-
-CVSTag.nullName=Name must not be null
-CVSTag.emptyName=Name must not be empty
-CVSTag.beginName=Name must start with a letter
-CVSTag.badCharName=Name must not contain spaces or the characters `$,.:;@|'
-
-CVSWorkspaceRoot.notCVSFolder=The CVS synchronization information for {0} has become corrupt or does not exist
-
-java.io.IOException=I/O exception occurred: {0}
-java.io.EOFException=End of file encountered: {0}
-java.io.FileNotFoundException=File not found: {0}
-java.io.InterruptedIOException=I/O has been interrupted.
-java.net.UnknownHostException=Cannot locate host
-java.net.ConnectException=Cannot connect to host
-java.net.SocketException=Socket Exception: {0}
-
-Connection.cannotClose=Cannot close connection
-Connection.readUnestablishedConnection=Failure due to attempt to read from an unestablished connection
-Connection.writeUnestablishedConnection=Failure due to attempt to write to an unestablished connection
-
-PServerConnection.invalidChars=Invalid characters in password
-PServerConnection.hostInvalid=Invalid host
-PServerConnection.loginRefused=Incorrect user name or password
-PServerConnection.invalidUser={0}
-PServerConnection.socket=Cannot connect to host: {0}
-PServerConnection.connectionRefused=Connection refused: {0}
-PServerConnection.stream=Error opening socket connection
-PServerConnection.noResponse=No response from server
-PServerConnection.authenticating=Authenticating using pserver
-
-CVSProviderPlugin.cannotUpdateDescription=Error updating project description
-CVSProviderPlugin.errorDeletingCache=Error occurred deleting cache: {0}
-CVSProviderPlugin.errorCreatingCache=Error occurred creating cache: {0}
-CVSProviderPlugin.unknownStateFileVersion=Could not read CVS state file: unknown version '{0}'.
-
-CVSProvider.exception=Internal error occurred.
-CVSProvider.invalidResource=Resource {0} is not a CVS resource
-CVSProvider.initialImport=Initial import
-CVSProvider.alreadyExists=The specified repository location already exists.
-CVSProvider.rename=An I/O Exception occurred while renaming the state file {0}
-CVSProvider.save=An I/O Exception occurred while saving the state file {0}
-CVSProvider.ioException=I/O Exception occurred on the state file
-CVSProvider.errorSaving=Error saving state
-CVSProvider.errorLoading=Error loading state
-CVSProvider.infoMismatch=Provided CVS information does not match that on disk for project {0}
-
-CVSTeamProvider.noFolderInfo=Project {0} does not contain CVS folder meta-information
-CVSTeamProvider.deconfigureProblem=Error while deconfiguring CVS project {0}
-CVSTeamProvider.initializationFailed=Initialization of CVS for project {0} failed
-CVSTeamProvider.visitError=An error occurred while visiting resource {0}
-CVSTeamProvider.invalidResource=Resource {0} is not a child of project {1}
-CVSTeamProvider.checkinProblems=Problems occurred committing resources to server
-CVSTeamProvider.invalidProjectState=CVS sharing information is missing from project {0}
-CVSTeamProvider.typesDiffer=Error retrieving remote resource tree. Local and remote resource types differ for {0}
-CVSTeamProvider.connectionInfo=Updating connection information for project {0}
-CVSTeamProvider.folderInfo=Updating folder synchronization information for project {0}
-CVSTeamProvider.updatingFolder=Updating {0}
-CVSTeamProvider.scrubbingResource=Scrubbing {0}
-CVSTeamProvider.updatingFile=Updating {0}
-CVSTeamProvider.makeBranch=Creating branch
-CVSTeamProvider.preparingToSetKSubst=Preparing to set keyword substitution mode
-CVSTeamProvider.settingKSubst=Setting keyword substitution mode
-CVSTeamProvider.cleanLineDelimitersException=Exception occurred while cleaning line delimiters
-CVSTeamProvider.changingKeywordComment=*** keyword substitution change ***
-CVSTeamProvider.errorGettingFetchProperty=Could not get "fetch new directory" property for project ''{0}''.
-CVSTeamProvider.errorSettingFetchProperty=Could not set "fetch new directory" property for project ''{0}''.
-CVSTeamProvider.overlappingRemoteFolder=Cannot create linked resource ''{0}'' because a folder of the same name exists remotely.
-CVSTeamProvider.overlappingFileDeletion=Cannot create linked resource ''{0}'' because a deletion for the file of that name has not been committed.
-CVSTeamProvider.errorGettingWatchEdit=Could not get "watch/edit" property for project ''{0}''.
-CVSTeamProvider.errorSettingWatchEdit=Could not set "watch/edit" property for project ''{0}''.
-CVSTeamProvider.errorAddingFileToDiff=An I/O error occurred adding file ''{0}'' to the patch output.
-
-ResourceDeltaVisitor.visitError=Error while processing resource deltas
-
-ResponseDispatcher.serverError=The CVS server responded with an error (see the CVS console)
-ResponseDispatcher.problemsReported= Errors occurred during the CVS operation
-ResponseDispatcher.receiving=Receiving response
-
-FileProperties.invalidEntryLine=Invalid entry line: {0}
-
-EclipseResource.invalidResourceClass=Two different implementations of ICVSResource used
-
-RemoteResource.invalidResourceClass=Two different implementations of ICVSResource used
-RemoteResource.invalidOperation=Invalid operation performed on remote resource
-RemoteFolder.errorFetchingRevisions=Error fetching file revision numbers
-RemoteFolder.invalidChild=Resource {0} is not a child of folder {1}
-RemoteFolder.errorFetchingRevisions=Error fetching file revisions
-RemoteFolder.errorFetchingMembers=One or more error occurred fetching the members of a remote folder
-RemoteFolder.doesNotExist=Folder {0} does not exist remotely
-
-RemoteFile.noContentsReceived=No contents received from server for {0}
-RemoteFile.errorRetrievingFromCache=Error occurred retrieving cached contents: {0}
-
-RemoteFolderTreeBuilder.buildingBase=Collecting local synchronization information
-RemoteFolderTreeBuilder.receivingDelta=Receiving delta for {0}
-RemoteFolderTreeBuilder.receivingRevision=Receiving revision for {0}
-RemoteFolderTreeBuilder.missingParent=An error has occurred processing file ''{0} {1}''
-RemoteFolderTreeBuild.folderDeletedFromServer=Folder ''{0}'' has been deleted from the server.
-
-ReplaceWithBaseVisitor.replacing=Replacing ''{0}''
-
-Session.badInt="Malformed file transmission received"
-Session.receiving=Receiving file: {0}
-Session.sending=Sending file: {0}
-Session.transfer={0} ({1}K of {2}K bytes)
-Session.transferNoSize={0}
-Session.calculatingCompressedSize=Calculating compressed size: {0}
-
-Command.receivingResponses=Receiving server response
-Command.warnings=The following warnings were reported while performing the "cvs {0}" command.
-Command.serverError=The server reported an error while performing the "cvs {0}" command.
-Command.noMoreInfoAvailable=The server did not provide any additional information.
-Command.add=add
-Command.admin=admin
-Command.annotate=annotate
-Command.co=checkout
-Command.ci=commit
-Command.diff=diff
-Command.editors=editors
-Command.import=import
-Command.log=log
-Command.remove=remove
-Command.status=status
-Command.tag=tag
-Command.rtag=rtag
-Command.update=update
-Command.version=version
-Command.rdiff=rdiff
-Command.valid-requests=valid-requests
-Command.expand-modules=expand-modules
-Command.unsupportedResponse=Unknown response received from cvs server: {0} {1}
-Command.argumentNotManaged=Argument {0} is not managed
-Command.invalidTag=HEAD is not a valid tag
-Command.noOpenSession=The CVS command cannot be issued because there is no connection available
-Command.seriousServerError=The server reported an error: {0}
-
-Commit.syncInfoMissing=The commit operation succeeded. However, committed file ''{0}'' no longer has CVS synchronization information.
-Commit.timestampReset=The modification timestamp was changed for ''{0}'' but the contents match that of the server. The timstamp has been reset.
-
-Diff.serverError=The server reported an error while performing the "cvs diff" command which may only indicate that a difference exists.
-
-Tag.notVersionOrBranchError=Error applying tag: the tag provided is not a version or branch tag.
-
-DefaultHandler.connectionClosed=The connection to the server has been closed
-ModTimeHandler.invalidFormat=The server modification time {0} is in an unknown format
-Updated.numberFormat=Server did not send length of the file
-UnsupportedHandler.message=Unsupported response received from server
-RemovedHandler.invalid=Invalid removed response received from CVS server for {0}
-CheckInHandler.checkedIn= Receiving confirmation for file {0}.
-
-KSubstOption.-kb.short=Binary
-KSubstOption.-kb.long=Binary (-kb)
-KSubstOption.-ko.short=ASCII -ko
-KSubstOption.-ko.long=ASCII without keyword substitution (-ko)
-KSubstOption.-kkv.short=ASCII -kkv
-KSubstOption.-kkv.long=ASCII with keyword expansion (-kkv)
-KSubstOption.-kkvl.short=ASCII -kkvl
-KSubstOption.-kkvl.long=ASCII with keyword expansion and locker (-kkvl)
-KSubstOption.-kv.short=ASCII -kv
-KSubstOption.-kv.long=ASCII with keyword replacement (-kv)
-KSubstOption.-kk.short=ASCII -kk
-KSubstOption.-kk.long=ASCII with keyword compression (-kk)
-KSubstOption.unknown.short=Unknown {0}
-KSubstOption.unknown.long=Unknown ({0})
-
-AdminKSubstListener.expectedRCSFile=Expected RCS file {0} to end in ',v'
-AdminKSubstListener.commandRootNotManaged=Local root for this command is not managed
-AdminKSubstListener.expectedChildOfCommandRoot=Expected RCS file {0} to be a child of remote root for this command {1}
-AdminKSubstListener.couldNotSetResourceSyncInfo=Could not set resource sync info for {0}: {1}
-
-CVSRepositoryLocation.nullLocation=Location must not be null
-CVSRepositoryLocation.emptyLocation=Location must not be empty
-CVSRepositoryLocation.endWhitespace=Location must not end with whitespace
-CVSRepositoryLocation.locationForm=Location must have form ':methodname:[user[:password]@]host:[port]/path/to/cvsroot'
-CVSRepositoryLocation.startOfLocation=Location must start with a connection method name enclosed in colons
-CVSRepositoryLocation.methods=Only the following methods are supported: {0}
-CVSRepositoryLocation.parsingMethod=Error in connection method specification
-CVSRepositoryLocation.parsingUser=Error in user name specification
-CVSRepositoryLocation.parsingPassword=Error in password specification
-CVSRepositoryLocation.parsingHost=Error in host specification
-CVSRepositoryLocation.parsingPort=Error in port specification
-CVSRepositoryLocation.parsingRoot=Error in repository root directory specification
-CVSRepositoryLocation.invalidFormat=Invalid CVS repository location format: {0}
-CVSRepositoryLocation.authenticationCanceled=Authentication canceled by user
-CVSRepositoryLocation.errorCaching=Error occurred while saving password for {0}
-CVSRepositoryLocation.errorFlushing=Error occurred while flushing password for {0}
-CVSRepositoryLocation.openingConnection=Opening connection to {0}
-CVSRepositoryLocation.usernameRequired=A username is required to make a connection
-CVSRepositoryLocation.cvsntPrefix=CVSNT repository ''{0}'' is configured to use a repository prefix. However, CVSNT does not always properly communicate resource paths in this mode resulting in the failure of some specialized Eclipse CVS operations. The use of a repository prefix should be disable if the full functionality of the Eclipse CVS client is desired
-
-ProjectDescriptionContentHandler.xml=Error parsing project description file
-
-Util.invalidResource=Resource {1} is not relative to root {0}
-Util.timeout=A timeout occurred connecting to host {0}
-Util.processTimeout=A timeout occurred executing command ''{0}''
-Util.truncatedPath=...{0}
-
-Synchronizer.reload=Examining {0}
-Checking_out_from_CVS..._5=Checking out from CVS...
-FileSystemSynchronizer_Error_loading_from_CVS/Entries_file_1=Error loading from CVS/Entries file
-FileSystemSynchronizer_Error_loading_from_.cvsignore_file_2=Error loading from .cvsignore file
-FileSystemSynchronizer_Error_loading_from_CVS/Root,Repository_files_3=Error loading from CVS/Root,Repository files
-FileSystemSynchronizer_Error_reloading_sync_information_5=Error reloading sync information
-Malformed_entry_line___11=Malformed entry line:
-Malformed_entry_line,_missing_name___12=Malformed entry line, missing name:
-Malformed_entry_line,_missing_revision___13=Malformed entry line, missing revision:
-FolderSyncInfo_Maleformed_root_4=Malformed root
-SyncFileUtil_Error_writing_to_Entries.log_48=Error writing to Entries.log
-SyncFileUtil_Cannot_close_Entries.log_49=Cannot close Entries.log
-SyncFileUtil_Error_reloading_sync_information_58=Error reloading sync information
-SyncFileUtil_Error_writing_to_.cvsignore_61=Error writing to .cvsignore
-SyncFileUtil_Cannot_close_.cvsignore_62=Cannot close .cvsignore
-SyncFileWriter.baseNotAvailable=Could not restore the base contents of ''{0}'' from the local cache.
-BaseRevInfo.malformedEntryLine=Malformed entry line ''{0}'' for base revision information file.
-
-FileModificationValidator.isReadOnly=File is Read Only.
-
-EXTServerConnection.invalidPort=A port cannot be specified for the ext connection method.
-EXTServerConnection.varsNotSet=Cannot run external ext program because CVS_RSH and CVS_SERVER variables are not initialized.
-EXTServerConnection.ioError=Error starting external connection program: {0}. Ensure that the path is correct and that you can connect manually using this program.
-
-CVSRemoteSyncElement.rootDiffers=Error mapping local folder {0} to repository {1}. It is already managed by repository {2}.
-CVSRemoteSyncElement.repositoryDiffers=Error mapping local folder {0} to remote folder {1}. It is already mapped to {2}.
-Util.Internal_error,_resource_does_not_start_with_root_3=Internal error, resource does not start with root
-
-CVSProvider.Scrubbing_local_project_1=Scrubbing local project
-CVSProvider.Scrubbing_projects_1=Scrubbing projects
-CVSProvider.Creating_projects_2=Creating projects
-
-EclipseFile_Problem_deleting_resource=Problem deleting resource: {0}. {1}
-EclipseFile_Problem_accessing_resource=Problem accessing resource: {0}. {1} Perform a Refresh.
-EclipseFile_Problem_creating_resource=Problem creating resource: {0}. {1}
-EclipseFile_Problem_writing_resource=Problem writing resource ''{0}''. {1}
-EclipseFolder_problem_creating=Problem creating folder: {0}. {1}
-EclipseFolder.isModifiedProgress=Determining if {0} has outgoing changes...
-
-EclipseSynchronizer.UpdatingSyncEndOperation=Updating CVS synchronization information...
-EclipseSynchronizer.UpdatingSyncEndOperationCancelled=Operation cancelled: updating CVS synchronization information...
-EclipseSynchronizer.NotifyingListeners=Notifying of CVS changes...
-EclipseSynchronizer.ErrorSettingFolderSync=Cannot set folder sync info on {0}
-EclipseSynchronizer.ErrorSettingResourceSync=Cannot set resource sync info on {0}
-EclipseSynchronizer.ErrorSettingIgnorePattern=Cannot set ignored pattern on {0}
-EclipseSynchronizer.ErrorCommitting=Errors saving CVS synchronization information to disk. Please fix the problems listed below and then update the affected resources from the CVS repository.
-EclipseSynchronizer.folderSyncInfoMissing=CVS synchronization information could not be found for folder ''{0}''
-EclipseSynchronizer.workspaceClosedForResource=Invalid attempt to modify the sync info for resource ''{0}''
-
-SynchrnoizerSyncInfoCache.failedToSetSyncBytes=Could not change sync info for ''{0}'' from ''{1}'' to ''{2}'' because the workspace is locked.
-
-SyncFileChangeListener.errorSettingTeamPrivateFlag=Error setting team-private flag on resource
-
-RemoteFile.getContents=Retrieving remote file contents
-RemoteFile.getLogEntries=Retrieving log entries
-RemoteFolder.exists=Checking if resource exists remotely
-RemoteFolder.getMembers=Retrieving children of remote folder
-RemoteModule.getRemoteModules=Retrieving remote modules
-RemoteModule.invalidDefinition=Invalid module definition ''{0}'' received from ''{1}''.
-
-PruneFolderVisitor.caseVariantsExist=The following resources could not be created.
-PruneFolderVisitor.caseVariantExists=The resource ''{0}'' could not be created because another resource exists whose path differs only by case.
-
-Version.unsupportedVersion=Host ''{0}'' is running unsupported CVS version {1}. Although most functionality works, use version 1.11.1p1 or later for full support.
-Version.unsupportedCVSNT=Host ''{0}'' is running CVS NT (version {1}) which is not fully supported. However, most functionality is available.
-Version.unknownVersionFormat=Host ''{0}'' is running ''{1}'' which is an unknown version to the workbench. Although most functionality may work, use version 1.11.1p1 or later for full support.
-Version.versionNotValidRequest=Unable to determine server version. Host ''{0}'' does not support the ''cvs version'' command. Although most functionality works, use version 1.11.1p1 or later for full support.
-
-LogListener.invalidRevisionFormat=Invalid revision format ''{1}'' for tag ''{0}''.
-RemoteFile.Could_not_cache_remote_contents_to_disk._Caching_remote_file_in_memory_instead._1=Could not cache remote contents to disk. Caching remote file in memory instead. Exception follows.
-
-NotifyInfo.MalformedLine=Invalid Notify format: ''{0}''
-NotifyInfo.MalformedNotificationType=Invalid notification type in line: ''{0}''
-NotifyInfo.MalformedNotifyDate=Invalid date format in line: ''{0}''
-
-Session.dot_2=dot
-
-ResourceSynchronizer.missingParentBytesOnGet=Synchronization bytes are missing for parent of resource ''{1}'' in synchronization partner ''{0}'' on get.
-ResourceSynchronizer.missingParentBytesOnSet=Synchronization bytes are missing for parent of resource ''{1}'' in synchronization partner ''{0}'' on set.
-CVSAnnotateBlock.4=lines
-CVSAnnotateBlock.5=line
-CVSAnnotateBlock.6={0} {1} ({2} {3})
-CVSMergeSubscriber.2=CVS Merge: {0} to {1}
-CVSMergeSubscriber.4=Shows the the differences between a merge source and the workspace.
-CVSMergeSubscriber.13=Error restoring merge subscriber: {0} is an invalid save context.
-CVSMergeSubscriber.19=Error restoring merge subscriber {0}: There are no roots in the save context.
-CVSMergeSubscriber.21=Ignoring root resource {0} because it does not exist in the current workspace.
-CVSMergeSubscriber.22=Error restoring merge subscriber {0}: There are no existing roots in the save context.
-CVSProviderPlugin.20=CVS Workspace
-CVSProviderPlugin.21=Synchronizes the CVS managed resources in your workspace with their associated remote location
-CVSSyncTreeSubscriber.0={0} is not a valid comparison criteria for subscriber {1}
-CVSRevisionNumberCompareCriteria.1=Comparing revision numbers
-ReentrantLock.9=An error occurred writting CVS synchronization information to disk. Some information may be lost.
-CRLFDetectInputStream.0=CVS file {0} either contains invalid line endings on the server (CR/LF instead of just LF) or is a binary file that is not marked as -kb.
-SynchronizerSyncInfoCache.0=Synchronization information could not be cached for {0}. The only negative effect of this may be decreased performance.
-DeferredResourceChangeHandler.0=Reconciling CVS state changes
-DeferredResourceChangeHandler.1=Errors occured handling ignore file (.cvsignore) changes. Some resources may not be decorated properly.
-CVSWorkspaceRoot.11=The parent folder of managed file {0} does not have sync info associated with it.
-RemoveEntryHandler.2=Remove-entry received and ignored from CVS server for existing file {0}.
-ServerMessageLineMatcher.5=Variable in template is not of the correct format: {0}
-ServerMessageLineMatcher.6=There are additional groups above those defining variables in template: {0}
-ServerMessageLineMatcher.7=Expected variable {0} in {1} but it is not present.
-CVSSyncTreeSubscriber.1=Errors occurred during refresh of {0}
-CVSSyncTreeSubscriber.2=An error occurred refreshing {0}: {1}
-CVSSyncInfo.7=Invalid attempt to make file {0} in-sync. This operation can only be sed on folders.
-CVSSyncInfo.8=Invalid attempt to make outgoing resource {0} in-sync. This operation only applies to incoming or conflicting changes.
-CVSSyncInfo.9=Cannot make {0} in-sync because its parent is not under CVS control.
-CVSSyncInfo.10=Cannot make {0} in-sync because there is no corresponding remote.
-CVSCompareSubscriber.2=CVS Compare with {0}
-CVSCompareSubscriber.3=Shows the differences between a tag and the workspace.
-CompareDiffListener.11=Unsupported message sequence received while comparing using CVS diff command
-CompareDiffListener.12=Unknown message format received while comparing using CVS diff command: {0}
-AnnotateListener.3=Skipping binary file
-AnnotateListener.4=Cannot annotate a binary file.
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSEntryLineTag.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSEntryLineTag.java
deleted file mode 100644
index 69db9b3ad..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSEntryLineTag.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.internal.ccvs.core.resources;
-
-
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-
-public class CVSEntryLineTag extends CVSTag {
-
- /*
- * The parameter tag must not be null.
- */
- public CVSEntryLineTag(CVSTag tag) {
- super(tag.getName(), tag.getType());
- }
-
- public CVSEntryLineTag(String entryLineTag) {
- switch (entryLineTag.charAt(0)) {
- case 'T' : type = BRANCH; break;
- case 'N' : type = VERSION; break;
- case 'D' : type = DATE; break;
- default: type = HEAD;
- }
- name = entryLineTag.substring(1);
- }
- /*
- * Returns the tag name
- */
- public String getName() {
- return name;
- }
- /*
- * Returns the tag type
- */
- public int getType() {
- return type;
- }
-
- public String toEntryLineFormat(boolean useSamePrefixForBranchAndTag) {
- if (type == BRANCH || (type == VERSION && useSamePrefixForBranchAndTag))
- return "T" + name;//$NON-NLS-1$
- else if (type == VERSION)
- return "N" + name;//$NON-NLS-1$
- else if (type == DATE)
- return "D" + name;//$NON-NLS-1$
- return "";//$NON-NLS-1$
- }
-
- /*
- * For debugging purposes.
- */
- public String toString() {
- return toEntryLineFormat(false);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSLocalSyncElement.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSLocalSyncElement.java
deleted file mode 100644
index e2334ca51..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSLocalSyncElement.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.internal.ccvs.core.resources;
-
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.sync.ILocalSyncElement;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.core.sync.LocalSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-public class CVSLocalSyncElement extends LocalSyncElement {
-
- protected IRemoteResource base;
- protected IResource local;
-
- public CVSLocalSyncElement(IResource local, IRemoteResource base) {
- this.local = local;
- this.base = base;
- }
-
- /*
- * @see RemoteSyncElement#create(IResource, IRemoteResource, IRemoteResource)
- */
- public ILocalSyncElement create(IResource local, IRemoteResource base, Object data) {
- return new CVSLocalSyncElement(local, base);
- }
-
- /*
- * @see ILocalSyncElement#getLocal()
- */
- public IResource getLocal() {
- return local;
- }
-
- /*
- * @see ILocalSyncElement#getBase()
- */
- public IRemoteResource getBase() {
- return base;
- }
-
- /*
- * @see ILocalSyncElement#isCheckedOut()
- */
- public boolean isCheckedOut() {
- return getLocal() != null;
- }
-
- /*
- * @see ILocalSyncElement#hasRemote()
- */
- public boolean hasRemote() {
- return getLocal() != null;
- }
-
- /*
- * @see RemoteSyncElement#getData()
- */
- protected Object getData() {
- return null;
- }
-
- /*
- * Answers the CVS resource for this sync element
- */
- public ICVSResource getCVSResource() {
- return getCVSResourceFor(getLocal());
- }
-
- /*
- * @see LocalSyncElement#isIgnored(IResource)
- */
- public boolean isIgnored(IResource child) {
- ICVSResource cvsResource = getCVSResourceFor(getLocal());
- if(cvsResource==null || !cvsResource.isFolder() ) {
- return false;
- } else {
- try {
- ICVSResource managedChild = ((ICVSFolder)cvsResource).getChild(child.getName());
- return managedChild.isIgnored();
- } catch(CVSException e) {
- return false;
- }
- }
- }
-
- private ICVSResource getCVSResourceFor(IResource resource) {
- if(resource.getType() != IResource.FILE) {
- return new EclipseFolder((IContainer)resource);
- } else {
- return new EclipseFile((IFile)resource);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java
deleted file mode 100644
index 6613ca6c3..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.ILocalSyncElement;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.core.sync.RemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-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.Assert;
-
-public class CVSRemoteSyncElement extends RemoteSyncElement {
-
- CVSLocalSyncElement localSync;
- IRemoteResource remote;
- boolean isThreeWay = true;
-
- public CVSRemoteSyncElement(boolean isThreeWay, IResource local, IRemoteResource base, IRemoteResource remote) {
- localSync = new CVSLocalSyncElement(local, base);
- this.remote = remote;
- this.isThreeWay = isThreeWay;
- }
-
- /*
- * @see RemoteSyncElement#create(IResource, IRemoteResource, IRemoteResource)
- */
- public IRemoteSyncElement create(boolean isThreeWay, IResource local, IRemoteResource base, IRemoteResource remote, Object data) {
- return new CVSRemoteSyncElement(isThreeWay, local, base, remote);
- }
-
- /*
- * @see IRemoteSyncElement#getRemote()
- */
- public IRemoteResource getRemote() {
- return remote;
- }
-
- /*
- * @see LocalSyncElement#getData()
- */
- protected Object getData() {
- return localSync.getData();
- }
-
- /*
- * @see ILocalSyncElement#getLocal()
- */
- public IResource getLocal() {
- return localSync.getLocal();
- }
-
- /*
- * @see ILocalSyncElement#getBase()
- */
- public IRemoteResource getBase() {
- return localSync.getBase();
- }
-
- /*
- * @see ILocalSyncElement#isCheckedOut()
- */
- public boolean isCheckedOut() {
- return localSync.isCheckedOut();
- }
-
- /*
- * Local helper to indicate if the corresponding local resource has a base
- */
- public boolean hasBase() {
- return getBase() != null;
- }
-
- /*
- * @see ILocalSyncElement#hasRemote()
- */
- public boolean hasRemote() {
- return remote != null;
- }
-
- /*
- * @see LocalSyncElement#create(IResource, IRemoteResource, Object)
- */
- public ILocalSyncElement create(IResource local, IRemoteResource base, Object data) {
- return localSync.create(local, base, data);
- }
- /*
- * @see LocalSyncElement#isIgnored(IResource)
- */
- public boolean isIgnored(IResource resource) {
- return localSync.isIgnored(resource);
- }
- /*
- * @see IRemoteSyncElement#ignoreBaseTree()
- */
- public boolean isThreeWay() {
- return isThreeWay;
- }
-
- /*
- * Update the sync info of the local resource in such a way that the local changes can be committed.
- */
- public void makeOutgoing(IProgressMonitor monitor) throws TeamException {
-
- int syncKind = getSyncKind(GRANULARITY_TIMESTAMP, monitor);
- boolean incoming = (syncKind & DIRECTION_MASK) == INCOMING;
- boolean outgoing = (syncKind & DIRECTION_MASK) == OUTGOING;
-
- ICVSResource local = localSync.getCVSResource();
- RemoteResource remote = (RemoteResource)getRemote();
- ResourceSyncInfo origInfo = local.getSyncInfo();
- MutableResourceSyncInfo info = null;
- if(origInfo!=null) {
- info = origInfo.cloneMutable();
- }
-
- if (outgoing) {
- // The sync info is alright, it's already outgoing!
- return;
- } else if (incoming) {
- // We have an incoming change, addition, or deletion that we want to ignore
- if (local.exists()) {
- // We could have an incoming change or deletion
- if (remote == null) {
- info.setAdded();
- } else {
- // Otherwise change the revision to the remote revision and dirty the file
- info.setRevision(remote.getSyncInfo().getRevision());
- info.setTimeStamp(null);
- }
- } else {
- // We have an incoming add, turn it around as an outgoing delete
- info = remote.getSyncInfo().cloneMutable();
- info.setDeleted(true);
- }
- } else if (local.exists()) {
- // We have a conflict and a local resource!
- if (hasRemote()) {
- if (hasBase()) {
- // We have a conflicting change, Update the local revision
- info.setRevision(remote.getSyncInfo().getRevision());
- } else {
- // We have conflictin additions.
- // We need to fetch the contents of the remote to get all the relevant information (timestamp, permissions)
- remote.getContents(Policy.monitorFor(monitor));
- info = remote.getSyncInfo().cloneMutable();
- }
- } else if (hasBase()) {
- // We have a remote deletion. Make the local an addition
- info.setAdded();
- } else {
- // There's a local, no base and no remote. We can't possible have a conflict!
- Assert.isTrue(false);
- }
- } else {
- // We have a conflict and there is no local!
- if (hasRemote()) {
- // We have a local deletion that conflicts with remote changes.
- info.setRevision(remote.getSyncInfo().getRevision());
- info.setDeleted(true);
- } else {
- // We have conflicting deletions. Clear the sync info
- info = null;
- return;
- }
- }
- if(info!=null) {
- info.setTag(local.getParent().getFolderSyncInfo().getTag());
- }
- ((ICVSFile)local).setSyncInfo(info, ICVSFile.UNKNOWN);
- }
-
- /*
- * Update the sync info of the local resource in such a way that the remote resource can be loaded
- * ignore any local changes.
- */
- public void makeIncoming(IProgressMonitor monitor) throws TeamException {
- // To make outgoing deletions incoming, the local will not exist but
- // it is still important to unmanage (e.g. delete all meta info) for the
- // deletion.
- CVSWorkspaceRoot.getCVSResourceFor(getLocal()).unmanage(null);
- }
-
- /*
- * Load the resource and folder sync info into the local from the remote
- *
- * This method can be used on incoming folder additions to set the folder sync info properly
- * without hitting the server again. It also applies to conflicts that involves unmanaged
- * local resources.
- *
- * If the local folder is already managed and is a cvs folder, this operation
- * will throw an exception if the mapping does not match that of the remote.
- */
- public void makeInSync(IProgressMonitor monitor) throws TeamException {
-
- // Only work on folders
- if (! isContainer()) return;
-
- int syncKind = getSyncKind(GRANULARITY_TIMESTAMP, monitor);
- boolean outgoing = (syncKind & DIRECTION_MASK) == OUTGOING;
- if (outgoing) return;
-
- ICVSFolder local = (ICVSFolder)localSync.getCVSResource();
- RemoteFolder remote = (RemoteFolder)getRemote();
-
- // The parent must be managed
- if (! local.getParent().isCVSFolder())
- return;
-
- // If the folder already has CVS info, check that the remote and local match
- if(local.isManaged() && local.isCVSFolder()) {
- // Verify that the root and repository are the same
- FolderSyncInfo remoteInfo = remote.getFolderSyncInfo();
- FolderSyncInfo localInfo = local.getFolderSyncInfo();
- if ( ! localInfo.getRoot().equals(remoteInfo.getRoot())) {
- throw new CVSException(Policy.bind("CVSRemoteSyncElement.rootDiffers", new Object[] {local.getName(), remoteInfo.getRoot(), localInfo.getRoot()}));//$NON-NLS-1$
- } else if ( ! localInfo.getRepository().equals(remoteInfo.getRepository())) {
- throw new CVSException(Policy.bind("CVSRemoteSyncElement.repositoryDiffers", new Object[] {local.getName(), remoteInfo.getRepository(), localInfo.getRepository()}));//$NON-NLS-1$
- }
- // The folders are in sync so just return
- return;
- }
-
- // Ensure that the folder exists locally
- if (! local.exists()) {
- local.mkdir();
- }
-
- // Since the parent is managed, this will also set the resource sync info. It is
- // impossible for an incoming folder addition to map to another location in the
- // repo, so we assume that using the parent's folder sync as a basis is safe.
- // It is also impossible for an incomming folder to be static.
- FolderSyncInfo remoteInfo = remote.getFolderSyncInfo();
- FolderSyncInfo localInfo = local.getParent().getFolderSyncInfo();
- local.setFolderSyncInfo(new FolderSyncInfo(remoteInfo.getRepository(), remoteInfo.getRoot(), localInfo.getTag(), false));
- }
- /*
- * Make all the folders that have both a remote and local in sync by copying
- * the sync information from the remote to the local
- */
- public void makeFoldersInSync(IProgressMonitor progress) throws TeamException {
- FolderSyncInfo remoteInfo = ((RemoteFolder)getRemote()).getFolderSyncInfo();
- ((ICVSFolder)localSync.getCVSResource()).setFolderSyncInfo(remoteInfo);
- ILocalSyncElement[] children = members(progress);
- for (int i = 0; i < children.length; i++) {
- CVSRemoteSyncElement child = (CVSRemoteSyncElement)children[i];
- if (child.isContainer() && child.getLocal().exists() && child.getRemote() != null) {
- child.makeFoldersInSync(progress);
- }
- }
- }
- /*
- * @see ILocalSyncElement#getSyncKind(int, IProgressMonitor)
- */
- public int getSyncKind(int granularity, IProgressMonitor progress) {
-
- // special handling for folders, the generic sync algorithm doesn't work well
- // with CVS because folders are not in namespaces (e.g. they exist in all versions
- // and branches).
- if(isContainer() && isThreeWay()) {
- int folderKind = IRemoteSyncElement.IN_SYNC;
- IResource local = getLocal();
- ICVSRemoteFolder remote = (ICVSRemoteFolder)getRemote();
- ICVSFolder cvsFolder = (ICVSFolder)localSync.getCVSResource();
- boolean isCVSFolder = false;
- try {
- isCVSFolder = cvsFolder.isCVSFolder();
- } catch (CVSException e) {
- // Assume the folder is not a CVS folder
- }
- if(!local.exists()) {
- if(remote != null) {
- if (isCVSFolder) {
- if (containsOutgoingDeletions(cvsFolder)) {
- // say the folder is in_sync even though it doesn't exist locally
- folderKind = IRemoteSyncElement.IN_SYNC;
- } else {
- folderKind = IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION;
- }
- } else {
- folderKind = IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION;
- }
- } else {
- // ignore conflicting deletion to keep phantom sync info
- }
- } else {
- if(remote == null) {
- if(isCVSFolder) {
- folderKind = IRemoteSyncElement.INCOMING | IRemoteSyncElement.DELETION;
- } else {
- folderKind = IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION;
- }
- } else if(!isCVSFolder) {
- folderKind = IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.ADDITION;
- } else {
- // folder exists both locally and remotely and are considered in sync, however
- // we aren't checking the folder mappings to ensure that they are the same.
- }
- }
- return folderKind;
- }
-
- // 1. Run the generic sync calculation algorithm, then handle CVS specific
- // sync cases.
- int kind = super.getSyncKind(granularity, progress);
-
- // 2. Set the CVS specific sync type based on the workspace sync state provided
- // by the CVS server.
- if(remote!=null && (kind & IRemoteSyncElement.PSEUDO_CONFLICT) == 0) {
- int type = ((RemoteResource)remote).getWorkspaceSyncState();
- switch(type) {
- // the server compared both text files and decided that it cannot merge
- // them without line conflicts.
- case Update.STATE_CONFLICT:
- return kind | ILocalSyncElement.MANUAL_CONFLICT;
-
- // the server compared both text files and decided that it can safely merge
- // them without line conflicts.
- case Update.STATE_MERGEABLE_CONFLICT:
- return kind | ILocalSyncElement.AUTOMERGE_CONFLICT;
- }
- }
-
- // 3. unmanage delete/delete conflicts and return that they are in sync
- kind = handleDeletionConflicts(kind);
-
- return kind;
- }
-
- /**
- * Return true if the provided phantom folder conyains any outgoing file deletions.
- * We only need to detect if there are any files since a phantom folder can only
- * contain outgoing filre deletions and other folder.
- *
- * @param cvsFolder a phantom folder
- * @return boolean
- */
- private boolean containsOutgoingDeletions(ICVSFolder cvsFolder) {
- final boolean result[] = new boolean[] { false };
- try {
- cvsFolder.accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- // Do nothing. Files are handled below
- }
- public void visitFolder(ICVSFolder folder) throws CVSException {
- if (folder.members(ICVSFolder.FILE_MEMBERS).length > 0) {
- result[0] = true;
- } else {
- folder.acceptChildren(this);
- }
- }
- });
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- return result[0];
- }
-
-
- /*
- * If the resource has a delete/delete conflict then ensure that the local is unmanaged so that the
- * sync info can be properly flushed.
- */
- private int handleDeletionConflicts(int kind) {
- if(kind == (IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.DELETION | IRemoteSyncElement.PSEUDO_CONFLICT)) {
- try {
- ICVSResource cvsResource = localSync.getCVSResource();
- if(!isContainer() && cvsResource.isManaged()) {
- cvsResource.unmanage(null);
- }
- return IRemoteSyncElement.IN_SYNC;
- } catch(CVSException e) {
- CVSProviderPlugin.log(e);
- return IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.DELETION;
- }
- }
- return kind;
- }
-
- /**
- * @see RemoteSyncElement#timestampEquals(IRemoteResource, IRemoteResource)
- */
- protected boolean timestampEquals(IRemoteResource e1, IRemoteResource e2) {
- if(e1.isContainer()) {
- if(e2.isContainer()) {
- return true;
- }
- return false;
- }
- return e1.equals(e2);
- }
-
- /**
- * @see RemoteSyncElement#timestampEquals(IResource, IRemoteResource)
- */
- protected boolean timestampEquals(IResource e1, IRemoteResource e2) {
- if(e1.getType() != IResource.FILE) {
- if(e2.isContainer()) {
- return true;
- }
- return false;
- }
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile)e1);
- try {
- byte[] syncBytes1 = cvsFile.getSyncBytes();
- byte[] syncBytes2 = ((ICVSRemoteFile)e2).getSyncBytes();
-
- if(syncBytes1 != null) {
- if(ResourceSyncInfo.isDeletion(syncBytes1) || ResourceSyncInfo.isMerge(syncBytes1) || cvsFile.isModified(null)) {
- return false;
- }
- return ResourceSyncInfo.getRevision(syncBytes1).equals(ResourceSyncInfo.getRevision(syncBytes2));
- }
- return false;
- } catch(CVSException e) {
- CVSProviderPlugin.log(e);
- return false;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java
deleted file mode 100644
index 478b08c3c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSWorkspaceRoot.java
+++ /dev/null
@@ -1,650 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-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.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.Checkout;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Request;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * This class provides static methods for checking out projects from a repository
- * into the local workspace and for converting IResources into CVSRespources
- * and sync trees.
- * Instances of this class represent a local workspace root (i.e. a project).
- */
-public class CVSWorkspaceRoot {
-
- private ICVSFolder localRoot;
-
- public CVSWorkspaceRoot(IContainer resource){
- this.localRoot = getCVSFolderFor(resource);
- }
-
- /**
- * Checkout a CVS module.
- *
- * The provided project represents the target project. Any existing contents
- * may or may not get overwritten. If project is <code>null</code> then a project
- * will be created based on the provided sourceModule. If soureModule is null,
- * then the project name will be used as the module to
- * check out. If both are absent, an exception is thrown.
- *
- * Resources existing in the local file system at the target project location but now
- * known to the workbench will be overwritten.
- *
- * After the successful completion of this method, the project will exist
- * and be open.
- */
- public static void checkout(
- ICVSRepositoryLocation repository,
- IProject project,
- String sourceModule,
- CVSTag tag,
- IProgressMonitor monitor)
- throws TeamException {
-
- if (sourceModule == null)
- sourceModule = project.getName();
- checkout(new ICVSRemoteFolder[] { new RemoteFolder(null, repository, sourceModule, tag)},
- new IProject[] { project }, monitor);
- }
-
- /**
- * Checkout the remote resources into the local workspace. Each resource will
- * be checked out into the corresponding project. If the corresponding project is
- * null or if projects is null, the name of the remote resource is used as the name of the project.
- *
- * Resources existing in the local file system at the target project location but now
- * known to the workbench will be overwritten.
- */
- public static void checkout(final ICVSRemoteFolder[] resources, final IProject[] projects, final IProgressMonitor monitor) throws TeamException {
- final TeamException[] eHolder = new TeamException[1];
- try {
- IWorkspaceRunnable workspaceRunnable = new IWorkspaceRunnable() {
- public void run(IProgressMonitor pm) throws CoreException {
- try {
- pm.beginTask(null, 1000 * resources.length);
-
- // Get the location of the workspace root
- ICVSFolder root = CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot());
-
- for (int i=0;i<resources.length;i++) {
- IProject project = null;
- RemoteFolder resource = (RemoteFolder)resources[i];
-
- // Determine the provided target project if there is one
- if (projects != null)
- project = projects[i];
-
- // Determine the remote module to be checked out
- String moduleName;
- if (resource instanceof RemoteModule) {
- moduleName = ((RemoteModule)resource).getName();
- } else {
- moduleName = resource.getRepositoryRelativePath();
- }
-
- // Open a connection session to the repository
- ICVSRepositoryLocation repository = resource.getRepository();
- Session session = new Session(repository, root);
- try {
- session.open(Policy.subMonitorFor(pm, 50), false /* read-only */);
-
- // Determine the local target projects (either the project provider or the module expansions)
- final Set targetProjects = new HashSet();
- if (project == null) {
-
- // Fetch the module expansions
- IStatus status = Request.EXPAND_MODULES.execute(session, new String[] {moduleName}, Policy.subMonitorFor(pm, 50));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
-
- // Convert the module expansions to local projects
- String[] expansions = session.getModuleExpansions();
- for (int j = 0; j < expansions.length; j++) {
- targetProjects.add(ResourcesPlugin.getWorkspace().getRoot().getProject(new Path(expansions[j]).segment(0)));
- }
-
- } else {
- targetProjects.add(project);
- }
-
- // Prepare the target projects to receive resources
- root.run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- scrubProjects((IProject[]) targetProjects.toArray(new IProject[targetProjects.size()]), monitor);
- }
- }, Policy.subMonitorFor(pm, 100));
-
- // Build the local options
- List localOptions = new ArrayList();
- // Add the option to load into the target project if one was supplied
- if (project != null) {
- localOptions.add(Checkout.makeDirectoryNameOption(project.getName()));
- }
- // Prune empty directories if pruning enabled
- if (CVSProviderPlugin.getPlugin().getPruneEmptyDirectories())
- localOptions.add(Checkout.PRUNE_EMPTY_DIRECTORIES);
- // Add the options related to the CVSTag
- CVSTag tag = resource.getTag();
- if (tag == null) {
- // A null tag in a remote resource indicates HEAD
- tag = CVSTag.DEFAULT;
- }
- localOptions.add(Update.makeTagOption(tag));
-
- // Perform the checkout
- IStatus status = Command.CHECKOUT.execute(session,
- Command.NO_GLOBAL_OPTIONS,
- (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]),
- new String[]{moduleName},
- null,
- Policy.subMonitorFor(pm, 800));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- // XXX Should we cleanup any partially checked out projects?
- throw new CVSServerException(status);
- }
-
- // Bring the project into the workspace
- refreshProjects((IProject[])targetProjects.toArray(new IProject[targetProjects.size()]), Policy.subMonitorFor(pm, 100));
-
- } finally {
- session.close();
- }
- }
- }
- catch (TeamException e) {
- // Pass it outside the workspace runnable
- eHolder[0] = e;
- } finally {
- pm.done();
- }
- // CoreException and OperationCanceledException are propagated
- }
- };
- ResourcesPlugin.getWorkspace().run(workspaceRunnable, monitor);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- // Re-throw the TeamException, if one occurred
- if (eHolder[0] != null) {
- throw eHolder[0];
- }
- }
-
- /**
- * Set the sharing for a project to enable it to be used with the CVSTeamProvider.
- * This method ensure that the repository in the FolderSyncInfo is known and that
- * the project is mapped to a CVS repository provider. It does not modify the sync
- * info associated with the project's resources in any way.
- */
- public static void setSharing(IProject project, FolderSyncInfo info, IProgressMonitor monitor) throws TeamException {
-
- // Ensure provided info matches that of the project
- ICVSFolder folder = (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(project);
- FolderSyncInfo folderInfo = folder.getFolderSyncInfo();
- if ( ! info.equals(folderInfo)) {
- throw new CVSException(new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSProvider.infoMismatch", project.getName())));//$NON-NLS-1$
- }
-
- // Ensure that the provided location is managed
- CVSProviderPlugin.getPlugin().getRepository(info.getRoot());
-
- // Register the project with Team
- RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
- }
-
- /**
- * Answer the list of directories that a checkout of the given resources would expand to.
- * In other words, the returned strings represent the root paths that the given resources would
- * be loaded into.
- */
- public static String[] getExpansions(ICVSRemoteFolder[] resources, IProgressMonitor monitor) throws CVSException {
-
- if (resources.length == 0) return new String[0];
-
- // Get the location of the workspace root
- ICVSFolder root = CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot());
-
- // Get the command arguments
- String[] arguments = new String[resources.length];
- for (int i = 0; i < resources.length; i++) {
- if (resources[i] instanceof RemoteModule) {
- arguments[i] = ((RemoteModule)resources[i]).getName();
- } else {
- arguments[i] = resources[i].getRepositoryRelativePath();
- }
- }
-
- // Perform the Expand-Modules command
- IStatus status;
- Session s = new Session(resources[0].getRepository(), root);
- s.open(monitor, false /* read-only */);
- try {
- status = Request.EXPAND_MODULES.execute(s, arguments, monitor);
- } finally {
- s.close();
- }
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
-
- return s.getModuleExpansions();
- }
-
- /*
- * Delete the target projects before checking out
- */
- /* internal use only */ static void scrubProjects(IProject[] projects, IProgressMonitor monitor) throws CVSException {
- if (projects == null) {
- monitor.done();
- return;
- }
- monitor.beginTask(Policy.bind("CVSProvider.Scrubbing_projects_1"), projects.length * 100); //$NON-NLS-1$
- try {
- for (int i=0;i<projects.length;i++) {
- IProject project = projects[i];
- if (project != null && project.exists()) {
- if(!project.isOpen()) {
- project.open(Policy.subMonitorFor(monitor, 10));
- }
- // We do not want to delete the project to avoid a project deletion delta
- // We do not want to delete the .project to avoid core exceptions
- monitor.subTask(Policy.bind("CVSProvider.Scrubbing_local_project_1")); //$NON-NLS-1$
- // unmap the project from any previous repository provider
- if (RepositoryProvider.getProvider(project) != null)
- RepositoryProvider.unmap(project);
- IResource[] children = project.members(IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS);
- IProgressMonitor subMonitor = Policy.subMonitorFor(monitor, 80);
- subMonitor.beginTask(null, children.length * 100);
- try {
- for (int j = 0; j < children.length; j++) {
- if ( ! children[j].getName().equals(".project")) {//$NON-NLS-1$
- children[j].delete(true /*force*/, Policy.subMonitorFor(subMonitor, 100));
- }
- }
- } finally {
- subMonitor.done();
- }
- } else if (project != null) {
- // Make sure there is no directory in the local file system.
- File location = new File(project.getParent().getLocation().toFile(), project.getName());
- if (location.exists()) {
- deepDelete(location);
- }
- }
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- }
-
- 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();
- }
-
- /*
- * Bring the provied projects into the workspace
- */
- /* internal use only */ static void refreshProjects(IProject[] projects, IProgressMonitor monitor) throws CoreException, TeamException {
- monitor.beginTask(Policy.bind("CVSProvider.Creating_projects_2"), projects.length * 100); //$NON-NLS-1$
- try {
- for (int i = 0; i < projects.length; i++) {
- IProject project = projects[i];
- // Register the project with Team
- RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId());
- provider.setWatchEditEnabled(CVSProviderPlugin.getPlugin().isWatchEditEnabled());
- }
-
- } finally {
- monitor.done();
- }
- }
-
- public static ICVSFolder getCVSFolderFor(IContainer resource) {
- return new EclipseFolder(resource);
- }
-
-
- public static ICVSFile getCVSFileFor(IFile resource) {
- return new EclipseFile(resource);
- }
-
-
- public static ICVSResource getCVSResourceFor(IResource resource) {
- if (resource.getType() == IResource.FILE)
- return getCVSFileFor((IFile) resource);
- else
- return getCVSFolderFor((IContainer) resource);
- }
-
- public static ICVSRemoteResource getRemoteResourceFor(IResource resource) throws CVSException {
- ICVSResource managed = getCVSResourceFor(resource);
- return getRemoteResourceFor(managed);
- }
-
- public static ICVSRemoteResource getRemoteResourceFor(ICVSResource resource) throws CVSException {
- if (resource.isFolder()) {
- ICVSFolder folder = (ICVSFolder)resource;
- FolderSyncInfo syncInfo = folder.getFolderSyncInfo();
- if (syncInfo != null) {
- return new RemoteFolder(null, CVSProviderPlugin.getPlugin().getRepository(syncInfo.getRoot()), syncInfo.getRepository(), syncInfo.getTag());
- }
- } else {
- if (resource.isManaged()) {
- RemoteFolder parent = (RemoteFolder)getRemoteResourceFor(resource.getParent());
- if (parent == null) {
- // This could be caused by another thread changing the state in the
- // instant between when we did the managed check and we obtained the
- // parent handle. If this is the case, isManaged should return false
- // now. If it doesn't, then we should log an error.
- if (resource.isManaged()) {
- CVSProviderPlugin.log(new CVSException(Policy.bind("CVSWorkspaceRoot.11", Util.getFullestPath(resource)))); //$NON-NLS-1$
- }
- } else {
- return RemoteFile.getBase(parent, (ICVSFile)resource);
- }
- }
- }
- return null;
- }
-
- /*
- * Helper method that uses the parent of a local resource that has no base to ensure that the resource
- * wasn't added remotely by a third party
- */
- private static ICVSRemoteResource getRemoteTreeFromParent(IResource resource, ICVSResource managed, CVSTag tag, IProgressMonitor progress) throws TeamException {
- // If the parent isn't mapped to CVS, there's nothing we can do
- ICVSFolder parent = managed.getParent();
- FolderSyncInfo syncInfo = parent.getFolderSyncInfo();
- if (syncInfo == null) {
- // The parent is managed so just indicate that there is no remote
- return null;
- }
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(parent.getFolderSyncInfo().getRoot());
- RemoteFolder remoteParent = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)location, parent, tag, progress);
- ICVSRemoteResource remote = null;
- if (remoteParent != null) {
- try {
- remote = (ICVSRemoteResource)remoteParent.getChild(resource.getName());
- } catch (CVSException e) {
- remote = null;
- }
- // The types need to match or we're in trouble
- if (remote != null && !(remote.isContainer() == managed.isFolder()))
- throw new CVSException(new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSTeamProvider.typesDiffer", resource.getFullPath().toString()), null)); //$NON-NLS-1$
- }
- return remote;
- }
-
- public static IRemoteSyncElement getRemoteSyncTree(IResource resource, CVSTag tag, IProgressMonitor progress) throws TeamException {
- ICVSResource managed = CVSWorkspaceRoot.getCVSResourceFor(resource);
- ICVSRemoteResource remote = CVSWorkspaceRoot.getRemoteResourceFor(resource);
- ICVSRemoteResource baseTree = null;
-
- // The resource doesn't have a remote base.
- // However, we still need to check to see if its been created remotely by a third party.
- if(resource.getType() == IResource.FILE) {
- baseTree = remote;
- ICVSRepositoryLocation location;
- if (remote == null) {
- // If there's no base for the file, get the repository location from the parent
- ICVSRemoteResource parent = CVSWorkspaceRoot.getRemoteResourceFor(resource.getParent());
- if (parent == null) {
- throw new CVSException(new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSTeamProvider.unmanagedParent", resource.getFullPath().toString()), null)); //$NON-NLS-1$
- }
- location = parent.getRepository();
- } else {
- location = remote.getRepository();
- }
- remote = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)location, (ICVSFile)managed, tag, progress);
- } else {
- if (remote == null) {
- remote = getRemoteTreeFromParent(resource, managed, tag, progress);
- } else {
- ICVSRepositoryLocation location = remote.getRepository();
- baseTree = RemoteFolderTreeBuilder.buildBaseTree((CVSRepositoryLocation)location, (ICVSFolder)managed, tag, progress);
- remote = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)location, (ICVSFolder)managed, tag, progress);
- }
- }
- return new CVSRemoteSyncElement(true /*three way*/, resource, baseTree, remote);
- }
-
- /**
- * Sync the given unshared project with the given repository and module.
- */
- public static IRemoteSyncElement getRemoteSyncTree(IProject project, ICVSRepositoryLocation location, String moduleName, CVSTag tag, IProgressMonitor progress) throws TeamException {
- if (CVSWorkspaceRoot.getCVSFolderFor(project).isCVSFolder()) {
- return getRemoteSyncTree(project, tag, progress);
- } else {
- progress.beginTask(null, 100);
- RemoteFolder folder = new RemoteFolder(null, location, moduleName, tag);
- RemoteFolderTree remote = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)folder.getRepository(), folder, folder.getTag(), Policy.subMonitorFor(progress, 80));
- CVSRemoteSyncElement tree = new CVSRemoteSyncElement(true /*three way*/, project, null, remote);
- tree.makeFoldersInSync(Policy.subMonitorFor(progress, 10));
-
- RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
-
- progress.done();
- return tree;
- }
- }
-
- public static IRemoteSyncElement getRemoteSyncTree(IProject project, IResource[] resources, CVSTag tag, IProgressMonitor progress) throws TeamException {
- ICVSResource managed = CVSWorkspaceRoot.getCVSResourceFor(project);
- ICVSRemoteResource remote = CVSWorkspaceRoot.getRemoteResourceFor(project);
- if (remote == null) {
- return new CVSRemoteSyncElement(true /*three way*/, project, null, null);
- }
- ArrayList cvsResources = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- cvsResources.add(CVSWorkspaceRoot.getCVSResourceFor(resources[i]));
- }
- CVSRepositoryLocation location = (CVSRepositoryLocation)remote.getRepository();
- ICVSRemoteResource base = RemoteFolderTreeBuilder.buildBaseTree(location, (ICVSFolder)managed, tag, progress);
- remote = RemoteFolderTreeBuilder.buildRemoteTree(location, (ICVSFolder)managed, (ICVSResource[]) cvsResources.toArray(new ICVSResource[cvsResources.size()]), tag, progress);
- return new CVSRemoteSyncElement(true /*three way*/, project, base, remote);
- }
-
- public static ICVSRemoteResource getRemoteTree(IResource resource, CVSTag tag, IProgressMonitor progress) throws TeamException {
- return getRemoteTree(resource, tag, false /* cache file contents hint */, progress);
- }
-
- /**
- * Return the remote tree that corresponds to the given local resource. Return
- * <code>null</code> if the remote tree doesn't exist remotely or if the local
- * resource is not mapped to a remote (i.e. is not managed by CVS).
- *
- * @param resource the local resource
- * @param tag the tag to be queried remotely
- * @param cacheFileContentsHint hint which indicates whether file contents will be required
- * @param progress
- * @return the remote tree or <code>null</code>
- * @throws TeamException
- */
- public static ICVSRemoteResource getRemoteTree(IResource resource, CVSTag tag, boolean cacheFileContentsHint, IProgressMonitor progress) throws TeamException {
- ICVSResource managed = CVSWorkspaceRoot.getCVSResourceFor(resource);
- ICVSRemoteResource remote = CVSWorkspaceRoot.getRemoteResourceFor(resource);
- if (remote == null) {
- progress.beginTask(null, 100);
- remote = getRemoteTreeFromParent(resource, managed, tag, Policy.subMonitorFor(progress, 50));
- if (cacheFileContentsHint && remote != null && remote instanceof RemoteFile) {
- RemoteFile file = (RemoteFile)remote;
- if (!file.isContentsCached()) {
- file.fetchContents(Policy.subMonitorFor(progress, 50));
- }
- }
- progress.done();
- } else if(resource.getType() == IResource.FILE) {
- ICVSRepositoryLocation location = remote.getRepository();
- if (cacheFileContentsHint) {
- remote = FileContentCachingService.buildRemoteTree((CVSRepositoryLocation)location, (ICVSFile)managed, tag, progress);
- } else {
- remote = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)location, (ICVSFile)managed, tag, progress);
- }
- } else {
- ICVSRepositoryLocation location = remote.getRepository();
- if (cacheFileContentsHint) {
- remote = FileContentCachingService.buildRemoteTree((CVSRepositoryLocation)location, (ICVSFolder)managed, tag, progress);
- } else {
- remote = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)location, (ICVSFolder)managed, tag, progress);
- }
- }
- return remote;
- }
-
- public static boolean hasRemote(IResource resource) {
- try {
- ICVSResource cvsResource = getCVSResourceFor(resource);
- int type = resource.getType();
- if(type!=IResource.FILE) {
- if(type==IResource.PROJECT) {
- return ((ICVSFolder)cvsResource).isCVSFolder();
- } else {
- return cvsResource.isManaged();
- }
- } else {
- byte[] syncBytes = ((ICVSFile)cvsResource).getSyncBytes();
- if(syncBytes!=null) {
- return !ResourceSyncInfo.isAddition(syncBytes);
- } else {
- return false;
- }
- }
- } catch(CVSException e) {
- return false;
- }
- }
-
- public ICVSRepositoryLocation getRemoteLocation() throws CVSException {
- FolderSyncInfo info = localRoot.getFolderSyncInfo();
- if (info == null) {
- throw new CVSException(Policy.bind("CVSWorkspaceRoot.notCVSFolder", localRoot.getName())); //$NON-NLS-1$
- }
- return CVSProviderPlugin.getPlugin().getRepository(info.getRoot());
- }
-
- public ICVSFolder getLocalRoot() {
- return localRoot;
- }
-
-
- /**
- * Return true if the resource is part of a link (i.e. a linked resource or
- * one of it's children.
- *
- * @param container
- * @return boolean
- */
- public static boolean isLinkedResource(IResource resource) {
- // check the resource directly first
- if (resource.isLinked()) return true;
- // projects and root cannot be links
- if (resource.getType() == IResource.PROJECT || resource.getType() == IResource.ROOT) {
- return false;
- }
- // look one level under the project to see if the resource is part of a link
- String linkedParentName = resource.getProjectRelativePath().segment(0);
- IFolder linkedParent = resource.getProject().getFolder(linkedParentName);
- return linkedParent.isLinked();
- }
-
- /**
- * A resource is considered shared
- * @param resource
- * @return boolean
- */
- public static boolean isSharedWithCVS(IResource resource) throws CVSException {
- if (!resource.isAccessible()) return false;
- if(isLinkedResource(resource)) return false;
-
- if(RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()) == null) {
- return false;
- }
-
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (cvsResource.isManaged()) return true;
- if (!cvsResource.exists()) return false;
- if (cvsResource.isFolder() && ((ICVSFolder) cvsResource).isCVSFolder()) return true;
- if (cvsResource.isIgnored()) return false;
- return cvsResource.getParent().isCVSFolder();
- }
-
- /**
- * Return whether the given container is an orphaned subtree. An orphaned subtree
- * is folder (i.e. non-project) that is a CVS folder but is not managed and is not
- * a linked resource. To know if the resource is a descendant of an orphaned subtree,
- * the client must invoked this method for each ancestor of a resource.
- * @param container the container being tested
- * @return whether the container is an orphaned CVS folder
- * @throws CVSException
- */
- public static boolean isOrphanedSubtree(IContainer container) throws CVSException {
- ICVSFolder mFolder = CVSWorkspaceRoot.getCVSFolderFor(container);
- return (mFolder.isCVSFolder()
- && ! mFolder.isManaged()
- && mFolder.getIResource().getType() == IResource.FOLDER
- && !isLinkedResource(container));
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java
deleted file mode 100644
index 08efcd2fd..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java
+++ /dev/null
@@ -1,538 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.resources;
-
-import java.io.File;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.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.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.syncinfo.BaserevInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.MutableResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.NotifyInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-/**
- * Represents handles to CVS resource on the local file system. Synchronization
- * information is taken from the CVS subdirectories.
- */
-public class EclipseFile extends EclipseResource implements ICVSFile {
-
- private static final String TEMP_FILE_EXTENSION = ".tmp";//$NON-NLS-1$
- private static final IPath PROJECT_META_DATA_PATH = new Path(".project");//$NON-NLS-1$
-
- /**
- * Create a handle based on the given local resource.
- */
- protected EclipseFile(IFile file) {
- super(file);
- }
-
- /*
- * @see ICVSResource#delete()
- */
- public void delete() throws CVSException {
- try {
- ((IFile)resource).delete(false /*force*/, true /*keepHistory*/, null);
- } catch(CoreException e) {
- throw CVSException.wrapException(resource, Policy.bind("EclipseFile_Problem_deleting_resource", resource.getFullPath().toString(), e.getStatus().getMessage()), e); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public long getSize() {
- return getIOFile().length();
- }
-
- public InputStream getContents() throws CVSException {
- try {
- return getIFile().getContents();
- } catch (CoreException e) {
- throw CVSException.wrapException(resource, Policy.bind("EclipseFile_Problem_accessing_resource", resource.getFullPath().toString(), e.getStatus().getMessage()), e); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /*
- * @see ICVSFile#getTimeStamp()
- */
- public Date getTimeStamp() {
- long timestamp = getIFile().getLocalTimeStamp();
- if( timestamp == IResource.NULL_STAMP) {
- // If there is no file, return the same timestamp as ioFile.lastModified() would
- return new Date(0L);
- }
- return new Date((timestamp/1000)*1000);
- }
-
- /*
- * @see ICVSFile#setTimeStamp(Date)
- */
- public void setTimeStamp(Date date) throws CVSException {
- long time;
- if (date == null) {
- time = System.currentTimeMillis();
- } else {
- time = date.getTime();
- }
- EclipseSynchronizer.getInstance().setTimeStamp(this, time);
- }
-
- /*
- * @see ICVSResource#isFolder()
- */
- public boolean isFolder() {
- return false;
- }
-
- /*
- * @see ICVSFile#isModified()
- */
- public boolean isModified(IProgressMonitor monitor) throws CVSException {
-
- // ignore the monitor, there is no valuable progress to be shown when
- // calculating the dirty state for files. It is relatively fast.
-
- if (!exists()) {
- return getSyncBytes() != null;
- }
- int state = EclipseSynchronizer.getInstance().getModificationState(getIFile());
-
- if (state != UNKNOWN) {
- return state != CLEAN;
- }
-
- // nothing cached, need to manually check (and record)
- byte[] syncBytes = getSyncBytes();
- if (syncBytes == null && isIgnored()) return false;
- // unmanaged files are reported as modified
- return EclipseSynchronizer.getInstance().setModified(this, UNKNOWN);
- }
-
- /*
- * @see ICVSResource#accept(ICVSResourceVisitor)
- */
- public void accept(ICVSResourceVisitor visitor) throws CVSException {
- visitor.visitFile(this);
- }
-
- /*
- * @see ICVSResource#accept(ICVSResourceVisitor, boolean)
- */
- public void accept(ICVSResourceVisitor visitor, boolean recurse) throws CVSException {
- visitor.visitFile(this);
- }
-
- /*
- * This is to be used by the Copy handler. The filename of the form .#filename
- */
- public void copyTo(String filename) throws CVSException {
- try {
- IPath targetPath = new Path(filename);
- IFile targetFile = getIFile().getParent().getFile(targetPath);
- if (targetFile.exists()) {
- // There is a file in the target location.
- // Delete it and keep the history just in case
- targetFile.delete(false /* force */, true /* keep history */, null);
- }
- getIFile().copy(targetPath, true /*force*/, null);
- } catch(CoreException e) {
- throw new CVSException(e.getStatus());
- }
- }
-
- /*
- * @see ICVSResource#getRemoteLocation()
- */
- public String getRemoteLocation(ICVSFolder stopSearching) throws CVSException {
- return getParent().getRemoteLocation(stopSearching) + SEPARATOR + getName();
- }
-
- /*
- * @see ICVSFile#setReadOnly()
- */
- public void setContents(InputStream stream, int responseType, boolean keepLocalHistory, IProgressMonitor monitor) throws CVSException {
- try {
- IFile file = getIFile();
- if (PROJECT_META_DATA_PATH.equals(file.getFullPath().removeFirstSegments(1))) {
- responseType = UPDATED;
- }
- switch (responseType) {
- case UPDATED:
- if (resource.exists()) {
- file.setContents(stream, true /*force*/, true /*keep history*/, monitor);
- break;
- }
- case CREATED: // creating a new file so it should not exist locally
- file.create(stream, false /*force*/, monitor);
- break;
- case MERGED: // merging contents into a file that exists locally
- // Ensure we don't leave the file in a partially written state
- IFile tempFile = file.getParent().getFile(new Path(file.getName() + TEMP_FILE_EXTENSION));
- monitor.beginTask(null, 100);
- if (tempFile.exists())
- tempFile.delete(true, Policy.subMonitorFor(monitor, 25));
- tempFile.create(stream, true /*force*/, Policy.subMonitorFor(monitor, 25));
- file.delete(false, true, Policy.subMonitorFor(monitor, 25));
- tempFile.move(new Path(file.getName()), true /*force*/, false /*history*/, Policy.subMonitorFor(monitor, 25));
- monitor.done();
- break;
- case UPDATE_EXISTING: // creating a new file so it should exist locally
- file.setContents(stream, true /*force*/, true /*keep history*/, monitor);
- break;
- }
- } catch(CoreException e) {
- String message = null;
- if (e.getStatus().getCode() == IResourceStatus.FAILED_READ_LOCAL) {
- // This error indicates that Core couldn't read from the server stream
- // The real reason will be in the message of the wrapped exception
- Throwable t = e.getStatus().getException();
- if (t != null) message = t.getMessage();
- }
- if (message == null) message = e.getMessage();
- throw CVSException.wrapException(resource, Policy.bind("EclipseFile_Problem_writing_resource", resource.getFullPath().toString(), message), e); //$NON-NLS-1$
- }
- }
-
- /*
- * @see ICVSFile#setReadOnly()
- */
- public void setReadOnly(boolean readOnly) throws CVSException {
- getIFile().setReadOnly(readOnly);
- }
-
- /*
- * @see ICVSFile#isReadOnly()
- */
- public boolean isReadOnly() throws CVSException {
- return getIFile().isReadOnly();
- }
-
- /*
- * Typecasting helper
- */
- public IFile getIFile() {
- return (IFile)resource;
- }
-
- /*
- * To allow accessing size and timestamp for the underlying java.io.File
- */
- private File getIOFile() {
- IPath location = resource.getLocation();
- if(location!=null) {
- return location.toFile();
- }
- return null;
- }
- /**
- * @see ICVSFile#getLogEntries(IProgressMonitor)
- */
- public ILogEntry[] getLogEntries(IProgressMonitor monitor) throws TeamException {
- byte[] syncBytes = getSyncBytes();
- if(syncBytes != null && !ResourceSyncInfo.isAddition(syncBytes)) {
- ICVSRemoteResource remoteFile = CVSWorkspaceRoot.getRemoteResourceFor(resource);
- return ((ICVSRemoteFile)remoteFile).getLogEntries(monitor);
- }
- return new ILogEntry[0];
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#setNotifyInfo(NotifyInfo)
- */
- public void setNotifyInfo(NotifyInfo info) throws CVSException {
- if (isManaged()) {
- EclipseSynchronizer.getInstance().setNotifyInfo(resource, info);
- // On an edit, the base should be cached
- // On an unedit, the base should be restored (and cleared?)
- // On a commit, the base should be cleared
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#getNotifyInfo()
- */
- public NotifyInfo getNotifyInfo() throws CVSException {
- if (isManaged()) {
- return EclipseSynchronizer.getInstance().getNotifyInfo(resource);
- }
- return null;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#setNotifyInfo(NotifyInfo)
- */
- public void setBaserevInfo(BaserevInfo info) throws CVSException {
- if (isManaged()) {
- if (info == null) {
- EclipseSynchronizer.getInstance().deleteBaserevInfo(resource);
- EclipseSynchronizer.getInstance().deleteFileFromBaseDirectory(getIFile(), null);
- } else
- EclipseSynchronizer.getInstance().setBaserevInfo(resource, info);
- }
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#getNotifyInfo()
- */
- public BaserevInfo getBaserevInfo() throws CVSException {
- if (isManaged()) {
- return EclipseSynchronizer.getInstance().getBaserevInfo(resource);
- }
- return null;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#checkout(int)
- */
- public void edit(final int notifications, IProgressMonitor monitor) throws CVSException {
- if (!isReadOnly()) return;
- run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- byte[] syncBytes = getSyncBytes();
- if (syncBytes == null || ResourceSyncInfo.isAddition(syncBytes)) return;
-
- // convert the notifications to internal form
- char[] internalFormat;
- if (notifications == NO_NOTIFICATION) {
- internalFormat = null;
- } else if (notifications == NOTIFY_ON_ALL) {
- internalFormat = NotifyInfo.ALL;
- } else {
- List notificationCharacters = new ArrayList();
- if ((notifications & NOTIFY_ON_EDIT) >0)
- notificationCharacters.add(new Character(NotifyInfo.EDIT));
- if ((notifications & NOTIFY_ON_UNEDIT) >0)
- notificationCharacters.add(new Character(NotifyInfo.UNEDIT));
- if ((notifications & NOTIFY_ON_COMMIT) >0)
- notificationCharacters.add(new Character(NotifyInfo.COMMIT));
- internalFormat = new char[notificationCharacters.size()];
- for (int i = 0; i < internalFormat.length; i++) {
- internalFormat[i] = ((Character)notificationCharacters.get(i)).charValue();
- }
- }
-
- // record the notification
- NotifyInfo notifyInfo = new NotifyInfo(getName(), NotifyInfo.EDIT, new Date(), internalFormat);
- setNotifyInfo(notifyInfo);
-
- // Only record the base if the file is not modified
- if (!isModified(null)) {
- EclipseSynchronizer.getInstance().copyFileToBaseDirectory(getIFile(), monitor);
- setBaserevInfo(new BaserevInfo(getName(), ResourceSyncInfo.getRevision(syncBytes)));
- }
-
- // allow editing
- setReadOnly(false);
- }
- }, monitor);
-
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#uncheckout()
- */
- public void unedit(IProgressMonitor monitor) throws CVSException {
- if (isReadOnly()) return;
- run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- // record the notification
- NotifyInfo info = getNotifyInfo();
- if (info != null && info.getNotificationType() == NotifyInfo.EDIT) {
- info = null;
- } else {
- info = new NotifyInfo(getName(), NotifyInfo.UNEDIT, new Date(), null);
- }
- setNotifyInfo(info);
-
- if (isModified(null)) {
- ResourceSyncInfo syncInfo = getSyncInfo();
- BaserevInfo baserevInfo = getBaserevInfo();
- EclipseSynchronizer.getInstance().restoreFileFromBaseDirectory(getIFile(), monitor);
- // reset any changes that may have been merged from the server
- if (!syncInfo.getRevision().equals(baserevInfo.getRevision())) {
- MutableResourceSyncInfo newInfo = syncInfo.cloneMutable();
- newInfo.setRevision(baserevInfo.getRevision());
- newInfo.setTimeStamp(getTimeStamp());
- newInfo.setDeleted(false);
- setSyncInfo(newInfo, ICVSFile.CLEAN);
- } else {
- // an unedited file is no longer modified
- EclipseSynchronizer.getInstance().setModified(EclipseFile.this, CLEAN);
- }
- } else {
- // We still need to report a state change
- setSyncBytes(getSyncBytes(), ICVSFile.CLEAN);
- }
- setBaserevInfo(null);
-
- // prevent editing
- setReadOnly(true);
- }
- }, monitor);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#notificationCompleted()
- */
- public void notificationCompleted() throws CVSException {
- EclipseSynchronizer.getInstance().deleteNotifyInfo(resource);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#getPendingNotification()
- */
- public NotifyInfo getPendingNotification() throws CVSException {
- return getNotifyInfo();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#committed(String)
- */
- public void checkedIn(String entryLine) throws CVSException {
- ResourceSyncInfo oldInfo = getSyncInfo();
- ResourceSyncInfo newInfo = null;
- int modificationState = ICVSFile.CLEAN;
- if (entryLine == null) {
- // The file contents matched the server contents so no entry line was sent
- if (oldInfo == null) return;
- Date timeStamp = oldInfo.getTimeStamp();
- if (timeStamp == null || oldInfo.isMergedWithConflicts()) {
- // If the entry line has no timestamp, put the file timestamp in the entry line
- if(! oldInfo.isAdded()) {
- MutableResourceSyncInfo mutable = oldInfo.cloneMutable();
- mutable.setTimeStamp(getTimeStamp(), true /* clear merged */);
- newInfo = mutable;
- }
- } else {
- // reset the file timestamp to the one from the entry line
- setTimeStamp(timeStamp);
- // (newInfo = null) No need to set the newInfo as there is no sync info change
- }
- // (modified = false) the file will be no longer modified
- } else if (oldInfo == null) {
- // cvs add of a file
- newInfo = new ResourceSyncInfo(entryLine, null, null);
- // an added file should show up as modified
- modificationState = ICVSFile.DIRTY;
- } else {
- // commit of a changed file
- newInfo = new ResourceSyncInfo(entryLine, oldInfo.getPermissions(), getTimeStamp());
- // (modified = false) a committed file is no longer modified
-
- }
- if (newInfo != null) setSyncInfo(newInfo, modificationState);
- clearCachedBase();
- }
-
- private void clearCachedBase() throws CVSException {
- BaserevInfo base = getBaserevInfo();
- if (base != null) {
- setBaserevInfo(null);
- setReadOnly(true);
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSResource#unmanage(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void unmanage(IProgressMonitor monitor) throws CVSException {
- run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- EclipseFile.super.unmanage(monitor);
- clearCachedBase();
- }
- }, monitor);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#isEdited()
- */
- public boolean isEdited() throws CVSException {
- return EclipseSynchronizer.getInstance().isEdited(getIFile());
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSResource#setSyncInfo(org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo)
- */
- public void setSyncInfo(ResourceSyncInfo info, int modificationState) throws CVSException {
- setSyncBytes(info.getBytes(), info, modificationState);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.EclipseResource#setSyncBytes(byte[], int)
- */
- public void setSyncBytes(byte[] syncBytes, int modificationState) throws CVSException {
- setSyncBytes(syncBytes, null, modificationState);
- }
-
- /*
- * @see org.eclipse.team.internal.ccvs.core.resources.EclipseResource#setSyncBytes(byte[], int)
- */
- private void setSyncBytes(byte[] syncBytes, ResourceSyncInfo info, int modificationState) throws CVSException {
- Assert.isNotNull(syncBytes);
- setSyncBytes(syncBytes);
- EclipseSynchronizer.getInstance().setModified(this, modificationState);
- }
-
- public void handleModification(boolean forAddition) throws CVSException {
- if (isIgnored()) {
- // Special case handling for when a resource passes from the un-managed state
- // to the ignored state (e.g. ignoring the ignore file). Parent dirty state must be
- // recalculated but since the resource's end state is ignored there is a lot of code
- // in the plugin that simply disregards the change to the resource.
- // There may be a better was of handling resources that transition from un-managed to
- // ignored but for now this seems like the safest change.
- if(! resource.isDerived()) {
- EclipseSynchronizer.getInstance().setModified(this, CLEAN);
- }
- return;
- }
- // set the modification state to what it really is and return true if the modification state changed
- EclipseSynchronizer.getInstance().setModified(this, UNKNOWN);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.EclipseResource#run(org.eclipse.team.internal.ccvs.core.ICVSRunnable, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void run(ICVSRunnable job, IProgressMonitor monitor) throws CVSException {
- getParent().run(job, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.ICVSResource#getRepositoryRelativePath()
- */
- public String getRepositoryRelativePath() throws CVSException {
- if (!isManaged()) return null;
- String parentPath = getParent().getRepositoryRelativePath();
- if (parentPath == null) return null;
- return parentPath + Session.SERVER_SEPARATOR + getName();
- }
-
-}
-
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
deleted file mode 100644
index e388633b0..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
+++ /dev/null
@@ -1,412 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-import java.util.ArrayList;
-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.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.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.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.Policy;
-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.Util;
-
-/**
- * Implements the ICVSFolder interface on top of an
- * instance of the ICVSFolder interface
- *
- * @see ICVSFolder
- */
-class EclipseFolder extends EclipseResource implements ICVSFolder {
-
- protected EclipseFolder(IContainer container) {
- super(container);
- }
-
- /**
- * @see ICVSFolder#members(int)
- */
- public ICVSResource[] members(int flags) throws CVSException {
- final List result = new ArrayList();
- IResource[] resources = EclipseSynchronizer.getInstance().members((IContainer)resource);
- boolean includeFiles = (((flags & FILE_MEMBERS) != 0) || ((flags & (FILE_MEMBERS | FOLDER_MEMBERS)) == 0));
- boolean includeFolders = (((flags & FOLDER_MEMBERS) != 0) || ((flags & (FILE_MEMBERS | FOLDER_MEMBERS)) == 0));
- boolean includeManaged = (((flags & MANAGED_MEMBERS) != 0) || ((flags & (MANAGED_MEMBERS | UNMANAGED_MEMBERS | IGNORED_MEMBERS)) == 0));
- boolean includeUnmanaged = (((flags & UNMANAGED_MEMBERS) != 0) || ((flags & (MANAGED_MEMBERS | UNMANAGED_MEMBERS | IGNORED_MEMBERS)) == 0));
- boolean includeIgnored = ((flags & IGNORED_MEMBERS) != 0);
- boolean includeExisting = (((flags & EXISTING_MEMBERS) != 0) || ((flags & (EXISTING_MEMBERS | PHANTOM_MEMBERS)) == 0));
- boolean includePhantoms = (((flags & PHANTOM_MEMBERS) != 0) || ((flags & (EXISTING_MEMBERS | PHANTOM_MEMBERS)) == 0));
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if ((includeFiles && (resource.getType()==IResource.FILE))
- || (includeFolders && (resource.getType()==IResource.FOLDER))) {
- boolean isManaged = cvsResource.isManaged();
- boolean isIgnored = cvsResource.isIgnored();
- if ((isManaged && includeManaged)|| (isIgnored && includeIgnored)
- || ( ! isManaged && ! isIgnored && includeUnmanaged)) {
- boolean exists = cvsResource.exists();
- if ((includeExisting && exists) || (includePhantoms && !exists && isManaged)) {
- result.add(cvsResource);
- }
- }
-
- }
- }
- return (ICVSResource[]) result.toArray(new ICVSResource[result.size()]);
- }
-
- /**
- * @see ICVSFolder#createFolder(String)
- */
- public ICVSFolder getFolder(String name) throws CVSException {
- if ((CURRENT_LOCAL_FOLDER.equals(name)) || ((CURRENT_LOCAL_FOLDER + SEPARATOR).equals(name)))
- return this;
- IPath path = new Path(name);
- if(resource.getType()==IResource.ROOT && path.segmentCount()==1) {
- return new EclipseFolder(((IWorkspaceRoot)resource).getProject(name));
- } else {
- return new EclipseFolder(((IContainer)resource).getFolder(new Path(name)));
- }
- }
-
- /**
- * @see ICVSFolder#createFile(String)
- */
- public ICVSFile getFile(String name) throws CVSException {
- return new EclipseFile(((IContainer)resource).getFile(new Path(name)));
- }
-
- /**
- * @see ICVSFolder#mkdir()
- */
- public void mkdir() throws CVSException {
- try {
- if(resource.getType()==IResource.PROJECT) {
- IProject project = (IProject)resource;
- project.create(null);
- project.open(null);
- } else {
- ((IFolder)resource).create(false /*don't force*/, true /*make local*/, null);
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(resource, Policy.bind("EclipseFolder_problem_creating", resource.getFullPath().toString(), e.getStatus().getMessage()), e); //$NON-NLS-1$
- }
- }
-
- /**
- * @see ICVSResource#isFolder()
- */
- public boolean isFolder() {
- return true;
- }
-
- /**
- * @see ICVSFolder#acceptChildren(ICVSResourceVisitor)
- */
- public void acceptChildren(ICVSResourceVisitor visitor) throws CVSException {
-
- // Visit files and then folders
- ICVSResource[] subFiles = members(FILE_MEMBERS);
- for (int i=0; i<subFiles.length; i++) {
- subFiles[i].accept(visitor);
- }
- ICVSResource[] subFolders = members(FOLDER_MEMBERS);
- for (int i=0; i<subFolders.length; i++) {
- subFolders[i].accept(visitor);
- }
- }
-
- /**
- * @see ICVSResource#accept(ICVSResourceVisitor)
- */
- public void accept(ICVSResourceVisitor visitor) throws CVSException {
- visitor.visitFolder(this);
- }
-
- /**
- * @see ICVSResource#accept(ICVSResourceVisitor, boolean)
- */
- public void accept(ICVSResourceVisitor visitor, boolean recurse) throws CVSException {
- visitor.visitFolder(this);
- ICVSResource[] resources;
- if (recurse) {
- resources = members(ICVSFolder.ALL_MEMBERS);
- } else {
- resources = members(ICVSFolder.FILE_MEMBERS);
- }
- for (int i = 0; i < resources.length; i++) {
- resources[i].accept(visitor, recurse);
- }
- }
-
- /**
- * @see ICVSResource#getRemoteLocation(ICVSFolder)
- */
- public String getRemoteLocation(ICVSFolder stopSearching) throws CVSException {
-
- if (getFolderSyncInfo() != null) {
- return getFolderSyncInfo().getRemoteLocation();
- }
-
- ICVSFolder parent = getParent();
- if(parent!=null && !equals(stopSearching)) {
- String parentLocation;
- parentLocation = parent.getRemoteLocation(stopSearching);
- if (parentLocation!=null) {
- return parentLocation + SEPARATOR + getName();
- }
- }
- return null;
- }
-
- /*
- * @see ICVSFolder#getFolderInfo()
- */
- public FolderSyncInfo getFolderSyncInfo() throws CVSException {
- return EclipseSynchronizer.getInstance().getFolderSync((IContainer)resource);
- }
-
- /*
- * @see ICVSFolder#setFolderInfo(FolderSyncInfo)
- */
- public void setFolderSyncInfo(final FolderSyncInfo folderInfo) throws CVSException {
- // ignore folder sync on the root (i.e. CVSROOT/config/TopLevelAdmin=yes but we just ignore it)
- if (resource.getType() == IResource.ROOT) return;
- run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- EclipseSynchronizer synchronizer = EclipseSynchronizer.getInstance();
- synchronizer.setFolderSync((IContainer)resource, folderInfo);
- // the server won't add directories as sync info, therefore it must be done when
- // a directory is shared with the repository.
- byte[] newSyncBytes = new ResourceSyncInfo(getName()).getBytes();
- byte[] oldSyncBytes = getSyncBytes();
- // only set the bytes if the new differes from the old.
- // this avoids unnecessary saving of sync files
- if (oldSyncBytes == null || ! Util.equals(newSyncBytes, oldSyncBytes))
- setSyncBytes(newSyncBytes);
- }
- }, null);
-
- }
-
- /*
- * @see ICVSFolder#isCVSFolder()
- */
- public boolean isCVSFolder() throws CVSException {
- return EclipseSynchronizer.getInstance().getFolderSync((IContainer)resource) != null;
- }
-
- /*
- * @see ICVSResource#unmanage()
- */
- public void unmanage(IProgressMonitor monitor) throws CVSException {
- run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- recursiveUnmanage((IContainer) resource, Policy.subMonitorFor(monitor, 99));
- EclipseFolder.super.unmanage(Policy.subMonitorFor(monitor, 1));
- monitor.done();
- }
- }, Policy.subMonitorFor(monitor, 99));
- }
-
- /* private */ static void recursiveUnmanage(IContainer container, IProgressMonitor monitor) throws CVSException {
- try {
- monitor.beginTask(null, 10);
- monitor.subTask(container.getFullPath().toOSString());
- EclipseSynchronizer.getInstance().deleteFolderSync(container);
-
- IResource[] members = container.members(true);
- for (int i = 0; i < members.length; i++) {
- monitor.worked(1);
- IResource resource = members[i];
- if (members[i].getType() != IResource.FILE) {
- recursiveUnmanage((IContainer) resource, monitor);
- }
- }
- } catch (CoreException e) {
- } finally {
- monitor.done();
- }
- }
-
- /*
- * @see ICVSResource#isIgnored()
- */
- public boolean isIgnored() throws CVSException {
- if(isCVSFolder()) {
- return false;
- }
- return super.isIgnored();
- }
-
- /*
- * @see ICVSFolder#getChild(String)
- */
- public ICVSResource getChild(String namedPath) throws CVSException {
- IPath path = new Path(namedPath);
- if(path.segmentCount()==0) {
- return this;
- }
- IResource child = ((IContainer)resource).findMember(path, true /* include phantoms */);
- if(child!=null) {
- if(child.getType()==IResource.FILE) {
- return new EclipseFile((IFile)child);
- } else {
- return new EclipseFolder((IContainer)child);
- }
- }
- return null;
- }
-
- /*
- * @see ICVSFolder#run(ICVSRunnable, IProgressMonitor)
- */
- public void run(final ICVSRunnable job, IProgressMonitor monitor) throws CVSException {
- final CVSException[] error = new CVSException[1];
- try {
- // Do not use a scheduling rule in the workspace run since one
- // will be obtained by the EclipseSynchronizer
- ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- try {
- EclipseSynchronizer.getInstance().run(getIResource(), job, monitor);
- } catch(CVSException e) {
- error[0] = e;
- }
- }
- }, null /* no rule */, monitor);
- } catch(CoreException e) {
- throw CVSException.wrapException(e);
- }
- if(error[0]!=null) {
- throw error[0];
- }
- }
-
- /**
- * @see ICVSFolder#fetchChildren(IProgressMonitor)
- */
- public ICVSResource[] fetchChildren(IProgressMonitor monitor) throws CVSException {
- return members(FILE_MEMBERS | FOLDER_MEMBERS);
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSResource#delete()
- */
- public void delete() throws CVSException {
- if (!exists()) return;
- try {
- resource.delete(false /*force*/, null);
- } catch(CoreException e) {
- throw new CVSException(e.getStatus());
- }
- }
-
- /**
- * Assumption this is only called from decorator and isIgnored() is purposely
- * ommited here for performance reasons.
- */
- public boolean isModified(IProgressMonitor monitor) throws CVSException {
- try {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(Policy.bind("EclipseFolder.isModifiedProgress", resource.getFullPath().toString()), 1000); //$NON-NLS-1$
-
- IContainer container = (IContainer)getIResource();
-
- // Added optimization to avoid loading sync info if possible
- // This will place a modified indicator on non-cvs folders
- // (i.e. the call to getModifiedState will cache a session property)
- int state = EclipseSynchronizer.getInstance().getModificationState(getIResource());
-
- boolean modified;
- if (state == ICVSFile.UNKNOWN) {
-
- if (!isCVSFolder()) {
- return container.exists();
- }
-
- // We have no cached info for the folder. We'll need to check directly,
- // caching as go. This will recursively determined the modified state
- // for all child resources until a modified child is found.
- modified = calculateAndSaveChildModificationStates(monitor);
- EclipseSynchronizer.getInstance().setModified(this, modified);
- } else {
- modified = (state == ICVSFile.DIRTY);
- }
- return modified;
- } finally {
- monitor.done();
- }
- }
-
- public void handleModification(boolean forAddition) throws CVSException {
- // For non-additions, we are only interested in sync info changes
- if (isIgnored() || !forAddition) return;
-
- // the folder is an addition.
- FolderSyncInfo info = getFolderSyncInfo();
- // if the folder has sync info, it was handled is setFolderInfo
- // otherwise, flush the ancestors to recalculate
- if (info == null) {
- EclipseSynchronizer.getInstance().setDirtyIndicator(getIResource(), true);
- }
- }
-
- /**
- * Determines the modification state of the receiver by examining it's children.
- * This method may result in modification state being cached with the children but
- * does not cache it for the receiver.
- */
- private boolean calculateAndSaveChildModificationStates(IProgressMonitor monitor) throws CVSException {
- ICVSResource[] children = members(ALL_UNIGNORED_MEMBERS);
-
- for (int i = 0; i < children.length; i++) {
- ICVSResource resource = children[i];
- if (resource.isModified(null)) {
- // if a child resource is dirty consider the parent dirty as well, there
- // is no need to continue checking other siblings.
- return true;
- }
- monitor.worked(1);
- }
-
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.ICVSResource#getRepositoryRelativePath()
- */
- public String getRepositoryRelativePath() throws CVSException {
- FolderSyncInfo info = getFolderSyncInfo();
- if (info == null) return null;
- // The REPOSITORY property of the folder info is the repository relative path
- return info.getRepository();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java
deleted file mode 100644
index 6818ea96b..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.Team;
-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.Policy;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-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.Assert;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * Represents handles to CVS resource on the local file system. Synchronization
- * information is taken from the CVS subdirectories.
- *
- * @see LocalFolder
- * @see LocalFile
- */
-abstract class EclipseResource implements ICVSResource, Comparable {
-
- // The separator that must be used when creating CVS resource paths. Never use
- // the platform default separator since it is not compatible with CVS resources.
- protected static final String SEPARATOR = Session.SERVER_SEPARATOR;
- protected static final String CURRENT_LOCAL_FOLDER = Session.CURRENT_LOCAL_FOLDER;
-
- /*
- * The local resource represented by this handle
- */
- IResource resource;
-
- /*
- * Creates a CVS handle to the provided resource
- */
- protected EclipseResource(IResource resource) {
- Assert.isNotNull(resource);
- this.resource = resource;
- }
-
- /*
- * Get the extention of the path of resource relative to the path of root
- *
- * @throws CVSException if root is not a root-folder of resource
- */
- public String getRelativePath(ICVSFolder root) throws CVSException {
- try {
- EclipseResource rootFolder;
- String result;
- rootFolder = (EclipseResource)root;
- result = Util.getRelativePath(rootFolder.getPath(), getPath());
- if (result.length() == 0) return CURRENT_LOCAL_FOLDER;
- return result;
- } catch (ClassCastException e) {
- throw new CVSException(Policy.bind("EclipseResource.invalidResourceClass"), e); //$NON-NLS-1$
- }
- }
-
- /*
- * @see ICVSResource#exists()
- */
- public boolean exists() {
- return resource.exists();
- }
-
- /*
- * Returns the parent folder of this resource of <code>null</code> if resource
- * the resource.
- *
- * @see ICVSResource#getParent()
- */
- public ICVSFolder getParent() {
- IContainer parent = resource.getParent();
- if (parent==null) {
- return null;
- }
- return new EclipseFolder(parent);
- }
-
- /*
- * @see ICVSResource#getName()
- */
- public String getName() {
- return resource.getName();
- }
-
- /*
- * @see ICVSResource#isIgnored()
- */
- public boolean isIgnored() throws CVSException {
- // a managed resource is never ignored
- if(isManaged() || resource.getType()==IResource.ROOT || resource.getType()==IResource.PROJECT) {
- return false;
- }
-
- // If the resource is a derived or linked resource, it is ignored
- if (resource.isDerived() || resource.isLinked()) {
- return true;
- }
-
- // always ignore CVS
- String name = getName();
- if (name.equals("CVS")) return true; //$NON-NLS-1$
-
- // check the global ignores from Team
- if (Team.isIgnoredHint(resource)) return true;
-
- // check ignore patterns from the .cvsignore file.
- if(EclipseSynchronizer.getInstance().isIgnored(resource)) {
- return true;
- }
-
- // check the parent, if the parent is ignored or mapped to CVSROOT/Emptydir
- // then this resource is ignored also
- ICVSFolder parent = getParent();
- if(parent==null) return false;
- if (parent.isIgnored()) return true;
- FolderSyncInfo info = parent.getFolderSyncInfo();
- if (info == null) return false;
- return info.isVirtualDirectory();
- }
-
- /*
- * @see ICVSResource#setIgnoredAs(String)
- */
- public void setIgnoredAs(final String pattern) throws CVSException {
- run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- EclipseSynchronizer.getInstance().addIgnored(resource.getParent(), pattern);
- }
- }, null);
- }
-
- /*
- * @see ICVSResource#isManaged()
- */
- public boolean isManaged() throws CVSException {
- return isManaged(getSyncBytes());
- }
-
- /*
- * Helper method that captures the sematics of isManaged given a ResourceSyncInfo
- */
- public boolean isManaged(byte[] syncBytes) {
- return syncBytes != null;
- }
-
- /**
- * Two ManagedResources are equal, if there cvsResources are
- * equal (and that is, if the point to the same file)
- */
- public boolean equals(Object obj) {
-
- if (!(obj instanceof EclipseResource)) {
- return false;
- } else {
- return getPath().equals(((EclipseResource) obj).getPath());
- }
- }
-
- /*
- * @see ICVSResource#getPath()
- */
- public String getPath() {
- return resource.getFullPath().toString();
- }
-
- /*
- * @see ICVSResource#isFolder()
- */
- public boolean isFolder() {
- return false;
- }
-
- /*
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#getSyncBytes()
- */
- public byte[] getSyncBytes() throws CVSException {
- return EclipseSynchronizer.getInstance().getSyncBytes(getIResource());
- }
-
- /*
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#setSyncBytes(byte[])
- */
- public void setSyncBytes(byte[] syncBytes) throws CVSException {
- if (getParent().isCVSFolder()) {
- EclipseSynchronizer.getInstance().setSyncBytes(getIResource(), syncBytes);
- }
- }
-
- /*
- * @see ICVSResource#getSyncInfo()
- */
- public ResourceSyncInfo getSyncInfo() throws CVSException {
- return EclipseSynchronizer.getInstance().getResourceSync(resource);
- }
-
- /*
- * Implement the hashcode on the underlying strings, like it is done in the equals.
- */
- public int hashCode() {
- return getPath().hashCode();
- }
-
- /*
- * Give the pathname back
- */
- public String toString() {
- return getPath();
- }
-
- /*
- * @see ICVSResource#unmanage()
- */
- public void unmanage(IProgressMonitor monitor) throws CVSException {
- EclipseSynchronizer.getInstance().deleteResourceSync(resource);
- }
-
- /*
- * @see Comparable#compareTo(Object)
- */
- public int compareTo(Object arg0) {
- EclipseResource other = (EclipseResource)arg0;
- return resource.getFullPath().toString().compareTo(other.resource.getFullPath().toString());
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSResource#getIResource()
- */
- public IResource getIResource() {
- return resource;
- }
-
- /**
- * Called by a resource change listener when a resource is changed or added. This allows
- * CVS resources to adjust any internal state based on the change.
- *
- * @param forAddition modification is an addition
- * @throws CVSException
- */
- public abstract void handleModification(boolean forAddition) throws CVSException;
-
- /*
- * Run method which obtains both the CVS synchronizer lock and the workspace
- * lock
- */
- protected abstract void run(final ICVSRunnable job, IProgressMonitor monitor) throws CVSException;
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java
deleted file mode 100644
index 91a7581b2..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java
+++ /dev/null
@@ -1,1727 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-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.IResourceStatus;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-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.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.syncinfo.BaserevInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.NotifyInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ReentrantLock;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ReentrantLock.IFlushOperation;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ReentrantLock.ThreadInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.core.util.FileNameMatcher;
-import org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners;
-import org.eclipse.team.internal.ccvs.core.util.SyncFileWriter;
-
-/**
- * A synchronizer is responsible for managing synchronization information for local
- * CVS resources.
- *
- * This class is thread safe but only allows one thread to modify the cache at a time. It
- * doesn't support fine grain locking on a resource basis. Lock ordering between the workspace
- * lock and the synchronizer lock is guaranteed to be deterministic. That is, the workspace
- * lock is *always* acquired before the synchronizer lock. This protects against possible
- * deadlock cases where the synchronizer lock is acquired before a workspace lock.
- *
- * Special processing has been added for linked folders and their childen so
- * that their CVS meta files are never read or written.
- *
- * IMPORTANT NOTICE: It is the reponsibility of the clients of EclipseSynchronizer
- * to ensure that they have wrapped operations that may modify the workspace in
- * an IWorkspaceRunnable. If this is not done, deltas may fore at inopertune times
- * and corrupt the sync info. The wrapping could be done within the synchronizer
- * itself but would require the creation of an inner class for each case that requires
- * it.
- *
- * @see ResourceSyncInfo
- * @see FolderSyncInfo
- */
-public class EclipseSynchronizer implements IFlushOperation {
- private static final String IS_DIRTY_INDICATOR = SyncInfoCache.IS_DIRTY_INDICATOR;
- private static final String NOT_DIRTY_INDICATOR = SyncInfoCache.NOT_DIRTY_INDICATOR;
- private static final String RECOMPUTE_INDICATOR = SyncInfoCache.RECOMPUTE_INDICATOR;
-
- // the cvs eclipse synchronizer is a singleton
- private static EclipseSynchronizer instance;
-
- // track resources that have changed in a given operation
- private ILock lock = Platform.getJobManager().newLock();
- private ReentrantLock resourceLock = new ReentrantLock();
-
- private SynchronizerSyncInfoCache synchronizerCache = new SynchronizerSyncInfoCache();
- private SessionPropertySyncInfoCache sessionPropertyCache = new SessionPropertySyncInfoCache(synchronizerCache);
-
- /*
- * Package private contructor to allow specialized subclass for handling folder deletions
- */
- EclipseSynchronizer() {
- }
-
- /**
- * Returns the singleton instance of the synchronizer.
- */
- public static EclipseSynchronizer getInstance() {
- if(instance==null) {
- instance = new EclipseSynchronizer();
- }
- return instance;
- }
-
- public SyncInfoCache getSyncInfoCacheFor(IResource resource) {
- if (resource.exists() && resource.isLocal(IResource.DEPTH_ZERO)) {
- return sessionPropertyCache;
- } else {
- return synchronizerCache;
- }
- }
-
- private boolean isValid(IResource resource) {
- return resource.exists() || resource.isPhantom();
- }
-
- /**
- * Sets the folder sync info for the specified folder.
- * The folder must exist and must not be the workspace root.
- *
- * @param folder the folder
- * @param info the folder sync info, must not be null
- * @see #getFolderSync, #deleteFolderSync
- */
- public void setFolderSync(IContainer folder, FolderSyncInfo info) throws CVSException {
- Assert.isNotNull(info); // enforce the use of deleteFolderSync
- // ignore folder sync on the root (i.e. CVSROOT/config/TopLevelAdmin=yes but we just ignore it)
- if (folder.getType() == IResource.ROOT) return;
- if (!isValid(folder)) {
- throw new CVSException(IStatus.ERROR, CVSException.UNABLE,
- Policy.bind("EclipseSynchronizer.ErrorSettingFolderSync", folder.getFullPath().toString())); //$NON-NLS-1$
- }
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(folder, null);
- try {
- beginOperation();
- // get the old info
- FolderSyncInfo oldInfo = getFolderSync(folder);
- // set folder sync and notify
- getSyncInfoCacheFor(folder).setCachedFolderSync(folder, info, true);
- // if the sync info changed from null, we may need to adjust the ancestors
- if (oldInfo == null) {
- adjustDirtyStateRecursively(folder, RECOMPUTE_INDICATOR);
- }
- folderChanged(folder);
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
-
- /**
- * Gets the folder sync info for the specified folder.
- *
- * @param folder the folder
- * @return the folder sync info associated with the folder, or null if none.
- * @see #setFolderSync, #deleteFolderSync
- */
- public FolderSyncInfo getFolderSync(IContainer folder) throws CVSException {
- if (folder.getType() == IResource.ROOT || !isValid(folder)) return null;
- try {
- beginOperation();
- cacheFolderSync(folder);
- return getSyncInfoCacheFor(folder).getCachedFolderSync(folder);
- } finally {
- endOperation();
- }
- }
-
- /**
- * Deletes the folder sync for the specified folder and the resource sync
- * for all of its children. Does not recurse.
- *
- * @param folder the folder
- * @see #getFolderSync, #setFolderSync
- */
- public void deleteFolderSync(IContainer folder) throws CVSException {
- if (folder.getType() == IResource.ROOT || !isValid(folder)) return;
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(folder, null);
- try {
- beginOperation();
- // iterate over all children with sync info and prepare notifications
- // this is done first since deleting the folder sync may remove a phantom
- cacheResourceSyncForChildren(folder, true /* can modify workspace */);
- IResource[] children = folder.members(true);
- for (int i = 0; i < children.length; i++) {
- IResource resource = children[i];
- resourceChanged(resource);
- // delete resource sync for all children
- getSyncInfoCacheFor(resource).setCachedSyncBytes(resource, null, true);
- }
- // delete folder sync
- getSyncInfoCacheFor(folder).setCachedFolderSync(folder, null, true);
- folderChanged(folder);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
-
- private void folderChanged(IContainer folder) {
- resourceLock.folderChanged(folder);
- }
-
- private void resourceChanged(IResource resource) {
- resourceLock.resourceChanged(resource);
- }
-
- /**
- * Sets the resource sync info for the specified resource.
- * The parent folder must exist and must not be the workspace root.
- *
- * @param resource the resource
- * @param info the resource sync info, must not be null
- * @see #getResourceSync, #deleteResourceSync
- */
- public void setResourceSync(IResource resource, ResourceSyncInfo info) throws CVSException {
- Assert.isNotNull(info); // enforce the use of deleteResourceSync
- IContainer parent = resource.getParent();
- if (parent == null || parent.getType() == IResource.ROOT || !isValid(parent)) {
- throw new CVSException(IStatus.ERROR, CVSException.UNABLE,
- Policy.bind("EclipseSynchronizer.ErrorSettingResourceSync", resource.getFullPath().toString())); //$NON-NLS-1$
- }
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(resource, null);
- try {
- beginOperation();
- // cache resource sync for siblings, set for self, then notify
- cacheResourceSyncForChildren(parent, true /* can modify workspace */);
- setCachedResourceSync(resource, info);
- resourceChanged(resource);
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
-
- /**
- * Gets the resource sync info for the specified folder.
- *
- * @param resource the resource
- * @return the resource sync info associated with the resource, or null if none.
- * @see #setResourceSync, #deleteResourceSync
- */
- public ResourceSyncInfo getResourceSync(IResource resource) throws CVSException {
- byte[] info = getSyncBytes(resource);
- if (info == null) return null;
- return new ResourceSyncInfo(info);
- }
-
- /**
- * Gets the resource sync info for the specified folder.
- *
- * @param resource the resource
- * @return the resource sync info associated with the resource, or null if none.
- * @see #setResourceSync, #deleteResourceSync
- */
- public byte[] getSyncBytes(IResource resource) throws CVSException {
- IContainer parent = resource.getParent();
- if (parent == null || parent.getType() == IResource.ROOT || !isValid(parent)) return null;
- try {
- beginOperation();
- // cache resource sync for siblings, then return for self
- try {
- cacheResourceSyncForChildren(parent, false /* cannot modify workspace */);
- } catch (CVSException e) {
- if (isCannotModifySynchronizer(e) || isResourceNotFound(e)) {
- // We will resort to loading the sync info for the requested resource from disk
- byte[] bytes = getSyncBytesFromDisk(resource);
- if (!resource.exists() && bytes != null && !ResourceSyncInfo.isDeletion(bytes)) {
- bytes = ResourceSyncInfo.convertToDeletion(bytes);
- }
- return bytes;
- } else {
- throw e;
- }
- }
- return getCachedSyncBytes(resource);
- } finally {
- endOperation();
- }
- }
-
- /**
- * Sets the resource sync info for the specified resource.
- * The parent folder must exist and must not be the workspace root.
- *
- * @param resource the resource
- * @param info the resource sync info, must not be null
- * @see #getResourceSync, #deleteResourceSync
- */
- public void setSyncBytes(IResource resource, byte[] syncBytes) throws CVSException {
- Assert.isNotNull(syncBytes); // enforce the use of deleteResourceSync
- IContainer parent = resource.getParent();
- if (parent == null || parent.getType() == IResource.ROOT || !isValid(parent)) {
- throw new CVSException(IStatus.ERROR, CVSException.UNABLE,
- Policy.bind("EclipseSynchronizer.ErrorSettingResourceSync", resource.getFullPath().toString())); //$NON-NLS-1$
- }
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(resource, null);
- try {
- beginOperation();
- // cache resource sync for siblings, set for self, then notify
- cacheResourceSyncForChildren(parent, true /* can modify workspace */);
- setCachedSyncBytes(resource, syncBytes);
- resourceChanged(resource);
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
-
- /**
- * Deletes the resource sync info for the specified resource, if it exists.
- *
- * @param resource the resource
- * @see #getResourceSync, #setResourceSync
- */
- public void deleteResourceSync(IResource resource) throws CVSException {
- IContainer parent = resource.getParent();
- if (parent == null || parent.getType() == IResource.ROOT || !isValid(parent)) return;
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(resource, null);
- try {
- beginOperation();
- // cache resource sync for siblings, delete for self, then notify
- cacheResourceSyncForChildren(parent, true /* can modify workspace */);
- if (getCachedSyncBytes(resource) != null) { // avoid redundant notifications
- setCachedSyncBytes(resource, null);
- clearDirtyIndicator(resource);
- resourceChanged(resource);
- }
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
-
- /**
- * @param resource
- */
- private void clearDirtyIndicator(IResource resource) throws CVSException {
- getSyncInfoCacheFor(resource).flushDirtyCache(resource);
- adjustDirtyStateRecursively(resource.getParent(), RECOMPUTE_INDICATOR);
- }
-
- /**
- * Gets the array of ignore patterns for the specified folder.
- *
- * @param folder the folder
- * @return the patterns, or an empty array if none
- * @see #addIgnored
- */
- public boolean isIgnored(IResource resource) throws CVSException {
- if (resource.getType() == IResource.ROOT ||
- resource.getType() == IResource.PROJECT ||
- ! resource.exists()) {
- return false;
- }
- try {
- beginOperation();
- FileNameMatcher matcher = cacheFolderIgnores(resource.getParent());
- return matcher.match(resource.getName());
- } finally {
- endOperation();
- }
- }
-
- /**
- * Adds a pattern to the set of ignores for the specified folder.
- *
- * @param folder the folder
- * @param pattern the pattern
- */
- public void addIgnored(IContainer folder, String pattern) throws CVSException {
- if (folder.getType() == IResource.ROOT || ! folder.exists()) {
- throw new CVSException(IStatus.ERROR, CVSException.UNABLE,
- Policy.bind("EclipseSynchronizer.ErrorSettingIgnorePattern", folder.getFullPath().toString())); //$NON-NLS-1$
- }
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(folder, null);
- try {
- beginOperation();
- String[] ignores = SyncFileWriter.readCVSIgnoreEntries(folder);
- if (ignores != null) {
- // verify that the pattern has not already been added
- for (int i = 0; i < ignores.length; i++) {
- if (ignores[i].equals(pattern)) return;
- }
- // add the pattern
- String[] oldIgnores = ignores;
- ignores = new String[oldIgnores.length + 1];
- System.arraycopy(oldIgnores, 0, ignores, 0, oldIgnores.length);
- ignores[oldIgnores.length] = pattern;
- } else {
- ignores = new String[] { pattern };
- }
- setCachedFolderIgnores(folder, ignores);
- SyncFileWriter.writeCVSIgnoreEntries(folder, ignores);
- // broadcast changes to unmanaged children - they are the only candidates for being ignored
- List possibleIgnores = new ArrayList();
- accumulateNonManagedChildren(folder, possibleIgnores);
- ResourceStateChangeListeners.getListener().resourceSyncInfoChanged((IResource[])possibleIgnores.toArray(new IResource[possibleIgnores.size()]));
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
-
- /**
- * Returns the members of this folder including deleted resources with sync info,
- * but excluding special resources such as CVS subdirectories.
- *
- * @param folder the container to list
- * @return the array of members
- */
- public IResource[] members(IContainer folder) throws CVSException {
- if (! isValid(folder)) return new IResource[0];
- try {
- beginOperation();
- if (folder.getType() != IResource.ROOT) {
- // ensure that the sync info is cached so any required phantoms are created
- cacheResourceSyncForChildren(folder, false);
- }
- } catch (CVSException e) {
- if (!isCannotModifySynchronizer(e) && !isResourceNotFound(e)) {
- throw e;
- }
- } finally {
- endOperation();
- }
- try {
- return folder.members(true);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- private boolean isCannotModifySynchronizer(CVSException e) {
- // IResourceStatus.WORKSPACE_LOCKED can occur if the resource sync is loaded
- // during the POST_CHANGE delta phase.
- // CVSStatus.FAILED_TO_CACHE_SYNC_INFO can occur if the resource sync is loaded
- // when no scheduling rule is held.
- return (e.getStatus().getCode() == IResourceStatus.WORKSPACE_LOCKED
- || e.getStatus().getCode() == CVSStatus.FAILED_TO_CACHE_SYNC_INFO);
- }
-
- private boolean isResourceNotFound(CVSException e) {
- return e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND;
- }
-
- /**
- * Begins a batch of operations in order to optimize sync file writing.
- * The provided scheduling rule indicates the resources
- * that the resources affected by the operation while the returned scheduling rule
- * is the rule obtained by the lock. It may differ from the provided rule as it must
- * encompass any sync files that may change as a result of the operation.
- */
- public ISchedulingRule beginBatching(ISchedulingRule resourceRule, IProgressMonitor monitor) {
- return resourceLock.acquire(resourceRule, this /* IFlushOperation */, monitor);
- }
-
- /**
- * Ends a batch of operations. The provided rule must be the one that was returned
- * by the corresponding call to beginBatching.
- * <p>
- * Progress cancellation is ignored while writting the cache to disk. This
- * is to ensure cache to disk consistency.
- * </p>
- *
- * @param monitor the progress monitor, may be null
- * @exception CVSException with a status with code <code>COMMITTING_SYNC_INFO_FAILED</code>
- * if all the CVS sync information could not be written to disk.
- */
- public void endBatching(ISchedulingRule rule, IProgressMonitor monitor) throws CVSException {
- resourceLock.release(rule, monitor);
- }
-
- /* (non-Javadoc)
- *
- * Callback which is invoked when the batching resource lock is released
- * or when a flush is requested (see beginBatching(IResource)).
- *
- * @see org.eclipse.team.internal.ccvs.core.syncinfo.ReentrantLock.IRunnableOnExit#run(org.eclipse.team.internal.ccvs.core.syncinfo.ReentrantLock.ThreadInfo, org.eclipse.core.runtime.IProgressMonitor)
- */
- public void flush(final ThreadInfo info, IProgressMonitor monitor) throws CVSException {
- if (info != null && !info.isEmpty()) {
- try {
- beginOperation();
- ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
- public void run(IProgressMonitor pm) throws CoreException {
- IStatus status = commitCache(info, pm);
- if (!status.isOK()) {
- throw new CVSException(status);
- }
- }
- }, null, 0 /* no flags */, monitor);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- endOperation();
- }
- }
- }
-
- /*
- * Begin an access to the internal data structures of the synchronizer
- */
- private void beginOperation() {
- // Do not try to acquire the lock if the resources tree is locked
- // The reason for this is that during the resource delta phase (i.e. when the tree is locked)
- // the workspace lock is held. If we obtain our lock, there is
- // a chance of dealock. It is OK if we don't as we are still protected
- // by scheduling rules and the workspace lock.
- if (ResourcesPlugin.getWorkspace().isTreeLocked()) return;
- lock.acquire();
- }
-
- /*
- * End an access to the internal data structures of the synchronizer
- */
- private void endOperation() {
- // See beginOperation() for a description of why the lock is not obtained when the tree is locked
- if (ResourcesPlugin.getWorkspace().isTreeLocked()) return;
- lock.release();
- }
-
- /**
- * Flush the sync information from the in-memory cache to disk and purge
- * the entries from the cache.
- * <p>
- * Recursively flushes the sync information for all resources
- * below the root to disk and purges the entries from memory
- * so that the next time it is accessed it will be retrieved from disk.
- * May flush more sync information than strictly needed, but never less.
- * </p>
- *
- * @param root the root of the subtree to purge
- * @param deep purge sync from child folders
- * @param monitor the progress monitor, may be null
- */
- public void flush(IContainer root, boolean deep, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 10);
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(root, Policy.subMonitorFor(monitor, 1));
- try {
- beginOperation();
- try {
- // Flush changes to disk
- resourceLock.flush(Policy.subMonitorFor(monitor, 8));
- } finally {
- // Purge the in-memory cache
- sessionPropertyCache.purgeCache(root, deep);
- }
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, Policy.subMonitorFor(monitor, 1));
- monitor.done();
- }
- }
-
- public void deconfigure(final IProject project, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(project, Policy.subMonitorFor(monitor, 10));
- // Flush
- flush(project, true /* deep */, Policy.subMonitorFor(monitor, 80));
-
- // forget about pruned folders however the top level pruned folder will have resource sync (e.g.
- // a line in the Entry file). As a result the folder is managed but is not a CVS folder.
- synchronizerCache.purgeCache(project, true);
- } finally {
- if (rule != null) endBatching(rule, Policy.subMonitorFor(monitor, 10));
- monitor.done();
- }
- }
-
- /**
- * Called to notify the synchronizer that meta files have changed on disk, outside
- * of the workbench. The cache will be flushed for this folder and it's immediate
- * children and appropriate state change events are broadcasts to state change
- * listeners.
- */
- public void ignoreFilesChanged(IContainer[] roots) throws CVSException {
- for (int i = 0; i < roots.length; i++) {
- IContainer container = roots[i];
- ISchedulingRule rule = null;
- try {
- Set changed = new HashSet();
- rule = beginBatching(container, null);
- try {
- beginOperation();
- changed.addAll(Arrays.asList(
- sessionPropertyCache.purgeCache(container, false /*don't flush children*/)));
- } finally {
- endOperation();
- }
- if (!changed.isEmpty()) {
- ResourceStateChangeListeners.getListener().resourceSyncInfoChanged(
- (IResource[]) changed.toArray(new IResource[changed.size()]));
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
- }
-
- public void syncFilesChangedExternally(IContainer[] changedMetaFiles, IFile[] externalDeletions) throws CVSException {
- List changed = new ArrayList();
- for (int i = 0; i < changedMetaFiles.length; i++) {
- IContainer container = changedMetaFiles[i];
- if (!isWithinActiveOperationScope(container)) {
- changed.addAll(Arrays.asList(
- sessionPropertyCache.purgeCache(container, false /*don't flush children*/)));
- }
- }
- for (int i = 0; i < externalDeletions.length; i++) {
- IFile file = externalDeletions[i];
- if (!isWithinActiveOperationScope(file)) {
- sessionPropertyCache.purgeCache(file.getParent(), false /*don't flush children*/);
- changed.add(file);
- }
- }
- if (!changed.isEmpty()) {
- ResourceStateChangeListeners.getListener().externalSyncInfoChange(
- (IResource[]) changed.toArray(new IResource[changed.size()]));
- }
- }
-
- /*
- * The resource is about to be deleted by the move delete hook.
- * In all cases (except when the resource doesn't exist), this method
- * will indicate that the dirty state of the parent needs to be recomputed.
- * For managed resources, it will move the cached sync info from the session
- * property cache into the sycnrhonizer cache, purging the session cache.
- * @param resource the resource about to be deleted.
- * <p>
- * Note taht this method is not recursive. Hence, for managed resources
- *
- * @returns whether children need to be prepared
- * @throws CVSException
- */
- /* private */ boolean prepareForDeletion(IResource resource) throws CVSException {
- if (!resource.exists()) return false;
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(resource, null);
- try {
- beginOperation();
- // Flush the dirty info for the resource and it's ancestors.
- // Although we could be smarter, we need to do this because the
- // deletion may fail.
- adjustDirtyStateRecursively(resource, RECOMPUTE_INDICATOR);
- if (resource.getType() == IResource.FILE) {
- byte[] syncBytes = getSyncBytes(resource);
- if (syncBytes != null) {
- if (ResourceSyncInfo.isAddition(syncBytes)) {
- deleteResourceSync(resource);
- } else {
- syncBytes = convertToDeletion(syncBytes);
- synchronizerCache.setCachedSyncBytes(resource, syncBytes, true);
- }
- sessionPropertyCache.purgeResourceSyncCache(resource);
- resourceChanged(resource);
- }
- return false;
- } else {
- IContainer container = (IContainer)resource;
- if (container.getType() == IResource.PROJECT) {
- synchronizerCache.flush((IProject)container);
- return false;
- } else {
- // Move the folder sync info into phantom space
- FolderSyncInfo info = getFolderSync(container);
- if (info == null) return false;
- synchronizerCache.setCachedFolderSync(container, info, true);
- folderChanged(container);
- // move the resource sync as well
- byte[] syncBytes = getSyncBytes(resource);
- synchronizerCache.setCachedSyncBytes(resource, syncBytes, true);
- sessionPropertyCache.purgeResourceSyncCache(container);
- sessionPropertyCache.purgeCache(container, false);
- return true;
- }
- }
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
-
- /**
- * The resource has been deleted. Make sure any cached state is cleared.
- * This is needed because the move/delete hook is not invoked in all situations
- * (e.g. external deletion).
- *
- * @param resource
- * @throws CVSException
- */
- protected void handleDeleted(IResource resource) throws CVSException {
- if (resource.exists()) return;
- try {
- beginOperation();
- adjustDirtyStateRecursively(resource, RECOMPUTE_INDICATOR);
- } finally {
- endOperation();
- }
- }
-
- /**
- * Prepare for the deletion of the target resource from within
- * the move/delete hook. The method is invoked by both the
- * deleteFile/Folder methods and for the source resource
- * of moveFile/Folder. This method will move the cached sync info
- * into the phantom (ISynchronizer) cache so that outgoing deletions
- * and known remote folders are preserved.
- *
- * @param resource
- * @param monitor
- * @throws CVSException
- */
- public void prepareForDeletion(IResource resource, IProgressMonitor monitor) throws CVSException {
- // Move sync info to phantom space for the resource and all it's children
- monitor = Policy.monitorFor(monitor);
- try {
- beginOperation();
- monitor.beginTask(null, 100);
- try {
- resource.accept(new IResourceVisitor() {
- public boolean visit(IResource innerResource) throws CoreException {
- try {
- return prepareForDeletion(innerResource);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- throw new CoreException(e.getStatus());
- }
- }
- });
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- } finally {
- endOperation();
- monitor.done();
- }
- }
-
- /**
- * If not already cached, loads and caches the resource sync for the children of the container.
- * Folder must exist and must not be the workspace root.
- *
- * @param container the container
- */
- private void cacheResourceSyncForChildren(IContainer container, boolean canModifyWorkspace) throws CVSException {
- // don't try to load if the information is already cached
- if (! getSyncInfoCacheFor(container).isResourceSyncInfoCached(container)) {
- // load the sync info from disk
- byte[][] infos;
- // do not load the sync info for resources that are linked
- if (isLinkedResource(container)) {
- infos = null;
- } else {
- infos = SyncFileWriter.readAllResourceSync(container);
- }
- if (infos != null) {
- for (int i = 0; i < infos.length; i++) {
- byte[] syncBytes = infos[i];
- IPath name = new Path(getName(syncBytes));
- IResource resource;
- if (isFolder(syncBytes)) {
- resource = container.getFolder(name);
- } else {
- resource = container.getFile(name);
- }
- getSyncInfoCacheFor(resource).setCachedSyncBytes(resource, syncBytes, canModifyWorkspace);
- }
- }
- getSyncInfoCacheFor(container).setResourceSyncInfoCached(container);
- }
- }
-
- /**
- * If not already cached, loads and caches the folder sync for the
- * container. Folder must exist and must not be the workspace root.
- *
- * @param container the container
- */
- private void cacheFolderSync(IContainer container) throws CVSException {
- // don't try to load if the information is already cached
- if (! getSyncInfoCacheFor(container).isFolderSyncInfoCached(container)) {
- // load the sync info from disk
- FolderSyncInfo info;
- // do not load the sync info for resources that are linked
- if (isLinkedResource(container)) {
- info = null;
- } else {
- info = SyncFileWriter.readFolderSync(container);
- }
- getSyncInfoCacheFor(container).setCachedFolderSync(container, info, false);
- }
- }
-
- private boolean isLinkedResource(IResource resource) {
- return CVSWorkspaceRoot.isLinkedResource(resource);
- }
-
- /**
- * Load the sync info for the given resource from disk
- * @param resource
- * @return byte[]
- */
- private byte[] getSyncBytesFromDisk(IResource resource) throws CVSException {
- byte[][] infos = SyncFileWriter.readAllResourceSync(resource.getParent());
- if (infos == null) return null;
- for (int i = 0; i < infos.length; i++) {
- byte[] syncBytes = infos[i];
- if (resource.getName().equals(getName(syncBytes))) {
- return syncBytes;
- }
- }
- return null;
- }
-
- /**
- * Commits the cache after a series of operations.
- *
- * Will return STATUS_OK unless there were problems writting sync
- * information to disk. If an error occurs a multistatus is returned
- * with the list of reasons for the failures. Failures are recovered,
- * and all changed resources are given a chance to be written to disk.
- *
- * @param monitor the progress monitor, may be null
- */
- /* internal use only */ IStatus commitCache(ThreadInfo threadInfo, IProgressMonitor monitor) {
- if (threadInfo.isEmpty()) {
- return SyncInfoCache.STATUS_OK;
- }
- List errors = new ArrayList();
- try {
- /*** prepare operation ***/
- // find parents of changed resources
- IResource[] changedResources = threadInfo.getChangedResources();
- IContainer[] changedFolders = threadInfo.getChangedFolders();
- Set dirtyParents = new HashSet();
- for (int i = 0; i < changedResources.length; i++) {
- IResource resource = changedResources[i];
- IContainer folder = resource.getParent();
- dirtyParents.add(folder);
- }
-
- monitor = Policy.monitorFor(monitor);
- int numDirty = dirtyParents.size();
- int numResources = changedFolders.length + numDirty;
- monitor.beginTask(null, numResources);
- if(monitor.isCanceled()) {
- monitor.subTask(Policy.bind("EclipseSynchronizer.UpdatingSyncEndOperationCancelled")); //$NON-NLS-1$
- } else {
- monitor.subTask(Policy.bind("EclipseSynchronizer.UpdatingSyncEndOperation")); //$NON-NLS-1$
- }
-
- /*** write sync info to disk ***/
- // folder sync info changes
- for (int i = 0; i < changedFolders.length; i++) {
- IContainer folder = changedFolders[i];
- if (folder.exists() && folder.getType() != IResource.ROOT) {
- try {
- FolderSyncInfo info = sessionPropertyCache.getCachedFolderSync(folder);
- // Do not write the folder sync for linked resources
- if (info == null) {
- // deleted folder sync info since we loaded it
- // (but don't overwrite the sync info for linked folders
- if (!isLinkedResource(folder))
- SyncFileWriter.deleteFolderSync(folder);
- dirtyParents.remove(folder);
- } else {
- // modified or created new folder sync info since we loaded it
- SyncFileWriter.writeFolderSync(folder, info);
- }
- } catch(CVSException e) {
- try {
- sessionPropertyCache.purgeCache(folder, true /* deep */);
- } catch(CVSException pe) {
- errors.add(pe.getStatus());
- }
- errors.add(e.getStatus());
- }
- }
- monitor.worked(1);
- }
-
- // update progress for parents we will skip because they were deleted
- monitor.worked(numDirty - dirtyParents.size());
-
- // resource sync info changes
- for (Iterator it = dirtyParents.iterator(); it.hasNext();) {
- IContainer folder = (IContainer) it.next();
- if (folder.exists() && folder.getType() != IResource.ROOT) {
- // write sync info for all children in one go
- try {
- List infos = new ArrayList();
- IResource[] children = folder.members(true);
- for (int i = 0; i < children.length; i++) {
- IResource resource = children[i];
- byte[] syncBytes = getSyncBytes(resource);
- if (syncBytes != null) {
- infos.add(syncBytes);
- }
- }
- // do not overwrite the sync info for linked resources
- if (infos.size() > 0 || !isLinkedResource(folder))
- SyncFileWriter.writeAllResourceSync(folder,
- (byte[][]) infos.toArray(new byte[infos.size()][]));
- } catch(CVSException e) {
- try {
- sessionPropertyCache.purgeCache(folder, false /* depth 1 */);
- } catch(CVSException pe) {
- errors.add(pe.getStatus());
- }
- errors.add(e.getStatus());
- } catch (CoreException e) {
- try {
- sessionPropertyCache.purgeCache(folder, false /* depth 1 */);
- } catch(CVSException pe) {
- errors.add(pe.getStatus());
- }
- errors.add(e.getStatus());
- }
- }
- monitor.worked(1);
- }
-
- /*** broadcast events ***/
- monitor.subTask(Policy.bind("EclipseSynchronizer.NotifyingListeners")); //$NON-NLS-1$
- Set allChanges = new HashSet();
- allChanges.addAll(Arrays.asList(changedResources));
- allChanges.addAll(Arrays.asList(changedFolders));
- allChanges.addAll(dirtyParents);
- IResource[] resources = (IResource[]) allChanges.toArray(
- new IResource[allChanges.size()]);
- broadcastResourceStateChanges(resources);
- if ( ! errors.isEmpty()) {
- MultiStatus status = new MultiStatus(CVSProviderPlugin.ID,
- CVSStatus.COMMITTING_SYNC_INFO_FAILED,
- Policy.bind("EclipseSynchronizer.ErrorCommitting"), //$NON-NLS-1$
- null);
- for (int i = 0; i < errors.size(); i++) {
- status.merge((IStatus)errors.get(i));
- }
- return status;
- }
- return SyncInfoCache.STATUS_OK;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Broadcasts the resource state changes for the given resources to CVS Provider Plugin
- */
- void broadcastResourceStateChanges(IResource[] resources) {
- if (resources.length > 0) {
- ResourceStateChangeListeners.getListener().resourceSyncInfoChanged(resources);
- }
- }
-
- /**
- * Returns the resource sync info for the resource; null if none.
- * Parent must exist and must not be the workspace root.
- * The resource sync info for the children of the parent container MUST ALREADY BE CACHED.
- *
- * @param resource the resource
- * @return the resource sync info for the resource, or null
- * @see #cacheResourceSyncForChildren
- */
- private byte[] getCachedSyncBytes(IResource resource) throws CVSException {
- return getSyncInfoCacheFor(resource).getCachedSyncBytes(resource);
- }
-
- /**
- * Returns the resource sync info for the resource; null if none.
- * Parent must exist and must not be the workspace root.
- * The resource sync info for the children of the parent container MUST ALREADY BE CACHED.
- *
- * @param resource the resource
- * @return the resource sync info for the resource, or null
- * @see #cacheResourceSyncForChildren
- */
- private void setCachedSyncBytes(IResource resource, byte[] syncBytes) throws CVSException {
- getSyncInfoCacheFor(resource).setCachedSyncBytes(resource, syncBytes, true);
- resourceChanged(resource);
- }
-
- /**
- * Sets the resource sync info for the resource; if null, deletes it. Parent
- * must exist and must not be the workspace root. The resource sync info for
- * the children of the parent container MUST ALREADY BE CACHED.
- *
- * @param resource the resource
- * @param info the new resource sync info
- * @see #cacheResourceSyncForChildren
- */
- private void setCachedResourceSync(IResource resource, ResourceSyncInfo info) throws CVSException {
- //todo
- byte[] syncBytes = null;
- if (info != null) syncBytes = info.getBytes();
- getSyncInfoCacheFor(resource).setCachedSyncBytes(resource, syncBytes, true);
- }
-
- /**
- * If not already cached, loads and caches the folder ignores sync for the container.
- * Folder must exist and must not be the workspace root.
- *
- * @param container the container
- * @return the folder ignore patterns, or an empty array if none
- */
- private FileNameMatcher cacheFolderIgnores(IContainer container) throws CVSException {
- return sessionPropertyCache.cacheFolderIgnores(container);
- }
-
- /**
- * Sets the array of folder ignore patterns for the container, must not be null.
- * Folder must exist and must not be the workspace root.
- *
- * @param container the container
- * @param ignores the array of ignore patterns
- */
- private void setCachedFolderIgnores(IContainer container, String[] ignores) throws CVSException {
- sessionPropertyCache.setCachedFolderIgnores(container, ignores);
- }
-
- /*
- * Recursively adds to the possibleIgnores list all children of the given
- * folder that can be ignored. This method may only be invoked when a
- * schedling rule for the given foldr is held and when the CVs sync lock is
- * held.
- *
- * @param folder the folder to be searched
- * @param possibleIgnores the list of IResources that can be ignored
- */
- private void accumulateNonManagedChildren(IContainer folder, List possibleIgnores) throws CVSException {
- try {
- cacheResourceSyncForChildren(folder, true /* can modify workspace */);
- IResource[] children = folder.members();
- List folders = new ArrayList();
- // deal with all files first and then folders to be otimized for caching scheme
- for (int i = 0; i < children.length; i++) {
- IResource child = children[i];
- if(getCachedSyncBytes(child)==null) {
- possibleIgnores.add(child);
- }
- if(child.getType()!=IResource.FILE) {
- folders.add(child);
- }
- }
- for (Iterator iter = folders.iterator(); iter.hasNext();) {
- IContainer child = (IContainer) iter.next();
- accumulateNonManagedChildren(child, possibleIgnores);
- }
- } catch(CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * Add the entry to the CVS/Notify file. We are not initially concerned with efficiency
- * since edit/unedit are typically issued on a small set of files.
- *
- * XXX If there was a previous notify entry for the resource, it is replaced. This is
- * probably not the proper behavior (see EclipseFile).
- *
- * A value of null for info indicates that any entry for the given
- * resource is to be removed from the Notify file.
- *
- * @param resource
- * @param info
- */
- public void setNotifyInfo(IResource resource, NotifyInfo info) throws CVSException {
- NotifyInfo[] infos = SyncFileWriter.readAllNotifyInfo(resource.getParent());
- if (infos == null) {
- // if the file is empty and we are removing an entry, just return;
- if (info == null) return;
- infos = new NotifyInfo[] { info };
- } else {
- Map infoMap = new HashMap();
- for (int i = 0; i < infos.length; i++) {
- NotifyInfo notifyInfo = infos[i];
- infoMap.put(notifyInfo.getName(), notifyInfo);
- }
- if (info == null) {
- // if the info is null, remove the entry
- infoMap.remove(resource.getName());
- } else {
- // add the new entry to the list
- infoMap.put(info.getName(), info);
- }
-
- NotifyInfo[] newInfos = new NotifyInfo[infoMap.size()];
- int i = 0;
- for (Iterator iter = infoMap.values().iterator(); iter.hasNext();) {
- newInfos[i++] = (NotifyInfo) iter.next();
- }
- infos = newInfos;
- }
- SyncFileWriter.writeAllNotifyInfo(resource.getParent(), infos);
- }
-
- /**
- * Method getNotifyInfo.
- * @param resource
- * @return NotifyInfo
- */
- public NotifyInfo getNotifyInfo(IResource resource) throws CVSException {
- NotifyInfo[] infos = SyncFileWriter.readAllNotifyInfo(resource.getParent());
- if (infos == null) return null;
- for (int i = 0; i < infos.length; i++) {
- NotifyInfo notifyInfo = infos[i];
- if (notifyInfo.getName().equals(resource.getName())) {
- return notifyInfo;
- }
- }
- return null;
- }
-
- /**
- * Method deleteNotifyInfo.
- * @param resource
- */
- public void deleteNotifyInfo(IResource resource) throws CVSException {
- NotifyInfo[] infos = SyncFileWriter.readAllNotifyInfo(resource.getParent());
- if (infos == null) return;
- Map infoMap = new HashMap();
- for (int i = 0; i < infos.length; i++) {
- NotifyInfo notifyInfo = infos[i];
- infoMap.put(notifyInfo.getName(), notifyInfo);
- }
- infoMap.remove(resource.getName());
- NotifyInfo[] newInfos = new NotifyInfo[infoMap.size()];
- int i = 0;
- for (Iterator iter = infoMap.values().iterator(); iter.hasNext();) {
- newInfos[i++] = (NotifyInfo) iter.next();
- }
- SyncFileWriter.writeAllNotifyInfo(resource.getParent(), newInfos);
- }
-
- /**
- * Add the entry to the CVS/Baserev file. We are not initially concerned
- * with efficiency since edit/unedit are typically issued on a small set of
- * files.
- *
- * XXX If there was a previous notify entry for the resource, it is replaced. This is
- * probably not the proper behavior (see EclipseFile).
- *
- * @param resource
- * @param info
- */
- public void setBaserevInfo(IResource resource, BaserevInfo info) throws CVSException {
- BaserevInfo[] infos = SyncFileWriter.readAllBaserevInfo(resource.getParent());
- if (infos == null) {
- infos = new BaserevInfo[] { info };
- } else {
- Map infoMap = new HashMap();
- for (int i = 0; i < infos.length; i++) {
- infoMap.put(infos[i].getName(), infos[i]);
- }
- infoMap.put(info.getName(), info);
- BaserevInfo[] newInfos = new BaserevInfo[infoMap.size()];
- int i = 0;
- for (Iterator iter = infoMap.values().iterator(); iter.hasNext();) {
- newInfos[i++] = (BaserevInfo) iter.next();
- }
- infos = newInfos;
- }
- SyncFileWriter.writeAllBaserevInfo(resource.getParent(), infos);
- }
-
- /**
- * Method getBaserevInfo.
- * @param resource
- * @return BaserevInfo
- */
- public BaserevInfo getBaserevInfo(IResource resource) throws CVSException {
- BaserevInfo[] infos = SyncFileWriter.readAllBaserevInfo(resource.getParent());
- if (infos == null) return null;
- for (int i = 0; i < infos.length; i++) {
- BaserevInfo info = infos[i];
- if (info.getName().equals(resource.getName())) {
- return info;
- }
- }
- return null;
- }
-
- /**
- * Method deleteNotifyInfo.
- * @param resource
- */
- public void deleteBaserevInfo(IResource resource) throws CVSException {
- BaserevInfo[] infos = SyncFileWriter.readAllBaserevInfo(resource.getParent());
- if (infos == null) return;
- Map infoMap = new HashMap();
- for (int i = 0; i < infos.length; i++) {
- infoMap.put(infos[i].getName(), infos[i]);
- }
- infoMap.remove(resource.getName());
- BaserevInfo[] newInfos = new BaserevInfo[infoMap.size()];
- int i = 0;
- for (Iterator iter = infoMap.values().iterator(); iter.hasNext();) {
- newInfos[i++] = (BaserevInfo) iter.next();
- }
- SyncFileWriter.writeAllBaserevInfo(resource.getParent(), newInfos);
- }
-
- public void copyFileToBaseDirectory(final IFile file, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(file, Policy.subMonitorFor(monitor, 10));
- ResourceSyncInfo info = getResourceSync(file);
- // The file must exist remotely and locally
- if (info == null || info.isAdded() || info.isDeleted())
- return;
- SyncFileWriter.writeFileToBaseDirectory(file, Policy.subMonitorFor(monitor, 80));
- resourceChanged(file);
- } finally {
- if (rule != null) endBatching(rule, Policy.subMonitorFor(monitor, 10));
- monitor.done();
- }
- }
-
- public void restoreFileFromBaseDirectory(final IFile file, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(file, Policy.subMonitorFor(monitor, 10));
- ResourceSyncInfo info = getResourceSync(file);
- // The file must exist remotely
- if (info == null || info.isAdded())
- return;
- SyncFileWriter.restoreFileFromBaseDirectory(file, Policy.subMonitorFor(monitor, 80));
- resourceChanged(file);
- } finally {
- if (rule != null) endBatching(rule, Policy.subMonitorFor(monitor, 10));
- monitor.done();
- }
- }
-
- public void deleteFileFromBaseDirectory(final IFile file, IProgressMonitor monitor) throws CVSException {
- ResourceSyncInfo info = getResourceSync(file);
- // The file must exist remotely
- if (info == null || info.isAdded())
- return;
- SyncFileWriter.deleteFileFromBaseDirectory(file, monitor);
- }
-
- /**
- * Method isSyncInfoLoaded returns true if all the sync info for the
- * provided resources is loaded into the internal cache.
- *
- * @param resources
- * @param i
- * @return boolean
- */
- public boolean isSyncInfoLoaded(IResource[] resources, int depth) throws CVSException {
- // get the folders involved
- IContainer[] folders = getParentFolders(resources, depth);
- // for all folders that have a CVS folder, ensure the sync info is cached
- for (int i = 0; i < folders.length; i++) {
- IContainer parent = folders[i];
- if (!getSyncInfoCacheFor(parent).isSyncInfoLoaded(parent)) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Method ensureSyncInfoLoaded loads all the relevent sync info into the cache.
- * This method can only be invoked when the workspace is open for modification.
- * in other words it cannot be invoked from inside a POST_CHANGE delta listener.
- * @param resources
- * @param i
- * @return Object
- */
- public void ensureSyncInfoLoaded(IResource[] resources, int depth) throws CVSException {
- // get the folders involved
- IContainer[] folders = getParentFolders(resources, depth);
- // Cache the sync info for all the folders
- for (int i = 0; i < folders.length; i++) {
- IContainer parent = folders[i];
- ISchedulingRule rule = null;
- try {
- rule = beginBatching(parent, null);
- try {
- beginOperation();
- cacheResourceSyncForChildren(parent, true /* can modify workspace */);
- cacheFolderSync(parent);
- cacheFolderIgnores(parent);
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
- }
-
- /*
- * Collect the projects and parent folders of the resources since
- * thats were the sync info is kept.
- */
- private IContainer[] getParentFolders(IResource[] resources, int depth) throws CVSException {
- final Set folders = new HashSet();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- folders.add(resource.getProject());
- if (resource.getType() != IResource.PROJECT) {
- folders.add(resource.getParent());
- }
- // use the depth to gather child folders when appropriate
- if (depth != IResource.DEPTH_ZERO) {
- try {
- resource.accept(new IResourceVisitor() {
- public boolean visit(IResource innerResource) throws CoreException {
- if (innerResource.getType() == IResource.FOLDER)
- folders.add(innerResource);
- // let the depth determine who we visit
- return true;
- }
- }, depth, false);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
- }
- return (IContainer[]) folders.toArray(new IContainer[folders.size()]);
- }
-
- /**
- * Perform sync info batching within the context of the given resource
- * scheduling rule while running the given ICVSRunnable.
- * @param runnable
- * @param monitor
- * @throws CVSException
- */
- public void run(ISchedulingRule resourceRule, ICVSRunnable runnable, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- ISchedulingRule rule = beginBatching(resourceRule, Policy.subMonitorFor(monitor, 10));
- try {
- runnable.run(Policy.subMonitorFor(monitor, 80));
- } finally {
- if (rule != null) endBatching(rule, Policy.subMonitorFor(monitor, 10));
- monitor.done();
- }
- }
-
- /**
- * This method is invoked from the IMoveDeleteHook to batch the resulting sync file
- * changes.
- */
- public void run(ICVSRunnable runnable, IProgressMonitor monitor) throws CVSException {
- // Use the root resource as the rule.
- // Note: This will not lock the workspace due to behavior in ReentrantLock
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- run(root, runnable, monitor);
- }
-
- /**
- * Method isEdited returns true if a "cvs edit" was performed on the given
- * file and no commit or unedit has yet been performed.
- * @param iResource
- * @return boolean
- */
- public boolean isEdited(IFile resource) throws CVSException {
- return SyncFileWriter.isEdited(resource);
- }
-
- private void adjustDirtyStateRecursively(IResource resource, String indicator) throws CVSException {
- if (resource.getType() == IResource.ROOT) return;
- try {
- beginOperation();
-
- if (indicator == getDirtyIndicator(resource)) {
- return;
- }
-
- if (Policy.DEBUG_DIRTY_CACHING) {
- debug(resource, indicator, "adjusting dirty state"); //$NON-NLS-1$
- }
-
- getSyncInfoCacheFor(resource).setDirtyIndicator(resource, indicator);
-
- IContainer parent = resource.getParent();
- if(indicator == NOT_DIRTY_INDICATOR) {
- adjustDirtyStateRecursively(parent, RECOMPUTE_INDICATOR);
- }
-
- if(indicator == RECOMPUTE_INDICATOR) {
- adjustDirtyStateRecursively(parent, RECOMPUTE_INDICATOR);
- }
-
- if(indicator == IS_DIRTY_INDICATOR) {
- adjustDirtyStateRecursively(parent, indicator);
- }
- } finally {
- endOperation();
- }
- }
-
- protected String getDirtyIndicator(IResource resource) throws CVSException {
- try {
- beginOperation();
- return getSyncInfoCacheFor(resource).getDirtyIndicator(resource);
- } finally {
- endOperation();
- }
- }
-
- /*
- * Mark the given resource as either modified or clean using a persistant
- * property. Do nothing if the modified state is already what we want.
- * Return true if the modification state was changed.
- */
- protected void setDirtyIndicator(IResource resource, boolean modified) throws CVSException {
- String indicator = modified ? IS_DIRTY_INDICATOR : NOT_DIRTY_INDICATOR;
- // set the dirty indicator and adjust the parent accordingly
- adjustDirtyStateRecursively(resource, indicator);
- }
-
- /**
- * Method getName.
- * @param syncBytes
- */
- private String getName(byte[] syncBytes) throws CVSException {
- return ResourceSyncInfo.getName(syncBytes);
- }
-
- /**
- * Method isFolder.
- * @param syncBytes
- * @return boolean
- */
- private boolean isFolder(byte[] syncBytes) {
- return ResourceSyncInfo.isFolder(syncBytes);
- }
-
- /**
- * Method convertToDeletion.
- * @param syncBytes
- * @return byte[]
- */
- private byte[] convertToDeletion(byte[] syncBytes) throws CVSException {
- return ResourceSyncInfo.convertToDeletion(syncBytes);
- }
-
- /**
- * Method createdByMove clears any session properties on the file so it
- * appears as an ADDED file.
- *
- * @param destination
- */
- public void createdByMove(IFile file) throws CVSException {
- deleteResourceSync(file);
- }
-
- static public void debug(IResource resource, String indicator, String string) {
- String di = EclipseSynchronizer.IS_DIRTY_INDICATOR;
- if(indicator == EclipseSynchronizer.IS_DIRTY_INDICATOR) {
- di = "dirty"; //$NON-NLS-1$
- } else if(indicator == EclipseSynchronizer.NOT_DIRTY_INDICATOR) {
- di = "clean"; //$NON-NLS-1$
- } else {
- di = "needs recomputing"; //$NON-NLS-1$
- }
- System.out.println("["+string + ":" + di + "] " + resource.getFullPath()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
- static public void debug(IResource resource, boolean modified, String string) {
- debug(resource, modified ? IS_DIRTY_INDICATOR : NOT_DIRTY_INDICATOR, string);
- }
-
- /**
- * @param file
- * @return int
- */
- public int getModificationState(IResource resource) throws CVSException {
- String indicator = getDirtyIndicator(resource);
- if (Policy.DEBUG_DIRTY_CACHING) {
- debug(resource, indicator, "getModificationState"); //$NON-NLS-1$
- }
- if (indicator == null || indicator == RECOMPUTE_INDICATOR) {
- return ICVSFile.UNKNOWN;
- } else if (indicator == IS_DIRTY_INDICATOR) {
- return ICVSFile.DIRTY;
- } else if (indicator == NOT_DIRTY_INDICATOR) {
- return ICVSFile.CLEAN;
- } else {
- return ICVSFile.UNKNOWN;
- }
- }
-
- /**
- * Return whether the resource is within the scope of a currently active
- * CVS operation.
- * @param resource
- * @return
- */
- public boolean isWithinActiveOperationScope(IResource resource) {
- return resourceLock.isWithinActiveOperationScope(resource);
- }
-
- /**
- * Set the timestamp of the given file and set it to be CLEAN. It is
- * assumed that this method is only invoked to reset the file timestamp
- * to the timestamp that is in the CVS/Entries file.
- * @param file
- * @param time
- * @throws CVSException
- */
- public void setTimeStamp(ICVSFile cvsFile, long time) throws CVSException {
- ISchedulingRule rule = null;
- IFile file = (IFile)cvsFile.getIResource();
- try {
- rule = beginBatching(file, null);
- try {
- beginOperation();
- try {
- file.setLocalTimeStamp(time);
- setModified(cvsFile, ICVSFile.CLEAN);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- resourceChanged(file);
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, null);
- }
- }
-
- /**
- * React to a resource that was just moved by the move/delete hook.
- * @param resource the resource that was moved (at its new location)
- */
- public void postMove(IResource resource) throws CVSException {
- try {
- beginOperation();
- if (resource.getType() == IResource.FILE) {
- // Purge any copied sync info so true sync info will
- // be obtained from the synchronizer cache
- sessionPropertyCache.purgeResourceSyncCache(resource);
- } else {
- IContainer container = (IContainer)resource;
- // Purge any copied sync info
- sessionPropertyCache.purgeCache(container, true /* deep */);
- // Dirty all resources so old sync info will be rewritten to disk
- try {
- container.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- if (getSyncBytes(resource) != null) {
- resourceChanged(resource);
- }
- if (resource.getType() != IResource.FILE) {
- if (getFolderSync((IContainer)resource) != null) {
- folderChanged((IContainer)resource);
- return true;
- }
- }
- return false;
- }
- });
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- // Flush the sync info to disk
- flush(container, true /* deep */, null);
- }
- } finally {
- endOperation();
- }
- }
-
- /**
- * This method is to be invoked only from the move/delete hook. It's purpose
- * is to obtain the sync look in order to prevent other threads from accessing
- * sync info while the move/delete is taking place.
- * @param runnable
- * @param monitor
- * @throws CVSException
- */
- public void performMoveDelete(ICVSRunnable runnable, IProgressMonitor monitor) throws CVSException {
- ISchedulingRule rule = null;
- try {
- monitor.beginTask(null, 100);
- rule = beginBatching(null, null);
- try {
- beginOperation();
- runnable.run(Policy.subMonitorFor(monitor, 95));
- } finally {
- endOperation();
- }
- } finally {
- if (rule != null) endBatching(rule, Policy.subMonitorFor(monitor, 5));
- monitor.done();
- }
- }
-
- /**
- * Compute the modification state for the given file. If the modificationState is
- * ICVSFile.UNKNOWN, it is computed. However, if it is CLEAN or DIRTY,
- * it is set accordingly. CLEAN or DIRTY can only be used if the caller is protected
- * from resource modifications (either by a scheduling rule or inside a delta handler).
- * @param file
- * @param modificationState
- * @return true if the file is dirty
- */
- public boolean setModified(ICVSFile cvsFile, int modificationState) throws CVSException {
- try {
- beginOperation();
- boolean dirty;
- if (modificationState == ICVSFile.UNKNOWN) {
- // if there is no sync info and it doesn't exist then it is a phantom we don't care about.
- ResourceSyncInfo info = cvsFile.getSyncInfo();
- if (info == null) {
- dirty = cvsFile.exists();
- } else {
- // isMerged() must be called because when a file is updated and merged by the cvs server the timestamps
- // are equal. Merged files should however be reported as dirty because the user should take action and commit
- // or review the merged contents.
- if(info.isAdded() || info.isMerged() || !cvsFile.exists()) {
- dirty = true;
- } else {
- dirty = !cvsFile.getTimeStamp().equals(info.getTimeStamp());
- }
- }
- } else {
- dirty = modificationState == ICVSFile.DIRTY;
- }
- setDirtyIndicator(cvsFile.getIResource(), dirty);
- return dirty;
- } finally {
- endOperation();
- }
-
- }
-
- /**
- * Set the modified state of the folder. This method can be called when no resource locks are
- * held. It will check the cached modification state of all the folder's children before setting.
- * If the states of the children do not match, the state for the folder is not cached.
- * @param folder
- * @param modified
- */
- public void setModified(ICVSFolder cvsFolder, boolean modified) throws CVSException {
- try {
- beginOperation();
- IContainer folder = (IContainer)cvsFolder.getIResource();
- // The drop out condition for clean or dirty are the opposite.
- // (i.e. if modified and a dirty is found we can set the indicator
- // and if not modified and a dirty or unknown is found we cannot set the indicator)
- boolean okToSet = !modified;
- // Obtain the children while we're locked to ensure some were not added or changed
- ICVSResource[] children = cvsFolder.members(ICVSFolder.ALL_UNIGNORED_MEMBERS);
- for (int i = 0; i < children.length; i++) {
- IResource resource = children[i].getIResource();
- if (modified) {
- if (getDirtyIndicator(resource) == IS_DIRTY_INDICATOR) {
- okToSet = true;
- break;
- }
- } else {
- if (getDirtyIndicator(resource) != NOT_DIRTY_INDICATOR) {
- okToSet = false;
- break;
- }
- }
- }
- if (okToSet) {
- setDirtyIndicator(folder, modified);
- }
- } finally {
- endOperation();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/FileContentCachingService.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/FileContentCachingService.java
deleted file mode 100644
index e7b9146e4..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/FileContentCachingService.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.team.internal.ccvs.core.resources;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-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.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-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.Update;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-
-/**
- * This class can be used to fetch and cache file contents for remote files.
- */
-public class FileContentCachingService {
-
- String[] fileDiffs;
- private CVSRepositoryLocation repository;
- private ICVSFolder remoteRoot;
-
- public static RemoteFolderTree buildRemoteTree(CVSRepositoryLocation repository, ICVSFolder root, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, 100);
- try {
- RemoteFolderTreeBuilder builder = new RemoteFolderTreeBuilder(repository, root, tag);
- RemoteFolderTree tree = builder.buildTree(new ICVSResource[] { root }, Policy.subMonitorFor(monitor, 50));
- FileContentCachingService service = new FileContentCachingService(repository, tree, builder.getFileDiffs());
- service.cacheFileContents(Policy.subMonitorFor(monitor, 50));
- return tree;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Fetch and cache the file contents for the specified files.
- * @param root the root folder for the files being fetched
- * @param filePaths the root relative file paths
- * @param monitor
- * @throws CVSException
- */
- public static void fetchFileContents(RemoteFolderTree root, String[] filePaths, IProgressMonitor monitor) throws CVSException {
- FileContentCachingService service = new FileContentCachingService((CVSRepositoryLocation)root.getRepository(), root, filePaths);
- service.cacheFileContents(monitor);
- }
-
- public static RemoteFile buildRemoteTree(CVSRepositoryLocation repository, ICVSFile file, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, 100);
- try {
- RemoteFolderTreeBuilder builder = new RemoteFolderTreeBuilder(repository, file.getParent(), tag);
- RemoteFile remote = builder.buildTree(file, monitor);
- if (builder.getFileDiffs().length > 0 && !remote.isContentsCached()) {
- remote.fetchContents(Policy.subMonitorFor(monitor, 50));
- }
- return remote;
- } finally {
- monitor.done();
- }
- }
-
- public FileContentCachingService(CVSRepositoryLocation repository, RemoteFolderTree tree, String[] fileDiffs) {
- this.repository = repository;
- this.remoteRoot = tree;
- this.fileDiffs = fileDiffs;
- }
-
- private void cacheFileContents(IProgressMonitor monitor) throws CVSException {
- String[] files = getUncachedFiles();
- if (files.length == 0) return;
- // Fetch the file contents for all out-of-sync files by running an update
- // on the remote tree passing the known changed files as arguments
- monitor.beginTask(null, 10 + files.length * 100);
- Policy.checkCanceled(monitor);
- Session session = new Session(repository, remoteRoot, false);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- Policy.checkCanceled(monitor);
- IStatus status = Command.UPDATE.execute(session,
- Command.NO_GLOBAL_OPTIONS,
- new LocalOption[] { Update.IGNORE_LOCAL_CHANGES },
- files,
- null,
- Policy.subMonitorFor(monitor, files.length * 100));
- if (!status.isOK()) {
- // No big deal but log the problem anyway
- CVSProviderPlugin.log (new CVSException(status));
- }
- } finally {
- session.close();
- monitor.done();
- }
- }
-
- /*
- * Only return those file in the diff list that exist remotely and whose contents are not already cached
- */
- private String[] getUncachedFiles() {
- if (fileDiffs.length == 0) return fileDiffs;
- List existing = new ArrayList();
- for (int i = 0; i < fileDiffs.length; i++) {
- String filePath = fileDiffs[i];
- try {
- ICVSFile file = remoteRoot.getFile(filePath);
- if (file instanceof RemoteFile) {
- if (!((RemoteFile)file).isContentsCached()) {
- existing.add(filePath);
- }
- }
- } catch (CVSException e) {
- // The child does not exists so exclude it
- }
- }
- return (String[]) existing.toArray(new String[existing.size()]);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/FileModificationManager.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/FileModificationManager.java
deleted file mode 100644
index 5069467e7..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/FileModificationManager.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ISaveContext;
-import org.eclipse.core.resources.ISaveParticipant;
-import org.eclipse.core.resources.ISavedState;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners;
-
-/**
- * This class performs several functions related to determining the modified
- * status of files under CVS control. First, it listens for change delta's for
- * files and brodcasts them to all listeners. It also registers as a save
- * participant so that deltas generated before the plugin are loaded are not
- * missed. Secondly, it listens for CVS resource state change events and uses
- * these to properly mark files and folders as modified.
- */
-public class FileModificationManager implements IResourceChangeListener, ISaveParticipant {
-
- private static final QualifiedName UPDATE_TIMESTAMP = new QualifiedName(CVSProviderPlugin.ID, "update-timestamp"); //$NON-NLS-1$
-
- /* private */Set modifiedResources = new HashSet();
-
- // consider the following changes types and ignore the others (e.g. marker and description changes are ignored)
- protected int INTERESTING_CHANGES = IResourceDelta.CONTENT |
- IResourceDelta.MOVED_FROM |
- IResourceDelta.MOVED_TO |
- IResourceDelta.OPEN |
- IResourceDelta.REPLACED |
- IResourceDelta.TYPE;
-
- /**
- * Listen for file modifications and fire modification state changes
- *
- * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- try {
- event.getDelta().accept(new IResourceDeltaVisitor() {
- public boolean visit(IResourceDelta delta) {
- IResource resource = delta.getResource();
-
- if (resource.getType()==IResource.PROJECT) {
- IProject project = (IProject)resource;
- if (!project.isAccessible()) {
- return false;
- }
- if ((delta.getFlags() & IResourceDelta.OPEN) != 0) {
- return false;
- }
- if (RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId()) == null) {
- return false;
- }
- }
-
- if (resource.getType()==IResource.FILE && delta.getKind() == IResourceDelta.CHANGED && resource.exists()) {
- int flags = delta.getFlags();
- if((flags & INTERESTING_CHANGES) != 0) {
- resourceChanged(resource, false);
- }
- } else if (delta.getKind() == IResourceDelta.ADDED) {
- resourceChanged(resource, true);
- } else if (delta.getKind() == IResourceDelta.REMOVED) {
- try {
- EclipseSynchronizer.getInstance().handleDeleted(resource);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- modifiedResources.add(resource);
- }
-
- return true;
- }
- });
- if (!modifiedResources.isEmpty()) {
- ResourceStateChangeListeners.getListener().resourceModified(
- (IResource[])modifiedResources.toArray(new IResource[modifiedResources.size()]));
- modifiedResources.clear();
- }
- } catch (CoreException e) {
- CVSProviderPlugin.log(e);
- }
-
- }
-
- /**
- * We register a save participant so we can get the delta from workbench
- * startup to plugin startup.
- * @throws CoreException
- */
- public void registerSaveParticipant() throws CoreException {
- IWorkspace ws = ResourcesPlugin.getWorkspace();
- ISavedState ss = ws.addSaveParticipant(CVSProviderPlugin.getPlugin(), this);
- if (ss != null) {
- ss.processResourceChangeEvents(this);
- }
- ws.removeSaveParticipant(CVSProviderPlugin.getPlugin());
- }
-
- /**
- * @see org.eclipse.core.resources.ISaveParticipant#doneSaving(org.eclipse.core.resources.ISaveContext)
- */
- public void doneSaving(ISaveContext context) {
- // Do nothing
- }
- /**
- * @see org.eclipse.core.resources.ISaveParticipant#prepareToSave(org.eclipse.core.resources.ISaveContext)
- */
- public void prepareToSave(ISaveContext context) {
- // Do nothing
- }
- /**
- * @see org.eclipse.core.resources.ISaveParticipant#rollback(org.eclipse.core.resources.ISaveContext)
- */
- public void rollback(ISaveContext context) {
- // Do nothing
- }
- /**
- * @see org.eclipse.core.resources.ISaveParticipant#saving(org.eclipse.core.resources.ISaveContext)
- */
- public void saving(ISaveContext context) {
- // Do nothing
- }
-
-
- /**
- * Method updated flags the objetc as having been modfied by the updated
- * handler. This flag is read during the resource delta to determine whether
- * the modification made the file dirty or not.
- *
- * @param mFile
- */
- public void updated(ICVSFile mFile) {
- try {
- if (mFile instanceof EclipseFile) {
- IFile file = (IFile)mFile.getIResource();
- file.setSessionProperty(UPDATE_TIMESTAMP, new Long(file.getModificationStamp()));
- }
- } catch (CoreException e) {
- CVSProviderPlugin.log(e);
- }
- }
-
- /*
- * Handle added and changed resources by signaling the change to the corresponding
- * CVS resource and recording the change for broadcast to interested listeners.
- */
- /* private */void resourceChanged(IResource resource, boolean addition) {
- if (isCleanUpdate(resource)) return;
- try {
- EclipseResource cvsResource = (EclipseResource)CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (!cvsResource.isIgnored()) {
- cvsResource.handleModification(addition);
- modifiedResources.add(resource);
- }
- } catch (CVSException e) {
- // Log the exception and continue
- CVSProviderPlugin.log(e);
- }
- }
-
- /**
- * If the file was the result of a clean update, the cached timestamp will
- * be removed.
- *
- * @param resource
- * @return boolean
- */
- private boolean isCleanUpdate(IResource resource) {
- if(resource.getType() != IResource.FILE) return false;
- long modStamp = resource.getModificationStamp();
- Long whenWeWrote;
- try {
- whenWeWrote = (Long)resource.getSessionProperty(UPDATE_TIMESTAMP);
- resource.setSessionProperty(UPDATE_TIMESTAMP, null);
- } catch(CoreException e) {
- CVSProviderPlugin.log(e);
- whenWeWrote = null;
- }
- return (whenWeWrote!=null && whenWeWrote.longValue() == modStamp);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFile.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFile.java
deleted file mode 100644
index d90290c9e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFile.java
+++ /dev/null
@@ -1,667 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.*;
-import org.eclipse.team.internal.ccvs.core.client.Command.*;
-import org.eclipse.team.internal.ccvs.core.client.listeners.LogListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.syncinfo.*;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-/**
- * This class provides the implementation of ICVSRemoteFile and IManagedFile for
- * use by the repository and sync view.
- */
-public class RemoteFile extends RemoteResource implements ICVSRemoteFile {
-
- // sync info in byte form
- private byte[] syncBytes;
- // cache the log entry for the remote file
- private ILogEntry entry;
- // state that indicates that the handle is actively fetching content
- private boolean fetching = false;
-
- /**
- * Static method which creates a file as a single child of its parent.
- * This should only be used when one is only interested in the file alone.
- *
- * The returned RemoteFile represents the base of the local resource.
- * If the local resource does not have a base, then null is returned
- * even if the resource does exists remotely (e.g. created by another party).
- */
- public static RemoteFile getBase(RemoteFolder parent, ICVSFile managed) throws CVSException {
- Assert.isNotNull(parent, "A parent folder must be provided for file " + managed.getName()); //$NON-NLS-1$
- byte[] syncBytes = managed.getSyncBytes();
- if ((syncBytes == null) || ResourceSyncInfo.isAddition(syncBytes)) {
- // Either the file is unmanaged or has just been added (i.e. doesn't necessarily have a remote)
- return null;
- }
- if (ResourceSyncInfo.isDeletion(syncBytes)) {
- syncBytes = ResourceSyncInfo.convertFromDeletion(syncBytes);
- }
- RemoteFile file = new RemoteFile(parent, syncBytes);
- parent.setChildren(new ICVSRemoteResource[] {file});
- return file;
- }
-
- public static RemoteFile fromBytes(IResource local, byte[] bytes, byte[] parentBytes) throws CVSException {
- Assert.isNotNull(bytes);
- Assert.isTrue(local.getType() == IResource.FILE);
- RemoteFolder parent = RemoteFolder.fromBytes(local.getParent(), parentBytes);
- RemoteFile file = new RemoteFile(parent, bytes);
- parent.setChildren(new ICVSRemoteResource[] {file});
- return file;
- }
-
- public static RemoteFile getRemote(IFile local, byte[] bytes) throws CVSException {
- RemoteFolder parent = (RemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(local.getParent());
- RemoteFile file = new RemoteFile(parent, bytes);
- parent.setChildren(new ICVSRemoteResource[] {file});
- return file;
- }
-
- /**
- * Constructor for RemoteFile that should be used when nothing is know about the
- * file ahead of time.
- * @param parent the folder that is the parent of the file
- * @param workspaceSyncState the workspace state (use Update.STATE_NONE if unknown)
- * @param name the name of the file
- * @param revision revision of the file or <code>null</code> if the revision is not known
- * @param keywordMode keyword mode of the file or <code>null</code> if the mode is not known
- * @param tag tag for the file
- */
- public RemoteFile(RemoteFolder parent, int workspaceSyncState, String name, String revision, KSubstOption keywordMode, CVSTag tag) {
- this(parent, name, workspaceSyncState, getSyncBytes(name, revision, keywordMode, tag));
- }
-
- private static byte[] getSyncBytes(String name, String revision, KSubstOption keywordMode, CVSTag tag) {
- if (revision == null) {
- revision = ResourceSyncInfo.ADDED_REVISION;
- }
- if (keywordMode == null) {
- keywordMode = KSubstOption.getDefaultTextMode();
- }
- MutableResourceSyncInfo newInfo = new MutableResourceSyncInfo(name, revision);
- newInfo.setKeywordMode(keywordMode);
- newInfo.setTag(tag);
- return newInfo.getBytes();
- }
-
- /* package */ RemoteFile(RemoteFolder parent, byte[] syncBytes) throws CVSException {
- this(parent, Update.STATE_NONE, syncBytes);
- }
-
- /* package */ RemoteFile(RemoteFolder parent, int workspaceSyncState, byte[] syncBytes) throws CVSException {
- this(parent, ResourceSyncInfo.getName(syncBytes), workspaceSyncState, syncBytes);
- }
-
- private RemoteFile(RemoteFolder parent, String name, int workspaceSyncState, byte[] syncBytes) {
- super(parent, name);
- this.syncBytes = syncBytes;
- setWorkspaceSyncState(workspaceSyncState);
- }
-
- /**
- * @see ICVSResource#accept(ICVSResourceVisitor)
- */
- public void accept(ICVSResourceVisitor visitor) throws CVSException {
- visitor.visitFile(this);
- }
-
- /**
- * @see ICVSResource#accept(ICVSResourceVisitor, boolean)
- */
- public void accept(ICVSResourceVisitor visitor, boolean recurse) throws CVSException {
- visitor.visitFile(this);
- }
-
- /**
- * @see ICVSRemoteFile#getContents()
- */
- public InputStream getContents(IProgressMonitor monitor) throws CVSException {
- // Ensure that the contents are cached from the server
- if (!isContentsCached()) {
- fetchContents(monitor);
- }
- // If the fetch succeeded but no contents were cached from the server
- // than we can assume that the remote file has no contents.
- if (!isContentsCached()) {
- setContents(new ByteArrayInputStream(new byte[0]), UPDATED, false /* keep history */, monitor);
- }
- // Return the cached contents
- InputStream cached = getCachedContents();
- Assert.isNotNull(cached, "Caching error for file " + getRepositoryRelativePath()); //$NON-NLS-1$
- return cached;
- }
-
- /* package*/ void fetchContents(IProgressMonitor monitor) throws CVSException {
- try {
- aboutToReceiveContents(getSyncBytes());
- internalFetchContents(monitor);
- } finally {
- doneReceivingContents();
- }
- }
- /* package*/ void internalFetchContents(IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(Policy.bind("RemoteFile.getContents"), 100);//$NON-NLS-1$
- if (getRevision().equals(ResourceSyncInfo.ADDED_REVISION)) {
- // The revision of the remote file is not known so we need to use the tag to get the status of the file
- CVSTag tag = getSyncInfo().getTag();
- if (tag == null) tag = CVSTag.DEFAULT;
- RemoteFolderMemberFetcher fetcher = new RemoteFolderMemberFetcher((RemoteFolder)getParent(), tag);
- fetcher.updateFileRevisions(new ICVSFile[] { this }, Policy.subMonitorFor(monitor, 10));
- }
- Session session = new Session(getRepository(), parent, false /* create backups */);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- IStatus status = Command.UPDATE.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- new LocalOption[] {
- Update.makeTagOption(new CVSTag(getRevision(), CVSTag.VERSION)),
- Update.IGNORE_LOCAL_CHANGES },
- new ICVSResource[] { this },
- null,
- Policy.subMonitorFor(monitor, 80));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- } finally {
- session.close();
- monitor.done();
- }
- }
-
- /*
- * @see ICVSRemoteFile#getLogEntry(IProgressMonitor)
- */
- public ILogEntry getLogEntry(IProgressMonitor monitor) throws CVSException {
- if (entry == null) {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(Policy.bind("RemoteFile.getLogEntries"), 100); //$NON-NLS-1$
- Session session = new Session(getRepository(), parent, false /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- try {
- final List entries = new ArrayList();
- IStatus status = Command.LOG.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- new LocalOption[] {
- Log.makeRevisionOption(getRevision())},
- new ICVSResource[] { RemoteFile.this },
- new LogListener(RemoteFile.this, entries),
- Policy.subMonitorFor(monitor, 90));
- if (entries.size() == 1) {
- entry = (ILogEntry)entries.get(0);
- }
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- } finally {
- monitor.done();
- }
- } finally {
- session.close();
- }
- }
- return entry;
- }
-
- /**
- * @see ICVSRemoteFile#getLogEntries()
- */
- public ILogEntry[] getLogEntries(IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(Policy.bind("RemoteFile.getLogEntries"), 100); //$NON-NLS-1$
- final List entries = new ArrayList();
- Session session = new Session(getRepository(), parent, false /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- QuietOption quietness = CVSProviderPlugin.getPlugin().getQuietness();
- try {
- CVSProviderPlugin.getPlugin().setQuietness(Command.VERBOSE);
- IStatus status = Command.LOG.execute(
- session,
- Command.NO_GLOBAL_OPTIONS, Command.NO_LOCAL_OPTIONS,
- new ICVSResource[] { RemoteFile.this }, new LogListener(RemoteFile.this, entries),
- Policy.subMonitorFor(monitor, 90));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- } finally {
- CVSProviderPlugin.getPlugin().setQuietness(quietness);
- monitor.done();
- }
- } finally {
- session.close();
- }
- return (ILogEntry[])entries.toArray(new ILogEntry[entries.size()]);
- }
-
- /**
- * @see ICVSRemoteFile#getRevision()
- */
- public String getRevision() {
- try {
- return ResourceSyncInfo.getRevision(syncBytes);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- return ResourceSyncInfo.ADDED_REVISION;
- }
- }
-
- private KSubstOption getKeywordMode() {
- try {
- return ResourceSyncInfo.getKeywordMode(syncBytes);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- return KSubstOption.getDefaultTextMode();
- }
- }
-
- /*
- * Get a different revision of the remote file.
- *
- * We must also create a new parent since the child is accessed through the parent from within CVS commands.
- * Therefore, we need a new parent so that we can fecth the contents of the remote file revision
- */
- public RemoteFile toRevision(String revision) {
- RemoteFolder newParent = new RemoteFolder(null, parent.getRepository(), parent.getRepositoryRelativePath(), parent.getTag());
- RemoteFile file = new RemoteFile(newParent, getWorkspaceSyncState(), getName(), revision, getKeywordMode(), CVSTag.DEFAULT);
- newParent.setChildren(new ICVSRemoteResource[] {file});
- return file;
- }
-
- /**
- * @see ICVSFile#getSize()
- */
- public long getSize() {
- if (fetching) return 0;
- RemoteContentsCacheEntry entry = getCacheEntry();
- if (entry == null) {
- return 0;
- }
- return entry.getSize();
- }
-
- /**
- * @see ICVSFile#getSyncInfo()
- */
- public ResourceSyncInfo getSyncInfo() {
- try {
- return new ResourceSyncInfo(syncBytes);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- return null;
- }
- }
-
- /**
- * @see ICVSResource#getRemoteLocation(ICVSFolder)
- */
- public String getRemoteLocation(ICVSFolder stopSearching) throws CVSException {
- return parent.getRemoteLocation(stopSearching) + Session.SERVER_SEPARATOR + getName();
- }
-
- /**
- * Get the remote path for the receiver relative to the repository location path
- */
- public String getRepositoryRelativePath() {
- String parentPath = parent.getRepositoryRelativePath();
- return parentPath + Session.SERVER_SEPARATOR + getName();
- }
-
- /**
- * Return the server root directory for the repository
- */
- public ICVSRepositoryLocation getRepository() {
- return parent.getRepository();
- }
-
- /**
- * @see IManagedFile#setFileInfo(FileProperties)
- */
- public void setSyncInfo(ResourceSyncInfo fileInfo, int modificationState) {
- setSyncBytes(fileInfo.getBytes(),modificationState);
- }
-
- /**
- * Set the revision for this remote file.
- *
- * @param revision to associated with this remote file
- */
- public void setRevision(String revision) throws CVSException {
- syncBytes = ResourceSyncInfo.setRevision(syncBytes, revision);
- }
-
- public InputStream getContents() throws CVSException {
- if (!fetching) {
- // Return the cached contents
- if (isContentsCached()) {
- InputStream cached = getCachedContents();
- if (cached != null) {
- return cached;
- }
- }
- }
- // There was nothing cached so return an empty stream.
- // This is done to allow the contents to be fetched
- // (i.e. update sends empty contents and real contents are sent back)
- return new ByteArrayInputStream(new byte[0]);
- }
-
- private InputStream getCachedContents() throws CVSException {
- try {
- RemoteContentsCacheEntry entry = getCacheEntry();
- byte[] newSyncBytes = entry.getSyncBytes();
- if (newSyncBytes != null) {
- // Make sure the sync bytes match the content that is being accessed
- syncBytes = newSyncBytes;
- }
- return entry.getContents();
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- public void setContents(InputStream stream, int responseType, boolean keepLocalHistory, IProgressMonitor monitor) throws CVSException {
- try {
- getCacheEntry().setContents(stream, monitor);
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- private RemoteContentsCache getRemoteContentsCache() {
- return CVSProviderPlugin.getPlugin().getRemoteContentsCache();
- }
-
- /*
- * Return the cache relative path for the receiver as
- * host/cvs/root/module/path/.#filename revision
- */
- private String getCacheRelativePath() {
- ICVSRepositoryLocation location = getRepository();
- IPath path = new Path(location.getHost());
- path = path.append(location.getRootDirectory());
- path = path.append(parent.getRepositoryRelativePath());
- path = path.append(getName() + ' ' + getRevision());
- return path.toString();
- }
-
- /*
- * Return whether there are already contents cached for the given handle
- */
- public boolean isContentsCached() {
- if (getRevision().equals(ResourceSyncInfo.ADDED_REVISION)) return false;
- String cacheRelativePath = getCacheRelativePath();
- if (!getRemoteContentsCache().hasEntry(cacheRelativePath)) {
- return false;
- }
- RemoteContentsCacheEntry entry = getRemoteContentsCache().getCacheEntry(cacheRelativePath);
- return entry.getState() == RemoteContentsCacheEntry.READY;
- }
-
- /*
- * @see ICVSFile#setReadOnly(boolean)
- */
- public void setReadOnly(boolean readOnly) {
- // RemoteFiles are always read only
- }
-
- /*
- * @see ICVSFile#isReadOnly()
- */
- public boolean isReadOnly() {
- return true;
- }
-
- /*
- * @see ICVSFile#getTimeStamp()
- */
- public Date getTimeStamp() {
- return getSyncInfo().getTimeStamp();
- }
-
- /*
- * @see ICVSFile#setTimeStamp(Date)
- */
- public void setTimeStamp(Date date) {
- // RemoteFiles are not muttable so do not support timestamp changes
- }
-
- /**
- * @see ICVSFile#moveTo(String)
- */
- public void copyTo(String mFile) {
- // Do nothing
- }
-
- /*
- * @see IRemoteResource#members(IProgressMonitor)
- */
- public IRemoteResource[] members(IProgressMonitor progress) {
- return new IRemoteResource[0];
- }
-
- /*
- * @see IRemoteResource#isContainer()
- */
- public boolean isContainer() {
- return false;
- }
-
- /*
- * @see ICVSResource#isFolder()
- */
- public boolean isFolder() {
- return false;
- }
-
- /*
- * @see ICVSResource#tag(CVSTag, LocalOption[], IProgressMonitor)
- *
- * The revision of the remote file is used as the base for the tagging operation
- */
- public IStatus tag(final CVSTag tag, final LocalOption[] localOptions, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- Session session = new Session(getRepository(), getParent(), true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 10), true /* open for modification */);
- try {
- return Command.RTAG.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- localOptions,
- new CVSTag(getRevision(), CVSTag.VERSION),
- tag,
- new ICVSRemoteResource[] { RemoteFile.this },
- Policy.subMonitorFor(monitor, 90));
- } finally {
- session.close();
- }
- }
-
- public boolean equals(Object target) {
- if (this == target)
- return true;
- if (!(target instanceof RemoteFile))
- return false;
- RemoteFile remote = (RemoteFile) target;
- return super.equals(target) && remote.getRevision().equals(getRevision());
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#checkout(int)
- */
- public void edit(int notifications, IProgressMonitor monitor) {
- // do nothing
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#uncheckout()
- */
- public void unedit(IProgressMonitor monitor) {
- // do nothing
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#notificationCompleted()
- */
- public void notificationCompleted() {
- // do nothing
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#getPendingNotification()
- */
- public NotifyInfo getPendingNotification() {
- return null;
- }
-
- /**
- * @see RemoteResource#forTag(ICVSRemoteFolder, CVSTag)
- */
- public ICVSRemoteResource forTag(ICVSRemoteFolder parent, CVSTag tag) {
- return new RemoteFile((RemoteFolder)parent, getWorkspaceSyncState(), getName(), getRevision(), getKeywordMode(), tag);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSRemoteResource#forTag(org.eclipse.team.internal.ccvs.core.CVSTag)
- */
- public ICVSRemoteResource forTag(CVSTag tag) {
- RemoteFolderTree remoteFolder = new RemoteFolderTree(null, getRepository(),
- ((ICVSRemoteFolder)getParent()).getRepositoryRelativePath(),
- tag);
- RemoteFile remoteFile = (RemoteFile)forTag(remoteFolder, tag);
- remoteFolder.setChildren(new ICVSRemoteResource[] { remoteFile });
- return remoteFile;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#committed(org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo)
- */
- public void checkedIn(String info) {
- // do nothing
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#isEdited()
- */
- public boolean isEdited() {
- return false;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#getSyncBytes()
- */
- public byte[] getSyncBytes() {
- return syncBytes;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFile#setSyncBytes(byte[])
- */
- public void setSyncBytes(byte[] syncBytes, int modificationState) {
- if (fetching) {
- RemoteContentsCacheEntry entry = getCacheEntry();
- entry.setSyncBytes(syncBytes);
- }
- this.syncBytes = syncBytes;
- }
-
- private RemoteContentsCacheEntry getCacheEntry() {
- return getRemoteContentsCache().getCacheEntry(getCacheRelativePath());
- }
-
- public String toString() {
- return super.toString() + " " + getRevision(); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getComment()
- */
- public String getComment() throws CVSException {
- ILogEntry entry = getLogEntry(new NullProgressMonitor());
- return entry.getComment();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getContentIdentifier()
- */
- public String getContentIdentifier() {
- return getRevision();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getCreatorDisplayName()
- */
- public String getCreatorDisplayName() throws CVSException {
- ILogEntry entry = getLogEntry(new NullProgressMonitor());
- return entry.getAuthor();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getBufferedStorage(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStorage getBufferedStorage(IProgressMonitor monitor) throws TeamException {
- // Invoke getContents which ensures that contents are cached
- getContents(monitor);
- return new IStorage() {
- public InputStream getContents() throws CoreException {
- return RemoteFile.this.getContents();
- }
- public IPath getFullPath() {
- return new Path(getRepositoryRelativePath());
- }
- public String getName() {
- return RemoteFile.this.getName();
- }
- public boolean isReadOnly() {
- return true;
- }
- public Object getAdapter(Class adapter) {
- return RemoteFile.this.getAdapter(adapter);
- }
- };
- }
-
- /**
- * Callback which indicates that the remote file is about to receive contents that should be cached
- * @param entryLine
- */
- public void aboutToReceiveContents(byte[] entryLine) {
- setSyncBytes(entryLine, ICVSFile.CLEAN);
- fetching = true;
- }
-
- /**
- * The contents for the file have already been provided.
- */
- public void doneReceivingContents() {
- fetching = false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.ISubscriberResource#getStorage(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStorage getStorage(IProgressMonitor monitor) throws TeamException {
- return getBufferedStorage(monitor);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolder.java
deleted file mode 100644
index cd1fb18ec..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolder.java
+++ /dev/null
@@ -1,623 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.*;
-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.client.listeners.IUpdateMessageListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.UpdateListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-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.Assert;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * This class provides the implementation of ICVSRemoteFolder
- *
- * The parent of the RemoteFolder represents the folders parent in a local configuration.
- * For instance, the parent may correspond to the remote parent or may be a folder in the
- * same repository that has no physical relationship to the RemoteFolder (resulting from the use
- * of a module definition, for instance). A RemoteFolder may not have a parent, indicating that it is
- * the root of the local configuration it represents.
- *
- * A RemoteFolder has the following:
- * A name in the folder's local configuration
- *
- */
-public class RemoteFolder extends RemoteResource implements ICVSRemoteFolder, ICVSFolder {
-
- protected static final int CHILD_DOES_NOT_EXIST = 1000;
-
- protected FolderSyncInfo folderInfo;
- private ICVSRemoteResource[] children;
- private ICVSRepositoryLocation repository;
-
- public static RemoteFolder fromBytes(IResource local, byte[] bytes) throws CVSException {
- Assert.isNotNull(bytes);
- Assert.isTrue(local.getType() != IResource.FILE);
- FolderSyncInfo syncInfo = FolderSyncInfo.getFolderSyncInfo(bytes);
- return new RemoteFolder(null, local.getName(), CVSProviderPlugin.getPlugin().getRepository(syncInfo.getRoot()), syncInfo.getRepository(), syncInfo.getTag(), syncInfo.getIsStatic());
- }
-
- /**
- * Constructor for RemoteFolder.
- */
- public RemoteFolder(RemoteFolder parent, ICVSRepositoryLocation repository, String repositoryRelativePath, CVSTag tag) {
- this(parent,
- repositoryRelativePath == null ? "" : Util.getLastSegment(repositoryRelativePath), //$NON-NLS-1$
- repository,
- repositoryRelativePath,
- tag,
- false);
- }
-
- public RemoteFolder(RemoteFolder parent, String name, ICVSRepositoryLocation repository, String repositoryRelativePath, CVSTag tag, boolean isStatic) {
- super(parent, name);
- if (repository != null) {
- this.folderInfo = new FolderSyncInfo(repositoryRelativePath.toString(), repository.getLocation(), tag, isStatic);
- }
- this.repository = repository;
- }
-
- /**
- * @see ICVSResource#accept(ICVSResourceVisitor)
- */
- public void accept(ICVSResourceVisitor visitor) throws CVSException {
- visitor.visitFolder(this);
- }
-
- /**
- * @see ICVSResource#accept(ICVSResourceVisitor, boolean)
- */
- public void accept(ICVSResourceVisitor visitor, boolean recurse) throws CVSException {
- visitor.visitFolder(this);
- ICVSResource[] resources;
- if (recurse) {
- resources = members(ICVSFolder.ALL_MEMBERS);
- } else {
- resources = members(ICVSFolder.FILE_MEMBERS);
- }
- for (int i = 0; i < resources.length; i++) {
- resources[i].accept(visitor, recurse);
- }
- }
-
- /*
- * @see ICVSRemoteResource#exists(IProgressMonitor)
- */
- public boolean exists(IProgressMonitor monitor) throws TeamException {
- try {
- members(monitor);
- return true;
- } catch (CVSException e) {
- if (e.getStatus().getCode() == CVSStatus.DOES_NOT_EXIST) {
- return false;
- } else {
- throw e;
- }
- }
- }
-
- /*
- * Check whether the given resource is a child of the receiver remotely
- */
- protected boolean exists(ICVSRemoteResource child, IProgressMonitor monitor) throws CVSException {
- return exists(child, getTag(), monitor);
- }
-
- /*
- * Check whether the child exists for the given tag. This additional method is required because
- * CVS will signal an error if a folder only contains subfolders when a tag is used. If we get this
- * error and we're looking for a folder, we need to reissue the command without a tag.
- */
- protected boolean exists(final ICVSRemoteResource child, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- final IProgressMonitor progress = Policy.monitorFor(monitor);
- progress.beginTask(Policy.bind("RemoteFolder.exists"), 100); //$NON-NLS-1$
- try {
- // Create the listener for remote files and folders
- final boolean[] exists = new boolean[] {true};
- final IUpdateMessageListener listener = new IUpdateMessageListener() {
- public void directoryInformation(ICVSFolder parent, String path, boolean newDirectory) {
- exists[0] = true;
- }
- public void directoryDoesNotExist(ICVSFolder parent, String path) {
- exists[0] = false;
- }
- public void fileInformation(int type, ICVSFolder parent, String filename) {
- // We can't set exists true here as we may get a conflict on a deleted file.
- // i.e. remote files are always communicated to the server as modified.
- }
- public void fileDoesNotExist(ICVSFolder parent, String filename) {
- exists[0] = false;
- }
- };
-
- // Build the local options
- final List localOptions = new ArrayList();
- localOptions.add(Update.RETRIEVE_ABSENT_DIRECTORIES);
- if (tag != null && tag.getType() != CVSTag.HEAD)
- localOptions.add(Update.makeTagOption(tag));
-
- // Retrieve the children and any file revision numbers in a single connection
- // Perform a "cvs -n update -d -r tagName folderName" with custom message and error handlers
- boolean retry = false;
- Session session = new Session(getRepository(), this, false /* output to console */);
- session.open(Policy.subMonitorFor(progress, 10), false /* read-only */);
- try {
- IStatus status = Command.UPDATE.execute(
- session,
- new GlobalOption[] { Command.DO_NOT_CHANGE },
- (LocalOption[]) localOptions.toArray(new LocalOption[localOptions.size()]),
- new ICVSResource[] { child }, new UpdateListener(listener),
- Policy.subMonitorFor(progress, 70));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- CVSServerException e = new CVSServerException(status);
- if (e.isNoTagException() && child.isContainer()) {
- retry = true;
- } else {
- if (e.containsErrors()) {
- throw e;
- }
- }
- }
- } finally {
- session.close();
- }
-
- // We now know that this is an exception caused by a cvs bug.
- // If the folder has no files in it (just subfolders) CVS does not respond with the subfolders...
- // Workaround: Retry the request with no tag to get the directory names (if any)
- if (retry) {
- Policy.checkCanceled(progress);
- return exists(child, null, Policy.subMonitorFor(progress, 20));
- }
- return exists[0];
- } finally {
- progress.done();
- }
- }
-
- /**
- * @see ICVSRemoteFolder#getMembers()
- */
- public ICVSRemoteResource[] getMembers(IProgressMonitor monitor) throws TeamException {
- return getMembers(getTag(), monitor);
- }
-
- /**
- * This method gets the members for a given tag and returns them.
- * During the execution of this method, the instance variable children
- * will be used to contain the children. However, the variable is reset
- * and the result returned. Thus, instances of RemoteFolder do not
- * persist the children. Subclasses (namely RemoteFolderTree) may
- * persist the children.
- */
- protected ICVSRemoteResource[] getMembers(CVSTag tag, IProgressMonitor monitor) throws CVSException {
- // Fetch the children
- RemoteFolderMemberFetcher fetcher = new RemoteFolderMemberFetcher(this, tag);
- fetcher.fetchMembers(Policy.monitorFor(monitor));
- // children is assigned in the InternalRemoteFolderMembersFetcher
- return children;
- }
-
- /**
- * @see ICVSFolder#members(int)
- */
- public ICVSResource[] members(int flags) throws CVSException {
- final List result = new ArrayList();
- ICVSRemoteResource[] resources = getChildren();
- if (children == null) {
- return new ICVSResource[0];
- }
- // RemoteFolders never have phantom members
- if ((flags & EXISTING_MEMBERS) == 0 && (flags & PHANTOM_MEMBERS) == 1) {
- return new ICVSResource[0];
- }
- boolean includeFiles = (((flags & FILE_MEMBERS) != 0) || ((flags & (FILE_MEMBERS | FOLDER_MEMBERS)) == 0));
- boolean includeFolders = (((flags & FOLDER_MEMBERS) != 0) || ((flags & (FILE_MEMBERS | FOLDER_MEMBERS)) == 0));
- boolean includeManaged = (((flags & MANAGED_MEMBERS) != 0) || ((flags & (MANAGED_MEMBERS | UNMANAGED_MEMBERS | IGNORED_MEMBERS)) == 0));
- boolean includeUnmanaged = (((flags & UNMANAGED_MEMBERS) != 0) || ((flags & (MANAGED_MEMBERS | UNMANAGED_MEMBERS | IGNORED_MEMBERS)) == 0));
- boolean includeIgnored = ((flags & IGNORED_MEMBERS) != 0);
- for (int i = 0; i < resources.length; i++) {
- ICVSResource cvsResource = resources[i];
- if ((includeFiles && ( ! cvsResource.isFolder()))
- || (includeFolders && (cvsResource.isFolder()))) {
- boolean isManaged = cvsResource.isManaged();
- boolean isIgnored = cvsResource.isIgnored();
- if ((isManaged && includeManaged)|| (isIgnored && includeIgnored)
- || ( ! isManaged && ! isIgnored && includeUnmanaged)) {
- result.add(cvsResource);
- }
-
- }
- }
- return (ICVSResource[]) result.toArray(new ICVSResource[result.size()]);
- }
-
- /**
- * @see ICVSFolder#getFolder(String)
- */
- public ICVSFolder getFolder(String name) throws CVSException {
- if (name.equals(Session.CURRENT_LOCAL_FOLDER) || name.equals(Session.CURRENT_LOCAL_FOLDER + Session.SERVER_SEPARATOR))
- return this;
- ICVSResource child = getChild(name);
- if (child.isFolder())
- return (ICVSFolder)child;
- throw new CVSException(IStatus.ERROR, CHILD_DOES_NOT_EXIST, Policy.bind("RemoteFolder.invalidChild", name, getName())); //$NON-NLS-1$
- }
-
- /**
- * @see ICVSFolder#getFile(String)
- */
- public ICVSFile getFile(String name) throws CVSException {
- ICVSResource child = getChild(name);
- if (!child.isFolder())
- return (ICVSFile)child;
- throw new CVSException(IStatus.ERROR, CHILD_DOES_NOT_EXIST, Policy.bind("RemoteFolder.invalidChild", name, getName())); //$NON-NLS-1$
- }
-
- public LocalOption[] getLocalOptions() {
- return Command.NO_LOCAL_OPTIONS;
- }
-
- public String getRepositoryRelativePath() {
- // The REPOSITORY property of the folder info is the repository relative path
- return getFolderSyncInfo().getRepository();
- }
-
- /**
- * @see ICVSResource#getRelativePath(ICVSFolder)
- */
- public String getRelativePath(ICVSFolder ancestor) throws CVSException {
- // Check to see if the receiver is the ancestor
- if (ancestor == this) return Session.CURRENT_LOCAL_FOLDER;
- // Otherwise, we need a parent to continue
- if (parent == null) {
- throw new CVSException(Policy.bind("RemoteFolder.invalidChild", getName(), ancestor.getName())); //$NON-NLS-1$
- }
- return super.getRelativePath(ancestor);
- }
-
- public ICVSRepositoryLocation getRepository() {
- return repository;
- }
-
- /**
- * @see ICVSRemoteFolder#isExpandable()
- */
- public boolean isExpandable() {
- return true;
- }
-
- /**
- * @see ICVSResource#isFolder()
- */
- public boolean isFolder() {
- return true;
- }
-
- /**
- * @see ICVSFolder#childExists(String)
- */
- public boolean childExists(String path) {
- try {
- return getChild(path) != null;
- } catch (CVSException e) {
- return false;
- }
- }
-
- /**
- * @see ICVSFolder#getChild(String)
- *
- * This getChild is geared to work with the Command hierarchy. Therefore it only returns
- * children that were previously fetched by a call to getMembers(). If the request child
- * does not exist, an exception is thrown.
- */
- public ICVSResource getChild(String path) throws CVSException {
- if (path.equals(Session.CURRENT_LOCAL_FOLDER) || path.length() == 0)
- return this;
- if (path.indexOf(Session.SERVER_SEPARATOR) != -1) {
- IPath p = new Path(path);
- try {
- return ((RemoteFolder)getChild(p.segment(0))).getChild(p.removeFirstSegments(1).toString());
- } catch (CVSException e) {
- // regenerate the exception to give as much info as possible
- throw new CVSException(IStatus.ERROR, CHILD_DOES_NOT_EXIST, Policy.bind("RemoteFolder.invalidChild", path, getName()));//$NON-NLS-1$
- }
- } else {
- ICVSRemoteResource[] children = getChildren();
- if (children == null)
- throw new CVSException(IStatus.ERROR, CHILD_DOES_NOT_EXIST, Policy.bind("RemoteFolder.invalidChild", path, getName()));//$NON-NLS-1$
- for (int i=0;i<children.length;i++) {
- if (children[i].getName().equals(path))
- return (ICVSResource)children[i];
- }
- }
- throw new CVSException(IStatus.ERROR, CHILD_DOES_NOT_EXIST, Policy.bind("RemoteFolder.invalidChild", path, getName()));//$NON-NLS-1$
- }
-
- /**
- * @see ICVSFolder#mkdir()
- */
- public void mkdir() throws CVSException {
- throw new CVSException(Policy.bind("RemoteResource.invalidOperation"));//$NON-NLS-1$
- }
-
- /**
- * @see ICVSFolder#flush(boolean)
- */
- public void flush(boolean deep) {
- }
-
- /**
- * @see ICVSFolder#getFolderInfo()
- */
- public FolderSyncInfo getFolderSyncInfo() {
- return folderInfo;
- }
-
- /**
- * @see ICVSResource#getRemoteLocation(ICVSFolder)
- */
- public String getRemoteLocation(ICVSFolder stopSearching) throws CVSException {
- if (folderInfo == null) {
- return Util.appendPath(parent.getRemoteLocation(stopSearching), getName());
- }
- return folderInfo.getRemoteLocation();
- }
-
- /**
- * @see ICVSFolder#isCVSFolder()
- */
- public boolean isCVSFolder() {
- return folderInfo != null;
- }
-
- /**
- * @see ICVSFolder#acceptChildren(ICVSResourceVisitor)
- */
- public void acceptChildren(ICVSResourceVisitor visitor) throws CVSException {
- throw new CVSException(Policy.bind("RemoteResource.invalidOperation"));//$NON-NLS-1$
- }
-
- /*
- * @see IRemoteResource#isContainer()
- */
- public boolean isContainer() {
- return true;
- }
-
- /*
- * @see IRemoteResource#members(IProgressMonitor)
- */
- public IRemoteResource[] members(IProgressMonitor progress) throws TeamException {
- return getMembers(progress);
- }
-
- /*
- * @see IRemoteResource#getContents(IProgressMonitor)
- */
- public InputStream getContents(IProgressMonitor progress) throws TeamException {
- return null;
- }
-
- /*
- * Answers the immediate cached children of this remote folder or null if the remote folder
- * handle has not yet queried the server for the its children.
- */
- public ICVSRemoteResource[] getChildren() {
- return children;
- }
- /*
- * This allows subclass to set the children
- */
- protected void setChildren(ICVSRemoteResource[] children) {
- this.children = children;
- }
- /*
- * @see ICVSRemoteFolder#setTag(String)
- */
- public void setTag(CVSTag tag) {
- this.folderInfo = new FolderSyncInfo(folderInfo.getRepository(), folderInfo.getRoot(), tag, folderInfo.getIsStatic());
- }
-
- /*
- * @see ICVSRemoteFolder#getTag()
- */
- public CVSTag getTag() {
- if (folderInfo == null) return null;
- return folderInfo.getTag();
- }
- /*
- * @see ICVSFolder#setFolderInfo(FolderSyncInfo)
- */
- public void setFolderSyncInfo(FolderSyncInfo folderInfo) throws CVSException {
- this.folderInfo = folderInfo;
- }
-
- /*
- * @see ICVSFolder#run(ICVSRunnable, IProgressMonitor)
- */
- public void run(ICVSRunnable job, IProgressMonitor monitor) throws CVSException {
- job.run(monitor);
- }
-
- /*
- * @see ICVSFolder#run(ICVSRunnable, int, IProgressMonitor)
- */
- public void run(ICVSRunnable job, int flags, IProgressMonitor monitor) throws CVSException {
- job.run(monitor);
- }
-
- /*
- * @see ICVSFolder#tag(CVSTag, LocalOption[], IProgressMonitor)
- */
- public IStatus tag(final CVSTag tag, final LocalOption[] localOptions, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- Session session = new Session(getRepository(), this, true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 10), true /* open for modification */);
- try {
- return Command.RTAG.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- localOptions,
- folderInfo.getTag(),
- tag,
- new ICVSRemoteResource[] { RemoteFolder.this },
- Policy.subMonitorFor(monitor, 90));
- } finally {
- session.close();
- }
- }
-
- /**
- * @see ICVSFolder#fetchChildren(IProgressMonitor)
- */
- public ICVSResource[] fetchChildren(IProgressMonitor monitor) throws CVSException {
- try {
- return getMembers(monitor);
- } catch(TeamException e) {
- throw new CVSException(e.getStatus());
- }
- }
-
- public boolean equals(Object target) {
- if ( ! super.equals(target)) return false;
- RemoteFolder folder = (RemoteFolder)target;
- // A simple folder is never equal to a defined module
- if (folder.isDefinedModule() != isDefinedModule()) return false;
- CVSTag tag1 = getTag();
- CVSTag tag2 = folder.getTag();
- if (tag1 == null) tag1 = CVSTag.DEFAULT;
- if (tag2 == null) tag2 = CVSTag.DEFAULT;
- return tag1.equals(tag2);
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- CVSTag tag = getTag();
- if (tag == null) tag = CVSTag.DEFAULT;
- return super.hashCode() | tag.getName().hashCode();
- }
-
- /*
- * The given root must be an ancestor of the receiver (or the receiver)
- * and the path of the receiver must be a prefix of the provided path.
- */
- protected IPath getRelativePathFromRootRelativePath(ICVSFolder root, IPath path) throws CVSException {
- // If the root is the receiver, then the path is already relative to the receiver
- if (root == this) {
- return path;
- }
- Assert.isTrue( ! path.isEmpty());
- return getRelativePathFromRootRelativePath((ICVSFolder)root.getChild(path.segment(0)), path.removeFirstSegments(1));
- }
-
- /**
- * @see ICVSRemoteFolder#forTag(CVSTag)
- */
- public ICVSRemoteResource forTag(ICVSRemoteFolder parent, CVSTag tagName) {
- return new RemoteFolder((RemoteFolder)parent, getName(), repository, folderInfo.getRepository(), tagName, folderInfo.getIsStatic());
- }
-
- /**
- * @see ICVSRemoteFolder#forTag(CVSTag)
- */
- public ICVSRemoteResource forTag(CVSTag tagName) {
- return (ICVSRemoteFolder)forTag(null, tagName);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder#isDefinedModule()
- */
- public boolean isDefinedModule() {
- return false;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.RemoteResource#getSyncInfo()
- */
- public ResourceSyncInfo getSyncInfo() {
- return new ResourceSyncInfo(getName());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.resources.RemoteResource#getSyncBytes()
- */
- public byte[] getSyncBytes() {
- try {
- return folderInfo.getBytes();
- } catch (CVSException e) {
- // This shouldn't even happen
- return null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getComment()
- */
- public String getComment() throws TeamException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getContentIdentifier()
- */
- public String getContentIdentifier() throws TeamException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getCreatorDisplayName()
- */
- public String getCreatorDisplayName() throws TeamException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getBufferedStorage(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStorage getBufferedStorage(IProgressMonitor monitor) throws TeamException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.ICVSResource#isManaged()
- */
- public boolean isManaged() {
- return super.isManaged() && isCVSFolder();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.ISubscriberResource#getStorage(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStorage getStorage(IProgressMonitor monitor) throws TeamException {
- return null;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderMemberFetcher.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderMemberFetcher.java
deleted file mode 100644
index e83325a6d..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderMemberFetcher.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.resources;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-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.Update;
-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.client.Command.QuietOption;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IStatusListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IUpdateMessageListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.StatusListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.UpdateListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * Fetch the children for the given parent folder. When fetchMembers is invoked,
- * the children of the folder will be fecthced from the server and assigned to
- * the children of the parent folder.
- */
-public class RemoteFolderMemberFetcher implements IUpdateMessageListener, IStatusListener {
-
- private final RemoteFolder parentFolder;
- private CVSTag tag;
-
- List folders = new ArrayList(); // RemoteFolder
- List files = new ArrayList(); // RemoteFile
- boolean exists = true;
- List exceptions = new ArrayList(); // CVSException
-
- protected RemoteFolderMemberFetcher(RemoteFolder parentFolder, CVSTag tag) {
- this.tag = tag;
- this.parentFolder = parentFolder;
- }
-
- /**
- * Fetch the members for a given tag and returns them.
- * During the execution of this method, the instance variable children
- * will be used to contain the children. However, the variable is reset
- * and the result returned. Thus, instances of RemoteFolder do not
- * persist the children. Subclasses (namely RemoteFolderTree) may
- * persist the children.
- */
- public void fetchMembers(IProgressMonitor monitor) throws CVSException {
- fetchMembers(monitor, tag);
- }
- public void fetchMembers(IProgressMonitor monitor, CVSTag tag) throws CVSException {
- final IProgressMonitor progress = Policy.monitorFor(monitor);
- progress.beginTask(Policy.bind("RemoteFolder.getMembers"), 100); //$NON-NLS-1$
- try {
- // Update the parent folder children so there are no children
- updateParentFolderChildren();
- // Perform an update to retrieve the child files and folders
- IStatus status = performUpdate(Policy.subMonitorFor(progress, 50), tag);
- // Update the parent folder with the new children
- updateParentFolderChildren();
- Policy.checkCanceled(monitor);
-
- // Handle any errors that were identified by the listener
- performErrorCheck(status, Policy.bind("RemoteFolder.errorFetchingMembers")); //$NON-NLS-1$
-
- // Get the revision numbers for the files
- ICVSFile[] remoteFiles = getFiles();
- if (remoteFiles.length > 0) {
- updateFileRevisions(remoteFiles, Policy.subMonitorFor(progress, 50));
- } else {
- progress.worked(50);
- }
- } catch (CVSServerException e) {
- if ( ! e.isNoTagException() && e.containsErrors())
- throw e;
- if (tag == null)
- throw e;
- // we now know that this is an exception caused by a cvs bug.
- // if the folder has no files in it (just subfolders) cvs does not respond with the subfolders...
- // workaround: retry the request with no tag to get the directory names (if any)
- Policy.checkCanceled(progress);
- fetchMembers(Policy.subMonitorFor(progress, 50), null);
- } finally {
- progress.done();
- }
- }
-
- protected IStatus performUpdate(IProgressMonitor progress, CVSTag tag) throws CVSException {
- progress.beginTask(null, 100);
- Session session = new Session(parentFolder.getRepository(), parentFolder, false /* output to console */);
- session.open(Policy.subMonitorFor(progress, 10), false /* read-only */);
- try {
- // Build the local options
- final List localOptions = new ArrayList();
- localOptions.add(Update.RETRIEVE_ABSENT_DIRECTORIES);
- if (tag != null) localOptions.add(Update.makeTagOption(tag));
-
- return Command.UPDATE.execute(
- session,
- new GlobalOption[] { Command.DO_NOT_CHANGE },
- (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]),
- new ICVSResource[] { parentFolder },
- new UpdateListener(this),
- Policy.subMonitorFor(progress, 90));
- } finally {
- session.close();
- }
- }
-
- protected void updateFileRevisions(final ICVSFile[] files, IProgressMonitor monitor) throws CVSException {
-
- // Perform a "cvs status..." with a listener
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- QuietOption quietness = CVSProviderPlugin.getPlugin().getQuietness();
- try {
- CVSProviderPlugin.getPlugin().setQuietness(Command.VERBOSE);
- Session session = new Session(parentFolder.getRepository(), parentFolder, false /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- IStatus status = Command.STATUS.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- files,
- new StatusListener(this),
- Policy.subMonitorFor(monitor, 90));
- performErrorCheck(status, Policy.bind("RemoteFolder.errorFetchingRevisions")); //$NON-NLS-1$
- // TODO: Ensure all files have a revision?
- } finally {
- session.close();
- }
- } finally {
- CVSProviderPlugin.getPlugin().setQuietness(quietness);
- }
- }
-
- private void performErrorCheck(IStatus status, String errorTitle) throws CVSException {
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- // Only throw the exception if no files or folders were found
- if (folders.size() + files.size() == 0) {
- throw new CVSServerException(status);
- } else {
- CVSProviderPlugin.log(new CVSServerException(status));
- }
- }
- if (!exists) {
- throw new CVSException(new CVSStatus(CVSStatus.ERROR, CVSStatus.DOES_NOT_EXIST, Policy.bind("RemoteFolder.doesNotExist", this.parentFolder.getRepositoryRelativePath()))); //$NON-NLS-1$
- }
-
- // Report any internal exceptions that occured fetching the members
- if ( ! exceptions.isEmpty()) {
- if (exceptions.size() == 1) {
- throw (CVSException)exceptions.get(0);
- } else {
- MultiStatus multi = new MultiStatus(CVSProviderPlugin.ID, 0, errorTitle, null);
- for (int i = 0; i < exceptions.size(); i++) {
- multi.merge(((CVSException)exceptions.get(i)).getStatus());
- }
- throw new CVSException(multi);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.IUpdateMessageListener#directoryInformation(org.eclipse.team.internal.ccvs.core.ICVSFolder, java.lang.String, boolean)
- */
- public void directoryInformation(ICVSFolder commandRoot, String stringPath, boolean newDirectory) {
- try {
- IPath path = this.parentFolder.getRelativePathFromRootRelativePath(commandRoot, new Path(stringPath));
- if (newDirectory && path.segmentCount() == 1) {
- recordFolder(path.lastSegment());
- }
- } catch (CVSException e) {
- exceptions.add(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.IUpdateMessageListener#directoryDoesNotExist(org.eclipse.team.internal.ccvs.core.ICVSFolder, java.lang.String)
- */
- public void directoryDoesNotExist(ICVSFolder parent, String stringPath) {
- try {
- IPath path = this.parentFolder.getRelativePathFromRootRelativePath(parent, new Path(stringPath));
- if (path.isEmpty()) {
- parentDoesNotExist();
- }
- } catch (CVSException e) {
- exceptions.add(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.IUpdateMessageListener#fileInformation(int, org.eclipse.team.internal.ccvs.core.ICVSFolder, java.lang.String)
- */
- public void fileInformation(int type, ICVSFolder parent, String filename) {
- try {
- IPath filePath = new Path(filename);
- filePath = this.parentFolder.getRelativePathFromRootRelativePath(parent, filePath);
- if( filePath.segmentCount() == 1 ) {
- String properFilename = filePath.lastSegment();
- recordFile(properFilename);
- }
- } catch (CVSException e) {
- exceptions.add(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.IUpdateMessageListener#fileDoesNotExist(org.eclipse.team.internal.ccvs.core.ICVSFolder, java.lang.String)
- */
- public void fileDoesNotExist(ICVSFolder parent, String filename) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.IStatusListener#fileStatus(org.eclipse.team.internal.ccvs.core.ICVSFolder, java.lang.String, java.lang.String)
- */
- public void fileStatus(ICVSFolder commandRoot, String path, String remoteRevision) {
- if (remoteRevision == IStatusListener.FOLDER_REVISION)
- // Ignore any folders
- return;
- try {
- ((RemoteFile)parentFolder.getChild(Util.getLastSegment(path))).setRevision(remoteRevision);
- } catch (CVSException e) {
- exceptions.add(e);
- }
- }
-
- /**
- * This method is invoked for each child folder as the reponses are being recieved from
- * the server. Default behavior is to record the folder for later retrieval using <code>getChilren()</code>.
- * Subclasses may override but should invoke the inherited method to ensure the folder gets recorded.
- * @param name the name of the child folder
- */
- protected RemoteFolder recordFolder(String name) {
- RemoteFolder folder = new RemoteFolder(
- parentFolder,
- parentFolder.getRepository(),
- Util.appendPath(parentFolder.getRepositoryRelativePath(), name),
- tag);
- folders.add(folder);
- return folder;
- }
-
- /**
- * This method is invoked for each child file as the reponses are being recieved from
- * the server. Default behavior is to record the file for later retrieval using <code>getChildren()</code>.
- * Subclasses may override but should invoke the inherited method to ensure the file gets recorded.
- * This is important because the file revisions for any files are fetched subsequent to the fecthing
- * of the children.
- * @param name the name of the child folder
- */
- protected RemoteFile recordFile(String name) {
- RemoteFile file = new RemoteFile(
- parentFolder,
- Update.STATE_NONE,
- name,
- null, /* revision unknown */
- null, /* keyword mode unknown */
- tag);
- files.add(file);
- return file;
- }
-
- /**
- * This method is invoked to indicate that the parent beig queried for children
- * does not exist. Subclasses may override to get early notification of this but
- * should still invoke the inherited method.
- */
- protected void parentDoesNotExist() {
- exists = false;
- }
-
- /**
- * Update the parent folder such that it's children are the
- * children that have been fecthed by the reciever.
- */
- protected void updateParentFolderChildren() {
- parentFolder.setChildren(getFetchedChildren());
- }
-
- /**
- * Return the child files fetched from the server.
- * @return
- */
- protected ICVSFile[] getFiles() {
- return (ICVSFile[]) files.toArray(new ICVSFile[files.size()]);
- }
-
- /**
- * Return an array of all fecthed children.
- * @return
- */
- public ICVSRemoteResource[] getFetchedChildren() {
- ICVSRemoteResource[] resources = new ICVSRemoteResource[folders.size() + files.size()];
- int count = 0;
- for (Iterator iter = folders.iterator(); iter.hasNext();) {
- ICVSRemoteResource resource = (ICVSRemoteResource) iter.next();
- resources[count++] = resource;
- }
- for (Iterator iter = files.iterator(); iter.hasNext();) {
- ICVSRemoteResource resource = (ICVSRemoteResource) iter.next();
- resources[count++] = resource;
- }
- return resources;
- }
-
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderSandbox.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderSandbox.java
deleted file mode 100644
index 859925a73..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderSandbox.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-
-/**
- * This specialized remote folder supports the creation of a cached sandbox.
- */
-public class RemoteFolderSandbox extends RemoteFolder {
-
- public RemoteFolderSandbox(RemoteFolder parent, ICVSRepositoryLocation repository, String repositoryRelativePath, CVSTag tag) {
- super(parent, repository, repositoryRelativePath, tag);
- setChildren(new ICVSRemoteResource[0]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.ICVSFolder#getFile(java.lang.String)
- */
- public ICVSFile getFile(String name) throws CVSException {
- try {
- return super.getFile(name);
- } catch (CVSException e) {
- if (e.getStatus().getCode() == CHILD_DOES_NOT_EXIST) {
- IPath path = new Path(name);
- String fileName = path.lastSegment();
- RemoteFolderSandbox parent = getFolder(path);
- RemoteFile file = new RemoteFile(parent, Update.STATE_NONE, fileName, null, null, getTag());
- parent.addChild(file);
- return file;
- }
- throw e;
- }
- }
-
- private void addChild(RemoteResource resource) {
- ICVSRemoteResource[] children = getChildren();
- ICVSRemoteResource[] newChildren = new ICVSRemoteResource[children.length + 1];
- System.arraycopy(children, 0, newChildren, 0, children.length);
- newChildren[children.length] = resource;
- setChildren(newChildren);
- }
-
- private RemoteFolderSandbox getFolder(IPath path) throws CVSException {
- IPath parentPath = path.removeLastSegments(1);
- String parentString;
- if (parentPath.isEmpty()) {
- parentString = Session.CURRENT_LOCAL_FOLDER;
- } else {
- parentString = path.removeLastSegments(1).toString();
- }
- RemoteFolderSandbox parent = (RemoteFolderSandbox)getFolder(parentString);
- return parent;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.ICVSFolder#getFolder(java.lang.String)
- */
- public ICVSFolder getFolder(String name) throws CVSException {
- try {
- return super.getFolder(name);
- } catch (CVSException e) {
- if (e.getStatus().getCode() == CHILD_DOES_NOT_EXIST) {
- IPath path = new Path(name);
- RemoteFolderSandbox parent = getFolder(path);
- String repoPath = new Path(getRepositoryRelativePath()).append(name).removeTrailingSeparator().toString();
- RemoteFolderSandbox folder = new RemoteFolderSandbox(parent, getRepository(), repoPath, getTag());
- parent.addChild(folder);
- return folder;
- }
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.resources.RemoteFolder#getMembers(org.eclipse.core.runtime.IProgressMonitor)
- */
- public ICVSRemoteResource[] getMembers(IProgressMonitor monitor) throws TeamException {
- return getChildren();
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTree.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTree.java
deleted file mode 100644
index e98a48f8d..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTree.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.internal.ccvs.core.resources;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-
-/**
- * Whereas the RemoteFolder class provides access to a remote hierarchy using
- * lazy retrieval via <code>getMembers()</code>, the RemoteFolderTree will force
- * a recursive retrieval of the remote hierarchy in one round trip.
- */
-public class RemoteFolderTree extends RemoteFolder {
-
- public RemoteFolderTree(RemoteFolder parent, ICVSRepositoryLocation repository, String repositoryRelativePath, CVSTag tag) {
- super(parent, repository, repositoryRelativePath, tag);
- }
-
- public RemoteFolderTree(RemoteFolder parent, String name, ICVSRepositoryLocation repository, String repositoryRelativePath, CVSTag tag) {
- super(parent, name, repository, repositoryRelativePath, tag, false);
- }
-
- /*
- * Override of inherited method which persists the children
- */
- public ICVSRemoteResource[] getMembers(CVSTag tagName, IProgressMonitor monitor) throws CVSException {
- if (getChildren() == null)
- setChildren(super.getMembers(tagName, monitor));
- return getChildren();
- }
-
- /*
- * This method is public to allow access by the RemoteFolderTreeBuilder utility class.
- * No other external classes should use this method.
- */
- public void setChildren(ICVSRemoteResource[] children) {
- super.setChildren(children);
- }
-
- /*
- * @see ICVSFolder#acceptChildren(ICVSResourceVisitor)
- */
- public void acceptChildren(ICVSResourceVisitor visitor) throws CVSException {
- ICVSRemoteResource[] children = getChildren();
- if (children == null) return;
- for (int i=0; i<children.length; i++) {
- ((ICVSResource)children[i]).accept(visitor);
- }
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java
deleted file mode 100644
index 7cc0a0e63..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java
+++ /dev/null
@@ -1,803 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-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.Update;
-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.client.Command.QuietOption;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IStatusListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IUpdateMessageListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.StatusListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.UpdateListener;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/*
- * This class is responsible for building a remote tree that shows the repository
- * state of a locally loaded folder tree.
- *
- * It is used as follows
- *
- * RemoteFolderTreeBuilder.buildRemoteTree(CVSRepositoryLocation, IManagedFolder, String, IProgressMonitor);
- *
- * The provider IManagedFolder can be a local resource or a RemoteFolderTree that
- * that was previously built.
- */
-public class RemoteFolderTreeBuilder {
-
- private static final int MAX_REVISION_FETCHES_PER_CONNECTION = 1024;
-
- private Map fileDeltas;
- private List changedFiles;
- private Map remoteFolderTable;
-
- private ICVSFolder root;
- private RemoteFolderTree remoteRoot;
- private CVSRepositoryLocation repository;
-
- private CVSTag tag;
-
- private LocalOption[] updateLocalOptions;
-
- private boolean projectDoesNotExist = false;
-
- private static String UNKNOWN = ""; //$NON-NLS-1$
- private static String DELETED = "DELETED"; //$NON-NLS-1$
- private static String ADDED = "ADDED"; //$NON-NLS-1$
- private static String FOLDER = "FOLDER"; //$NON-NLS-1$
-
- private static Map EMPTY_MAP = new HashMap();
-
- private boolean newFolderExist = false;
-
- static class DeltaNode {
- int syncState = Update.STATE_NONE;
- String name;
- String revision;
-
- DeltaNode(String name, String revision, int syncState) {
- this.name = name;
- this.revision = revision;
- this.syncState = syncState;
- }
-
- String getName() {
- return name;
- }
-
- String getRevision() {
- return revision;
- }
-
- int getSyncState() {
- return syncState;
- }
- }
-
-
- /* package */ RemoteFolderTreeBuilder(CVSRepositoryLocation repository, ICVSFolder root, CVSTag tag) {
- this.repository = repository;
- this.root = root;
- this.tag = tag;
- this.fileDeltas = new HashMap();
- this.changedFiles = new ArrayList();
- this.remoteFolderTable = new HashMap();
-
- // Build the local options
- List localOptions = new ArrayList();
- if (tag != null) {
- if (tag.getType() == CVSTag.HEAD) {
- localOptions.add(Update.CLEAR_STICKY);
- } else {
- localOptions.add(Update.makeTagOption(tag));
- }
- }
- updateLocalOptions = (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]);
- }
-
- private LocalOption[] getOptionsWithoutTag() {
- // Build the local options
- List localOptions = new ArrayList();
- localOptions.add(Update.RETRIEVE_ABSENT_DIRECTORIES);
- return (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]);
- }
-
- public static RemoteFolderTree buildBaseTree(CVSRepositoryLocation repository, ICVSFolder root, CVSTag tag, IProgressMonitor progress) throws CVSException {
- try {
- RemoteFolderTreeBuilder builder = new RemoteFolderTreeBuilder(repository, root, tag);
- progress.beginTask(null, 100);
- IProgressMonitor subProgress = Policy.infiniteSubMonitorFor(progress, 100);
- subProgress.beginTask(null, 512); //$NON-NLS-1$
- subProgress.subTask(Policy.bind("RemoteFolderTreeBuilder.buildingBase", root.getName())); //$NON-NLS-1$
- return builder.buildBaseTree(null, root, subProgress);
- } finally {
- progress.done();
- }
- }
-
- public static RemoteFolderTree buildRemoteTree(CVSRepositoryLocation repository, IContainer root, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- return buildRemoteTree(repository, CVSWorkspaceRoot.getCVSFolderFor(root), tag, monitor);
- }
-
- public static RemoteFolderTree buildRemoteTree(CVSRepositoryLocation repository, ICVSFolder root, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- RemoteFolderTreeBuilder builder = new RemoteFolderTreeBuilder(repository, root, tag);
- return builder.buildTree(new ICVSResource[] { root }, monitor);
- }
- public static RemoteFile buildRemoteTree(CVSRepositoryLocation repository, ICVSFile file, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- RemoteFolderTreeBuilder builder = new RemoteFolderTreeBuilder(repository, file.getParent(), tag);
- return builder.buildTree(file, monitor);
- }
-
- /*
- * The provided resources must all be children of the same project
- */
- public static RemoteFolderTree buildRemoteTree(CVSRepositoryLocation repository, ICVSFolder root, ICVSResource[] resources, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- if (resources.length == 0) {
- resources = new ICVSResource[] { root };
- }
- RemoteFolderTreeBuilder builder = new RemoteFolderTreeBuilder(repository, root, tag);
- return builder.buildTree(resources, monitor);
- }
-
- /* package */ RemoteFolderTree buildTree(ICVSResource[] resources, IProgressMonitor monitor) throws CVSException {
-
- // Make sure that the cvs commands are not quiet during this operations
- QuietOption quietness = CVSProviderPlugin.getPlugin().getQuietness();
- try {
- CVSProviderPlugin.getPlugin().setQuietness(Command.VERBOSE);
-
- monitor.beginTask(null, 100);
-
- // 1st Connection: Use local state to determine delta with server
- if (!fetchDelta(resources, Policy.subMonitorFor(monitor, 50))) {
- return null;
- }
-
- // 2nd Connection: Build remote tree from above delta using 2nd connection to fetch unknown directories
- // NOTE: Multiple commands may be issued over this connection.
- fetchNewDirectories(Policy.subMonitorFor(monitor, 20));
-
- // 3rd+ Connection: Used to fetch file status in groups of 1024
- fetchFileRevisions(Policy.subMonitorFor(monitor, 30));
-
- return remoteRoot;
-
- } finally {
- CVSProviderPlugin.getPlugin().setQuietness(quietness);
- monitor.done();
- }
- }
-
- private boolean fetchDelta(ICVSResource[] resources, IProgressMonitor monitor) throws CVSException {
-
- // Get the arguments from the files
- ArrayList arguments = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- ICVSResource resource = resources[i];
- arguments.add(resource.getRelativePath(root));
- }
-
- // Use local state to determine delta with server
- monitor.beginTask(null, 100);
- Policy.checkCanceled(monitor);
- Session session = new Session(repository, root, false);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- Policy.checkCanceled(monitor);
- fetchDelta(session, (String[]) arguments.toArray(new String[arguments.size()]), Policy.subMonitorFor(monitor, 90));
- if (projectDoesNotExist) {
- // We cannot handle the case where a project (i.e. the top-most CVS folder)
- // has been deleted directly on the sever (i.e. deleted using rm -rf)
- if (root.isCVSFolder() && ! root.isManaged()) {
- throw new CVSException(Policy.bind("RemoteFolderTreeBuild.folderDeletedFromServer", root.getFolderSyncInfo().getRepository())); //$NON-NLS-1$
- } else {
- return false;
- }
- }
- } finally {
- session.close();
- monitor.done();
- }
- return true;
- }
-
- private void fetchNewDirectories(IProgressMonitor monitor) throws CVSException {
- // Build remote tree from the fetched delta using a new connection to fetch unknown directories
- // NOTE: Multiple commands may be issued over this connection.
- monitor.beginTask(null, 100);
- Session session;
- remoteRoot =
- new RemoteFolderTree(null, root.getName(), repository,
- root.getFolderSyncInfo().getRepository(),
- tagForRemoteFolder(root, tag));
- if (newFolderExist) {
- // New folders will require a connection for fetching their members
- session = new Session(repository, remoteRoot, false);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- } else {
- session = null;
- }
- try {
- // Set up an infinite progress monitor for the recursive build
- IProgressMonitor subProgress = Policy.infiniteSubMonitorFor(monitor, 90);
- subProgress.beginTask(null, 512);
- // Build the remote tree
- buildRemoteTree(session, root, remoteRoot, "", subProgress); //$NON-NLS-1$
- } finally {
- if (session != null) {
- session.close();
- }
- monitor.done();
- }
- }
-
- private void fetchFileRevisions(IProgressMonitor monitor) throws CVSException {
- // 3rd+ Connection: Used to fetch file status in groups of 1024
- if (!changedFiles.isEmpty()) {
- String[] allChangedFiles = (String[])changedFiles.toArray(new String[changedFiles.size()]);
- int iterations = (allChangedFiles.length / MAX_REVISION_FETCHES_PER_CONNECTION)
- + (allChangedFiles.length % MAX_REVISION_FETCHES_PER_CONNECTION == 0 ? 0 : 1);
- for (int i = 0; i < iterations ; i++) {
- int length = Math.min(MAX_REVISION_FETCHES_PER_CONNECTION,
- allChangedFiles.length - (MAX_REVISION_FETCHES_PER_CONNECTION * i));
- String buffer[] = new String[length];
- System.arraycopy(allChangedFiles, i * MAX_REVISION_FETCHES_PER_CONNECTION, buffer, 0, length);
- Session session = new Session(repository, remoteRoot, false);
- session.open(Policy.subMonitorFor(monitor, 1), false /* read-only */);
- try {
- fetchFileRevisions(session, buffer, Policy.subMonitorFor(monitor, 2));
- } finally {
- session.close();
- }
- }
- }
- }
-
- /* package */ RemoteFile buildTree(ICVSFile file, IProgressMonitor monitor) throws CVSException {
- QuietOption quietness = CVSProviderPlugin.getPlugin().getQuietness();
- try {
- CVSProviderPlugin.getPlugin().setQuietness(Command.VERBOSE);
-
- monitor.beginTask(null, 100);
-
- // Query the server to see if there is a delta available
- Policy.checkCanceled(monitor);
- Session session = new Session(repository, root, false);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- Policy.checkCanceled(monitor);
- fetchDelta(session, new String[] { file.getName() }, Policy.subMonitorFor(monitor, 50));
- if (projectDoesNotExist) {
- return null;
- }
- } finally {
- session.close();
- }
- // Create a parent for the remote resource
- remoteRoot =
- new RemoteFolderTree(null, root.getName(), repository,
- root.getFolderSyncInfo().getRepository(),
- tagForRemoteFolder(root, tag));
- // Create the remote resource (using the delta if there is one)
- RemoteFile remoteFile;
- Map deltas = (Map)fileDeltas.get(""); //$NON-NLS-1$
- if (deltas == null || deltas.isEmpty()) {
- // If the file is an addition, return null as the remote
- // Note: If there was a conflicting addition, the delta would not be empty
- byte[] syncBytes = file.getSyncBytes();
- if ( syncBytes == null || ResourceSyncInfo.isAddition(syncBytes)) {
- return null;
- }
- remoteFile = new RemoteFile(remoteRoot, syncBytes);
- } else {
- DeltaNode d = (DeltaNode)deltas.get(file.getName());
- if (d.getRevision() == DELETED) {
- return null;
- }
- remoteFile = new RemoteFile(remoteRoot,
- d.getSyncState(),
- file.getName(),
- null, /* the revision will be retrieved from the server */
- getKeywordMode(file), /* use the same keyword mode a the local file */
- tagForRemoteFolder(remoteRoot, tag));
- }
- // Add the resource to its parent
- remoteRoot.setChildren(new ICVSRemoteResource[] {remoteFile});
- // If there was a delta, fetch the new revision
- if (!changedFiles.isEmpty()) {
- // Add the remote folder to the remote folder lookup table (used to update file revisions)
- recordRemoteFolder(remoteRoot);
- session = new Session(repository, remoteRoot, false);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- fetchFileRevisions(session, (String[])changedFiles.toArray(new String[changedFiles.size()]), Policy.subMonitorFor(monitor, 20));
- } finally {
- session.close();
- }
- }
- return remoteFile;
-
- } finally {
- CVSProviderPlugin.getPlugin().setQuietness(quietness);
- monitor.done();
- }
- }
-
- private Command.KSubstOption getKeywordMode(ICVSFile file) throws CVSException {
- if (file == null) return null;
- byte[] syncBytes = file.getSyncBytes();
- if (syncBytes == null) return null;
- return ResourceSyncInfo.getKeywordMode(syncBytes);
- }
-
- /*
- * Build the base remote tree from the local tree.
- *
- * The localPath is used to retrieve deltas from the recorded deltas
- *
- * Does 1 work for each managed file and folder
- */
- private RemoteFolderTree buildBaseTree(RemoteFolderTree parent, ICVSFolder local, IProgressMonitor monitor) throws CVSException {
-
- Policy.checkCanceled(monitor);
-
- // Create a remote folder tree corresponding to the local resource
- RemoteFolderTree remote = new RemoteFolderTree(parent, local.getName(), repository, local.getFolderSyncInfo().getRepository(), local.getFolderSyncInfo().getTag());
-
- // Create a List to contain the created children
- List children = new ArrayList();
-
- // Build the child folders corresponding to local folders base
- ICVSResource[] folders = local.members(ICVSFolder.FOLDER_MEMBERS);
- for (int i=0;i<folders.length;i++) {
- ICVSFolder folder = (ICVSFolder)folders[i];
- if (folder.isManaged() && folder.isCVSFolder()) {
- monitor.worked(1);
- children.add(buildBaseTree(remote, folder, monitor));
- }
- }
-
- // Build the child files corresponding to local files base
- ICVSResource[] files = local.members(ICVSFolder.FILE_MEMBERS);
- for (int i=0;i<files.length;i++) {
- ICVSFile file = (ICVSFile)files[i];
- byte[] syncBytes = file.getSyncBytes();
- // if there is no sync info then there is no base
- if (syncBytes==null)
- continue;
- // There is no remote if the file was added
- if (ResourceSyncInfo.isAddition(syncBytes))
- continue;
- // If the file was deleted locally, we need to generate a new sync info without the delete flag
- if (ResourceSyncInfo.isDeletion(syncBytes)) {
- syncBytes = ResourceSyncInfo.convertFromDeletion(syncBytes);
- }
- children.add(new RemoteFile(remote, syncBytes));
- monitor.worked(1);
- }
-
- // Add the children to the remote folder tree
- remote.setChildren((ICVSRemoteResource[])children.toArray(new ICVSRemoteResource[children.size()]));
-
- return remote;
- }
-
- /*
- * Build the remote tree from the local tree and the recorded deltas.
- *
- * The localPath is used to retrieve deltas from the recorded deltas
- *
- * Does 1 work for each file and folder delta processed
- */
- private void buildRemoteTree(Session session, ICVSFolder local, RemoteFolderTree remote, String localPath, IProgressMonitor monitor) throws CVSException {
-
- Policy.checkCanceled(monitor);
-
- // Add the remote folder to the remote folder lookup table (used to update file revisions)
- recordRemoteFolder(remote);
-
- // Create a map to contain the created children
- Map children = new HashMap();
-
- // If there's no corresponding local resource then we need to fetch its contents in order to populate the deltas
- if (local == null) {
- fetchNewDirectory(session, remote, localPath, monitor);
- }
-
- // Fetch the delta's for the folder
- Map deltas = (Map)fileDeltas.get(localPath);
- if (deltas == null)
- deltas = EMPTY_MAP;
-
- // If there is a local, use the local children to start buidling the remote children
- if (local != null) {
- // Build the child folders corresponding to local folders
- ICVSResource[] folders = local.members(ICVSFolder.FOLDER_MEMBERS);
- for (int i=0;i<folders.length;i++) {
- ICVSFolder folder = (ICVSFolder)folders[i];
- DeltaNode d = (DeltaNode)deltas.get(folder.getName());
- if (folder.isCVSFolder() && ! isOrphanedSubtree(folder) && (d==null || d.getRevision() != DELETED)) {
- children.put(folders[i].getName(),
- new RemoteFolderTree(remote, folders[i].getName(), repository,
- folder.getFolderSyncInfo().getRepository(),
- tagForRemoteFolder(folder,tag)));
- }
- }
- // Build the child files corresponding to local files
- ICVSResource[] files = local.members(ICVSFolder.FILE_MEMBERS);
- for (int i=0;i<files.length;i++) {
- ICVSFile file = (ICVSFile)files[i];
-
- DeltaNode d = (DeltaNode)deltas.get(file.getName());
- byte[] syncBytes = file.getSyncBytes();
- // if there is no sync info then there isn't a remote file for this local file on the
- // server.
- if (syncBytes==null)
- continue;
- // There is no remote if the file was added and we didn't get a conflict (C) indicator from the server
- if (ResourceSyncInfo.isAddition(syncBytes) && d==null)
- continue;
- // There is no remote if the file was deleted and we didn;t get a remove (R) indicator from the server
- if (ResourceSyncInfo.isDeletion(syncBytes) && d==null)
- continue;
-
- int type = d==null ? Update.STATE_NONE : d.getSyncState();
- children.put(file.getName(), new RemoteFile(remote, type, syncBytes));
- }
- }
-
- // Build the children for new or out-of-date resources from the deltas
- Iterator i = deltas.keySet().iterator();
- while (i.hasNext()) {
- String name = (String)i.next();
- DeltaNode d = (DeltaNode)deltas.get(name);
- String revision = d.getRevision();
- if (revision == FOLDER) {
- children.put(name, new RemoteFolderTree(remote, repository,
- Util.appendPath(remote.getRepositoryRelativePath(), name),
- tagForRemoteFolder(remote, tag)));
- } else if (revision == ADDED) {
- children.put(name, new RemoteFile(remote,
- d.getSyncState(),
- name,
- null, /* the revision will be fetched later */
- null, /* there's no way to know the remote keyword mode */
- tagForRemoteFolder(remote, tag)));
- } else if (revision == UNKNOWN) {
- // The local resource is out of sync with the remote.
- // Create a RemoteFile associated with the tag so we are assured of getting the proper revision
- // (Note: this will replace the RemoteFile added from the local base)
- children.put(name, new RemoteFile(remote,
- d.getSyncState(),
- name,
- null, /* the revision will be fetched later */
- getKeywordMode((ICVSFile)children.get(name)), /* get the keyword mode from the local file*/
- tagForRemoteFolder(remote, tag)));
- } else if (revision == DELETED) {
- // This should have been deleted while creating from the local resources.
- // If it wasn't, delete it now.
- if (children.containsKey(name))
- children.remove(name);
- } else {
- // We should never get here
- }
- monitor.worked(1);
- }
-
- // Add the children to the remote folder tree
- remote.setChildren((ICVSRemoteResource[])children.values().toArray(new ICVSRemoteResource[children.size()]));
-
- // We have to delay building the child folders to support the proper fetching of new directories
- // due to the fact that the same CVS home directory (i.e. the same root directory) must
- // be used for all requests sent over the same connection
- Iterator childIterator = children.entrySet().iterator();
- List emptyChildren = new ArrayList();
- while (childIterator.hasNext()) {
- Map.Entry entry = (Map.Entry)childIterator.next();
- if (((RemoteResource)entry.getValue()).isFolder()) {
- RemoteFolderTree remoteFolder = (RemoteFolderTree)entry.getValue();
- String name = (String)entry.getKey();
- ICVSFolder localFolder;
- DeltaNode d = (DeltaNode)deltas.get(name);
- // for directories that are new on the server
- if (d!=null && d.getRevision() == FOLDER)
- localFolder = null;
- else
- localFolder = local.getFolder(name);
- buildRemoteTree(session, localFolder, remoteFolder, Util.appendPath(localPath, name), monitor);
- // Record any children that are empty
- if (pruneEmptyDirectories() && remoteFolder.getChildren().length == 0) {
- // Prune if the local folder is also empty.
- if (localFolder == null || (localFolder.members(ICVSFolder.ALL_EXISTING_MEMBERS).length == 0))
- emptyChildren.add(remoteFolder);
- else {
- // Also prune if the tag we are fetching is not HEAD and differs from the tag of the local folder
- FolderSyncInfo info = localFolder.getFolderSyncInfo();
- if (tag != null && info != null && ! tag.equals(CVSTag.DEFAULT) && ! tag.equals(info.getTag()))
- emptyChildren.add(remoteFolder);
- }
- }
- }
- }
-
- // Prune any empty child folders
- if (pruneEmptyDirectories() && !emptyChildren.isEmpty()) {
- List newChildren = new ArrayList();
- newChildren.addAll(Arrays.asList(remote.getChildren()));
- newChildren.removeAll(emptyChildren);
- remote.setChildren((ICVSRemoteResource[])newChildren.toArray(new ICVSRemoteResource[newChildren.size()]));
-
- }
- }
-
- /*
- * This method fetches the delta between the local state and the remote state of the resource tree
- * and records the deltas in the fileDeltas instance variable
- *
- * Returns the list of changed files
- */
- private List fetchDelta(Session session, String[] arguments, final IProgressMonitor monitor) throws CVSException {
-
- // Create an listener that will accumulate new and removed files and folders
- IUpdateMessageListener listener = new IUpdateMessageListener() {
- public void directoryInformation(ICVSFolder root, String path, boolean newDirectory) {
- if (newDirectory) {
- // Record new directory with parent so it can be retrieved when building the parent
- recordDelta(path, FOLDER, Update.STATE_NONE);
- monitor.subTask(Policy.bind("RemoteFolderTreeBuilder.receivingDelta", Util.toTruncatedPath(path, 3))); //$NON-NLS-1$
- }
- }
- public void directoryDoesNotExist(ICVSFolder root, String path) {
- // Record removed directory with parent so it can be removed when building the parent
- if (path.length() == 0) {
- projectDoesNotExist = true;
- } else {
- recordDelta(path, DELETED, Update.STATE_NONE);
- monitor.subTask(Policy.bind("RemoteFolderTreeBuilder.receivingDelta", Util.toTruncatedPath(path, 3))); //$NON-NLS-1$
- }
- }
- public void fileInformation(int type, ICVSFolder root, String filename) {
- // Cases that do not require action are:
- // case 'A' : = A locally added file that does not exists remotely
- // case '?' : = A local file that has not been added and does not exists remotely
- // case 'M' : = A locally modified file that has not been modified remotely
- switch(type) {
- case Update.STATE_MERGEABLE_CONFLICT :
- case Update.STATE_CONFLICT :
- // We have an remote change to a modified local file
- // The change could be a local change conflicting with a remote deletion.
- // If so, the deltas may already have a DELETED for the file.
- // We shouldn't override this DELETED
- Map deltas = deltas = (Map)fileDeltas.get(Util.removeLastSegment(filename));
- DeltaNode d = deltas != null ? (DeltaNode)deltas.get(Util.getLastSegment(filename)) : null;
- if ((d!=null) && (d.getRevision() == DELETED))
- break;
- case Update.STATE_DELETED : // We have a locally removed file that still exists remotely
- case Update.STATE_REMOTE_CHANGES : // We have an remote change to an unmodified local file
- changedFiles.add(filename);
- recordDelta(filename, UNKNOWN, type);
- monitor.subTask(Policy.bind("RemoteFolderTreeBuilder.receivingDelta", Util.toTruncatedPath(filename, 3))); //$NON-NLS-1$
- break;
- }
- }
- public void fileDoesNotExist(ICVSFolder root, String filename) {
- recordDelta(filename, DELETED, Update.STATE_NONE);
- monitor.subTask(Policy.bind("RemoteFolderTreeBuilder.receivingDelta", Util.toTruncatedPath(filename, 3))); //$NON-NLS-1$
- }
- };
-
- // Perform a "cvs -n update -d [-r tag] ." in order to get the
- // messages from the server that will indicate what has changed on the
- // server.
- IStatus status = Command.SYNCUPDATE.execute(session,
- new GlobalOption[] { Command.DO_NOT_CHANGE },
- updateLocalOptions,
- arguments,
- new UpdateListener(listener),
- monitor);
- return changedFiles;
- }
- /*
- * Fetch the children of a previously unknown directory.
- *
- * The fetch may do up to 2 units of work in the provided monitor.
- */
- private void fetchNewDirectory(Session session, RemoteFolderTree newFolder, String localPath, final IProgressMonitor monitor) throws CVSException {
-
- // Create an listener that will accumulate new files and folders
- IUpdateMessageListener listener = new IUpdateMessageListener() {
- public void directoryInformation(ICVSFolder root, String path, boolean newDirectory) {
- if (newDirectory) {
- // Record new directory with parent so it can be retrieved when building the parent
- // NOTE: Check path prefix
- recordDelta(path, FOLDER, Update.STATE_NONE);
- monitor.subTask(Policy.bind("RemoteFolderTreeBuilder.receivingDelta", Util.toTruncatedPath(path, 3))); //$NON-NLS-1$
- }
- }
- public void directoryDoesNotExist(ICVSFolder root, String path) {
- }
- public void fileInformation(int type, ICVSFolder root, String filename) {
- // NOTE: Check path prefix
- changedFiles.add(filename);
- recordDelta(filename, ADDED, type);
- monitor.subTask(Policy.bind("RemoteFolderTreeBuilder.receivingDelta", Util.toTruncatedPath(filename, 3))); //$NON-NLS-1$
- }
- public void fileDoesNotExist(ICVSFolder root, String filename) {
- }
- };
-
- // NOTE: Should use the path relative to the remoteRoot
- IStatus status = Command.UPDATE.execute(session,
- new GlobalOption[] { Command.DO_NOT_CHANGE },
- updateLocalOptions,
- new String[] { localPath },
- new UpdateListener(listener),
- Policy.subMonitorFor(monitor, 1));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- // FIXME: This should be refactored (maybe static methods on CVSException?)
- CVSServerException e = new CVSServerException(status);
- if ( ! e.isNoTagException() && e.containsErrors())
- throw e;
- // we now know that this is an exception caused by a cvs bug.
- // if the folder has no files in it (just subfolders) cvs does not respond with the subfolders...
- // workaround: retry the request with no tag to get the directory names (if any)
- Policy.checkCanceled(monitor);
- status = Command.UPDATE.execute(session,
- new GlobalOption[] { Command.DO_NOT_CHANGE },
- getOptionsWithoutTag(),
- new String[] { localPath },
- new UpdateListener(listener),
- Policy.subMonitorFor(monitor, 1));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- }
- }
-
- // Get the file revisions for the given filenames
- private void fetchFileRevisions(Session session, String[] fileNames, final IProgressMonitor monitor) throws CVSException {
-
- // Create a listener for receiving the revision info
- final Map revisions = new HashMap();
- final List exceptions = new ArrayList();
- IStatusListener listener = new IStatusListener() {
- public void fileStatus(ICVSFolder root, String path, String remoteRevision) {
- try {
- updateRevision(path, remoteRevision);
- monitor.subTask(Policy.bind("RemoteFolderTreeBuilder.receivingRevision", Util.toTruncatedPath(path, 3))); //$NON-NLS-1$
- } catch (CVSException e) {
- exceptions.add(e);
- }
- }
- };
-
- // Perform a "cvs status..." with a custom message handler
- IStatus status = Command.STATUS.execute(session,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- fileNames,
- new StatusListener(listener),
- monitor);
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
-
- // Report any exceptions that occured fecthing the revisions
- if ( ! exceptions.isEmpty()) {
- if (exceptions.size() == 1) {
- throw (CVSException)exceptions.get(0);
- } else {
- MultiStatus multi = new MultiStatus(CVSProviderPlugin.ID, 0, Policy.bind("RemoteFolder.errorFetchingRevisions"), null); //$NON-NLS-1$
- for (int i = 0; i < exceptions.size(); i++) {
- multi.merge(((CVSException)exceptions.get(i)).getStatus());
- }
- throw new CVSException(multi);
- }
- }
- }
-
- private boolean pruneEmptyDirectories() {
- return CVSProviderPlugin.getPlugin().getPruneEmptyDirectories();
- }
- /*
- * Record the deltas in a double map where the outer key is the parent directory
- * and the inner key is the file name. The value is the revision of the file or
- * DELETED (file or folder). New folders have a revision of FOLDER.
- *
- * A revison of UNKNOWN indicates that the revision has not been fetched
- * from the repository yet.
- */
- private void recordDelta(String path, String revision, int syncState) {
- if (revision == FOLDER) {
- newFolderExist = true;
- }
- String parent = Util.removeLastSegment(path);
- Map deltas = (Map)fileDeltas.get(parent);
- if (deltas == null) {
- deltas = new HashMap();
- fileDeltas.put(parent, deltas);
- }
- String name = Util.getLastSegment(path);
- deltas.put(name, new DeltaNode(name, revision, syncState));
- }
-
- private void updateRevision(String path, String revision) throws CVSException {
- RemoteFolderTree folder = getRecoredRemoteFolder(Util.removeLastSegment(path));
- if (folder == null) {
- throw new CVSException(Policy.bind("RemoteFolderTreeBuilder.missingParent", path.toString(), revision));//$NON-NLS-1$
- }
- ((RemoteFile)folder.getFile(Util.getLastSegment(path))).setRevision(revision);
- }
-
- /*
- * Return the tag that should be associated with a remote folder.
- *
- * This method is used to ensure that new directories contain the tag
- * derived from the parant local folder when appropriate. For instance,
- *
- * The tag should be the provided tag. However, if tag is null, the
- * tag for the folder should be derived from the provided reference folder
- * which could be the local resource corresponding to the remote or the parent
- * of the remote.
- */
- private CVSTag tagForRemoteFolder(ICVSFolder folder, CVSTag tag) throws CVSException {
- return tag == null ? folder.getFolderSyncInfo().getTag() : tag;
- }
-
- private boolean isOrphanedSubtree(ICVSFolder mFolder) throws CVSException {
- return mFolder.isCVSFolder() && ! mFolder.isManaged() && ! mFolder.equals(root) && mFolder.getParent().isCVSFolder();
- }
-
- private void recordRemoteFolder(RemoteFolderTree remote) throws CVSException {
- String path = remote.getFolderSyncInfo().getRemoteLocation();
- remoteFolderTable.put(Util.asPath(path), remote);
- }
-
- private RemoteFolderTree getRecoredRemoteFolder(String path) {
- return (RemoteFolderTree)remoteFolderTable.get(Util.asPath(path));
- }
-
- /**
- * This method returns an array of the files that differ between the local and remote trees.
- * The files are represented as a String that contains the path to the file in the remote or local trees.
- * @return an array of differing files
- */
- public String[] getFileDiffs() {
- return (String[]) changedFiles.toArray(new String[changedFiles.size()]);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteModule.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteModule.java
deleted file mode 100644
index f27e5cdd4..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteModule.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.Checkout;
-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.Update;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-
-public class RemoteModule extends RemoteFolder {
-
- private String label;
- private ICVSRemoteResource[] referencedModules;
- private LocalOption[] localOptions;
- private boolean expandable;
-
- public static RemoteModule[] getRemoteModules(ICVSRepositoryLocation repository, CVSTag tag, IProgressMonitor monitor) throws TeamException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(Policy.bind("RemoteModule.getRemoteModules"), 100); //$NON-NLS-1$
- try {
- RemoteModule[] modules;
- Session s = new Session(repository, (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(ResourcesPlugin.getWorkspace().getRoot()), false);
- s.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- modules = Command.CHECKOUT.getRemoteModules(s, tag, Policy.subMonitorFor(monitor, 90));
- } finally {
- s.close();
- }
- return modules;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Create a set of RemoteModules from the provided module definition strings returned from the server
- *
- * At the moment, we are very restrictive on the types of modules we support.
- */
- public static RemoteModule[] createRemoteModules(String[] moduleDefinitionStrings, ICVSRepositoryLocation repository, CVSTag tag) {
-
- Map modules = new HashMap();
- Map referencedModulesTable = new HashMap();
- Map moduleAliases = new HashMap();
- List acceptableModules = new ArrayList();
-
- // First pass: Create the remote module instances based on remote mapping
- for (int i = 0; i < moduleDefinitionStrings.length; i++) {
-
- // Read the module name
- StringTokenizer tokenizer = new StringTokenizer(moduleDefinitionStrings[i]);
- String moduleName = tokenizer.nextToken();
- List localOptionsList;
- String next;
- try {
- // Read the options associated with the module
- localOptionsList = new ArrayList();
- next = tokenizer.nextToken();
- while (next.charAt(0) == '-') {
- switch (next.charAt(1)) {
- case 'a': // alias
- localOptionsList.add(Checkout.ALIAS);
- break;
- case 'l': // don't recurse
- localOptionsList.add(Checkout.DO_NOT_RECURSE);
- break;
- case 'd': // directory
- localOptionsList.add(Checkout.makeDirectoryNameOption(tokenizer.nextToken()));
- break;
- case 'e':
- case 'i':
- case 'o':
- case 't':
- case 'u': // Ignore any programs
- tokenizer.nextToken();
- break;
- case 's': // status
- localOptionsList.add(Checkout.makeStatusOption(tokenizer.nextToken()));
- break;
- default: // unanticipated option. Ignore it and go on
- }
- next = tokenizer.nextToken();
- }
- } catch (NoSuchElementException e) {
- // There is an invalid entry in the modules file. Log it and continue
- CVSProviderPlugin.log(IStatus.WARNING, Policy.bind("RemoteModule.invalidDefinition", moduleDefinitionStrings[i], repository.getLocation()), null); //$NON-NLS-1$
- continue;
- }
- LocalOption[] localOptions = (LocalOption[]) localOptionsList.toArray(new LocalOption[localOptionsList.size()]);
-
- if (Checkout.ALIAS.isElementOf(localOptions)) {
-
- if (localOptions.length > 1) {
- // XXX This is an error condition that needs to be reported
- }
-
- // An alias expands to one or more modules or paths
- List expansions = new ArrayList(10);
- expansions.add(next);
- while (tokenizer.hasMoreTokens())
- expansions.add(tokenizer.nextToken());
-
- moduleAliases.put(moduleName, (String[]) expansions.toArray(new String[expansions.size()]));
- modules.put(moduleName, new RemoteModule(moduleName, null, repository, null, localOptions, tag, true));
-
- } else {
-
- // The module definition may have a leading directory which can be followed by some files
- if (!(next.charAt(0) == '&')) {
- String directory = next;
- List files = new ArrayList();
- while (tokenizer.hasMoreTokens() && (next.charAt(0) != '&')) {
- next = tokenizer.nextToken() ;
- if ((next.charAt(0) != '&'))
- files.add(next);
- }
- RemoteModule remoteModule = new RemoteModule(moduleName, null, repository, directory, localOptions, tag, ! files.isEmpty());
- modules.put(moduleName, remoteModule);
- if ( ! files.isEmpty()) {
- ICVSRemoteResource[] children = new ICVSRemoteResource[files.size()];
- for (int j = 0; j < children.length; j++) {
- children[j] = new RemoteFile(remoteModule, Update.STATE_NONE, (String)files.get(j), null, null, tag);
- remoteModule.setChildren(children);
- }
- }
- } else {
- modules.put(moduleName, new RemoteModule(moduleName, null, repository, null, localOptions, tag, true));
- }
-
- // Record any referenced modules so that can be cross-referenced below
- if (next.charAt(0) == '&') {
- List children = new ArrayList(10);
- children.add(next);
- while (tokenizer.hasMoreTokens())
- children.add(tokenizer.nextToken());
- referencedModulesTable.put(moduleName, (String[])children.toArray(new String[children.size()]));
- }
- }
- }
-
- // Second pass: Cross reference aliases to modules
- // XXX Aliases can reference other aliases which confuses the expansion!
- Iterator iter = moduleAliases.keySet().iterator();
- while (iter.hasNext()) {
- String moduleName = (String)iter.next();
- RemoteModule module = (RemoteModule)modules.get(moduleName);
- String[] expansion = (String[])moduleAliases.get(moduleName);
- List referencedFolders = new ArrayList();
- boolean expandable = true;
- for (int i = 0; i < expansion.length; i++) {
- if (expansion[i].charAt(0) == '!') {
- // XXX Unsupported for now
- expandable = false;
- } else {
- IPath path = new Path(expansion[i]);
- if (path.segmentCount() > 1) {
- // XXX Unsupported for now
- expandable = false;
- } else {
- RemoteModule child = (RemoteModule)modules.get(expansion[i]);
- if (child == null) {
- referencedFolders.add(new RemoteFolder(null, repository, path.toString(), tag));
- } else {
- // Need to check if the child is a module alias
- if (child.isAlias()) {
- // XXX Unsupported for now
- expandable = false;
- } else {
- referencedFolders.add(child);
- }
- }
- }
- }
- }
- if (expandable) {
- //TODO: Make module static??
- module.setChildren((ICVSRemoteResource[]) referencedFolders.toArray(new ICVSRemoteResource[referencedFolders.size()]));
- } else {
- module.setExpandable(false);
- }
- }
-
- // Third pass: Cross reference remote modules where necessary
- iter = modules.keySet().iterator();
- while (iter.hasNext()) {
- String moduleName = (String)iter.next();
- String[] children = (String[])referencedModulesTable.get(moduleName);
- if (children != null) {
- RemoteModule module = (RemoteModule)modules.get(moduleName);
- List referencedFolders = new ArrayList();
- boolean expandable = true;
- for (int i = 0; i < children.length; i++) {
- RemoteModule child = (RemoteModule)modules.get(children[i].substring(1));
- if (child == null) {
- // invalid module definition
- expandable = false;
- } else if (child.isAlias()) {
- // Include alias children in-line
- expandable = false;
-// referencedFolders.addAll(Arrays.asList(child.getChildren()));
- } else {
- // XXX not expandable if child has local directory option (-d)
- if (Command.findOption(child.getLocalOptions(), "-d") != null) { //$NON-NLS-1$
- expandable = false;
- } else {
- referencedFolders.add(child);
- }
- }
- }
- if (expandable) {
- module.setReferencedModules((ICVSRemoteResource[]) referencedFolders.toArray(new ICVSRemoteResource[referencedFolders.size()]));
- } else {
- module.setExpandable(false);
- }
- }
- }
-
- return (RemoteModule[])modules.values().toArray(new RemoteModule[modules.size()]);
- }
-
- public RemoteModule(String label, RemoteFolder parent, ICVSRepositoryLocation repository, String repositoryRelativePath, LocalOption[] localOptions, CVSTag tag, boolean isStatic) {
- super(parent,
- label,
- repository,
- repositoryRelativePath == null ? FolderSyncInfo.VIRTUAL_DIRECTORY : repositoryRelativePath,
- tag,
- isStatic);
- this.localOptions = localOptions;
- this.label = label;
- this.expandable = true;
- }
-
- public LocalOption[] getLocalOptions() {
- return localOptions;
- }
- /*
- * Override of inherited getMembers in order to combine the physical members with any referenced modules
- */
- public ICVSRemoteResource[] getMembers(CVSTag tagName, IProgressMonitor monitor) throws CVSException {
-
- if ( ! expandable) return new ICVSRemoteResource[0];
-
- ICVSRemoteResource[] physicalChildren;
- if ( folderInfo.getIsStatic()) {
- physicalChildren = getChildren();
- } else {
- physicalChildren = super.getMembers(tagName, monitor);
- }
- ICVSRemoteResource[] allChildren;
- if (referencedModules != null && referencedModules.length > 0) {
- if (physicalChildren == null) {
- allChildren = referencedModules;
- } else {
- // Combine two sets of children
- allChildren = new ICVSRemoteResource[physicalChildren.length + referencedModules.length];
- for (int i = 0; i < physicalChildren.length; i++) {
- allChildren[i] = physicalChildren[i];
- }
- for (int i = 0; i < referencedModules.length; i++) {
- allChildren[i + physicalChildren.length] = referencedModules[i];
- }
- }
- } else if (physicalChildren != null) {
- allChildren = physicalChildren;
- } else {
- allChildren = new ICVSRemoteResource[0];
- }
- return allChildren;
- }
-
- private void setReferencedModules(ICVSRemoteResource[] referencedModules) {
- this.referencedModules = referencedModules;
- }
-
- public boolean isAlias() {
- return Checkout.ALIAS.isElementOf(localOptions);
- }
-
- /**
- * @see ICVSRemoteFolder#isExpandable()
- */
- public boolean isExpandable() {
- return expandable;
- }
-
- private void setExpandable(boolean expandable) {
- this.expandable = expandable;
- }
-
- /**
- * @see ICVSRemoteFolder#forTag(CVSTag)
- */
- public ICVSRemoteResource forTag(ICVSRemoteFolder parent, CVSTag tagName) {
- RemoteModule r = new RemoteModule(label, (RemoteFolder)parent, getRepository(), folderInfo.getRepository(), localOptions, tagName, folderInfo.getIsStatic());
- r.setExpandable(expandable);
- if (folderInfo.getIsStatic()) {
- ICVSRemoteResource[] children = getChildren();
- if (children != null) {
- List taggedChildren = new ArrayList(children.length);
- for (int i = 0; i < children.length; i++) {
- ICVSRemoteResource resource = children[i];
- taggedChildren.add(((RemoteResource)resource).forTag(r, tagName));
- }
- r.setChildren((ICVSRemoteResource[]) taggedChildren.toArray(new ICVSRemoteResource[taggedChildren.size()]));
- }
- }
- if (referencedModules != null) {
- List taggedModules = new ArrayList(referencedModules.length);
- for (int i = 0; i < referencedModules.length; i++) {
- RemoteModule module = (RemoteModule)referencedModules[i];
- taggedModules.add(module.forTag(r, tagName));
- }
- r.setReferencedModules((ICVSRemoteResource[]) taggedModules.toArray(new ICVSRemoteResource[taggedModules.size()]));
- }
- return r;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder#isDefinedModule()
- */
- public boolean isDefinedModule() {
- return true;
- }
- /**
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object arg0) {
- if (arg0 instanceof RemoteModule) {
- RemoteModule module = (RemoteModule) arg0;
- return (getName().equals(module.getName()) && super.equals(module));
- }
- return false;
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return super.hashCode() | getName().hashCode();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFolder#getChild(java.lang.String)
- */
- public ICVSResource getChild(String path) throws CVSException {
- if (path.equals(Session.CURRENT_LOCAL_FOLDER) || path.length() == 0)
- return this;
- // If the path is one segment and it's a referenced module, return the module
- // Note: the overriden method will extract the first segment from a multi segment
- // path and re-invoke this method so we only need to check for one segment here
- // and use the inherited method in the other cases
- if (referencedModules != null) {
- if (path.indexOf(Session.SERVER_SEPARATOR) == -1) {
- for (int i=0;i<referencedModules.length;i++) {
- if (referencedModules[i].getName().equals(path))
- return (ICVSResource)referencedModules[i];
- }
- }
- }
- return super.getChild(path);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteResource.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteResource.java
deleted file mode 100644
index b5965f637..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteResource.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.ISubscriberResource;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * The purpose of this class and its subclasses is to implement the corresponding
- * ICVSRemoteResource interfaces for the purpose of communicating information about
- * resources that reside in a CVS repository but have not necessarily been loaded
- * locally.
- */
-public abstract class RemoteResource extends PlatformObject implements ICVSRemoteResource, ISubscriberResource {
-
- protected RemoteFolder parent;
- protected String name;
-
- // relative synchronization state calculated by server of this remote file compare to the current local
- // workspace copy.
- private int workspaceSyncState = Update.STATE_NONE;
-
- /**
- * Constructor for RemoteResource.
- */
- public RemoteResource(RemoteFolder parent, String name) {
- this.parent = parent;
- this.name = name;
- }
-
- /*
- * @see ICVSRemoteResource#getName()
- */
- public String getName() {
- return name;
- }
-
- /*
- * @see ICVSResource#getRelativePath(ICVSFolder)
- */
- public String getRelativePath(ICVSFolder ancestor) throws CVSException {
- return Util.appendPath(parent.getRelativePath(ancestor), getName());
- }
-
- /*
- * @see ICVSRemoteResource#getParent()
- */
- public ICVSRemoteResource getRemoteParent() {
- return parent;
- }
-
- public abstract String getRepositoryRelativePath();
-
- public abstract ICVSRepositoryLocation getRepository();
-
- public int getWorkspaceSyncState() {
- return workspaceSyncState;
- }
-
- public void setWorkspaceSyncState(int workspaceSyncState) {
- this.workspaceSyncState = workspaceSyncState;
- }
-
- /*
- * @see ICVSResource#delete()
- */
- public void delete() {
- // For now, do nothing but we could provide this in the future.
- }
-
- /*
- * @see ICVSResource#exists()
- *
- * This method is used by the Command framework so it must return true so that
- * the proper information gets sent to the server. (i.e. it is used to fake that
- * the file exists locally so cvs commands can be used to retrieve information about
- * the remote resource from the server)
- */
- public boolean exists() {
- return true;
- }
-
- /*
- * @see ICVSRemoteResource#exists(IProgressMonitor)
- */
- public boolean exists(IProgressMonitor monitor) throws TeamException {
- return parent.exists(this, monitor);
- }
-
- /*
- * @see ICVSResource#getParent()
- */
- public ICVSFolder getParent() {
- return parent;
- }
-
- /*
- * @see ICVSResource#isIgnored()
- */
- public boolean isIgnored() {
- return false;
- }
-
- /*
- * @see ICVSResource#isManaged()
- */
- public boolean isManaged() {
- return parent != null;
- }
-
- public boolean isModified(IProgressMonitor monitor) throws CVSException {
- // it is safe to always consider a remote file handle as modified. This will cause any
- // CVS command to fetch new contents from the server.
- return true;
- }
-
- /*
- * @see ICVSResource#unmanage()
- */
- public void unmanage(IProgressMonitor monitor) throws CVSException {
- // do nothing
- }
-
- /*
- * @see ICVSResource#getSyncInfo()
- */
- public abstract ResourceSyncInfo getSyncInfo();
-
- /*
- * @see ICVSResource#setSyncInfo(ResourceSyncInfo)
- */
- public void setSyncInfo(ResourceSyncInfo info, int modificationState) {
- // ensure that clients are not trying to set sync info on remote handles.
- Assert.isTrue(false);
- }
-
- public boolean equals(Object target) {
- if (this == target)
- return true;
- if (!(target instanceof RemoteResource))
- return false;
- RemoteResource remote = (RemoteResource) target;
- return remote.isContainer() == isContainer() && remote.getRepositoryRelativePath().equals(getRepositoryRelativePath());
- }
-
- /*
- * @see ICVSResource#setIgnoredAs(String)
- */
- public void setIgnoredAs(String pattern) throws CVSException {
- // ensure that clients are not trying to set sync info on remote handles.
- Assert.isTrue(false);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSResource#getIResource()
- */
- public IResource getIResource() throws CVSException {
- return null;
- }
-
- /**
- * Return a copy of the receiver that is associated with the given tag. The parent
- * should be a copy of the receiver's parent which has been copied to the same tag.
- *
- * @param parent
- * @param tagName
- * @return ICVSRemoteFolder
- */
- public abstract ICVSRemoteResource forTag(ICVSRemoteFolder parent, CVSTag tagName);
-
- /**
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getRepositoryRelativePath().hashCode();
- }
-
- /**
- * Method which returns an array of bytes that can be used to recreate the remote handle.
- * To recreate the remote handle, invoke the <code>fromBytes</code> method on either
- * RemoteFolder or RemoteFile.
- *
- * TODO: It would be nice to have a method on RmeoteResource to recreate the handles
- * but the file requires the bytes for the parent folder since this folder may not
- * exist locally.
- *
- * @return
- */
- abstract public byte[] getSyncBytes();
-
- public String toString() {
- return "Remote " + (isContainer() ? "Folder: " : "File: ") + getName(); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java
deleted file mode 100644
index 96672c101..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java
+++ /dev/null
@@ -1,516 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-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.IResourceStatus;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.resources.ISaveContext;
-import org.eclipse.core.resources.ISaveParticipant;
-import org.eclipse.core.resources.ISynchronizer;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSDecoratorEnablementListener;
-import org.eclipse.team.internal.ccvs.core.Policy;
-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.FileNameMatcher;
-import org.eclipse.team.internal.ccvs.core.util.SyncFileWriter;
-
-/**
- * This cache uses session properties to hold the bytes representing the sync
- * info. In addition when the workbench closes or a project is closed, the dirty
- * state for all cvs managed folders are persisted using the resource's plugin
- * synchronizer.
- */
-/*package*/ class SessionPropertySyncInfoCache extends SyncInfoCache
- implements ISaveParticipant, ICVSDecoratorEnablementListener {
-
- // key used on a folder to indicate that the resource sync has been cahced for it's children
- private static final QualifiedName RESOURCE_SYNC_CACHED_KEY = new QualifiedName(CVSProviderPlugin.ID, "resource-sync-cached"); //$NON-NLS-1$
- private static final Object RESOURCE_SYNC_CACHED = new Object();
-
- /*package*/ static final FileNameMatcher NULL_IGNORES = new FileNameMatcher();
- private static final FolderSyncInfo NULL_FOLDER_SYNC_INFO = new FolderSyncInfo("", "", null, false); //$NON-NLS-1$ //$NON-NLS-2$
-
- private QualifiedName FOLDER_DIRTY_STATE_KEY = new QualifiedName(CVSProviderPlugin.ID, "folder-dirty-state-cached"); //$NON-NLS-1$
- private boolean isDecoratorEnabled = true;
- private boolean hasBeenSaved = false;
-
- // defer to the sychronizer if there is no sync info
- // (i.e. for those cases where a deleted resource is recreated)
- private SynchronizerSyncInfoCache synchronizerCache;
-
- /*package*/ SessionPropertySyncInfoCache(SynchronizerSyncInfoCache synchronizerCache) {
- this.synchronizerCache = synchronizerCache;
- try {
- // this save participant is removed when the plugin is shutdown.
- ResourcesPlugin.getWorkspace().addSaveParticipant(CVSProviderPlugin.getPlugin(), this);
- CVSProviderPlugin.getPlugin().addDecoratorEnablementListener(this);
-
- final ISynchronizer synchronizer = ResourcesPlugin.getWorkspace().getSynchronizer();
- synchronizer.add(FOLDER_DIRTY_STATE_KEY);
- } catch (CoreException e) {
- CVSProviderPlugin.log(e);
- }
- }
-
- /**
- * If not already cached, loads and caches the folder ignores sync for the container.
- * Folder must exist and must not be the workspace root.
- *
- * @param container the container
- * @return the folder ignore patterns, or an empty array if none
- */
- /*package*/ FileNameMatcher cacheFolderIgnores(IContainer container) throws CVSException {
- // don't try to load if the information is already cached
- FileNameMatcher matcher = (FileNameMatcher)safeGetSessionProperty(container, IGNORE_SYNC_KEY);
- if (matcher == null) {
- // read folder ignores and remember it
- String[] ignores = SyncFileWriter.readCVSIgnoreEntries(container);
- if (ignores == null) {
- matcher = NULL_IGNORES;
- } else {
- matcher = new FileNameMatcher(ignores);
- }
- safeSetSessionProperty(container, IGNORE_SYNC_KEY, matcher);
- }
- return matcher;
- }
-
- /*package*/ boolean isFolderSyncInfoCached(IContainer container) throws CVSException {
- Object info = safeGetSessionProperty(container, FOLDER_SYNC_KEY);
- if (info == null){
- // Defer to the synchronizer in case the folder was recreated
- info = synchronizerCache.getCachedFolderSync(container);
- }
- return info != null;
- }
-
- /*package*/ boolean isResourceSyncInfoCached(IContainer container) throws CVSException {
- return safeGetSessionProperty(container, RESOURCE_SYNC_CACHED_KEY) != null;
- }
-
- /*package*/ void setResourceSyncInfoCached(IContainer container) throws CVSException {
- safeSetSessionProperty(container, RESOURCE_SYNC_CACHED_KEY, RESOURCE_SYNC_CACHED);
- }
-
- /**
- * Returns the folder sync info for the container; null if none.
- * Folder must exist and must not be the workspace root.
- * The folder sync info for the container MUST ALREADY BE CACHED.
- *
- * @param container the container
- * @return the folder sync info for the folder, or null if none.
- * @see #cacheFolderSync
- */
- FolderSyncInfo getCachedFolderSync(IContainer container) throws CVSException {
- FolderSyncInfo info = (FolderSyncInfo)safeGetSessionProperty(container, FOLDER_SYNC_KEY);
- if (info == null) {
- // Defer to the synchronizer in case the folder was recreated
- info = synchronizerCache.getCachedFolderSync(container);
- if (info != null) {
- safeSetSessionProperty(container, FOLDER_SYNC_KEY, info);
- }
- }
- if (info == null) {
- // There should be sync info but it was missing. Report the error
- throw new CVSException(Policy.bind("EclipseSynchronizer.folderSyncInfoMissing", container.getFullPath().toString())); //$NON-NLS-1$
- }
- if (info == NULL_FOLDER_SYNC_INFO) return null;
- return info;
- }
-
- /**
- * Purges the cache recursively for all resources beneath the container.
- * There must not be any pending uncommitted changes.
- * @return the resources whose sync info was flushed
- */
- /*package*/ IResource[] purgeCache(IContainer container, boolean deep) throws CVSException {
- if (! container.exists()) return new IResource[0];
- try {
- Set flushed = new HashSet();
- if (container.getType() != IResource.ROOT) {
- safeSetSessionProperty(container, IGNORE_SYNC_KEY, null);
- safeSetSessionProperty(container, FOLDER_SYNC_KEY, null);
- safeSetSessionProperty(container, RESOURCE_SYNC_CACHED_KEY, null);
- flushed.add(container);
- }
- IResource[] members = container.members();
- for (int i = 0; i < members.length; i++) {
- IResource resource = members[i];
- purgeResourceSyncCache(resource);
- flushed.add(resource);
- if (deep && resource.getType() != IResource.FILE) {
- IResource[] flushedChildren = purgeCache((IContainer) resource, deep);
- flushed.addAll(Arrays.asList(flushedChildren));
- }
- }
- return (IResource[]) flushed.toArray(new IResource[flushed.size()]);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /* package*/ void purgeResourceSyncCache(IResource resource) throws CVSException {
- safeSetSessionProperty(resource, RESOURCE_SYNC_KEY, null);
- }
-
- /**
- * Sets the array of folder ignore patterns for the container, must not be null.
- * Folder must exist and must not be the workspace root.
- *
- * @param container the container
- * @param ignores the array of ignore patterns
- */
- /*package*/ void setCachedFolderIgnores(IContainer container, String[] ignores) throws CVSException {
- safeSetSessionProperty(container, IGNORE_SYNC_KEY, new FileNameMatcher(ignores));
- }
-
-
- /**
- * Sets the folder sync info for the container; if null, deletes it.
- * Folder must exist and must not be the workspace root.
- * The folder sync info for the container need not have previously been cached.
- *
- * @param container the container
- * @param info the new folder sync info
- */
- void setCachedFolderSync(IContainer container, FolderSyncInfo info, boolean canModifyWorkspace) throws CVSException {
- if (!container.exists()) return;
- if (info == null) {
- info = NULL_FOLDER_SYNC_INFO;
- }
- safeSetSessionProperty(container, FOLDER_SYNC_KEY, info);
- // Ensure the synchronizer is clear for exiting resources
- if (canModifyWorkspace && synchronizerCache.getCachedFolderSync(container) != null) {
- synchronizerCache.setCachedFolderSync(container, null, true);
- }
- }
-
- /*package*/ void setDirtyIndicator(IResource resource, String indicator) throws CVSException {
- if (resource.getType() == IResource.FILE) {
- internalSetDirtyIndicator((IFile)resource, indicator);
- } else {
- internalSetDirtyIndicator((IContainer)resource, indicator);
- }
- }
- /*package*/ String getDirtyIndicator(IResource resource) throws CVSException {
- if (resource.getType() == IResource.FILE) {
- return internalGetDirtyIndicator((IFile)resource);
- } else {
- return internalGetDirtyIndicator((IContainer)resource);
- }
- }
-
- private void internalSetDirtyIndicator(IFile file, String indicator) throws CVSException {
- safeSetSessionProperty(file, IS_DIRTY, indicator);
- }
-
- private String internalGetDirtyIndicator(IFile file) throws CVSException {
- String di = (String)safeGetSessionProperty(file, IS_DIRTY);
- if(di == null) {
- di = RECOMPUTE_INDICATOR;
- }
- return di;
- }
-
- private void internalSetDirtyIndicator(IContainer container, String indicator) throws CVSException {
- safeSetSessionProperty(container, IS_DIRTY, indicator);
- }
-
- private String internalGetDirtyIndicator(IContainer container) throws CVSException {
- try {
- String di = (String)safeGetSessionProperty(container, IS_DIRTY);
-
- // if the session property is not available then restore from persisted sync info. At this
- // time the sync info is not flushed because we don't want the workspace to generate
- // a delta.
- if(di == null) {
- byte [] diBytes = ResourcesPlugin.getWorkspace().getSynchronizer().getSyncInfo(FOLDER_DIRTY_STATE_KEY, container);
- if(diBytes != null && !CVSProviderPlugin.getPlugin().crashOnLastRun()) {
- di = new String(diBytes);
- if(di.equals(NOT_DIRTY_INDICATOR)) {
- di = NOT_DIRTY_INDICATOR;
- } else if(di.equals(IS_DIRTY_INDICATOR)) {
- di = IS_DIRTY_INDICATOR;
- } else {
- di = RECOMPUTE_INDICATOR;
- }
- } else {
- di = RECOMPUTE_INDICATOR;
- }
- setDirtyIndicator(container, di);
- }
- return di;
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /*
- * Flush dirty cache for the resource
- */
- /*package*/ void flushDirtyCache(IResource resource) throws CVSException {
- if (resource.exists()) {
- if (resource.getType() == IResource.FILE) {
- safeSetSessionProperty(resource, IS_DIRTY, null);
- } else {
- safeSetSessionProperty(resource, IS_DIRTY, null);
- flushDirtyStateFromDisk((IContainer)resource);
- }
- }
- }
-
- /**
- * Method isSyncInfoLoaded returns true if all the sync info for the
- * provided resources is loaded into the internal cache.
- *
- * @param resources
- * @param i
- * @return boolean
- */
- /*package*/ boolean isSyncInfoLoaded(IContainer parent) throws CVSException {
- if (parent.getFolder(new Path(SyncFileWriter.CVS_DIRNAME)).exists()) {
- if (safeGetSessionProperty(parent, RESOURCE_SYNC_CACHED_KEY) == null)
- return false;
- if (safeGetSessionProperty(parent, FOLDER_SYNC_KEY) == null)
- return false;
-// if (parent.getSessionProperty(IGNORE_SYNC_KEY) == null)
-// return false;
- }
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#getCachedSyncBytes(org.eclipse.core.resources.IResource)
- */
- byte[] getCachedSyncBytes(IResource resource) throws CVSException {
- byte[] bytes = (byte[])safeGetSessionProperty(resource, RESOURCE_SYNC_KEY);
- if (bytes == null) {
- // Defer to the synchronizer in case the file was recreated
- bytes = synchronizerCache.getCachedSyncBytes(resource);
- if (bytes != null) {
- boolean genderChange = false;
- if (resource.getType() == IResource.FILE) {
- if (ResourceSyncInfo.isFolder(bytes)) {
- genderChange = true;
- }
- } else if (!ResourceSyncInfo.isFolder(bytes)) {
- genderChange = true;
- }
- if (genderChange) {
- // Return null if it is a gender change
- bytes = null;
- } else {
- safeSetSessionProperty(resource, RESOURCE_SYNC_KEY, ResourceSyncInfo.convertFromDeletion(bytes));
- }
- }
- }
- return bytes;
- }
-
- Object safeGetSessionProperty(IResource resource, QualifiedName key) throws CVSException {
- try {
- return resource.getSessionProperty(key);
- } catch (CoreException e) {
- IStatus status = e.getStatus();
- if(status != null) {
- int code = e.getStatus().getCode();
- if(code != IResourceStatus.RESOURCE_NOT_LOCAL ||
- code != IResourceStatus.RESOURCE_NOT_FOUND) {
- // ignore error since a phantom would of been created
- // and we can safely ignore these cases
- return null;
- }
- }
- // some other error we did not expect
- throw CVSException.wrapException(e);
- }
- }
-
- void safeSetSessionProperty(IResource resource, QualifiedName key, Object value) throws CVSException {
- try {
- resource.setSessionProperty(key, value);
- } catch (CoreException e) {
- IStatus status = e.getStatus();
- if(status != null) {
- int code = e.getStatus().getCode();
- if(code == IResourceStatus.RESOURCE_NOT_LOCAL ||
- code == IResourceStatus.RESOURCE_NOT_FOUND) {
- // ignore error since a phantom would of been created
- // and we can safely ignore these cases
- }
- // some other error we did not expect
- throw CVSException.wrapException(e);
- }
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#setCachedSyncBytes(org.eclipse.core.resources.IResource, byte[])
- */
- void setCachedSyncBytes(IResource resource, byte[] syncBytes, boolean canModifyWorkspace) throws CVSException {
- // Ensure that the sync bytes do not indicate a deletion
- if (syncBytes != null && ResourceSyncInfo.isDeletion(syncBytes)) {
- syncBytes = ResourceSyncInfo.convertFromDeletion(syncBytes);
- }
- // Put the sync bytes into the cache
- safeSetSessionProperty(resource, RESOURCE_SYNC_KEY, syncBytes);
- // Ensure the synchronizer is clear
- if (canModifyWorkspace && synchronizerCache.getCachedSyncBytes(resource) != null) {
- synchronizerCache.setCachedSyncBytes(resource, null, canModifyWorkspace);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#isDirtyCacheFlushed(org.eclipse.core.resources.IContainer)
- */
- boolean isDirtyCacheFlushed(IContainer resource) throws CVSException {
- if (resource.exists()) {
- return getDirtyIndicator(resource) == RECOMPUTE_INDICATOR;
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.ISaveParticipant#doneSaving(org.eclipse.core.resources.ISaveContext)
- */
- public void doneSaving(ISaveContext context) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.ISaveParticipant#prepareToSave(org.eclipse.core.resources.ISaveContext)
- */
- public void prepareToSave(ISaveContext context) throws CoreException {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.ISaveParticipant#rollback(org.eclipse.core.resources.ISaveContext)
- */
- public void rollback(ISaveContext context) {
- }
-
- /* Called when the workbench is shutdown or projects are closed. The dirty state
- * of folders is persisted, using sync info, so that at startup or project open
- * the folder state can be quickly calculated. This is mainly for improving decorator
- * performance.
- * @see org.eclipse.core.resources.ISaveParticipant#saving(org.eclipse.core.resources.ISaveContext)
- */
- public void saving(ISaveContext context) throws CoreException {
- boolean fullSave = (context.getKind() == ISaveContext.FULL_SAVE);
- boolean projectSave = (context.getKind() == ISaveContext.PROJECT_SAVE);
-
- if(isDecoratorEnabled && (projectSave || fullSave)) {
- // persist all session properties for folders into sync info.
- final ISynchronizer synchronizer = ResourcesPlugin.getWorkspace().getSynchronizer();
-
- // traverse the workspace looking for CVS managed projects or just the
- // specific projects being closed
- IProject[] projects;
- if(projectSave) {
- projects = new IProject[1];
- projects[0] = context.getProject();
- } else {
- projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- }
- for (int i = 0; i < projects.length; i++) {
- IProject project = projects[i];
- RepositoryProvider provider = RepositoryProvider.getProvider(
- project,
- CVSProviderPlugin.getTypeId());
-
- // found a project managed by CVS, convert each session property on a
- // folder to a sync object.
- if (provider != null) {
- project.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- if(resource.getType() != IResource.FILE) {
- String di = null;
- try {
- di = getDirtyIndicator(resource);
- } catch (CVSException e) {
- // continue traversal
- CVSProviderPlugin.log(e);
- }
- if(di != null) {
- synchronizer.setSyncInfo(FOLDER_DIRTY_STATE_KEY, resource, di.getBytes());
- }
- }
- return true;
- }
- });
- }
- }
- hasBeenSaved = true;
- }
- }
-
- /* (non-Javadoc)
- * @see ICVSDecoratorEnablementListener#decoratorEnablementChanged(boolean)
- */
- public void decoratorEnablementChanged(boolean enabled) {
- isDecoratorEnabled = enabled;
- if(!enabled && !hasBeenSaved) {
- // flush the dirty state cache for all managed resources
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- for (int i = 0; i < projects.length; i++) {
- IProject project = projects[i];
- RepositoryProvider provider = RepositoryProvider.getProvider(
- project,
- CVSProviderPlugin.getTypeId());
-
- if (provider != null) {
- try {
- project.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- try {
- flushDirtyCache(resource);
- } catch(CVSException e) {
- throw new CoreException(e.getStatus());
- }
- return true;
- }
- });
- } catch (CoreException e) {
- CVSProviderPlugin.log(e);
- }
- }
- }
- }
- }
-
- /*
- * Called to clear the folder dirty state from the resource sync tree and stop persisting
- * these values to disk.
- */
- private void flushDirtyStateFromDisk(IContainer container) {
- final ISynchronizer synchronizer = ResourcesPlugin.getWorkspace().getSynchronizer();
- try {
- synchronizer.flushSyncInfo(FOLDER_DIRTY_STATE_KEY, container, IResource.DEPTH_INFINITE);
- } catch (CoreException e) {
- CVSProviderPlugin.log(e);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java
deleted file mode 100644
index daacebc7c..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.resources;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-
-/**
- * The low level cache provides the sync info as bytes
- */
-/*package*/ abstract class SyncInfoCache {
-
- // the resources plugin synchronizer is used to cache and possibly persist. These
- // are keys for storing the sync info.
- /*package*/ static final QualifiedName FOLDER_SYNC_KEY = new QualifiedName(CVSProviderPlugin.ID, "folder-sync"); //$NON-NLS-1$
- /*package*/ static final QualifiedName RESOURCE_SYNC_KEY = new QualifiedName(CVSProviderPlugin.ID, "resource-sync"); //$NON-NLS-1$
- /*package*/ static final QualifiedName IGNORE_SYNC_KEY = new QualifiedName(CVSProviderPlugin.ID, "folder-ignore"); //$NON-NLS-1$
-
- /*package*/ static final byte[][] EMPTY_RESOURCE_SYNC_INFOS = new byte[0][0];
-
- /*package*/ static final QualifiedName IS_DIRTY = new QualifiedName(CVSProviderPlugin.ID, "is-dirty"); //$NON-NLS-1$
- /*package*/ static final String IS_DIRTY_INDICATOR = "d"; //$NON-NLS-1$
- /*package*/ static final String NOT_DIRTY_INDICATOR = "c"; //$NON-NLS-1$
- /*package*/ static final String RECOMPUTE_INDICATOR = "r"; //$NON-NLS-1$
-
- /*package*/ static final IStatus STATUS_OK = new Status(IStatus.OK, CVSProviderPlugin.ID, 0, Policy.bind("ok"), null); //$NON-NLS-1$
-
- /**
- * Returns the folder sync info for the container; null if none.
- * Folder must exist and must not be the workspace root.
- * The folder sync info for the container MUST ALREADY BE CACHED.
- * <p>
- * The <code>canModifyWorkspace</code>
- * flag is used to indicate whether it is OK to modify ISycnrhonizer entries for
- * the given resource. A value of <code>true</code> indicates that the client
- * holds a scheduling rule that encompasses the resource and the workspace is
- * open for modification.
- *
- * @param container the container
- * @param canModifyWorkspace indicates if it is OK to modify the ISycnrhonizer
- * @return the folder sync info for the folder, or null if none.
- * @see #cacheFolderSync
- */
- /*package*/ abstract FolderSyncInfo getCachedFolderSync(IContainer container) throws CVSException;
-
- /**
- * Sets the folder sync info for the container; if null, deletes it.
- * Folder must exist and must not be the workspace root.
- * The folder sync info for the container need not have previously been
- * cached. The <code>canModifyWorkspace</code>
- * flag is used to indicate whether it is OK to modify ISycnrhonizer entries for
- * the given resource. A value of <code>true</code> indicates that the client
- * holds a scheduling rule that encompasses the resource and the workspace is
- * open for modification.
- *
- * @param container the container
- * @param info the new folder sync info
- * @param canModifyWorkspace indicates if it is OK to modify the ISycnrhonizer
- */
- /*package*/ abstract void setCachedFolderSync(IContainer container, FolderSyncInfo info, boolean canModifyWorkspace) throws CVSException;
-
- /**
- * Returns the resource sync info for the given resource. The resource sync
- * info for the resource MUST ALREADY BE CACHED.
- *
- * @param resource the resource
- * @return the bytes containing the resource's sync info
- * @see #cacheResourceSyncForChildren
- */
- /*package*/ abstract byte[] getCachedSyncBytes(IResource resource) throws CVSException;
-
- /**
- * Sets the resource sync info for the resource; if null, deletes it. Parent
- * must exist and must not be the workspace root. The resource sync info for
- * the resource MUST ALREADY BE CACHED. The <code>canModifyWorkspace</code>
- * flag is used to indicate whether it is OK to modify ISycnrhonizer entries for
- * the given resource. A value of <code>true</code> indicates that the client
- * holds a scheduling rule that encompasses the resource and the workspace is
- * open for modification.
- *
- * @param resource the resource
- * @param syncBytes the bytes containing the new resource sync info
- * @param canModifyWorkspace indicates if it is OK to modify the ISycnrhonizer
- * @see #cacheResourceSyncForChildren
- */
- /*package*/ abstract void setCachedSyncBytes(IResource resource, byte[] syncBytes, boolean canModifyWorkspace) throws CVSException;
-
- /*package*/ abstract String getDirtyIndicator(IResource resource) throws CVSException;
-
- /*package*/ abstract void setDirtyIndicator(IResource resource, String indicator) throws CVSException;
-
- /*package*/ abstract void flushDirtyCache(IResource resource) throws CVSException;
-
- /*package*/ abstract boolean isSyncInfoLoaded(IContainer parent) throws CVSException;
-
- /**
- * Query the low level cache to see if the sync info for the provided
- * container is loaded.
- *
- * @param container
- * @return boolean
- * @throws CVSException
- */
- /*package*/ abstract boolean isFolderSyncInfoCached(IContainer container) throws CVSException;
-
- /**
- * Query the low level cache to see if the sync info for the direct children
- * of the provided container is loaded.
- *
- * @param container
- * @return boolean
- */
- /*package*/ abstract boolean isResourceSyncInfoCached(IContainer container) throws CVSException;
-
- /**
- * Indicate to the low level cache that the sync info for all it's direct
- * children have been set so they match what is on disk.
- *
- * @param container
- */
- /*package*/ abstract void setResourceSyncInfoCached(IContainer container) throws CVSException;
-
- /**
- * @param resource
- * @return boolean
- */
- /*package*/ abstract boolean isDirtyCacheFlushed(IContainer resource) throws CVSException;
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java
deleted file mode 100644
index 2b155a989..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.resources;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ISynchronizer;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-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.ICVSResource;
-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.Util;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * This cache uses session properties to hold the bytes representing the sync
- * info
- */
-/*package*/ class SynchronizerSyncInfoCache extends SyncInfoCache {
-
- public SynchronizerSyncInfoCache() {
- getWorkspaceSynchronizer().add(FOLDER_SYNC_KEY);
- getWorkspaceSynchronizer().add(RESOURCE_SYNC_KEY);
- }
- /**
- * Return the Eclipse Workspace Synchronizer (from org.eclipse.core.resources)
- */
- private ISynchronizer getWorkspaceSynchronizer() {
- return ResourcesPlugin.getWorkspace().getSynchronizer();
- }
-
- /*package*/ void flush(IProject project) throws CVSException {
- purgeCache(project, true);
- }
-
- /**
- * Method flush.
- * @param folder
- */
- /*package*/ void flush(IFolder folder) throws CVSException {
- purgeCache(folder, false);
- }
-
- /**
- * Returns the folder sync info for the container; null if none.
- * Folder must exist and must not be the workspace root.
- * The folder sync info for the container MUST ALREADY BE CACHED.
- *
- * @param container the container
- * @return the folder sync info for the folder, or null if none.
- * @see #cacheFolderSync
- */
- FolderSyncInfo getCachedFolderSync(IContainer container) throws CVSException {
- try {
- byte[] bytes = getWorkspaceSynchronizer().getSyncInfo(FOLDER_SYNC_KEY, container);
- if (bytes == null) return null;
- return FolderSyncInfo.getFolderSyncInfo(bytes);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * Sets the folder sync info for the container; if null, deletes it.
- * Folder must exist and must not be the workspace root.
- * The folder sync info for the container need not have previously been
- * cached.
- *
- * @param container the container
- * @param info the new folder sync info
- */
- void setCachedFolderSync(IContainer container, FolderSyncInfo info, boolean canModifyWorkspace) throws CVSException {
- try {
- if (info == null) {
- if (container.exists() || container.isPhantom()) {
- getWorkspaceSynchronizer().flushSyncInfo(FOLDER_SYNC_KEY, container, IResource.DEPTH_ZERO);
- }
- } else {
- getWorkspaceSynchronizer().setSyncInfo(FOLDER_SYNC_KEY, container, info.getBytes());
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#getCachedSyncBytes(org.eclipse.core.resources.IResource)
- */
- byte[] getCachedSyncBytes(IResource resource) throws CVSException {
- try {
- byte[] bytes = getWorkspaceSynchronizer().getSyncInfo(RESOURCE_SYNC_KEY, resource);
- if (bytes != null && resource.getType() == IResource.FILE) {
- if (ResourceSyncInfo.isAddition(bytes)) {
- // The local file has been deleted but was an addition
- // Therefore, ignoe the sync bytes
- bytes = null;
- } else if (!ResourceSyncInfo.isDeletion(bytes)) {
- // Ensure the bytes indicate an outgoing deletion
- bytes = ResourceSyncInfo.convertToDeletion(bytes);
- }
- }
- return bytes;
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#setCachedSyncBytes(org.eclipse.core.resources.IResource, byte[])
- */
- void setCachedSyncBytes(IResource resource, byte[] syncBytes, boolean canModifyWorkspace) throws CVSException {
- byte[] oldBytes = getCachedSyncBytes(resource);
- try {
- if (syncBytes == null) {
- if (oldBytes != null && (resource.exists() || resource.isPhantom())) {
- checkCanModifyWorkspace(resource, canModifyWorkspace);
- getWorkspaceSynchronizer().flushSyncInfo(RESOURCE_SYNC_KEY, resource, IResource.DEPTH_ZERO);
- }
- } else {
- // ensure that the sync info is not already set to the same thing.
- // We do this to avoid causing a resource delta when the sync info is
- // initially loaded (i.e. the synchronizer has it and so does the Entries file
- // Ignore the
- if (oldBytes == null
- || !Util.equals(
- ResourceSyncInfo.convertToDeletion(syncBytes),
- ResourceSyncInfo.convertToDeletion(oldBytes))) {
- checkCanModifyWorkspace(resource, canModifyWorkspace);
- getWorkspaceSynchronizer().setSyncInfo(RESOURCE_SYNC_KEY, resource, syncBytes);
- }
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /*
- * If we are not able to modify the workspace, throw an exception indicating this
- * condition. The client requesting the cache should read the individual sync info
- * directly.
- */
- private void checkCanModifyWorkspace(IResource resource, boolean canModifyWorkspace) throws CVSException {
- if (!canModifyWorkspace) {
- throw new CVSException(IStatus.WARNING, CVSStatus.FAILED_TO_CACHE_SYNC_INFO, Policy.bind("SynchronizerSyncInfoCache.0", resource.getFullPath().toString())); //$NON-NLS-1$
- }
-
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#getDirtyIndicator(org.eclipse.core.resources.IResource)
- */
- String getDirtyIndicator(IResource resource) throws CVSException {
- if (resource.getType() == IResource.FILE) {
- // a phantom file is dirty if it was managed before it was deleted
- return getCachedSyncBytes(resource) != null ?
- IS_DIRTY_INDICATOR :
- NOT_DIRTY_INDICATOR;
- } else {
- return calculateDirtyCountForPhantomFolder((IContainer)resource);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#setDirtyIndicator(org.eclipse.core.resources.IResource, java.lang.String)
- */
- void setDirtyIndicator(IResource resource, String indicator) throws CVSException {
- // We don't cache the dirty count for folders because it would cause
- // resource delta's in the decorator thread and possible deadlock.
- }
-
- /*package*/ void flushDirtyCache(IResource container) throws CVSException {
- }
-
- /*package*/ boolean isSyncInfoLoaded(IContainer parent) throws CVSException {
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#isResourceSyncInfoCached(org.eclipse.core.resources.IContainer)
- */
- boolean isResourceSyncInfoCached(IContainer container) throws CVSException {
- // the sync info is always cahced when using the synchronizer
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#setResourceSyncInfoCached(org.eclipse.core.resources.IContainer)
- */
- void setResourceSyncInfoCached(IContainer container) throws CVSException {
- // do nothing
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#isFolderSyncInfoCached(org.eclipse.core.resources.IContainer)
- */
- boolean isFolderSyncInfoCached(IContainer container) throws CVSException {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#isDirtyCacheFlushed(org.eclipse.core.resources.IContainer)
- */
- boolean isDirtyCacheFlushed(IContainer resource) throws CVSException {
- return false;
- }
-
- /*
- * Calculate the dirty count for the given phantom folder, performing any
- * necessary calculations on the childen as well
- */
- private String calculateDirtyCountForPhantomFolder(IContainer parent) throws CVSException {
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(parent);
- if(getCachedFolderSync(parent) == null) {
- return NOT_DIRTY_INDICATOR;
- }
-
- String indicator = NOT_DIRTY_INDICATOR;
- ICVSResource[] children = cvsFolder.members(ICVSFolder.MANAGED_MEMBERS | ICVSFolder.PHANTOM_MEMBERS);
- for (int i = 0; i < children.length; i++) {
- ICVSResource resource = children[i];
- // keep looking into phantom folders until a managed phantom file
- // is found.
- if (resource.isFolder()) {
- indicator = calculateDirtyCountForPhantomFolder((IContainer)resource.getIResource());
- } else {
- // Any non-existant managed files are dirty (outgoing deletion)
- indicator = IS_DIRTY_INDICATOR;
- break;
- }
- }
- return indicator;
- }
-
- /**
- * @param root
- * @param deep
- */
- public void purgeCache(IContainer root, boolean deep) throws CVSException {
- int depth = deep ? IResource.DEPTH_INFINITE : IResource.DEPTH_ZERO;
- try {
- if (root.exists() || root.isPhantom()) {
- getWorkspaceSynchronizer().flushSyncInfo(RESOURCE_SYNC_KEY, root, depth);
- }
- if (root.exists() || root.isPhantom()) {
- getWorkspaceSynchronizer().flushSyncInfo(FOLDER_SYNC_KEY, root, depth);
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
-
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/BaserevInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/BaserevInfo.java
deleted file mode 100644
index 41ebfb14a..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/BaserevInfo.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.core.syncinfo;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * This class represents the information in the CVS/Baserev file
- */
-public class BaserevInfo {
- private static final String BASEREV_PREFIX = "B"; //$NON-NLS-1$
-
- private String name;
- private String revision;
-
- public BaserevInfo(String entryLine) throws CVSException {
- setEntryLine(entryLine);
- }
-
- public BaserevInfo(String name, String revision) {
- this.name = name;
- this.revision = revision;
- }
- /**
- * Return the entry line as it appears in the CVS/Baserev file
- * @return String
- */
- public String getEntryLine() {
- StringBuffer result = new StringBuffer();
- result.append(BASEREV_PREFIX);
- result.append(name);
- result.append(ResourceSyncInfo.SEPARATOR);
- result.append(revision);
- result.append(ResourceSyncInfo.SEPARATOR);
- return result.toString();
- }
- private void setEntryLine(String entryLine) throws CVSException {
- if(entryLine.startsWith(BASEREV_PREFIX)) {
- entryLine = entryLine.substring(1);
- }
- String[] strings = Util.parseIntoSubstrings(entryLine, ResourceSyncInfo.SEPARATOR);
- // Accept either a length of 2 or 3. If the length is 3, we ignore the last
- // string as per the CVS spec.
- if(strings.length != 2 && strings.length != 3) {
- throw new CVSException(Policy.bind("BaseRevInfo.malformedEntryLine", entryLine)); //$NON-NLS-1$
- }
-
- name = strings[0];
-
- if(name.length()==0) {
- throw new CVSException(Policy.bind("BaseRevInfo.malformedEntryLine", entryLine)); //$NON-NLS-1$
- }
-
- revision = strings[1];
-
- if(revision.length()==0) {
- throw new CVSException(Policy.bind("BaseRevInfo.malformedEntryLine", entryLine)); //$NON-NLS-1$
- }
- }
- /**
- * Returns the name.
- * @return String
- */
- public String getName() {
- return name;
- }
-
- /**
- * Returns the revision.
- * @return String
- */
- public String getRevision() {
- return revision;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSBaseSynchronizationCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSBaseSynchronizationCache.java
deleted file mode 100644
index 7945c47e7..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSBaseSynchronizationCache.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.internal.ccvs.core.syncinfo;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.utils.SynchronizationCache;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-
-
-public class CVSBaseSynchronizationCache extends SynchronizationCache {
- public void dispose() {
- // Do nothing
- }
- public byte[] getSyncBytes(IResource resource) throws TeamException {
- if (resource.getType() == IResource.FILE) {
- // For a file, return the entry line
- byte[] bytes = EclipseSynchronizer.getInstance().getSyncBytes(resource);
- if (bytes != null) {
- // Use the base sync info (i.e. no deletion or addition)
- if (ResourceSyncInfo.isDeletion(bytes)) {
- bytes = ResourceSyncInfo.convertFromDeletion(bytes);
- } else if (ResourceSyncInfo.isAddition(bytes)) {
- bytes = null;
- }
- }
- return bytes;
- } else {
- // For a folder, return the folder sync info bytes
- FolderSyncInfo info = EclipseSynchronizer.getInstance().getFolderSync((IContainer)resource);
- if (info == null) return null;
- return info.getBytes();
- }
- }
- public boolean isRemoteKnown(IResource resource) throws TeamException {
- return getSyncBytes(resource) != null;
- }
- public boolean removeSyncBytes(IResource resource, int depth) throws TeamException {
- throw new UnsupportedOperationException();
- }
- public boolean setSyncBytes(IResource resource, byte[] bytes) throws TeamException {
- throw new UnsupportedOperationException();
- }
- public boolean setRemoteDoesNotExist(IResource resource) throws TeamException {
- throw new UnsupportedOperationException();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.utils.SynchronizationCache#members(org.eclipse.core.resources.IResource)
- */
- public IResource[] members(IResource resource) throws TeamException {
- if(resource.getType() == IResource.FILE) {
- return new IResource[0];
- }
- return EclipseSynchronizer.getInstance().members((IContainer)resource);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSDescendantSynchronizationCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSDescendantSynchronizationCache.java
deleted file mode 100644
index 1d97d8abc..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSDescendantSynchronizationCache.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.syncinfo;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.utils.*;
-import org.eclipse.team.internal.ccvs.core.*;
-
-/**
- * CVS sycnrhonization cache that ignores stale remote bytes
- */
-public class CVSDescendantSynchronizationCache extends DescendantSynchronizationCache {
-
- public CVSDescendantSynchronizationCache(SynchronizationCache baseCache, SynchronizationSyncBytesCache remoteCache) {
- super(baseCache, remoteCache);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.DescendantSynchronizationCache#isDescendant(org.eclipse.core.resources.IResource, byte[], byte[])
- */
- protected boolean isDescendant(IResource resource, byte[] baseBytes, byte[] remoteBytes) throws TeamException {
- if (resource.getType() != IResource.FILE) return true;
- try {
- return ResourceSyncInfo.isLaterRevisionOnSameBranch(remoteBytes, baseBytes);
- } catch (CVSException e) {
- throw TeamException.asTeamException(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.helpers.SynchronizationCache#setSyncBytes(org.eclipse.core.resources.IResource, byte[])
- */
- public boolean setSyncBytes(IResource resource, byte[] bytes) throws TeamException {
- boolean changed = super.setSyncBytes(resource, bytes);
- if (resource.getType() == IResource.FILE && getSyncBytes(resource) != null && !parentHasSyncBytes(resource)) {
- // Log a warning if there is no sync bytes available for the resource's
- // parent but there is valid sync bytes for the child
- CVSProviderPlugin.log(new TeamException(Policy.bind("ResourceSynchronizer.missingParentBytesOnSet", ((SynchronizationSyncBytesCache)getRemoteCache()).getSyncName().toString(), resource.getFullPath().toString()))); //$NON-NLS-1$
- }
- return changed;
- }
-
- /**
- * Indicates whether the parent of the given local resource has sync bytes for its
- * corresponding remote resource. The parent bytes of a remote resource are required
- * (by CVS) to create a handle to the remote resource.
- */
- protected boolean parentHasSyncBytes(IResource resource) throws TeamException {
- if (resource.getType() == IResource.PROJECT) return true;
- return (getSyncBytes(resource.getParent()) != null);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSRefreshOperation.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSRefreshOperation.java
deleted file mode 100644
index 498556c5e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSRefreshOperation.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.syncinfo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.ISubscriberResource;
-import org.eclipse.team.core.subscribers.utils.SynchronizationCache;
-import org.eclipse.team.core.subscribers.utils.SynchronizationCacheRefreshOperation;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteResource;
-
-/**
- * CVS Specific refresh operation
- */
-public class CVSRefreshOperation extends SynchronizationCacheRefreshOperation {
-
- private SynchronizationCache cache, baseCache;
- private CVSTag tag;
-
- public CVSRefreshOperation(SynchronizationCache cache, SynchronizationCache baseCache, CVSTag tag) {
- this.tag = tag;
- this.cache = cache;
- this.baseCache = cache;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.RefreshOperation#getSynchronizationCache()
- */
- protected SynchronizationCache getSynchronizationCache() {
- return cache;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.RefreshOperation#getRemoteSyncBytes(org.eclipse.core.resources.IResource, org.eclipse.team.core.subscribers.ISubscriberResource)
- */
- protected byte[] getRemoteSyncBytes(IResource local, ISubscriberResource remote) throws TeamException {
- if (remote != null) {
- return ((RemoteResource)remote).getSyncBytes();
- } else {
- if (local.getType() == IResource.FOLDER && baseCache != null) {
- // If there is no remote, use the local sync for the folder
- return baseCache.getSyncBytes(local);
- }
- return null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.RefreshOperation#getRemoteChildren(org.eclipse.team.core.subscribers.ISubscriberResource, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected ISubscriberResource[] getRemoteChildren(ISubscriberResource remote, IProgressMonitor progress) throws TeamException {
- IRemoteResource[] children = remote != null ? (IRemoteResource[])((RemoteResource)remote).members(progress) : new IRemoteResource[0];
- ISubscriberResource[] result = new ISubscriberResource[children.length];
- for (int i = 0; i < children.length; i++) {
- result[i] = (ISubscriberResource)children[i];
- }
- return result;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.RefreshOperation#getLocalChildren(org.eclipse.core.resources.IResource)
- */
- protected IResource[] getLocalChildren(IResource local) throws TeamException {
- IResource[] localChildren = null;
- if( local.getType() != IResource.FILE && (local.exists() || local.isPhantom())) {
- // Include all non-ignored resources including outgoing deletions
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor((IContainer)local);
- // Look inside existing folders and phantoms that are CVS folders
- if (local.exists() || cvsFolder.isCVSFolder()) {
- ICVSResource[] cvsChildren = cvsFolder.members(ICVSFolder.MANAGED_MEMBERS | ICVSFolder.UNMANAGED_MEMBERS);
- List resourceChildren = new ArrayList();
- for (int i = 0; i < cvsChildren.length; i++) {
- ICVSResource cvsResource = cvsChildren[i];
- resourceChildren.add(cvsResource.getIResource());
- }
- localChildren = (IResource[]) resourceChildren.toArray(new IResource[resourceChildren.size()]);
- }
- }
- if (localChildren == null) {
- localChildren = new IResource[0];
- }
- return localChildren;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.RefreshOperation#buildRemoteTree(org.eclipse.core.resources.IResource, int, boolean, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected ISubscriberResource getRemoteTree(IResource resource, int depth, boolean cacheFileContentsHint, IProgressMonitor monitor) throws TeamException {
- // TODO: we are currently ignoring the depth parameter because the build remote tree is
- // by default deep!
- return (ISubscriberResource)CVSWorkspaceRoot.getRemoteTree(resource, tag, cacheFileContentsHint, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSSynchronizationCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSSynchronizationCache.java
deleted file mode 100644
index 0564e52a8..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/CVSSynchronizationCache.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.core.syncinfo;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.utils.SynchronizationSyncBytesCache;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * Override <code>SynchronizationSyncBytesCache</code> to log an error
- * if there are no parent bytes for a file.
- */
-public class CVSSynchronizationCache extends SynchronizationSyncBytesCache {
-
- public CVSSynchronizationCache(QualifiedName name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.helpers.SynchronizationCache#setSyncBytes(org.eclipse.core.resources.IResource, byte[])
- */
- public boolean setSyncBytes(IResource resource, byte[] bytes) throws TeamException {
- boolean changed = super.setSyncBytes(resource, bytes);
- if (resource.getType() == IResource.FILE && getSyncBytes(resource) != null && !parentHasSyncBytes(resource)) {
- // Log a warning if there is no sync bytes available for the resource's
- // parent but there is valid sync bytes for the child
- CVSProviderPlugin.log(new TeamException(Policy.bind("ResourceSynchronizer.missingParentBytesOnSet", getSyncName().toString(), resource.getFullPath().toString()))); //$NON-NLS-1$
- }
- return changed;
- }
-
- /**
- * Indicates whether the parent of the given local resource has sync bytes for its
- * corresponding remote resource. The parent bytes of a remote resource are required
- * (by CVS) to create a handle to the remote resource.
- */
- protected boolean parentHasSyncBytes(IResource resource) throws TeamException {
- if (resource.getType() == IResource.PROJECT) return true;
- return (getSyncBytes(resource.getParent()) != null);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/DeferredResourceChangeHandler.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/DeferredResourceChangeHandler.java
deleted file mode 100644
index 5036abceb..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/DeferredResourceChangeHandler.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.syncinfo;
-
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.BackgroundEventHandler;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-
-/**
- * This class handles resources changes that are reported in deltas
- * in a deferred manner (i.e. in a background job)
- */
-public class DeferredResourceChangeHandler extends BackgroundEventHandler {
-
- public DeferredResourceChangeHandler() {
- super(Policy.bind("DeferredResourceChangeHandler.0"), Policy.bind("DeferredResourceChangeHandler.1")); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- private static final int IGNORE_FILE_CHANGED = 1;
-
- private Set changedIgnoreFiles = new HashSet();
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.BackgroundEventHandler#processEvent(org.eclipse.team.core.subscribers.BackgroundEventHandler.Event, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void processEvent(Event event, IProgressMonitor monitor) throws TeamException {
- int type = event.getType();
- switch (type) {
- case IGNORE_FILE_CHANGED :
- changedIgnoreFiles.add(event.getResource());
- }
- }
-
- private IContainer[] getParents(Set files) {
- Set parents = new HashSet();
- for (Iterator iter = files.iterator(); iter.hasNext();) {
- IFile file = (IFile) iter.next();
- parents.add(file.getParent());
- }
- return (IContainer[]) parents.toArray(new IContainer[parents.size()]);
- }
-
- public void ignoreFileChanged(IFile file) {
- queueEvent(new Event(file, IGNORE_FILE_CHANGED, IResource.DEPTH_ZERO));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.BackgroundEventHandler#dispatchEvents()
- */
- protected void dispatchEvents(IProgressMonitor monitor) throws TeamException {
- EclipseSynchronizer.getInstance().ignoreFilesChanged(getParents(changedIgnoreFiles));
- changedIgnoreFiles.clear();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/FolderSyncInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/FolderSyncInfo.java
deleted file mode 100644
index 31ac7d209..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/FolderSyncInfo.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.syncinfo;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.resources.CVSEntryLineTag;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-/**
- * Value (immutable) object that represents workspace state information about the contents of a
- * folder that was retreived from a CVS repository. It is a specialized representation of the files from
- * the CVS sub-directory that contain folder specific connection information (e.g. Root, Repository, Tag).
- *
- * @see ICVSFolder#getFolderSyncInfo()
- */
-public class FolderSyncInfo {
-
- // The Repository value for virtual directories (i.e. local with no corresponding remote)
- public static final String VIRTUAL_DIRECTORY = "CVSROOT/Emptydir"; //$NON-NLS-1$
-
- // relative path of this folder in the repository, project1/folder1/folder2
- protected String repository;
-
- // :pserver:user@host:/home/user/repo
- private String root;
-
- // sticky tag (e.g. version, date, or branch tag applied to folder)
- private CVSEntryLineTag tag;
-
- // if true then it means only part of the folder was fetched from the repository, and CVS will not create
- // additional files in that folder.
- private boolean isStatic;
-
- /**
- * Construct a folder sync object.
- *
- * @param repo the relative path of this folder in the repository, cannot be <code>null</code>.
- * @param root the location of the repository, cannot be <code>null</code>.
- * @param tag the tag set for the folder or <code>null</code> if there is no tag applied.
- * @param isStatic to indicate is only part of the folder was fetched from the server.
- */
- public FolderSyncInfo(String repo, String root, CVSTag tag, boolean isStatic) {
- Assert.isNotNull(repo);
- Assert.isNotNull(root);
- this.repository = repo;
- // intern the root so that caching of FolderSyncInfos for folders will use less space
- this.root = root.intern();
- ensureRepositoryRelativeToRoot();
- this.isStatic = isStatic;
- setTag(tag);
- }
-
- /**
- * Method ensureRepositoryRelativeToRoot.
- */
- private void ensureRepositoryRelativeToRoot() {
- String rootDir;
- try {
- rootDir = getRootDirectory();
- } catch (CVSException e) {
- // Ignore the for now. Using the root will show the error to the user.
- return;
- }
- if (repository.startsWith(rootDir)) {
- repository = repository.substring(rootDir.length());
- if (repository.startsWith(ResourceSyncInfo.SEPARATOR)) {
- repository = repository.substring(ResourceSyncInfo.SEPARATOR.length());
- }
- }
- }
-
- public boolean equals(Object other) {
- if(other == this) return true;
- if (!(other instanceof FolderSyncInfo)) return false;
-
- FolderSyncInfo syncInfo = ((FolderSyncInfo)other);
- if (!getRoot().equals(syncInfo.getRoot())) return false;
- if (!getRepository().equals(syncInfo.getRepository())) return false;
- if (getIsStatic() != syncInfo.getIsStatic()) return false;
- if ((getTag() == null) || (syncInfo.getTag() == null)) {
- if ((getTag() == null) && (syncInfo.getTag() != null) && (syncInfo.getTag().getType() != CVSTag.HEAD)) {
- return false;
- } else if ((syncInfo.getTag() == null) && (getTag() != null) && (getTag().getType() != CVSTag.HEAD)) {
- return false;
- }
- } else if (!getTag().equals(syncInfo.getTag())) {
- return false;
- }
- return true;
- }
- /**
- * Gets the root, cannot be <code>null.
- *
- * @return Returns a String
- */
- public String getRoot() {
- return root;
- }
-
- /**
- * Answer the directory portion of the root. For example, if
- * root = :pserver:user@host:/home/user/repo
- * then /home/user/repo is return.
- * <p>
- * The root does not neccesarily contain a user name, in which cas the format is
- * :pserver:host:/home/user/repo.
- *
- *
- * @return String
- */
- private String getRootDirectory() throws CVSException {
- try {
- String root = getRoot();
- int index = root.indexOf('@');
- if (index == -1) {
- // If the username is mising, we have to find the third ':'.
- index = root.indexOf(':');
- if (index == 0) {
- // The method is optional so if it's not there, there is only one ':'
- index = root.indexOf(':', index + 1);
- index = root.indexOf(':', index + 1);
- }
- } else {
- // If the username was there, we find the first ':' past the '@'
- index = root.indexOf(':', index + 1);
- }
- index++;
- // strip off a leading port if there is one
- char c = root.charAt(index);
- while (Character.isDigit(c)) {
- c = root.charAt(++index);
- }
- return root.substring(index);
- } catch (IndexOutOfBoundsException e) {
- throw new CVSException(Policy.bind("FolderSyncInfo_Maleformed_root_4")); //$NON-NLS-1$
- }
- }
-
- /**
- * Gets the tag, may be <code>null</code>.
- *
- * @return Returns a String
- */
- public CVSEntryLineTag getTag() {
- return tag;
- }
-
- /**
- * Gets the repository, may be <code>null</code>.
- *
- * @return Returns a String
- */
- public String getRepository() {
- return repository;
- }
-
- /**
- * Gets the isStatic.
- *
- * @return Returns a boolean
- */
- public boolean getIsStatic() {
- return isStatic;
- }
-
- /**
- * Answers a full path to the folder on the remote server. This by appending the repository to the
- * repository location speficied in the root.
- *
- * Example:
- * root = :pserver:user@host:/home/user/repo
- * repository = folder1/folder2
- *
- * Returns:
- * /home/users/repo/folder1/folder2
- *
- * Note: CVS supports repository root directories that end in a slash (/).
- * For these directories, the remote location must contain two slashes (//)
- * between the root directory and the rest of the path. For example:
- * root = :pserver:user@host:/home/user/repo/
- * repository = folder1/folder2
- * must return:
- * /home/users/repo//folder1/folder2
- *
- * @return the full path of this folder on the server.
- * @throws a CVSException if the root or repository is malformed.
- */
- public String getRemoteLocation() throws CVSException {
- return getRootDirectory() + ResourceSyncInfo.SEPARATOR + getRepository(); //$NON-NLS-1$
- }
-
- /*
- * Provide a hashCode() method that gaurentees that equal object will have the
- * same hashCode
- */
- public int hashCode() {
- return getRoot().hashCode() | getRepository().hashCode();
- }
-
- /**
- * Sets the tag for the folder.
- *
- * @param tag The tag to set
- */
- protected void setTag(CVSTag tag) {
- if (tag == null || tag.equals(CVSTag.DEFAULT)) {
- this.tag = null;
- } else {
- this.tag = new CVSEntryLineTag(tag);
- }
- }
- /*
- * @see Object#toString()
- */
- public String toString() {
- return getRoot() + "/" + getRepository() + "/" + getTag(); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public MutableFolderSyncInfo cloneMutable() {
- MutableFolderSyncInfo newSync = new MutableFolderSyncInfo(this);
- return newSync;
- }
-
- /**
- * Return true if this FolderSyncInfo is mapped to the same remote directory
- * as the other FolderSyncInfo passed as a parameter.
- *
- * @param remoteInfo
- * @return
- */
- public boolean isSameMapping(FolderSyncInfo other) {
- if (other == null) return false;
- return (this.getRoot().equals(other.getRoot())
- && this.getRepository().equals(other.getRepository())) ;
- }
-
-/**
- * Convert a FolderSyncInfo into a byte array that can be stored
- * in the workspace synchronizer
- */
- public byte[] getBytes() throws CVSException {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- DataOutputStream dos = new DataOutputStream(out);
- try {
- dos.writeUTF(getRoot());
- dos.writeUTF(getRepository());
- CVSEntryLineTag t = getTag();
- if (t == null) {
- dos.writeUTF(""); //$NON-NLS-1$
- } else {
- dos.writeUTF(t.toString());
- }
- dos.writeBoolean(getIsStatic());
- dos.close();
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- }
- return out.toByteArray();
- }
-
- /**
- * Convert a byte array that was created using getBytes(FolderSyncInfo)
- * into a FolderSyncInfo
- */
- public static FolderSyncInfo getFolderSyncInfo(byte[] bytes) throws CVSException {
- ByteArrayInputStream in = new ByteArrayInputStream(bytes);
- DataInputStream dis = new DataInputStream(in);
- String root;
- String repository;
- CVSEntryLineTag tag;
- boolean isStatic;
- try {
- root = dis.readUTF();
- repository = dis.readUTF();
- String tagName = dis.readUTF();
- if (tagName.length() == 0) {
- tag = null;
- } else {
- tag = new CVSEntryLineTag(tagName);
- }
- isStatic = dis.readBoolean();
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- }
- return new FolderSyncInfo(repository, root, tag, isStatic);
- }
-
- /**
- * Return whether the local directory is mapped to an existing remote
- * directory or is just a local placeholder for child folders. a return type
- * of <code>true</code> indicates that the local folder is not mapped to a
- * remote folder.
- * @return whether the directory is a local placeholder
- */
- public boolean isVirtualDirectory() {
- return getRepository().equals(VIRTUAL_DIRECTORY);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/MutableFolderSyncInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/MutableFolderSyncInfo.java
deleted file mode 100644
index 9eadb57b7..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/MutableFolderSyncInfo.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.internal.ccvs.core.syncinfo;
-
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-
-/**
- * Mutable version of FolderSyncInfo. Can be used when either creating a
- * folder sync object from scratch or when modifying an existing
- * <code>FolderSyncInfo</code> instance. Example usage:
- * <pre>
- * FolderSyncInfo info = folder.getFolderSyncInfo();
- * if(info!=null) {
- * MutableFolderSyncInfo newInfo = info.cloneMutable();
- * newInfo.setTag(CVSTag.DEFAULT);
- * folder.setFolderSyncInfo(newInfo);
- * }
- * </pre>
- * @see FolderSyncInfo
- */
-public class MutableFolderSyncInfo extends FolderSyncInfo {
-
- /**
- * Constructor MutableFolderSyncInfo.
- * @param folderSyncInfo
- */
- public MutableFolderSyncInfo(FolderSyncInfo info) {
- this(info.getRepository(), info.getRoot(), info.getTag(), info.getIsStatic());
- }
-
- /**
- * Constructor for MutableFolderSyncInfo.
- * @param repo
- * @param root
- * @param tag
- * @param isStatic
- */
- public MutableFolderSyncInfo(String repo, String root, CVSTag tag, boolean isStatic) {
- super(repo, root, tag, isStatic);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo#setTag(org.eclipse.team.internal.ccvs.core.CVSTag)
- */
- public void setTag(CVSTag tag) {
- super.setTag(tag);
- }
- /**
- * Method setRepository.
- * @param string
- */
- public void setRepository(String repository) {
- this.repository = repository;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/MutableResourceSyncInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/MutableResourceSyncInfo.java
deleted file mode 100644
index caf694892..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/MutableResourceSyncInfo.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.syncinfo;
-
-import java.util.Date;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-/**
- * Mutable version of ResourceSyncInfo. Can be used when either creating a resource sync
- * object from scratch (e.g. without an entry line) or want to modify an existing
- * <code>ResourceSyncInfo</code> instance. Example usage:
- * <pre>
- * ResourceSyncInfo info = resource.getSyncInfo();
- * if(info!=null) {
- * MutableResourceSyncInfo newInfo = info.cloneMutable();
- * newInfo.setRevision("1.22");
- * resource.setSyncInfo(newInfo);
- * }
- * </pre>
- * @see ResourceSyncInfo
- */
-public class MutableResourceSyncInfo extends ResourceSyncInfo {
-
- boolean reported;
- boolean changed;
-
- protected MutableResourceSyncInfo(ResourceSyncInfo info) {
- this.name = info.getName();
- setRevision(info.getRevision());
- setTag(info.getTag());
- this.permissions = info.getPermissions();
- this.timeStamp = info.getTimeStamp();
- this.isDirectory = info.isDirectory();
- this.keywordMode = info.getKeywordMode();
- this.isDeleted = info.isDeleted();
- if(info.isMergedWithConflicts()) {
- setSyncType(TYPE_MERGED_WITH_CONFLICTS);
- } else if(info.isMerged()) {
- setSyncType(TYPE_MERGED);
- } else {
- setSyncType(TYPE_REGULAR);
- }
- }
-
- /**
- * Creates a default sync info, if revision is <code>null</code> then
- * the sync info will be considered in the newly added state.
- */
- public MutableResourceSyncInfo(String name, String revision) {
- Assert.isNotNull(name);
- this.name = name;
- setRevision(revision);
- this.reported = false;
- this.changed = false;
- }
-
- void setResourceInfoType(int type) {
- this.syncType = type;
- }
-
- /**
- * Sets the revision.
- * @param revision The revision to set
- */
- public void setRevision(String revision) {
- super.setRevision(revision);
- }
-
- /**
- * Sets the timeStamp.
- * @param timeStamp The timeStamp to set
- */
- public void setTimeStamp(Date timeStamp) {
- this.timeStamp = timeStamp;
- this.changed = true;
- }
-
- /**
- * Sets the timeStamp.
- * @param timeStamp The timeStamp to set
- */
- public void setTimeStamp(Date timeStamp, boolean clearMerged) {
- setTimeStamp(timeStamp);
- if (clearMerged) setSyncType(TYPE_REGULAR);
- }
-
- /**
- * Sets the keywordMode.
- * @param keywordMode The keywordMode to set
- */
- public void setKeywordMode(KSubstOption keywordMode) {
- this.keywordMode = keywordMode;
- this.changed = true;
- }
-
- /**
- * Sets the tag.
- * @param tag The tag to set
- */
- public void setTag(CVSTag tag) {
- super.setTag(tag);
- }
-
- /**
- * Sets the permissions.
- * @param permissions The permissions to set
- */
- public void setPermissions(String permissions) {
- this.permissions = permissions;
- }
-
- /**
- * Sets the deleted state.
- * @param isDeleted The deleted state of this resource sync
- */
- public void setDeleted(boolean isDeleted) {
- this.isDeleted = isDeleted;
- this.changed = true;
- }
-
- /**
- * Sets to the added state. The timestamp and other are cleared.
- */
- public void setAdded() {
- setRevision(ADDED_REVISION);
- this.changed = true;
- }
-
- /**
- * Sets that this resource sync is a result of a non-conflicting merge
- */
- public void setMerged() {
- // if already merged state then ignore
- if(syncType==TYPE_REGULAR) {
- this.syncType = TYPE_MERGED;
- this.changed = true;
- }
- }
-
- public boolean needsReporting() {
- return changed && !reported;
- }
-
- public void reported() {
- this.reported = true;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo#setEntryLine(java.lang.String)
- */
- public void setEntryLine(String entryLine) throws CVSException {
- super.setEntryLine(entryLine);
- this.changed = true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/NotifyInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/NotifyInfo.java
deleted file mode 100644
index 6d387579d..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/NotifyInfo.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.internal.ccvs.core.syncinfo;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.text.ParseException;
-import java.util.Date;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.util.CVSDateFormatter;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * This class contains the information required by the server for edit/unedit.
- */
-public class NotifyInfo {
-
- // constants for the notifiation type and watches
- public static final char EDIT = 'E';
- public static final char UNEDIT = 'U';
- public static final char COMMIT = 'C';
- public static final char[] ALL = new char[] {EDIT, UNEDIT, COMMIT};
-
- protected static final String TAB_SEPARATOR = "\t"; //$NON-NLS-1$
-
- private String filename;
- private char notificationType;
- private Date timeStamp;
- private char[] watches;
-
- /**
- * Constructor for setting all variables
- */
- public NotifyInfo(String filename, char notificationType, Date timeStamp, char[] watches) {
-
- this.filename = filename;
- this.notificationType = notificationType;
- this.timeStamp = timeStamp;
- this.watches = watches;
- }
-
- /**
- * Constructor for a line from the CVS/Notify file
- * @param line
- */
- public NotifyInfo(IContainer parent, String line) throws CVSException {
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(parent);
- String[] strings = Util.parseIntoSubstrings(line, ResourceSyncInfo.SEPARATOR);
- if(strings.length != 4) {
- throw new CVSException(Policy.bind("NotifyInfo.MalformedLine", line)); //$NON-NLS-1$
- }
- this.filename = strings[0];
-
- String type = strings[1];
- if (type.length() != 1) {
- throw new CVSException(Policy.bind("NotifyInfo.MalformedNotificationType", line)); //$NON-NLS-1$
- }
- this.notificationType = type.charAt(0);
-
- String date = strings[2];
- try {
- this.timeStamp = CVSDateFormatter.entryLineToDate(date);
- } catch(ParseException e) {
- throw new CVSException(Policy.bind("NotifyInfo.MalformedNotifyDate", line)); //$NON-NLS-1$
- }
-
- String watchesString = strings[3];
- if (watchesString.length() > 0) {
- this.watches = new char[watchesString.length()];
- for (int i = 0; i < watchesString.length(); i++) {
- watches[i] = watchesString.charAt(i);
- }
- } else {
- this.watches = null;
- }
- }
-
- /**
- * Answer a Sting formatted to be written to the CVS/Notify file.
- *
- * XXX NOTE: This is a guess at the local format. Need to obtain proper format
- *
- * @return String
- */
- public String getNotifyLine() {
- StringBuffer buffer = new StringBuffer();
- buffer.append(getName());
- buffer.append(ResourceSyncInfo.SEPARATOR);
- buffer.append(notificationType);
- buffer.append(ResourceSyncInfo.SEPARATOR);
- buffer.append(CVSDateFormatter.dateToEntryLine(timeStamp));
- buffer.append(ResourceSyncInfo.SEPARATOR);
- if (watches != null) {
- for (int i = 0; i < watches.length; i++) {
- char c = watches[i];
- buffer.append(c);
- }
- }
- return buffer.toString();
- }
-
- /**
- * Answer a Sting formatted to be sent to the server.
- *
- * @return String
- */
- public String getServerLine(ICVSFolder parent) throws CVSException {
- StringBuffer buffer = new StringBuffer();
- buffer.append(notificationType);
- buffer.append(TAB_SEPARATOR);
- buffer.append(getServerTimestamp());
- buffer.append(TAB_SEPARATOR);
- buffer.append(getHost());
- buffer.append(TAB_SEPARATOR);
- buffer.append(getWorkingDirectory(parent));
- buffer.append(TAB_SEPARATOR);
- if (watches != null) {
- for (int i = 0; i < watches.length; i++) {
- char c = watches[i];
- buffer.append(c);
- }
- }
- return buffer.toString();
- }
-
- /**
- * Answer the timestamp in GMT format.
- * @return String
- */
- private String getServerTimestamp() {
- return CVSDateFormatter.dateToNotifyServer(timeStamp);
- }
-
- /**
- * Answer the working directory for the receiver's file. The format
- * is NOT device dependant (i.e. /'s are used as the path separator).
- *
- * @return String
- */
- private String getWorkingDirectory(ICVSFolder parent) throws CVSException {
- return parent.getIResource().getLocation().toString();
- }
-
- /**
- * Answer the host name of the client machine.
- * @return String
- */
- private String getHost() throws CVSException {
- try {
- return InetAddress.getLocalHost().getHostName();
- } catch (UnknownHostException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * Answer the name of the file associated with the notification
- * @return String
- */
- public String getName() {
- return filename;
- }
-
- /**
- * Answer the notification type associated with the notification
- * @return char
- */
- public char getNotificationType() {
- return notificationType;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java
deleted file mode 100644
index fbae8d65e..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.syncinfo;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-
-/**
- * Provides a per-thread nested locking mechanism. A thread can acquire a
- * lock on a specific resource by calling acquire(). Subsequently, acquire() can be called
- * multiple times on the resource or any of its children from within the same thread
- * without blocking. Other threads that try
- * and acquire the lock on those same resources will be blocked until the first
- * thread releases all it's nested locks.
- * <p>
- * The locking is managed by the platform via scheduling rules. This class simply
- * provides the nesting mechnism in order to allow the client to determine when
- * the lock for the thread has been released. Therefore, this lock will block if
- * another thread already locks the same resource.</p>
- */
-public class ReentrantLock {
-
- private final static boolean DEBUG = Policy.DEBUG_THREADING;
-
- // This is a placeholder rule used to indicate that no scheduling rule is needed
- /* internal use only */ static final ISchedulingRule NULL_SCHEDULING_RULE= new ISchedulingRule() {
- public boolean contains(ISchedulingRule rule) {
- return false;
- }
- public boolean isConflicting(ISchedulingRule rule) {
- return false;
- }
- };
-
- public class ThreadInfo {
- private Set changedResources = new HashSet();
- private Set changedFolders = new HashSet();
- private IFlushOperation operation;
- private List rules = new ArrayList();
- public ThreadInfo(IFlushOperation operation) {
- this.operation = operation;
- }
- /**
- * Push a scheduling rule onto the stack for this thread and
- * acquire the rule if it is not the workspace root.
- * @param resource
- */
- public ISchedulingRule pushRule(ISchedulingRule resource, IProgressMonitor monitor) {
- // The scheduling rule is either the project or the resource's parent
- ISchedulingRule rule = getRuleForResoure(resource);
- if (rule != NULL_SCHEDULING_RULE) {
- try {
- Platform.getJobManager().beginRule(rule, monitor);
- } catch (RuntimeException e) {
- // The begin was cancelled (or some other problem occurred).
- // Free the scheduling rule and throw the cancel
- // so the clients of ReentrantLock don't need to
- // do an endRule when the operation is cancelled.
- Platform.getJobManager().endRule(rule);
- throw e;
- }
- }
- addRule(rule);
- return rule;
- }
- /**
- * Pop the scheduling rule from the stack and release it if it
- * is not the workspace root. Flush any changed sync info to
- * disk if necessary. A flush is necessary if the stack is empty
- * or if the top-most non-null scheduling rule was popped as a result
- * of this operation.
- * @param monitor
- * @throws CVSException
- */
- public void popRule(ISchedulingRule rule, IProgressMonitor monitor) throws CVSException {
- try {
- if (isFlushRequired()) {
- flush(monitor);
- }
- } finally {
- ISchedulingRule stackedRule = removeRule();
- if (rule == null) {
- rule = NULL_SCHEDULING_RULE;
- }
- Assert.isTrue(stackedRule.equals(rule), "end for resource '" + rule + "' does not match stacked rule '" + stackedRule + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- if (rule != NULL_SCHEDULING_RULE) {
- Platform.getJobManager().endRule(rule);
- }
- }
- }
- private ISchedulingRule getRuleForResoure(ISchedulingRule resourceRule) {
- ISchedulingRule rule;
- if (resourceRule instanceof IResource) {
- IResource resource = (IResource)resourceRule;
- if (resource.getType() == IResource.ROOT) {
- // Never lock the whole workspace
- rule = NULL_SCHEDULING_RULE;
- } else if (resource.getType() == IResource.PROJECT) {
- rule = resource;
- } else {
- rule = resource.getParent();
- }
- } else if (resourceRule instanceof MultiRule) {
- // Create a MultiRule for all projects from the given rule
- ISchedulingRule[] rules = ((MultiRule)resourceRule).getChildren();
- Set projects = new HashSet();
- for (int i = 0; i < rules.length; i++) {
- ISchedulingRule childRule = rules[i];
- if (childRule instanceof IResource) {
- projects.add(((IResource)childRule).getProject());
- }
- }
- if (projects.isEmpty()) {
- rule = NULL_SCHEDULING_RULE;
- } else if (projects.size() == 1) {
- rule = (ISchedulingRule)projects.iterator().next();
- } else {
- rule = new MultiRule((ISchedulingRule[]) projects.toArray(new ISchedulingRule[projects.size()]));
- }
- } else {
- // Rule is not associated with resources so ignore it
- rule = NULL_SCHEDULING_RULE;
- }
- return rule;
- }
- /**
- * Return <code>true</code> if we are still nested in
- * an acquire for this thread.
- *
- * @return
- */
- public boolean isNested() {
- return !rules.isEmpty();
- }
- public void addChangedResource(IResource resource) {
- changedResources.add(resource);
- }
- public void addChangedFolder(IContainer container) {
- changedFolders.add(container);
- }
- public boolean isEmpty() {
- return changedFolders.isEmpty() && changedResources.isEmpty();
- }
- public IResource[] getChangedResources() {
- return (IResource[]) changedResources.toArray(new IResource[changedResources.size()]);
- }
- public IContainer[] getChangedFolders() {
- return (IContainer[]) changedFolders.toArray(new IContainer[changedFolders.size()]);
- }
- public void flush(IProgressMonitor monitor) throws CVSException {
- try {
- operation.flush(this, monitor);
- } catch (OutOfMemoryError e) {
- throw e;
- } catch (Error e) {
- handleAbortedFlush(e);
- throw e;
- } catch (RuntimeException e) {
- handleAbortedFlush(e);
- throw e;
- } finally {
- // We have to clear the resources no matter what since the next attempt
- // to fluch may not have an appropriate scheduling rule
- changedResources.clear();
- changedFolders.clear();
- }
- }
- private boolean isFlushRequired() {
- return rules.size() == 1 || remainingRulesAreNull();
- }
- /*
- * Return true if all but the last rule in the stack is null
- */
- private boolean remainingRulesAreNull() {
- for (int i = 0; i < rules.size() - 1; i++) {
- ISchedulingRule rule = (ISchedulingRule) rules.get(i);
- if (rule != NULL_SCHEDULING_RULE) {
- return false;
- }
- }
- return true;
- }
- private void handleAbortedFlush(Throwable t) {
- CVSProviderPlugin.log(new CVSStatus(IStatus.ERROR, Policy.bind("ReentrantLock.9"), t)); //$NON-NLS-1$
- }
- private void addRule(ISchedulingRule rule) {
- rules.add(rule);
- }
- private ISchedulingRule removeRule() {
- return (ISchedulingRule)rules.remove(rules.size() - 1);
- }
- public boolean ruleContains(IResource resource) {
- for (Iterator iter = rules.iterator(); iter.hasNext();) {
- ISchedulingRule rule = (ISchedulingRule) iter.next();
- if (rule != NULL_SCHEDULING_RULE && rule.contains(resource)) {
- return true;
- }
- }
- return false;
- }
- }
-
- public interface IFlushOperation {
- public void flush(ThreadInfo info, IProgressMonitor monitor) throws CVSException;
- }
-
- private Map infos = new HashMap();
-
- private ThreadInfo getThreadInfo() {
- Thread thisThread = Thread.currentThread();
- synchronized (infos) {
- ThreadInfo info = (ThreadInfo)infos.get(thisThread);
- return info;
- }
- }
-
- private ThreadInfo getThreadInfo(IResource resource) {
- synchronized (infos) {
- for (Iterator iter = infos.values().iterator(); iter.hasNext();) {
- ThreadInfo info = (ThreadInfo) iter.next();
- if (info.ruleContains(resource)) {
- return info;
- }
- }
- return null;
- }
- }
-
- public ISchedulingRule acquire(ISchedulingRule resourceRule, IFlushOperation operation, IProgressMonitor monitor) {
- ThreadInfo info = getThreadInfo();
- boolean added = false;
- synchronized (infos) {
- if (info == null) {
- info = new ThreadInfo(operation);
- Thread thisThread = Thread.currentThread();
- infos.put(thisThread, info);
- added = true;
- if(DEBUG) System.out.println("[" + thisThread.getName() + "] acquired CVS lock on " + resourceRule); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- try {
- return info.pushRule(resourceRule, monitor);
- } catch (OperationCanceledException e) {
- // The operation was cancelled.
- // If this is the outermost acquire then remove the info that was just added
- if (added) {
- synchronized (infos) {
- infos.remove(Thread.currentThread());
- }
- }
- throw e;
- }
- }
-
- /**
- * Release the lock held on any resources by this thread. The provided rule must
- * be identical to the rule returned by the corresponding acquire(). If the rule
- * for the release is non-null and all remaining rules held by the lock are null,
- * the the flush operation provided in the acquire method will be executed.
- */
- public void release(ISchedulingRule rule, IProgressMonitor monitor) throws CVSException {
- ThreadInfo info = getThreadInfo();
- Assert.isNotNull(info, "Unmatched acquire/release."); //$NON-NLS-1$
- Assert.isTrue(info.isNested(), "Unmatched acquire/release."); //$NON-NLS-1$
- info.popRule(rule, monitor);
- synchronized (infos) {
- if (!info.isNested()) {
- Thread thisThread = Thread.currentThread();
- if(DEBUG) System.out.println("[" + thisThread.getName() + "] released CVS lock"); //$NON-NLS-1$ //$NON-NLS-2$
- infos.remove(thisThread);
- }
- }
- }
-
- public void folderChanged(IContainer folder) {
- ThreadInfo info = getThreadInfo();
- Assert.isNotNull(info, "Folder changed outside of resource lock"); //$NON-NLS-1$
- info.addChangedFolder(folder);
- }
-
- public void resourceChanged(IResource resource) {
- ThreadInfo info = getThreadInfo();
- Assert.isNotNull(info, "Folder changed outside of resource lock"); //$NON-NLS-1$
- info.addChangedResource(resource);
- }
-
- /**
- * Flush any changes accumulated by the lock so far.
- */
- public void flush(IProgressMonitor monitor) throws CVSException {
- ThreadInfo info = getThreadInfo();
- Assert.isNotNull(info, "Flush requested outside of resource lock"); //$NON-NLS-1$
- info.flush(monitor);
- }
-
- public boolean isWithinActiveOperationScope(IResource resource) {
- synchronized (infos) {
- return getThreadInfo(resource) != null;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ResourceSyncInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ResourceSyncInfo.java
deleted file mode 100644
index e25608d96..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ResourceSyncInfo.java
+++ /dev/null
@@ -1,951 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.syncinfo;
-
-
-import java.text.ParseException;
-import java.util.Date;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSEntryLineTag;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.core.util.CVSDateFormatter;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-
-/**
- * Value (immutable) object that represents workspace state information about a resource contained in
- * a CVS repository. It is a specialized representation of a line in the CVS/Entry file with the addition of
- * file permissions.
- * <p>
- * ResourceSyncInfo instances are created from entry lines from the CVS server and from the CVS/Entries
- * file. Although both entry lines have slightly different formats (e.g. timestamps) they can safely be passed
- * to the constructor.</p>
- * <p>
- * A class named <code>MutableResourceSyncInfo</code> can be used to modify an existing resource
- * sync or create sync info without an entry line.</p>
- *
- * Example entry line from the CVS/Entry file:
- *
- * /new.java/1.2/Fri Dec 7 00:17:52 2001/-kb/
- * D/src////
- *
- * @see MutableResourceSyncInfo
- * @see ICVSResource#getSyncInfo()
- */
-public class ResourceSyncInfo {
-
- // [Note: permissions aren't honoured in this current implementation]
- // safe default permissions. Permissions are saved separately so that the correct permissions
- // can be sent back to the server on systems that don't save execute bits (e.g. windows).
- private static final String DEFAULT_PERMISSIONS = "u=rw,g=rw,o=r"; //$NON-NLS-1$
-
- // file sync information can be associated with a local resource that has been deleted. This is
- // noted by prefixing the revision with this character.
- private static final String DELETED_PREFIX = "-"; //$NON-NLS-1$
- private static final byte DELETED_PREFIX_BYTE = '-';
-
- // a sync element with a revision of '0' is considered a new file that has
- // not been comitted to the repo. Is visible so that clients can create sync infos
- // for new files.
- public static final String ADDED_REVISION = "0"; //$NON-NLS-1$
-
- // Timestamp constants used to identify special cases
- protected static final int TYPE_REGULAR = 1;
- protected static final int TYPE_MERGED = 2;
- protected static final int TYPE_MERGED_WITH_CONFLICTS = 3;
-
- protected static final String TIMESTAMP_DUMMY = "dummy timestamp"; //$NON-NLS-1$
- protected static final String TIMESTAMP_MERGED = "Result of merge"; //$NON-NLS-1$
- protected static final String TIMESTAMP_MERGED_WITH_CONFLICT = TIMESTAMP_MERGED + "+"; //$NON-NLS-1$
-
- protected static final String TIMESTAMP_SERVER_MERGED = "+modified"; //$NON-NLS-1$
- protected static final String TIMESTAMP_SERVER_MERGED_WITH_CONFLICT = "+="; //$NON-NLS-1$
-
- // a directory sync info will have nothing more than a name
- protected boolean isDirectory = false;
- protected boolean isDeleted = false;
-
- // utility constants
- protected static final String DIRECTORY_PREFIX = "D"; //$NON-NLS-1$
- protected static final String SEPARATOR = "/"; //$NON-NLS-1$
- protected static final byte SEPARATOR_BYTE = (byte)'/';
-
- // fields describing the synchronization of a resource in CVS parlance
- protected String name;
- protected String revision;
- protected Date timeStamp;
- protected KSubstOption keywordMode;
- protected CVSEntryLineTag tag;
- protected String permissions;
-
- // type of sync
- protected int syncType = TYPE_REGULAR;
- protected ResourceSyncInfo() {
- // Added for use by subclasses
- }
-
- public ResourceSyncInfo(byte[] entryLine) throws CVSException {
- this(new String(entryLine), null, null);
- }
-
- /**
- * Constructor to create a sync object from entry line formats. The entry lines are parsed by this class.
- * The constructor can handle parsing entry lines from the server or from an entry file.
- *
- * @param entryLine the entry line (e.g. /new.java/1.2/Fri Dec 07 00:17:52 2001/-kb/)
- * @param permissions the file permission (e.g. u=rw,g=rw,o=r). May be <code>null</code>.
- * @param timestamp if not included in the entry line. May be <code>null</code>.
- *
- * @exception CVSException is thrown if the entry cannot be parsed.
- */
- public ResourceSyncInfo(String entryLine, String permissions, Date timestamp) throws CVSException {
- Assert.isNotNull(entryLine);
- setEntryLine(entryLine);
-
- if (permissions != null) {
- this.permissions = permissions;
- }
- // override the timestamp that may of been in entryLine. In some cases the timestamp is not in the
- // entry line (e.g. receiving entry lines from the server versus reading them from the Entry file).
- if(timestamp!=null) {
- this.timeStamp = timestamp;
- }
- }
-
- /**
- * Constructor to create a resource sync object for a folder.
- *
- * @param name of the resource for which this sync state is associatied, cannot be <code>null</code>.
- */
- public ResourceSyncInfo(String name) {
- Assert.isNotNull(name);
- this.name = name;
- this.isDirectory = true;
- }
- /**
- * Answers if this sync information is for a folder in which case only a name is
- * available.
- *
- * @return <code>true</code> if the sync information is for a folder and <code>false</code>
- * if it is for a file.
- */
- public boolean isDirectory() {
- return isDirectory;
- }
-
- /**
- * Answers if this sync information is for a resource that has been merged by the cvs server with
- * conflicts and has not been modified yet relative to the given timestamp.
- *
- * @param otherTimestamp is the timestamp of the file associated with this resource sync
- * @return <code>true</code> if the sync information is for a file that has been merged and
- * <code>false</code> for folders and for files that have not been merged.
- */
- public boolean isNeedsMerge(Date otherTimestamp) {
- return syncType == TYPE_MERGED_WITH_CONFLICTS && timeStamp.equals(otherTimestamp);
- }
-
- /**
- * Answers if this sync information is for a resource that has been merged with conflicts by the
- * cvs server.
- *
- * @return <code>true</code> if the sync information is for a file that has been merged and
- * <code>false</code> for folders and for files that have not been merged.
- */
- public boolean isMergedWithConflicts() {
- return syncType == TYPE_MERGED_WITH_CONFLICTS;
- }
-
- /**
- * Answers if this sync information is for a resource that has been merged by the cvs server.
- *
- * @return <code>true</code> if the sync information is for a file that has been merged and
- * <code>false</code> for folders and for files that have not been merged.
- */
- public boolean isMerged() {
- return syncType == TYPE_MERGED || isMergedWithConflicts();
- }
-
- /**
- * Answers if this sync information is for a file that has been added but not comitted
- * to the CVS repository yet.
- *
- * @return <code>true</code> if the sync information is new or <code>false</code> if
- * the sync is for an file that exists remotely. For folder sync info this returns
- * <code>false</code>.
- */
- public boolean isAdded() {
- if(!isDirectory) {
- return getRevision().equals(ADDED_REVISION);
- } else {
- return false;
- }
- }
-
- /**
- * Answers if this sync information is for a file that is scheduled to be deleted
- * from the repository but the deletion has not yet been comitted.
- *
- * @return <code>true</code> if the sync information is deleted or <code>false</code> if
- * the sync is for an file that exists remotely.
- */
- public boolean isDeleted() {
- return isDeleted;
- }
-
- /**
- * Returns an entry line that can be saved in the CVS/Entries file. For sending entry lines to the
- * server use <code>getServerEntryLine</code>.
- *
- * @return a file or folder entry line reflecting the state of this sync object.
- */
- public String getEntryLine() {
- return getEntryLine(true /*include timestamps*/, null /*no timestamp override*/);
- }
-
- /**
- * Same as <code>getEntryLine</code> except it considers merged files in entry line timestamp format.
- * This is only valid for sending the file to the server.
- *
- * @param fileTimestamp is timestamp of the resource associated with this sync info.
- * @return a file or folder entry line reflecting the state of this sync object.
- */
- public String getServerEntryLine(Date fileTimestamp) {
- String serverTimestamp;
- if(fileTimestamp != null && (isMerged() || isMergedWithConflicts())) {
- if(isNeedsMerge(fileTimestamp)) {
- serverTimestamp = TIMESTAMP_SERVER_MERGED_WITH_CONFLICT;
- } else {
- serverTimestamp = TIMESTAMP_SERVER_MERGED;
- }
- return getEntryLine(true, serverTimestamp);
- } else {
- return getEntryLine(false, null);
- }
- }
-
- /**
- * Anwsers a compatible permissions line for files.
- *
- * @return a permission line for files and <code>null</code> if this sync object is
- * a directory.
- */
- public String getPermissionLine() {
- if(isDirectory) {
- return null;
- } else {
- String permissions = this.permissions;
- if (permissions == null)
- permissions = DEFAULT_PERMISSIONS;
- return SEPARATOR + name + SEPARATOR + permissions;
- }
- }
-
- /**
- * Gets the permissions. Returns <code>null</code> for directories and
- * a non-null permission for files.
- *
- * @return a string of the format "u=rw,g=rw,o=r"
- */
- public String getPermissions() {
- if(isDirectory) {
- return null;
- } else {
- if(permissions==null) {
- return DEFAULT_PERMISSIONS;
- } else {
- return permissions;
- }
- }
- }
- /**
- * Gets the tag or <code>null</code> if a tag is not available.
- *
- * @return Returns a String
- */
- public CVSTag getTag() {
- return tag;
- }
- /**
- * Gets the timeStamp or <code>null</code> if a timestamp is not available.
- *
- * @return a date instance representing the timestamp
- */
- public Date getTimeStamp() {
- return timeStamp;
- }
- /**
- * Gets the version or <code>null</code> if this is a folder sync info. The returned
- * revision will never include the DELETED_PREFIX. To found out if this sync info is
- * for a deleted resource call isDeleted().
- *
- * @return Returns a String
- */
- public String getRevision() {
- return revision;
- }
-
- /**
- * Gets the name.
- *
- * @return Returns a String
- */
- public String getName() {
- return name;
- }
- /**
- * Gets the keyword mode.
- * @return the keyword substitution option
- */
- public KSubstOption getKeywordMode() {
- return keywordMode;
- }
-
- /**
- * Answers the default permissions string.
- */
- public static String getDefaultPermissions() {
- return DEFAULT_PERMISSIONS;
- }
-
- /**
- * Name equality between resource sync info objects.
- */
- public boolean equals(Object other) {
- if(other instanceof ResourceSyncInfo) {
- ResourceSyncInfo syncInfo = ((ResourceSyncInfo)other);
- if(other == this) return true;
- if(getName() == syncInfo.getName()) return true;
- return getName().equals(syncInfo.getName());
- } else {
- return false;
- }
- }
-
- public int hashCode() {
- return getName().hashCode();
- }
-
- /*
- * @see Object#toString()
- */
- public String toString() {
- return getEntryLine(true, null /*no timestamp override*/);
- }
- public MutableResourceSyncInfo cloneMutable() {
- MutableResourceSyncInfo newSync = new MutableResourceSyncInfo(this);
- return newSync;
- }
- /**
- * Sets the tag for the resource.
- */
- protected void setTag(CVSTag tag) {
- if(tag!=null) {
- this.tag = new CVSEntryLineTag(tag);
- } else {
- this.tag = null;
- }
- }
-
-
- /*
- * Sets the sync type
- */
- protected void setSyncType(int syncType) {
- this.syncType = syncType;
- }
- /**
- * Sets the version and decides if the revision is for a deleted resource the revision field
- * will not include the deleted prefix '-'.
- *
- * @param version the version to set
- */
- protected void setRevision(String revision) {
- if(revision==null || revision.equals(ADDED_REVISION)) {
- this.revision = ADDED_REVISION;
- timeStamp = null;
- syncType = TYPE_REGULAR;
- isDeleted = false;
- } else if(revision.startsWith(DELETED_PREFIX)) {
- this.revision = revision.substring(DELETED_PREFIX.length());
- isDeleted = true;
- } else {
- this.revision = revision;
- isDeleted = false;
- }
- }
-
- /**
- * Set the entry line
- *
- * @throws CVSException if the entryLine is malformed
- */
- protected void setEntryLine(String entryLine) throws CVSException {
-
- String[] strings = Util.parseIntoSubstrings(entryLine, SEPARATOR);
- if(strings.length < 6) {
- throw new CVSException(Policy.bind("Malformed_entry_line___11") + entryLine); //$NON-NLS-1$
- }
-
- isDirectory = (strings[0].equals(DIRECTORY_PREFIX));
-
- name = strings[1];
-
- if(name.length()==0) {
- throw new CVSException(Policy.bind("Malformed_entry_line,_missing_name___12") + entryLine); //$NON-NLS-1$
- }
-
- String rev = strings[2];
-
- if(rev.length()==0 && !isDirectory()) {
- throw new CVSException(Policy.bind("Malformed_entry_line,_missing_revision___13") + entryLine); //$NON-NLS-1$
- } else {
- setRevision(rev);
- }
-
- String date = strings[3];
-
- // possible timestamps are:
- // from server: "+=" and "+modified"
- // from entry line: "Result of Merge+Thu May 25 12:33:33 2002"
- // "Result of Merge"
- // "Thu May 25 12:33:33 2002"
- //
- // The server will send a timestamp of "+=" if
- // the file was merged with conflicts. The '+' indicates that there are conflicts and the
- // '=' indicate that the timestamp for the file should be used. If the merge does not
- // have conflicts, simply add a text only timestamp and the file will be regarded as
- // having outgoing changes.
- // The purpose for having the two different timestamp options for merges is to
- // dissallow commit of files that have conflicts until they have been manually edited.
- if(date.indexOf(ResourceSyncInfo.TIMESTAMP_SERVER_MERGED) != -1) {
- syncType = TYPE_MERGED;
- date = null;
- } else if(date.indexOf(ResourceSyncInfo.TIMESTAMP_SERVER_MERGED_WITH_CONFLICT) != -1) {
- syncType = TYPE_MERGED_WITH_CONFLICTS;
- date = null;
- } else if(date.indexOf(TIMESTAMP_MERGED_WITH_CONFLICT)!=-1) {
- date = date.substring(date.indexOf("+") + 1); //$NON-NLS-1$
- syncType = TYPE_MERGED_WITH_CONFLICTS;
- } else if(date.indexOf(TIMESTAMP_MERGED)!=-1) {
- syncType = TYPE_MERGED;
- date = null;
- }
-
- if(date==null || "".equals(date)) { //$NON-NLS-1$
- timeStamp = null;
- } else {
- try {
- timeStamp = CVSDateFormatter.entryLineToDate(date);
- } catch(ParseException e) {
- // something we don't understand, just make this sync have no timestamp and
- // never be in sync with the server.
- timeStamp = null;
- }
- }
- keywordMode = KSubstOption.fromMode(strings[4]);
- String tagEntry;
- if (strings.length == 6) {
- tagEntry = strings[5];
- } else {
- // It turns out that CVS supports slashes (/) in the tag even though this breaks the spec
- // See http://dev.eclipse.org/bugs/show_bug.cgi?id=26717
- StringBuffer buffer = new StringBuffer();
- for (int i = 5; i < strings.length; i++) {
- buffer.append(strings[i]);
- if (i < strings.length - 1) {
- buffer.append(SEPARATOR);
- }
- }
- tagEntry = buffer.toString();
- }
-
- if(tagEntry.length()>0) {
- tag = new CVSEntryLineTag(tagEntry);
- } else {
- tag = null;
- }
- }
-
- private String getEntryLine(boolean includeTimeStamp, String timestampOverride) {
- StringBuffer result = new StringBuffer();
-
- if(isDirectory) {
- result.append(DIRECTORY_PREFIX);
- result.append(SEPARATOR);
- result.append(name);
- for (int i = 0; i < 4; i++) {
- result.append(SEPARATOR);
- }
- } else {
- result.append(SEPARATOR);
- result.append(name);
- result.append(SEPARATOR);
-
- if(isDeleted){
- result.append(DELETED_PREFIX);
- }
- result.append(revision);
- result.append(SEPARATOR);
- if(includeTimeStamp) {
- String entryLineTimestamp = ""; //$NON-NLS-1$
- if(timestampOverride!=null) {
- entryLineTimestamp = timestampOverride;
- } else {
- switch(syncType) {
- case TYPE_REGULAR:
- if(timeStamp==null) {
- entryLineTimestamp = TIMESTAMP_DUMMY;
- } else {
- entryLineTimestamp = CVSDateFormatter.dateToEntryLine(timeStamp);
- } break;
- case TYPE_MERGED:
- entryLineTimestamp = TIMESTAMP_MERGED; break;
- case TYPE_MERGED_WITH_CONFLICTS:
- entryLineTimestamp = TIMESTAMP_MERGED_WITH_CONFLICT + CVSDateFormatter.dateToEntryLine(timeStamp); break;
- }
- }
- result.append(entryLineTimestamp);
- }
- result.append(SEPARATOR);
- if (keywordMode != null) result.append(keywordMode.toMode());
- result.append(SEPARATOR);
- if (tag != null) {
- result.append(tag.toEntryLineFormat(true));
- }
- }
- return result.toString();
- }
-
- public boolean needsReporting() {
- return false;
- }
-
- public void reported() {
- // do nothing
- }
-
- /**
- * Method getBytes.
- * @return byte[]
- */
- public byte[] getBytes() {
- return getEntryLine().getBytes();
- }
-
- /**
- * Method getName.
- * @param syncBytes
- * @return String
- */
- public static String getName(byte[] syncBytes) throws CVSException {
- String name = Util.getSubstring(syncBytes, SEPARATOR_BYTE, 1, false);
- if (name == null) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- return name;
- }
-
- /**
- * Method getKeywordMode.
- * @param syncBytes
- * @return String
- */
- public static KSubstOption getKeywordMode(byte[] syncBytes) throws CVSException {
- String mode = Util.getSubstring(syncBytes, SEPARATOR_BYTE, 4, false);
- if (mode == null) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- return KSubstOption.fromMode(mode);
- }
-
- /**
- * Method getKeywordMode.
- * @param syncBytes
- * @return String
- */
- public static byte[] setKeywordMode(byte[] syncBytes, KSubstOption mode) throws CVSException {
- return setKeywordMode(syncBytes, mode.toMode().getBytes());
- }
-
- /**
- * Method getKeywordMode.
- * @param syncBytes
- * @return String
- */
- public static byte[] setKeywordMode(byte[] syncBytes, byte[] modeBytes) throws CVSException {
- return setSlot(syncBytes, 4, modeBytes);
- }
-
- /**
- * Return whether the provided syncBytes represent a binary file.
- * @param syncBytes
- * @return boolean
- * @throws CVSException
- */
- public static boolean isBinary(byte[] syncBytes) throws CVSException {
- if (syncBytes == null) return false;
- String mode = Util.getSubstring(syncBytes, SEPARATOR_BYTE, 4, false);
- if (mode == null) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- return "-kb".equals(mode); //$NON-NLS-1$
- }
-
- /**
- * Method isFolder.
- * @param syncBytes
- * @return boolean
- */
- public static boolean isFolder(byte[] syncBytes) {
- return syncBytes.length > 0 && syncBytes[0] == 'D';
- }
-
- /**
- * Method isAddition.
- * @param syncBytes
- * @return boolean
- */
- public static boolean isAddition(byte[] syncBytes) throws CVSException {
- int start = startOfSlot(syncBytes, 2);
- if (start == -1 || start >= syncBytes.length) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- return syncBytes[start + 1] == '0';
- }
-
- /**
- * Method isDeleted.
- * @param syncBytes
- * @return boolean
- */
- public static boolean isDeletion(byte[] syncBytes) throws CVSException {
- int start = startOfSlot(syncBytes, 2);
- if (start == -1 || start >= syncBytes.length) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- return syncBytes[start + 1] == DELETED_PREFIX_BYTE;
- }
-
- /**
- * Method convertToDeletion.
- * @param syncBytes
- * @return byte[]
- */
- public static byte[] convertToDeletion(byte[] syncBytes) throws CVSException {
- int index = startOfSlot(syncBytes, 2);
- if (index == -1) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- if (syncBytes.length > index && syncBytes[index+1] != DELETED_PREFIX_BYTE) {
- byte[] newSyncBytes = new byte[syncBytes.length + 1];
- System.arraycopy(syncBytes, 0, newSyncBytes, 0, index + 1);
- newSyncBytes[index + 1] = DELETED_PREFIX_BYTE;
- System.arraycopy(syncBytes, index + 1, newSyncBytes, index + 2, syncBytes.length - index - 1);
- return newSyncBytes;
- }
- return syncBytes;
- }
-
- /**
- * Method convertFromDeletion.
- * @param syncBytes
- * @return byte[]
- */
- public static byte[] convertFromDeletion(byte[] syncBytes) throws CVSException {
- int index = startOfSlot(syncBytes, 2);
- if (index == -1) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- if (syncBytes.length > index && syncBytes[index+1] == DELETED_PREFIX_BYTE) {
- byte[] newSyncBytes = new byte[syncBytes.length - 1];
- System.arraycopy(syncBytes, 0, newSyncBytes, 0, index + 1);
- System.arraycopy(syncBytes, index + 2, newSyncBytes, index + 1, newSyncBytes.length - index - 1);
- return newSyncBytes;
- }
- return syncBytes;
- }
- /**
- * Method startOfSlot returns the index of the slash that occurs before the
- * given slot index. The provided index should be >= 1 which assumes that
- * slot zero occurs before the first slash.
- *
- * @param syncBytes
- * @param i
- * @return int
- */
- private static int startOfSlot(byte[] syncBytes, int slot) {
- int count = 0;
- for (int j = 0; j < syncBytes.length; j++) {
- if (syncBytes[j] == SEPARATOR_BYTE) {
- count++;
- if (count == slot) return j;
- }
- }
- return -1;
- }
-
- /**
- * Method setSlot.
- * @param syncBytes
- * @param i
- * @param b
- * @return byte[]
- */
- private static byte[] setSlot(byte[] syncBytes, int slot, byte[] newBytes) throws CVSException {
- int start = startOfSlot(syncBytes, slot);
- if (start == -1) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- int end = startOfSlot(syncBytes, slot + 1);
- int totalLength = start + 1 + newBytes.length;
- if (end != -1) {
- totalLength += syncBytes.length - end;
- }
- byte[] result = new byte[totalLength];
- System.arraycopy(syncBytes, 0, result, 0, start + 1);
- System.arraycopy(newBytes, 0, result, start + 1, newBytes.length);
- if (end != -1) {
- System.arraycopy(syncBytes, end, result, start + 1 + newBytes.length, syncBytes.length - end);
- }
- return result;
- }
-
- /**
- * Return the timestamp portion of the sync info that is to be sent to the
- * server.
- *
- * @param syncBytes
- * @param fileTimestamp
- * @return String
- */
- public static String getTimestampToServer(byte[] syncBytes, Date fileTimestamp) throws CVSException {
- if(fileTimestamp != null) {
- String syncTimestamp = Util.getSubstring(syncBytes, SEPARATOR_BYTE, 3, false);
- if (syncTimestamp == null) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- int syncType = getSyncType(syncTimestamp);
- if (syncType != TYPE_REGULAR) {
- if (syncType == TYPE_MERGED_WITH_CONFLICTS && fileTimestamp.equals(getTimestamp(syncTimestamp))) {
- return TIMESTAMP_SERVER_MERGED_WITH_CONFLICT;
- } else {
- return TIMESTAMP_SERVER_MERGED;
- }
- }
- }
- return null;
- }
- /**
- * Method getTimestamp.
- * @param syncTimestamp
- * @return Object
- */
- private static Date getTimestamp(String syncTimestamp) {
- String dateString= syncTimestamp;
- if(syncTimestamp.indexOf(ResourceSyncInfo.TIMESTAMP_SERVER_MERGED) != -1) {
- dateString = null;
- } else if(syncTimestamp.indexOf(ResourceSyncInfo.TIMESTAMP_SERVER_MERGED_WITH_CONFLICT) != -1) {
- dateString = null;
- } else if(syncTimestamp.indexOf(TIMESTAMP_MERGED_WITH_CONFLICT)!=-1) {
- dateString = syncTimestamp.substring(syncTimestamp.indexOf("+") + 1); //$NON-NLS-1$
- } else if(syncTimestamp.indexOf(TIMESTAMP_MERGED)!=-1) {
- dateString = null;
- }
-
- if(dateString==null || "".equals(dateString)) { //$NON-NLS-1$
- return null;
- } else {
- try {
- return CVSDateFormatter.entryLineToDate(dateString);
- } catch(ParseException e) {
- // something we don't understand, just make this sync have no timestamp and
- // never be in sync with the server.
- return null;
- }
- }
- }
-
- /**
- * Method getSyncType.
- * @param syncTimestamp
- * @return int
- */
- private static int getSyncType(String date) {
- if(date.indexOf(ResourceSyncInfo.TIMESTAMP_SERVER_MERGED) != -1) {
- return TYPE_MERGED;
- } else if(date.indexOf(ResourceSyncInfo.TIMESTAMP_SERVER_MERGED_WITH_CONFLICT) != -1) {
- return TYPE_MERGED_WITH_CONFLICTS;
- } else if(date.indexOf(TIMESTAMP_MERGED_WITH_CONFLICT)!=-1) {
- return TYPE_MERGED_WITH_CONFLICTS;
- } else if(date.indexOf(TIMESTAMP_MERGED)!=-1) {
- return TYPE_MERGED;
- }
- return TYPE_REGULAR;
- }
-
- /**
- * Method getTag.
- * @param syncBytes
- * @return String
- */
- public static byte[] getTagBytes(byte[] syncBytes) throws CVSException {
- byte[] tag = Util.getBytesForSlot(syncBytes, SEPARATOR_BYTE, 5, true);
- if (tag == null) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- return tag;
- }
-
- /**
- * Method setTag.
- * @param syncBytes
- * @param tagString
- * @return byte[]
- */
- public static byte[] setTag(byte[] syncBytes, byte[] tagBytes) throws CVSException {
- return setSlot(syncBytes, 5, tagBytes);
- }
-
- /**
- * Method setTag.
- * @param syncBytes
- * @param tag
- * @return ResourceSyncInfo
- */
- public static byte[] setTag(byte[] syncBytes, CVSTag tag) throws CVSException {
- CVSEntryLineTag entryTag;
- if (tag instanceof CVSEntryLineTag) {
- entryTag = (CVSEntryLineTag)tag;
- } else {
- entryTag = new CVSEntryLineTag(tag);
- }
- return setTag(syncBytes, entryTag.toEntryLineFormat(true).getBytes());
- }
-
- /**
- * Method getRevision.
- * @param syncBytes
- */
- public static String getRevision(byte[] syncBytes) throws CVSException {
- String revision = Util.getSubstring(syncBytes, SEPARATOR_BYTE, 2, false);
- if (revision == null) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- if(revision.startsWith(DELETED_PREFIX)) {
- revision = revision.substring(DELETED_PREFIX.length());
- }
- return revision;
- }
-
- /**
- * Method setRevision.
- * @param syncBytes
- * @param revision
- * @return byte[]
- */
- public static byte[] setRevision(byte[] syncBytes, String revision) throws CVSException {
- return setSlot(syncBytes, 2, revision.getBytes());
- }
-
- /**
- * Method isMerge.
- * @param syncBytes1
- * @return boolean
- */
- public static boolean isMerge(byte[] syncBytes) throws CVSException {
- String timestamp = Util.getSubstring(syncBytes, SEPARATOR_BYTE, 3, false);
- if (timestamp == null) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- int syncType = getSyncType(timestamp);
- return syncType == TYPE_MERGED || syncType == TYPE_MERGED_WITH_CONFLICTS;
- }
-
- /**
- * Method isMerge.
- * @param syncBytes1
- * @return boolean
- */
- public static boolean isMergedWithConflicts(byte[] syncBytes) throws CVSException {
- String timestamp = Util.getSubstring(syncBytes, SEPARATOR_BYTE, 3, false);
- if (timestamp == null) {
- throw new CVSException(Policy.bind("ResourceSyncInfo.malformedSyncBytes", new String(syncBytes))); //$NON-NLS-1$
- }
- int syncType = getSyncType(timestamp);
- return syncType == TYPE_MERGED_WITH_CONFLICTS;
- }
-
-
- /**
- * Return <code>true</code> if the remoteBytes represents a later revision on the same
- * branch as localBytes. Return <code>false</code> if remoteBytes is the same or an earlier
- * revision or if the bytes are on a separate branch (or tag)
- * @param remoteBytes
- * @param localBytes
- * @return
- */
- public static boolean isLaterRevisionOnSameBranch(byte[] remoteBytes, byte[] localBytes) throws CVSException {
- // If the two byte arrays are the same, then the remote isn't a later revision
- if (remoteBytes == localBytes) return false;
- // If the tags differ, then the remote isn't a later revision
- byte[] remoteTag = ResourceSyncInfo.getTagBytes(remoteBytes);
- byte[] localTag = ResourceSyncInfo.getTagBytes(localBytes);
- if (!Util.equals(remoteTag, localTag)) return false;
- // If the revisions are the same, the remote isn't later
- String remoteRevision = ResourceSyncInfo.getRevision(remoteBytes);
- String localRevision = ResourceSyncInfo.getRevision(localBytes);
- if (remoteRevision.equals(localRevision)) return false;
- return isLaterRevision(remoteRevision, localRevision);
- }
-
- /**
- * Return true if the remoteRevision represents a later revision than the local revision
- * on the same branch.
- * @param remoteRevision
- * @param localRevision
- * @return
- */
- public static boolean isLaterRevision(String remoteRevision, String localRevision) {
- int localDigits[] = Util.convertToDigits(localRevision);
- if (localDigits.length == 0) return false;
- int remoteDigits[] = Util.convertToDigits(remoteRevision);
- if (remoteDigits.length == 0) return false;
-
- if (localRevision.equals(ADDED_REVISION)) {
- return (remoteDigits.length >= 2);
- }
- if (localDigits.length < remoteDigits.length) {
- // If there are more digits in the remote revision then all
- // the leading digits must match
- for (int i = 0; i < localDigits.length; i++) {
- int localDigit = localDigits[i];
- int remoteDigit = remoteDigits[i];
- if (remoteDigit != localDigit) return false;
- }
- return true;
- }
- // They are the same length or the local is longer.
- // The last digit must differ and all others must be the same.
- // If the local is longer, ignore the addition numbers
- // (this can occur as the result on an import)
- for (int i = 0; i < remoteDigits.length - 1; i++) {
- int localDigit = localDigits[i];
- int remoteDigit = remoteDigits[i];
- if (remoteDigit != localDigit) return false;
- }
- // All the leading digits are equals so the remote is later if the last digit is greater
- return localDigits[remoteDigits.length - 1] < remoteDigits[remoteDigits.length - 1] ;
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Assert.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Assert.java
deleted file mode 100644
index f24cb6720..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Assert.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.util;
-
-
-/**
- * <code>Assert</code> is useful for for embedding runtime sanity checks
- * in code.
- * The predicate methods all test a condition and throw some
- * type of unchecked exception if the condition does not hold.
- * <p>
- * Assertion failure exceptions, like most runtime exceptions, are
- * thrown when something is misbehaving. Assertion failures are invariably
- * unspecified behavior; consequently, clients should never rely on
- * these being thrown (and certainly should not being catching them
- * specifically).
- * </p>
- */
-public final class Assert {
- /* This class is not intended to be instantiated. */
- private Assert() {
- }
- /** Asserts that an argument is legal. If the given boolean is
- * not <code>true</code>, an <code>IllegalArgumentException</code>
- * is thrown.
- *
- * @param expression the outcode of the check
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- * @exception IllegalArgumentException if the legality test failed
- */
- public static boolean isLegal(boolean expression) {
- return isLegal(expression, ""); //$NON-NLS-1$
- }
- /** Asserts that an argument is legal. If the given boolean is
- * not <code>true</code>, an <code>IllegalArgumentException</code>
- * is thrown.
- * The given message is included in that exception, to aid debugging.
- *
- * @param expression the outcode of the check
- * @param message the message to include in the exception
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- * @exception IllegalArgumentException if the legality test failed
- */
- public static boolean isLegal(boolean expression, String message) {
- if (!expression)
- throw new IllegalArgumentException(message);
- return expression;
- }
- /** Asserts that the given object is not <code>null</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- *
- * @param object the value to test
- * @exception IllegalArgumentException if the object is <code>null</code>
- */
- public static void isNotNull(Object object) {
- isNotNull(object, ""); //$NON-NLS-1$
- }
- /** Asserts that the given object is not <code>null</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- * The given message is included in that exception, to aid debugging.
- *
- * @param object the value to test
- * @param message the message to include in the exception
- * @exception IllegalArgumentException if the object is <code>null</code>
- */
- public static void isNotNull(Object object, String message) {
- if (object == null)
- throw new AssertionFailedException("null argument:" + message); //$NON-NLS-1$
- }
- /** Asserts that the given boolean is <code>true</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- *
- * @param expression the outcode of the check
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- */
- public static boolean isTrue(boolean expression) {
- return isTrue(expression, ""); //$NON-NLS-1$
- }
- /** Asserts that the given boolean is <code>true</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- * The given message is included in that exception, to aid debugging.
- *
- * @param expression the outcode of the check
- * @param message the message to include in the exception
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- */
- public static boolean isTrue(boolean expression, String message) {
- if (!expression)
- throw new AssertionFailedException("assertion failed: " + message); //$NON-NLS-1$
- return expression;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AssertionFailedException.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AssertionFailedException.java
deleted file mode 100644
index 97bf4f022..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AssertionFailedException.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.core.util;
-
-
-/**
- * <code>AssertionFailedException</code> is a runtime exception thrown
- * by some of the methods in <code>Assert</code>.
- * <p>
- * This class is not declared public to prevent some misuses; programs that catch
- * or otherwise depend on assertion failures are susceptible to unexpected
- * breakage when assertions in the code are added or removed.
- * </p>
- */
-/* package */
-class AssertionFailedException extends RuntimeException {
-/** Constructs a new exception.
- */
-public AssertionFailedException() {
-}
-/** Constructs a new exception with the given message.
- */
-public AssertionFailedException(String detail) {
- super(detail);
-}
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/BuildCleanupListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/BuildCleanupListener.java
deleted file mode 100644
index 16d82a15b..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/BuildCleanupListener.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.util;
-
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.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.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-
-/**
- * Cleanup any CVS folders that were copied by a builder. This will also clean up
- * CVS folders that were copied by the user since the last auto-build.
- */
-public class BuildCleanupListener implements IResourceDeltaVisitor, IResourceChangeListener {
-
- public static IResource getResourceFor(IProject container, IResource destination, IPath originating) {
- switch(destination.getType()) {
- case IResource.FILE : return container.getFile(originating);
- case IResource.FOLDER: return container.getFolder(originating);
- case IResource.PROJECT: return ResourcesPlugin.getWorkspace().getRoot().getProject(originating.toString());
- }
- return destination;
- }
-
- /**
- * @see IResourceDeltaVisitor#visit(IResourceDelta)
- */
- public boolean visit(IResourceDelta delta) throws CoreException {
- IResource resource = delta.getResource();
- boolean movedFrom = (delta.getFlags() & IResourceDelta.MOVED_FROM) > 0;
- switch (delta.getKind()) {
- case IResourceDelta.ADDED :
- // make sure the added resource isn't a phantom
- if (resource.exists() && resource.getType() == IResource.FOLDER) {
- handleOrphanedSubtree((IContainer)resource);
- }
- break;
- case IResourceDelta.CHANGED :
- // This state means there is a resource before and after but changes were made by deleting and moving.
- // For files, we shouldn'd do anything.
- // For folders, we should purge the CVS info
- if (movedFrom && resource.getType() == IResource.FOLDER && resource.exists()) {
- // When folders are moved, purge the CVS folders
- return ! handleOrphanedSubtree((IContainer)resource);
- }
- break;
- }
- return true;
- }
-
- /*
- * Determine if the container is an orphaned subtree.
- * If it is, handle it and return true.
- * Otherwise, return false
- */
- private boolean handleOrphanedSubtree(IContainer container) {
- try {
- if (CVSWorkspaceRoot.isOrphanedSubtree(container)) {
- ICVSFolder mFolder = CVSWorkspaceRoot.getCVSFolderFor(container);
- mFolder.unmanage(null);
- return true;
- }
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- return false;
- }
-
- public void resourceChanged(IResourceChangeEvent event) {
- try {
- IResourceDelta root = event.getDelta();
- IResourceDelta[] projectDeltas = root.getAffectedChildren();
- for (int i = 0; i < projectDeltas.length; i++) {
- final IResourceDelta delta = projectDeltas[i];
- IResource resource = delta.getResource();
-
- if (resource.getType() == IResource.PROJECT) {
- // If the project is not accessible, don't process it
- if (!resource.isAccessible()) continue;
- if ((delta.getFlags() & IResourceDelta.OPEN) != 0) continue;
- }
-
- RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId());
-
- // Make sure that the project is a CVS folder.
- ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(resource.getProject());
- if (provider != null) {
- try {
- if (! folder.isCVSFolder()) {
- RepositoryProvider.unmap(resource.getProject());
- provider = null;
- }
- } catch (TeamException e) {
- CVSProviderPlugin.log(e);
- }
- }
-
- // if a project is moved the originating project will not be associated with the CVS provider
- // however listeners will probably still be interested in the move delta.
- if ((delta.getFlags() & IResourceDelta.MOVED_TO) > 0) {
- IResource destination = getResourceFor(resource.getProject(), resource, delta.getMovedToPath());
- provider = RepositoryProvider.getProvider(destination.getProject());
- }
-
- if(provider!=null) {
- // Traverse the delta is a runnable so that files are only written at the end
- folder.run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- try {
- delta.accept(BuildCleanupListener.this);
- } catch (CoreException e) {
- Util.logError(Policy.bind("ResourceDeltaVisitor.visitError"), e);//$NON-NLS-1$
- }
- }
- }, Policy.monitorFor(null));
- }
- }
- } catch (CVSException e) {
- Util.logError(Policy.bind("ResourceDeltaVisitor.visitError"), e);//$NON-NLS-1$
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/CVSDateFormatter.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/CVSDateFormatter.java
deleted file mode 100644
index fb42459d5..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/CVSDateFormatter.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.util;
-
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
-/**
- * Utility class for converting timestamps used in Entry file lines. The format
- * required in the Entry file is ISO C asctime() function (Sun Apr 7 01:29:26 1996).
- * <p>
- * To be compatible with asctime(), the day field in the entryline format is
- * padded with a space and not a zero. Most other CVS clients use string comparison
- * for timestamps based on the result of the C function asctime().
- * </p>
- */
-public class CVSDateFormatter {
-
- private static final String ENTRYLINE_FORMAT = "E MMM dd HH:mm:ss yyyy"; //$NON-NLS-1$
- private static final String SERVER_FORMAT = "dd MMM yyyy HH:mm:ss";//$NON-NLS-1$
- private static final int ENTRYLINE_TENS_DAY_OFFSET = 8;
-
- private static final SimpleDateFormat serverFormat = new SimpleDateFormat(SERVER_FORMAT, Locale.US);
- private static SimpleDateFormat entryLineFormat = new SimpleDateFormat(ENTRYLINE_FORMAT, Locale.US);
-
- static {
- entryLineFormat.setTimeZone(TimeZone.getTimeZone("GMT")); //$NON-NLS-1$
- }
- static synchronized public Date serverStampToDate(String text) throws ParseException {
- serverFormat.setTimeZone(getTimeZone(text));
- Date date = serverFormat.parse(text);
- return date;
- }
-
- static synchronized public String dateToServerStamp(Date date) {
- serverFormat.setTimeZone(TimeZone.getTimeZone("GMT"));//$NON-NLS-1$
- return serverFormat.format(date) + " -0000"; //$NON-NLS-1$
- }
-
- static synchronized public Date entryLineToDate(String text) throws ParseException {
- try {
- if (text.charAt(ENTRYLINE_TENS_DAY_OFFSET) == ' ') {
- StringBuffer buf = new StringBuffer(text);
- buf.setCharAt(ENTRYLINE_TENS_DAY_OFFSET, '0');
- text = buf.toString();
- }
- } catch (StringIndexOutOfBoundsException e) {
- throw new ParseException(e.getMessage(), ENTRYLINE_TENS_DAY_OFFSET);
- }
- return entryLineFormat.parse(text);
- }
-
- static synchronized public String dateToEntryLine(Date date) {
- if (date == null) return ""; //$NON-NLS-1$
- String passOne = entryLineFormat.format(date);
- if (passOne.charAt(ENTRYLINE_TENS_DAY_OFFSET) != '0') return passOne;
- StringBuffer passTwo = new StringBuffer(passOne);
- passTwo.setCharAt(ENTRYLINE_TENS_DAY_OFFSET, ' ');
- return passTwo.toString();
- }
-
- static synchronized public String dateToNotifyServer(Date date) {
- serverFormat.setTimeZone(TimeZone.getTimeZone("GMT"));//$NON-NLS-1$
- return serverFormat.format(date) + " GMT"; //$NON-NLS-1$
- }
-
- /*
- * Converts timezone text from date string from CVS server and
- * returns a timezone representing the received timezone.
- * Timezone string is of the following format: [-|+]MMSS
- */
- static private TimeZone getTimeZone(String dateFromServer) {
- String tz = null;
- StringBuffer resultTz = new StringBuffer("GMT");//$NON-NLS-1$
- if (dateFromServer.indexOf("-") != -1) {//$NON-NLS-1$
- resultTz.append("-");//$NON-NLS-1$
- tz = dateFromServer.substring(dateFromServer.indexOf("-"));//$NON-NLS-1$
- } else if (dateFromServer.indexOf("+") != -1) {//$NON-NLS-1$
- resultTz.append('+');
- tz = dateFromServer.substring(dateFromServer.indexOf("+"));//$NON-NLS-1$
- }
- try {
- if(tz!=null) {
- resultTz.append(tz.substring(1, 3) /*hours*/ + ":" + tz.substring(3, 5) /*minutes*/);//$NON-NLS-1$
- return TimeZone.getTimeZone(resultTz.toString());
- }
- } catch(IndexOutOfBoundsException e) {
- return TimeZone.getTimeZone("GMT");//$NON-NLS-1$
- }
- return TimeZone.getTimeZone("GMT");//$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/FileNameMatcher.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/FileNameMatcher.java
deleted file mode 100644
index 2447dacf1..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/FileNameMatcher.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.util;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A FileNameMatcher associates a String with a String pattern.
- */
-public class FileNameMatcher {
-
- private List matchers = new ArrayList();
- private List results = new ArrayList();
- private static final String TRUE = "true"; //$NON-NLS-1$
-
- public FileNameMatcher() {
- }
-
- public FileNameMatcher(String[] patterns) {
- register(patterns);
- }
-
- void register(String[] patterns) {
- for (int i = 0; i < patterns.length; i++) {
- register(patterns[i],TRUE);
- }
- }
-
- public void register(String pattern, String result) {
-
- Assert.isTrue(matchers.size() == results.size());
-
- pattern = pattern.trim();
-
- // The empty pattern matches everything, but we want to match
- // nothing with it, so we just do not register anything
- if (pattern.length() == 0) {
- return;
- }
-
- matchers.add(new StringMatcher(pattern,false,false));
- results.add(result);
-
- }
-
- public String getMatch(String name) {
- StringMatcher stringMatcher;
-
- for (int i = 0; i < matchers.size(); i++) {
- stringMatcher = (StringMatcher) matchers.get(i);
- if (stringMatcher.match(name)) {
- return (String)results.get(i);
- }
- }
-
- return null;
- }
-
- public boolean match(String name) {
- return getMatch(name) != null;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/KnownRepositories.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/KnownRepositories.java
deleted file mode 100644
index 818a7ec60..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/KnownRepositories.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.util;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.ICVSListener;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-
-/**
- * This class keeps track of the CVS repository locations that are known to
- * the CVS plugin.
- */
-public class KnownRepositories {
-
- private List repositoryListeners = new ArrayList();
- private Map repositories = new HashMap();
-
- private static KnownRepositories instance;
-
- public static synchronized KnownRepositories getInstance() {
- if (instance == null) {
- instance = new KnownRepositories();
- }
- return instance;
- }
-
- /*
- * Private class used to safely notify listeners of resouce sync info changes.
- * Subclass override the notify(IResourceStateChangeListener) method to
- * fire specific events inside an ISafeRunnable.
- */
- private abstract class Notification implements ISafeRunnable {
- private ICVSListener listener;
- public void handleException(Throwable exception) {
- // don't log the exception....it is already being logged in Platform#run
- }
- public void run(ICVSListener listener) {
- this.listener = listener;
- Platform.run(this);
- }
- public void run() throws Exception {
- notify(listener);
- }
- /**
- * Subsclasses overide this method to send an event safely to a lsistener
- * @param listener
- */
- protected abstract void notify(ICVSListener listener);
- }
-
- /**
- * Register to receive notification of repository creation and disposal
- */
- public void addRepositoryListener(ICVSListener listener) {
- synchronized(repositoryListeners) {
- repositoryListeners.add(listener);
- }
- }
-
- /**
- * De-register a listener
- */
- public void removeRepositoryListener(ICVSListener listener) {
- synchronized(repositoryListeners) {
- repositoryListeners.remove(listener);
- }
- }
-
- private ICVSListener[] getListeners() {
- synchronized(repositoryListeners) {
- return (ICVSListener[]) repositoryListeners.toArray(new ICVSListener[repositoryListeners.size()]);
- }
- }
-
- private void fireNotification(Notification notification) {
- // Get a snapshot of the listeners so the list doesn't change while we're firing
- ICVSListener[] listeners = getListeners();
- // Notify each listener in a safe manner (i.e. so their exceptions don't kill us)
- for (int i = 0; i < listeners.length; i++) {
- ICVSListener listener = listeners[i];
- notification.run(listener);
- }
- }
-
- /*
- * Add the repository location to the cached locations and notify listeners
- */
- private void addToRepositoriesCache(final ICVSRepositoryLocation repository) {
- repositories.put(repository.getLocation(), repository);
- fireNotification(new Notification() {
- public void notify(ICVSListener listener) {
- listener.repositoryAdded(repository);
- }
- });
- }
-
- /*
- * Remove the repository location from the cached locations and notify listeners
- */
- private void removeFromRepositoriesCache(final ICVSRepositoryLocation repository) {
- if (repositories.remove(repository.getLocation()) != null) {
- fireNotification(new Notification() {
- public void notify(ICVSListener listener) {
- listener.repositoryRemoved(repository);
- }
- });
- }
- }
-
- /**
- * Create a repository instance from the given properties.
- * The supported properties are:
- *
- * connection The connection method to be used
- * user The username for the connection
- * password The password used for the connection (optional)
- * host The host where the repository resides
- * port The port to connect to (optional)
- * root The server directory where the repository is located
- *
- * The created instance is not known by the provider and it's user information is not cached.
- * The purpose of the created location is to allow connection validation before adding the
- * location to the provider.
- *
- * This method will throw a CVSException if the location for the given configuration already
- * exists.
- */
- public ICVSRepositoryLocation createRepository(Properties configuration) throws CVSException {
- // Create a new repository location
- CVSRepositoryLocation location = CVSRepositoryLocation.fromProperties(configuration);
-
- // Check the cache for an equivalent instance and if there is one, throw an exception
- CVSRepositoryLocation existingLocation = (CVSRepositoryLocation)repositories.get(location.getLocation());
- if (existingLocation != null) {
- throw new CVSException(new CVSStatus(CVSStatus.ERROR, Policy.bind("CVSProvider.alreadyExists"))); //$NON-NLS-1$
- }
-
- return location;
- }
-
- /**
- * Add the repository to the receiver's list of known repositories. Doing this will enable
- * password caching accross platform invokations.
- */
- public void addRepository(ICVSRepositoryLocation repository) throws CVSException {
- // Check the cache for an equivalent instance and if there is one, just update the cache
- CVSRepositoryLocation existingLocation = (CVSRepositoryLocation)repositories.get(repository.getLocation());
- if (existingLocation != null) {
- ((CVSRepositoryLocation)repository).updateCache();
- } else {
- // Cache the password and register the repository location
- addToRepositoriesCache(repository);
- ((CVSRepositoryLocation)repository).updateCache();
- }
- }
-
- /**
- * Dispose of the repository location
- *
- * Removes any cached information about the repository such as a remembered password.
- */
- public void disposeRepository(ICVSRepositoryLocation repository) throws CVSException {
- ((CVSRepositoryLocation)repository).dispose();
- removeFromRepositoriesCache(repository);
- }
-
- /**
- * Answer whether the provided repository location is known by the provider or not.
- * The location string corresponds to the Strin returned by ICVSRepositoryLocation#getLocation()
- */
- public boolean isKnownRepository(String location) {
- return repositories.get(location) != null;
- }
-
- /**
- * Return a list of the know repository locations
- */
- public ICVSRepositoryLocation[] getKnownRepositories() {
- return (ICVSRepositoryLocation[])repositories.values().toArray(new ICVSRepositoryLocation[repositories.size()]);
- }
-
- /**
- * Get the repository instance which matches the given String. The format of the String is
- * the same as that returned by ICVSRepositoryLocation#getLocation().
- * The format is:
- *
- * connection:user[:password]@host[#port]:root
- *
- * where [] indicates optional and the identier meanings are:
- *
- * connection The connection method to be used
- * user The username for the connection
- * password The password used for the connection (optional)
- * host The host where the repository resides
- * port The port to connect to (optional)
- * root The server directory where the repository is located
- *
- * It is expected that the instance requested by using this method exists.
- * If the repository location does not exist, it will be automatically created
- * and cached with the provider.
- *
- * WARNING: Providing the password as part of the String will result in the password being part
- * of the location permanently. This means that it cannot be modified by the authenticator.
- */
- public ICVSRepositoryLocation getRepository(String location) throws CVSException {
- ICVSRepositoryLocation repository = (ICVSRepositoryLocation)repositories.get(location);
- if (repository == null) {
- repository = CVSRepositoryLocation.fromString(location);
- addToRepositoriesCache(repository);
- }
- return repository;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java
deleted file mode 100644
index 8dad4e254..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-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.IResourceVisitor;
-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.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFileModificationValidator;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-
-/**
- * This hook exists to ensure that folders deletions will be recorded so that outgoing file
- * deletions can be properly communicated to the server.
- */
-public class MoveDeleteHook implements IMoveDeleteHook {
-
- /**
- * @see IMoveDeleteHook#deleteFile(IResourceTree, IFile, int, IProgressMonitor)
- */
- public boolean deleteFile(
- final IResourceTree tree,
- final IFile file,
- final int updateFlags,
- IProgressMonitor monitor) {
-
- try {
- monitor.beginTask(null, 100);
-
- // No special handling required for team-private members
- if (file.isTeamPrivateMember()) return false;
-
- // If the file is ignored by CVS then we can just delete it.
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(file);
- if (cvsFile.isIgnored()) return false;
-
- // If we can't check out the files, return.
- if (!checkOutFiles(tree, new IFile[] {file}, Policy.subMonitorFor(monitor, 30))) {
- // Return that the delete was handled because the checkout
- // will have reported the error to the IResourceTree
- return true;
- }
-
- // Otherwise, we need to prepare properly for the delete
- EclipseSynchronizer.getInstance().performMoveDelete(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- try {
- monitor.beginTask(null, 100);
- EclipseSynchronizer.getInstance().prepareForDeletion(file, Policy.subMonitorFor(monitor, 40));
- tree.standardDeleteFile(file, updateFlags, Policy.subMonitorFor(monitor, 60));
- } finally {
- monitor.done();
- }
- }
- }, Policy.subMonitorFor(monitor, 70));
- } catch (CVSException e) {
- tree.failed(e.getStatus());
- } finally {
- monitor.done();
- }
- return true;
- }
-
- /**
- * @see IMoveDeleteHook#deleteFolder(IResourceTree, IFolder, int, IProgressMonitor)
- */
- public boolean deleteFolder(
- final IResourceTree tree,
- final IFolder folder,
- final int updateFlags,
- IProgressMonitor monitor) {
-
- // No special handling required for team-private members
- if (folder.isTeamPrivateMember()) return false;
- monitor.beginTask(null, 100);
- try {
- final ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder);
- if (cvsFolder.isCVSFolder() && ensureCheckedOut(new IFolder[] {folder}, tree, Policy.subMonitorFor(monitor, 30))) {
- EclipseSynchronizer.getInstance().performMoveDelete(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- try {
- monitor.beginTask(null, 100);
- EclipseSynchronizer.getInstance().prepareForDeletion(folder, Policy.subMonitorFor(monitor, 20));
- tree.standardDeleteFolder(folder, updateFlags, Policy.subMonitorFor(monitor, 50));
- } finally {
- monitor.done();
- }
- }
- }, Policy.subMonitorFor(monitor, 70));
- return true;
- } else if (!cvsFolder.isIgnored()) {
- EclipseSynchronizer.getInstance().prepareForDeletion(cvsFolder.getIResource(), Policy.subMonitorFor(monitor, 70));
- }
- } catch (CVSException e) {
- tree.failed(e.getStatus());
- } finally {
- monitor.done();
- }
- return false;
- }
-
- /**
- * @see IMoveDeleteHook#deleteProject(IResourceTree, IProject, int, IProgressMonitor)
- */
- public boolean deleteProject(
- IResourceTree tree,
- IProject project,
- int updateFlags,
- IProgressMonitor monitor) {
-
- // We need to flush any remembered folder deletions for the deleted project.
- // All other sync info is stored in session and persistant properties, which
- // are deleted when the associated resources are deleted
- try {
- EclipseSynchronizer.getInstance().prepareForDeletion(project, monitor);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- // todo: Perform a "cvs release" if there are any edits on the project
- return false;
- }
-
- /**
- * @see IMoveDeleteHook#moveFile(IResourceTree, IFile, IFile, int, IProgressMonitor)
- */
- public boolean moveFile(
- final IResourceTree tree,
- final IFile source,
- final IFile destination,
- final int updateFlags,
- IProgressMonitor monitor) {
-
- try {
- monitor.beginTask(null, 100);
-
- // ensure we can write to both the source and the destination
- IFile[] filesToCheckOut;
- if (destination.exists()) {
- filesToCheckOut = new IFile[] {source, destination};
- } else {
- filesToCheckOut = new IFile[] {source};
- }
- if (!checkOutFiles(tree, filesToCheckOut, Policy.subMonitorFor(monitor, 30))) {
- // Return that the move was handled because the checkout
- // will have reported the error to the IResourceTree
- return true;
- }
-
- // Perform the move
- EclipseSynchronizer.getInstance().performMoveDelete(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- try {
- monitor.beginTask(null, 100);
- EclipseSynchronizer.getInstance().prepareForDeletion(source, Policy.subMonitorFor(monitor, 40));
- if (destination.exists()) {
- EclipseSynchronizer.getInstance().prepareForDeletion(destination, Policy.subMonitorFor(monitor, 20));
- }
- tree.standardMoveFile(source, destination, updateFlags, Policy.subMonitorFor(monitor, 40));
- EclipseSynchronizer.getInstance().postMove(destination);
- } finally {
- monitor.done();
- }
- }
- }, Policy.subMonitorFor(monitor, 70));
- } catch (CVSException e) {
- tree.failed(e.getStatus());
- } finally {
- monitor.done();
- }
- return true;
- }
-
- /**
- * @see IMoveDeleteHook#moveFolder(IResourceTree, IFolder, IFolder, int, IProgressMonitor)
- */
- public boolean moveFolder(
- final IResourceTree tree,
- final IFolder source,
- final IFolder destination,
- final int updateFlags,
- IProgressMonitor monitor) {
-
- monitor.beginTask(null, 100);
- try {
- final ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(source);
- if (cvsFolder.isManaged()) {
- if (!ensureCheckedOut(new IFolder[] {source, destination}, tree, Policy.subMonitorFor(monitor, 20))) return true;
- EclipseSynchronizer.getInstance().performMoveDelete(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- EclipseSynchronizer.getInstance().prepareForDeletion(source, Policy.subMonitorFor(monitor, 20));
- if (destination.exists()) {
- EclipseSynchronizer.getInstance().prepareForDeletion(destination, Policy.subMonitorFor(monitor, 20));
- }
- tree.standardMoveFolder(source, destination, updateFlags, Policy.subMonitorFor(monitor, 30));
- purgeCVSFolders(destination, Policy.subMonitorFor(monitor, 20));
- EclipseSynchronizer.getInstance().postMove(destination);
- }
- private void purgeCVSFolders(IFolder destination, final IProgressMonitor monitor) throws CVSException {
- // Delete any CVS folders
- try {
- destination.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- if (resource.getType() == IResource.FOLDER && resource.getName().equals(SyncFileWriter.CVS_DIRNAME)) {
- tree.standardDeleteFolder((IFolder)resource, updateFlags, monitor);
- return false;
- }
- return true;
- }
- }, IResource.DEPTH_INFINITE, IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
- }, Policy.subMonitorFor(monitor, 60));
- return true;
- } else if (!cvsFolder.isIgnored()) {
- EclipseSynchronizer.getInstance().prepareForDeletion(cvsFolder.getIResource(), Policy.subMonitorFor(monitor, 60));
- }
- } catch (CVSException e) {
- tree.failed(e.getStatus());
- return true;
- } finally {
- monitor.done();
- }
-
- return false;
- }
-
- /**
- * @see IMoveDeleteHook#moveProject(IResourceTree, IProject, IProjectDescription, int, IProgressMonitor)
- */
- public boolean moveProject(
- IResourceTree tree,
- IProject source,
- IProjectDescription description,
- int updateFlags,
- IProgressMonitor monitor) {
-
- // We need to move (or flush) any remembered folder deletions for the deleted project
- // XXX We flush for now. This means that deleting a managed folder and then moving the
- // project will mean that the file deletions will be lost. It also means that phantom
- // folders are lost.
- try {
- EclipseSynchronizer.getInstance().prepareForDeletion(source, monitor);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- return false;
- }
-
- /**
- * Ensure that the given file is checked out (i.e. not read only). Return
- * true if it is OK to procede and false otherwise.
- *
- * @param tree
- * @param file
- * @return boolean
- */
- /* private */ boolean checkOutFiles(IResourceTree tree, IFile[] files, IProgressMonitor monitor) {
- // Ensure that the file is "checked out" (i.e. not read-only
- IFileModificationValidator validator = getFileModificationValidator(files);
- if (validator instanceof ICVSFileModificationValidator) {
- IStatus status = ((ICVSFileModificationValidator)validator).validateMoveDelete(files, monitor);
- if (status.isOK()) {
- return true;
- } else {
- tree.failed(status);
- return false;
- }
- }
- return true;
- }
-
- private boolean ensureCheckedOut(IFolder[] folders, IResourceTree tree, IProgressMonitor monitor) {
- final List readOnlyFiles = new ArrayList();
- try {
- // Find any read-only files
- for (int i = 0; i < folders.length; i++) {
- IFolder folder = folders[i];
- if (folder.exists()) {
- folder.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- if (resource.getType() == IResource.FILE) {
- IFile file = (IFile) resource;
- if (file.isReadOnly()) {
- readOnlyFiles.add(file);
- }
- }
- return true;
- }
- });
- }
- }
- if (readOnlyFiles.isEmpty()) return true;
- // Ensure read-only files are checked out
- return checkOutFiles(tree, (IFile[]) readOnlyFiles.toArray(new IFile[readOnlyFiles.size()]), monitor);
- } catch (CoreException e) {
- tree.failed(e.getStatus());
- return false;
- }
- }
-
- private IFileModificationValidator getFileModificationValidator(IFile[] files) {
- return getProvider(files).getFileModificationValidator();
- }
-
- private CVSTeamProvider getProvider(IFile[] files) {
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(files[0].getProject(), CVSProviderPlugin.getTypeId());
- return provider;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java
deleted file mode 100644
index 8963c8d83..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.util;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.Policy;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * This class is used to prepare a local CVS workspace for replacement by
- * the corresponding remote resources. More specifically, this class will
- * unmanage added and deleted resources so that, after the operation, the
- * resources in the local workspace will either correspond to the remote
- * counterparts or be unmanaged.
- */
-public class PrepareForReplaceVisitor implements ICVSResourceVisitor {
-
- private IProgressMonitor monitor;
- private int depth;
-
- /**
- * @see ICVSResourceVisitor#visitFile(ICVSFile)
- */
- public void visitFile(ICVSFile file) throws CVSException {
- byte[] syncBytes = file.getSyncBytes();
- if (syncBytes == null) {
- // Delete unmanaged files if the user wants them deleted
- if (CVSProviderPlugin.getPlugin().isReplaceUnmanaged()) {
- file.delete();
- }
- } else if (ResourceSyncInfo.isAddition(syncBytes)) {
- file.delete();
- file.unmanage(null);
- } else if (ResourceSyncInfo.isDeletion(syncBytes)) {
- // If deleted, null the sync info so the file will be refetched
- file.unmanage(null);
- } else if (file.isModified(null)) {
- // If the file is modified, delee and unmanage it and allow the
- // replace operaton to fetch it again. This isrequired because "update -C"
- // will fail for locally modified resources that have been deleted remotely.
- file.unmanage(null);
- file.delete();
- }
- monitor.worked(1);
- }
-
- /**
- * @see ICVSResourceVisitor#visitFolder(ICVSFolder)
- */
- public void visitFolder(ICVSFolder folder) throws CVSException {
- // Delete unmanaged folders if the user wants them deleted
- if (!folder.isCVSFolder() && CVSProviderPlugin.getPlugin().isReplaceUnmanaged()) {
- folder.delete();
- } else {
- // Visit the children of the folder as appropriate
- if (depth == IResource.DEPTH_INFINITE) {
- folder.acceptChildren(this);
- } else if (depth == IResource.DEPTH_ONE) {
- ICVSResource[] files = folder.members(ICVSFolder.FILE_MEMBERS);
- for (int i = 0; i < files.length; i++) {
- files[i].accept(this);
- }
- }
- // Also delete ignored child files that start with .#
- ICVSResource[] ignoredFiles = folder.members(ICVSFolder.FILE_MEMBERS | ICVSFolder.IGNORED_MEMBERS);
- for (int i = 0; i < ignoredFiles.length; i++) {
- ICVSResource cvsResource = ignoredFiles[i];
- if (cvsResource.getName().startsWith(".#")) { //$NON-NLS-1$
- cvsResource.delete();
- }
- }
- }
- monitor.worked(1);
- }
-
- public void visitResources(IProject project, final ICVSResource[] resources, final String key, int depth, IProgressMonitor pm) throws CVSException {
- this.depth = depth;
- CVSWorkspaceRoot.getCVSFolderFor(project).run(new ICVSRunnable() {
- public void run(IProgressMonitor pm) throws CVSException {
- monitor = Policy.infiniteSubMonitorFor(pm, 100);
- monitor.beginTask(null, 512);
- for (int i = 0; i < resources.length; i++) {
- if (key != null) {
- monitor.subTask(Policy.bind(key, resources[i].getIResource().getFullPath().toString())); //$NON-NLS-1$
- }
- resources[i].accept(PrepareForReplaceVisitor.this);
- }
- monitor.done();
- }
- }, pm);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/ReplaceWithBaseVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/ReplaceWithBaseVisitor.java
deleted file mode 100644
index 3ee8f0768..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/ReplaceWithBaseVisitor.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.util;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-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.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.Policy;
-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.Update;
-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.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-public class ReplaceWithBaseVisitor implements ICVSResourceVisitor {
-
- private IProgressMonitor monitor;
- private int depth;
- private Session session;
-
- /**
- * @see ICVSResourceVisitor#visitFile(ICVSFile)
- */
- public void visitFile(final ICVSFile file) throws CVSException {
- byte[] syncBytes = file.getSyncBytes();
- if (syncBytes == null) {
- // Delete unmanaged files if the user wants them deleted
- if (CVSProviderPlugin.getPlugin().isReplaceUnmanaged()) {
- file.delete();
- }
- } else if (ResourceSyncInfo.isAddition(syncBytes)) {
- file.delete();
- file.unmanage(null);
- } else {
- byte[] tagBytes = ResourceSyncInfo.getTagBytes(syncBytes);
- boolean isModified = file.isModified(null);
- if (ResourceSyncInfo.isDeletion(syncBytes)) {
- // If deleted, null the sync info so the file will be refetched
- syncBytes = ResourceSyncInfo.convertFromDeletion(syncBytes);
- file.setSyncBytes(syncBytes, ICVSFile.UNKNOWN);
- isModified = true;
- }
- // Fetch the file from the server
- if (isModified) {
- ICVSFolder parent = file.getParent();
- FolderSyncInfo folderInfo = parent.getFolderSyncInfo();
- // Use the session opened in tghe replaceWithBase method to make the connection.
- Command.UPDATE.execute(this.session, Command.NO_GLOBAL_OPTIONS,
- new LocalOption[] {Update.makeTagOption(CVSTag.BASE), Update.IGNORE_LOCAL_CHANGES},
- new ICVSResource[] { file }, null, Policy.subMonitorFor(monitor, 1));
-
- // Set the tag to be the original tag
- syncBytes = file.getSyncBytes();
- syncBytes = ResourceSyncInfo.setTag(syncBytes, tagBytes);
- file.setSyncBytes(syncBytes, ICVSFile.UNKNOWN);
- }
- }
- monitor.worked(1);
- }
-
- /**
- * @see ICVSResourceVisitor#visitFolder(ICVSFolder)
- */
- public void visitFolder(ICVSFolder folder) throws CVSException {
- // Visit the children of the folder as appropriate
- if (depth == IResource.DEPTH_INFINITE) {
- folder.acceptChildren(this);
- } else if (depth == IResource.DEPTH_ONE) {
- ICVSResource[] files = folder.members(ICVSFolder.FILE_MEMBERS);
- for (int i = 0; i < files.length; i++) {
- files[i].accept(this);
- }
- }
- // Also delete ignored child files that start with .#
- ICVSResource[] ignoredFiles = folder.members(ICVSFolder.FILE_MEMBERS | ICVSFolder.IGNORED_MEMBERS);
- for (int i = 0; i < ignoredFiles.length; i++) {
- ICVSResource cvsResource = ignoredFiles[i];
- if (cvsResource.getName().startsWith(".#")) { //$NON-NLS-1$
- cvsResource.delete();
- }
- }
- monitor.worked(1);
- }
-
- /*
- * This method will replace any changed resources in the local workspace with the
- * base resource. Although CVS allows this operation using "cvs update -r BASE" the
- * results in the workspace are "sticky". This operation does not leave the local workspace "sticky".
- *
- * NOTE: This operation issues multiple commands over a single connection. It may fail
- * with some servers that are configured to run scripts during an update (see bug 40145).
- */
- public void replaceWithBase(IProject project, final IResource[] resources, int depth, IProgressMonitor pm) throws CVSException {
- this.depth = depth;
- final ICVSFolder root = CVSWorkspaceRoot.getCVSFolderFor(project);
- FolderSyncInfo folderInfo = root.getFolderSyncInfo();
- IProgressMonitor monitor = Policy.monitorFor(pm);
- monitor.beginTask(null, 100);
- this.session = new Session(CVSProviderPlugin.getPlugin().getRepository(folderInfo.getRoot()), root, true /* creat e backups */);
- this.session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- this.monitor = Policy.infiniteSubMonitorFor(monitor, 90);
- this.monitor.beginTask(null, 512);
- for (int i = 0; i < resources.length; i++) {
- this.monitor.subTask(Policy.bind("ReplaceWithBaseVisitor.replacing", resources[i].getFullPath().toString())); //$NON-NLS-1$
- CVSWorkspaceRoot.getCVSResourceFor(resources[i]).accept(this);
- }
- } finally {
- this.session.close();
- monitor.done();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/ResourceStateChangeListeners.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/ResourceStateChangeListeners.java
deleted file mode 100644
index dec26d8f8..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/ResourceStateChangeListeners.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.core.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener;
-import org.eclipse.team.internal.ccvs.core.Policy;
-
-/**
- * Class that manages the listeners of CVS sync change notification
- */
-public class ResourceStateChangeListeners {
-
- private static List listeners = new ArrayList();
-
- private static ResourceStateChangeListeners instance;
-
- public static synchronized ResourceStateChangeListeners getListener() {
- if (instance == null) {
- instance = new ResourceStateChangeListeners();
- }
- return instance;
- }
-
- /*
- * Private class used to safely notify listeners of resouce sync info changes.
- * Subclass override the notify(IResourceStateChangeListener) method to
- * fire specific events inside an ISafeRunnable.
- */
- private abstract class Notification implements ISafeRunnable {
- private IResourceStateChangeListener listener;
- public void handleException(Throwable exception) {
- // don't log the exception....it is already being logged in Platform#run
- }
- public void run(IResourceStateChangeListener listener) {
- this.listener = listener;
- Platform.run(this);
- }
- public void run() throws Exception {
- notify(listener);
- }
- /**
- * Subsclasses overide this method to send an event safely to a lsistener
- * @param listener
- */
- protected abstract void notify(IResourceStateChangeListener listener);
- }
-
- private IResourceStateChangeListener[] getListeners() {
- synchronized(listeners) {
- return (IResourceStateChangeListener[]) listeners.toArray(new IResourceStateChangeListener[listeners.size()]);
- }
- }
-
- private void fireNotification(Notification notification) {
- // Get a snapshot of the listeners so the list doesn't change while we're firing
- IResourceStateChangeListener[] listeners = getListeners();
- // Notify each listener in a safe manner (i.e. so their exceptions don't kill us)
- for (int i = 0; i < listeners.length; i++) {
- IResourceStateChangeListener listener = listeners[i];
- notification.run(listener);
- }
- }
-
- public void addResourceStateChangeListener(IResourceStateChangeListener listener) {
- synchronized(listeners) {
- listeners.add(listener);
- }
- }
-
- public void removeResourceStateChangeListener(IResourceStateChangeListener listener) {
- synchronized(listeners) {
- listeners.remove(listener);
- }
- }
-
- public void resourceSyncInfoChanged(final IResource[] resources) {
- if (Policy.DEBUG_SYNC_CHANGE_EVENTS) {
- printDebugInfo("Sync info change event ", resources); //$NON-NLS-1$
- }
- fireNotification(new Notification() {
- public void notify(IResourceStateChangeListener listener) {
- listener.resourceSyncInfoChanged(resources);
- }
- });
- }
-
- public void externalSyncInfoChange(final IResource[] resources) {
- if (Policy.DEBUG_SYNC_CHANGE_EVENTS) {
- printDebugInfo("External sync info change event ", resources); //$NON-NLS-1$
- }
- fireNotification(new Notification() {
- public void notify(IResourceStateChangeListener listener) {
- listener.externalSyncInfoChange(resources);
- }
- });
- }
-
- public void resourceModified(final IResource[] resources) {
- if (Policy.DEBUG_SYNC_CHANGE_EVENTS) {
- printDebugInfo("Resource modified change event ", resources); //$NON-NLS-1$
- }
- fireNotification(new Notification() {
- public void notify(IResourceStateChangeListener listener) {
- listener.resourceModified(resources);
- }
- });
- }
- public void projectConfigured(final IProject project) {
- if (Policy.DEBUG_SYNC_CHANGE_EVENTS) {
- printDebugInfo("Project configured change event ", new IResource[] { project }); //$NON-NLS-1$
- }
- fireNotification(new Notification() {
- public void notify(IResourceStateChangeListener listener) {
- listener.projectConfigured(project);
- }
- });
- }
- public void projectDeconfigured(final IProject project) {
- if (Policy.DEBUG_SYNC_CHANGE_EVENTS) {
- printDebugInfo("Project deconfigured change event ", new IResource[] { project }); //$NON-NLS-1$
- }
- fireNotification(new Notification() {
- public void notify(IResourceStateChangeListener listener) {
- listener.projectDeconfigured(project);
- }
- });
- }
-
- private void printDebugInfo(String prefix, IResource[] resources) {
- System.out.print(prefix);
- System.out.print(" from thread " + Thread.currentThread().getName()); //$NON-NLS-1$
- System.out.print(" for the following " + resources.length + " resources"); //$NON-NLS-1$ //$NON-NLS-2$
- System.out.println(":"); //$NON-NLS-1$
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- System.out.println(resource.getFullPath().toString());
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/StringMatcher.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/StringMatcher.java
deleted file mode 100644
index e9e151d36..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/StringMatcher.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.team.internal.ccvs.core.util;
-
-
-import java.util.*;
-
-/**
- * A string pattern matcher, suppporting * and ? wildcards.
- * Note: code copied from org.eclipse.jdt.internal.core.util.StringMatcher on April 3, 2001
- * (version 0.1 - 010901H18 [rename jbl]).
- */
-public class StringMatcher {
- protected String fPattern;
- protected int fLength; // pattern length
- protected boolean fIgnoreWildCards;
- protected boolean fIgnoreCase;
- protected boolean fHasLeadingStar;
- protected boolean fHasTrailingStar;
- protected String fSegments[]; //the given pattern is split into * separated segments
-
- /* boundary value beyond which we don't need to search in the text */
- protected int fBound = 0;
-
-
- protected static final char fSingleWildCard = '\u0000';
-
- public static class Position {
- int start; //inclusive
- int end; //exclusive
- public Position(int start, int end) {
- this.start = start;
- this.end = end;
- }
- public int getStart() {
- return start;
- }
- public int getEnd() {
- return end;
- }
- }
- /**
- * Find the first occurrence of the pattern between <code>start</code)(inclusive)
- * and <code>end</code>(exclusive).
- * @param <code>text</code>, the String object to search in
- * @param <code>start</code>, the starting index of the search range, inclusive
- * @param <code>end</code>, the ending index of the search range, exclusive
- * @return an <code>StringMatcher.Position</code> object that keeps the starting
- * (inclusive) and ending positions (exclusive) of the first occurrence of the
- * pattern in the specified range of the text; return null if not found or subtext
- * is empty (start==end). A pair of zeros is returned if pattern is empty string
- * Note that for pattern like "*abc*" with leading and trailing stars, position of "abc"
- * is returned. For a pattern like"*??*" in text "abcdf", (1,3) is returned
- */
-
- public StringMatcher.Position find(String text, int start, int end) {
- if (fPattern == null|| text == null)
- throw new IllegalArgumentException();
-
- int tlen = text.length();
- if (start < 0)
- start = 0;
- if (end > tlen)
- end = tlen;
- if (end < 0 ||start >= end )
- return null;
- if (fLength == 0)
- return new Position(start, start);
- if (fIgnoreWildCards) {
- int x = posIn(text, start, end);
- if (x < 0)
- return null;
- return new Position(x, x+fLength);
- }
-
- int segCount = fSegments.length;
- if (segCount == 0)//pattern contains only '*'(s)
- return new Position (start, end);
-
- int curPos = start;
- int matchStart = -1;
- int i;
- for (i = 0; i < segCount && curPos < end; ++i) {
- String current = fSegments[i];
- int nextMatch = regExpPosIn(text, curPos, end, current);
- if (nextMatch < 0 )
- return null;
- if(i == 0)
- matchStart = nextMatch;
- curPos = nextMatch + current.length();
- }
- if (i < segCount)
- return null;
- return new Position(matchStart, curPos);
- }
- /**
- * StringMatcher constructor takes in a String object that is a simple
- * pattern which may contain *  for 0 and many characters and
- * ?  for exactly one character.
- *
- * Literal '*' and '?' characters must be escaped in the pattern
- * e.g., "\*" means literal "*", etc.
- *
- * Escaping any other character (including the escape character itself),
- * just results in that character in the pattern.
- * e.g., "\a" means "a" and "\\" means "\"
- *
- * If invoking the StringMatcher with string literals in Java, don't forget
- * escape characters are represented by "\\".
- *
- * @param aPattern the pattern to match text with
- * @param ignoreCase if true, case is ignored
- * @param ignoreWildCards if true, wild cards and their escape sequences are ignored
- * (everything is taken literally).
- */
- public StringMatcher(String aPattern, boolean ignoreCase, boolean ignoreWildCards) {
- fIgnoreCase = ignoreCase;
- fIgnoreWildCards = ignoreWildCards;
- fLength = aPattern.length();
-
- /* convert case */
- if (fIgnoreCase) {
- fPattern = aPattern.toUpperCase();
- } else {
- fPattern = aPattern;
- }
-
- if (fIgnoreWildCards) {
- parseNoWildCards();
- } else {
- parseWildCards();
- }
- }
- /**
- * Given the starting (inclusive) and the ending (exclusive) poisitions in the
- * <code>text</code>, determine if the given substring matches with aPattern
- * @return true if the specified portion of the text matches the pattern
- * @param String <code>text</code>, a String object that contains the substring to match
- * @param int <code>start<code> marks the starting position (inclusive) of the substring
- * @param int <code>end<code> marks the ending index (exclusive) of the substring
- */
- public boolean match(String text, int start, int end) {
- if (null == text)
- throw new IllegalArgumentException();
-
- if (start > end)
- return false;
-
- if (fIgnoreWildCards)
- return (end - start == fLength) && fPattern.regionMatches(fIgnoreCase, 0, text, start, fLength);
- int segCount= fSegments.length;
- if (segCount == 0 && (fHasLeadingStar || fHasTrailingStar)) // pattern contains only '*'(s)
- return true;
- if (start == end)
- return fLength == 0;
- if (fLength == 0)
- return start == end;
-
- int tlen= text.length();
- if (start < 0)
- start= 0;
- if (end > tlen)
- end= tlen;
-
- int tCurPos= start;
- int bound= end - fBound;
- if ( bound < 0)
- return false;
- int i=0;
- String current= fSegments[i];
- int segLength= current.length();
-
- /* process first segment */
- if (!fHasLeadingStar){
- if(!regExpRegionMatches(text, start, current, 0, segLength)) {
- return false;
- } else {
- ++i;
- tCurPos= tCurPos + segLength;
- }
- }
- if ((fSegments.length == 1) && (!fHasLeadingStar) && (!fHasTrailingStar)) {
- // only one segment to match, no wildcards specified
- return tCurPos == end;
- }
- /* process middle segments */
- while (i < segCount) {
- current= fSegments[i];
- int currentMatch;
- int k= current.indexOf(fSingleWildCard);
- if (k < 0) {
- currentMatch= textPosIn(text, tCurPos, end, current);
- if (currentMatch < 0)
- return false;
- } else {
- currentMatch= regExpPosIn(text, tCurPos, end, current);
- if (currentMatch < 0)
- return false;
- }
- tCurPos= currentMatch + current.length();
- i++;
- }
-
- /* process final segment */
- if (!fHasTrailingStar && tCurPos != end) {
- int clen= current.length();
- return regExpRegionMatches(text, end - clen, current, 0, clen);
- }
- return i == segCount ;
- }
- /**
- * match the given <code>text</code> with the pattern
- * @return true if matched eitherwise false
- * @param <code>text</code>, a String object
- */
- public boolean match(String text) {
- return match(text, 0, text.length());
- }
- /**
- * This method parses the given pattern into segments separated by wildcard '*' characters.
- * Since wildcards are not being used in this case, the pattern consists of a single segment.
- */
- private void parseNoWildCards() {
- fSegments = new String[1];
- fSegments[0] = fPattern;
- fBound = fLength;
- }
- /**
- * This method parses the given pattern into segments separated by wildcard '*' characters.
- * @param p, a String object that is a simple regular expression with *  and/or ? 
- */
- private void parseWildCards() {
- if(fPattern.startsWith("*"))//$NON-NLS-1$
- fHasLeadingStar = true;
- if(fPattern.endsWith("*")) {//$NON-NLS-1$
- /* make sure it's not an escaped wildcard */
- if (fLength > 1 && fPattern.charAt(fLength - 2) != '\\') {
- fHasTrailingStar = true;
- }
- }
-
- Vector temp = new Vector();
-
- int pos = 0;
- StringBuffer buf = new StringBuffer();
- while (pos < fLength) {
- char c = fPattern.charAt(pos++);
- switch (c) {
- case '\\':
- if (pos >= fLength) {
- buf.append(c);
- } else {
- char next = fPattern.charAt(pos++);
- /* if it's an escape sequence */
- if (next == '*' || next == '?' || next == '\\') {
- buf.append(next);
- } else {
- /* not an escape sequence, just insert literally */
- buf.append(c);
- buf.append(next);
- }
- }
- break;
- case '*':
- if (buf.length() > 0) {
- /* new segment */
- temp.addElement(buf.toString());
- fBound += buf.length();
- buf.setLength(0);
- }
- break;
- case '?':
- /* append special character representing single match wildcard */
- buf.append(fSingleWildCard);
- break;
- default:
- buf.append(c);
- }
- }
-
- /* add last buffer to segment list */
- if (buf.length() > 0) {
- temp.addElement(buf.toString());
- fBound += buf.length();
- }
-
- fSegments = new String[temp.size()];
- temp.copyInto(fSegments);
- }
- /**
- * @param <code>text</code>, a string which contains no wildcard
- * @param <code>start</code>, the starting index in the text for search, inclusive
- * @param <code>end</code>, the stopping point of search, exclusive
- * @return the starting index in the text of the pattern , or -1 if not found
- */
- protected int posIn(String text, int start, int end) {//no wild card in pattern
- int max = end - fLength;
-
- if (!fIgnoreCase) {
- int i = text.indexOf(fPattern, start);
- if (i == -1 || i > max)
- return -1;
- return i;
- }
-
- for (int i = start; i <= max; ++i) {
- if (text.regionMatches(true, i, fPattern, 0, fLength))
- return i;
- }
-
- return -1;
- }
- /**
- * @param <code>text</code>, a simple regular expression that may only contain '?'(s)
- * @param <code>start</code>, the starting index in the text for search, inclusive
- * @param <code>end</code>, the stopping point of search, exclusive
- * @param <code>p</code>, a simple regular expression that may contains '?'
- * @param <code>caseIgnored</code>, wether the pattern is not casesensitive
- * @return the starting index in the text of the pattern , or -1 if not found
- */
- protected int regExpPosIn(String text, int start, int end, String p) {
- int plen = p.length();
-
- int max = end - plen;
- for (int i = start; i <= max; ++i) {
- if (regExpRegionMatches(text, i, p, 0, plen))
- return i;
- }
- return -1;
- }
- /**
- *
- * @return boolean
- * @param <code>text</code>, a String to match
- * @param <code>start</code>, int that indicates the starting index of match, inclusive
- * @param <code>end</code> int that indicates the ending index of match, exclusive
- * @param <code>p</code>, String, String, a simple regular expression that may contain '?'
- * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive
- */
- protected boolean regExpRegionMatches(String text, int tStart, String p, int pStart, int plen) {
- while (plen-- > 0) {
- char tchar = text.charAt(tStart++);
- char pchar = p.charAt(pStart++);
-
- /* process wild cards */
- if (!fIgnoreWildCards) {
- /* skip single wild cards */
- if (pchar == fSingleWildCard) {
- continue;
- }
- }
- if (pchar == tchar)
- continue;
- if (fIgnoreCase) {
- char tc = Character.toUpperCase(tchar);
- if (tc == pchar)
- continue;
- }
- return false;
- }
- return true;
- }
- /**
- * @param <code>text</code>, the string to match
- * @param <code>start</code>, the starting index in the text for search, inclusive
- * @param <code>end</code>, the stopping point of search, exclusive
- * @param code>p</code>, a string that has no wildcard
- * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive
- * @return the starting index in the text of the pattern , or -1 if not found
- */
- protected int textPosIn(String text, int start, int end, String p) {
-
- int plen = p.length();
- int max = end - plen;
-
- if (!fIgnoreCase) {
- int i = text.indexOf(p, start);
- if (i == -1 || i > max)
- return -1;
- return i;
- }
-
- for (int i = start; i <= max; ++i) {
- if (text.regionMatches(true, i, p, 0, plen))
- return i;
- }
-
- return -1;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileChangeListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileChangeListener.java
deleted file mode 100644
index 715e7a2a5..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileChangeListener.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.internal.ccvs.core.util;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-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.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.Policy;
-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.DeferredResourceChangeHandler;
-
-/*
- * Listens to CVS meta-file changes and notifies the EclipseSynchronizer of changes made to sync files
- * by 3rd parties.
- *
- * If CVS meta-directories are created outside of the CVS plugin their team-private state will be set
- * by this listener however this change won't be known to other plugins because it does not generate
- * a delta. As a result views, such as the navigator, may show CVS team-private directories. There
- * are some common scenarios where a user may (depending on the order of delta traversal) see
- * this behavior:
- *
- * 1. A user has an existing CVS project outside of Eclipse. By creating the project in Eclipse to point
- * to the existing location the project's contents will be brought into Eclipse and the CVS folders
- * will be marlked as team-private but other delta listeners that have handled the event already won't receive
- * notification that the resource is now team-private. As a result, the user may have to close views or
- * restart the workbench to have the CVS folders filtered.
- *
- * 2. A user performs CVS command line operations outside of Eclipse that result in new CVS folders.
- * From Eclipse the refresh local will bring in the new folders and they will be marked as team-private.
- * But as in 1, they may not appear in the UI.
- *
- * See: http://dev.eclipse.org/bugs/show_bug.cgi?id=12386
- */
-public class SyncFileChangeListener implements IResourceChangeListener {
-
- // consider the following changes types and ignore the others (e.g. marker and description changes are ignored)
- protected int INTERESTING_CHANGES = IResourceDelta.CONTENT |
- IResourceDelta.MOVED_FROM |
- IResourceDelta.MOVED_TO |
- IResourceDelta.OPEN |
- IResourceDelta.REPLACED |
- IResourceDelta.TYPE;
-
- protected boolean isProjectOpening = false;
-
- protected static DeferredResourceChangeHandler deferredHandler = new DeferredResourceChangeHandler();
-
- /**
- * This accessor is for use by test cases only.
- *
- * @return Returns the deferredHandler.
- */
- public static DeferredResourceChangeHandler getDeferredHandler() {
- return deferredHandler;
- }
-
- /*
- * When a resource changes this method will detect if the changed resources is a meta file that has changed
- * by a 3rd party. For example, if the command line tool was run and then the user refreshed from local. To
- * distinguish changes made by this class and thoses made by others a modification stamp is persisted with each
- * metafile.
- *
- * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- try {
- final Set changedContainers = new HashSet();
- final Set externalDeletions = new HashSet();
-
- setProjectOpening(false);
-
- event.getDelta().accept(new IResourceDeltaVisitor() {
-
- public boolean visit(IResourceDelta delta) {
- IResource resource = delta.getResource();
-
- if(resource.getType()==IResource.ROOT) {
- // continue with the delta
- return true;
- }
-
- if (resource.getType() == IResource.PROJECT) {
- // If the project is not accessible, don't process it
- if (!resource.isAccessible()) return false;
- setProjectOpening((delta.getFlags() & IResourceDelta.OPEN) != 0);
- }
-
- String name = resource.getName();
- int kind = delta.getKind();
-
- // if the file has changed but not in a way that we care
- // then ignore the change (e.g. marker changes to files).
- if(kind == IResourceDelta.CHANGED &&
- (delta.getFlags() & INTERESTING_CHANGES) == 0) {
- return true;
- }
-
- if(name.equals(SyncFileWriter.CVS_DIRNAME)) {
- handleCVSDir((IContainer)resource, kind);
- // if the project is opening there is no need to notify about chagned CVs/ meta files
- // they will all be read from disk.
- if(isProjectOpening()) return false;
- } else {
- // Inform the synchronizer about folder creations
- if(isProjectOpening()) return true;
- }
-
- if(isMetaFile(resource)) {
- IResource[] toBeNotified = handleChangedMetaFile(resource);
- if(toBeNotified.length>0 && isModifiedBy3rdParty(resource)) {
- for (int i = 0; i < toBeNotified.length; i++) {
- changedContainers.add(toBeNotified[i]);
- }
- if(Policy.DEBUG_METAFILE_CHANGES) {
- System.out.println("[cvs] metafile changed by 3rd party: " + resource.getFullPath()); //$NON-NLS-1$
- }
- return false; /*don't visit any children we have all the information we need*/
- }
- } else if(isIgnoreFile(resource) && isModifiedBy3rdParty(resource)) {
- deferredHandler.ignoreFileChanged((IFile)resource);
- } else if (isExternalDeletion(resource, kind)) {
- externalDeletions.add(resource);
- }
- return true;
- }
- }, IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS);
-
- if(!changedContainers.isEmpty() || !externalDeletions.isEmpty()) {
- EclipseSynchronizer.getInstance().syncFilesChangedExternally(
- (IContainer[])changedContainers.toArray(new IContainer[changedContainers.size()]),
- (IFile[]) externalDeletions.toArray(new IFile[externalDeletions.size()]));
- }
- } catch(CoreException e) {
- CVSProviderPlugin.log(e);
- }
- }
-
- /**
- * Treat a resource as an external deletion if
- * - it is a file
- * - the delta says the file was removed
- * - the file is not managed but its parent is a CVS folder
- *
- * There will be some false positives but the reaction to this situation
- * is to purge the cahced CVS meta-information so nothing bad will happen
- * for the false positives.
- *
- * @param resource
- * @param kind
- * @return
- */
- protected boolean isExternalDeletion(IResource resource, int kind) {
- if (kind != IResourceDelta.REMOVED) return false;
- if (resource.getType() != IResource.FILE) return false;
- ICVSFile file = CVSWorkspaceRoot.getCVSFileFor((IFile)resource);
- try {
- return (!file.isManaged() && file.getParent().isCVSFolder() && file.getParent().exists());
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- return false;
- }
- }
-
- /*
- * Consider non-existing resources as being recently deleted and thus modified, and resources
- * with modification stamps that differ from when the CVS plugin last modified the meta-file.
- */
- protected boolean isModifiedBy3rdParty(IResource resource) {
- if(!resource.exists()) return true;
- long modStamp = resource.getModificationStamp();
- Long whenWeWrote;
- try {
- whenWeWrote = (Long)resource.getSessionProperty(SyncFileWriter.MODSTAMP_KEY);
- } catch(CoreException e) {
- CVSProviderPlugin.log(e);
- whenWeWrote = null;
- }
- return (whenWeWrote==null || whenWeWrote.longValue() != modStamp);
- }
-
- /*
- * If it's a new CVS directory with the canonical child metafiles then mark it as team-private. Otherwise
- * if changed or deleted
- */
- protected void handleCVSDir(IContainer cvsDir, int kind) {
- if((kind & IResourceDelta.ALL_WITH_PHANTOMS)!=0) {
- if(kind==IResourceDelta.ADDED) {
- // should this dir be made team-private? If it contains CVS/Root and CVS/Repository then yes!
- IFile rootFile = cvsDir.getFile(new Path(SyncFileWriter.ROOT));
- IFile repositoryFile = cvsDir.getFile(new Path(SyncFileWriter.REPOSITORY));
- if(rootFile.exists() && repositoryFile.exists() && !cvsDir.isTeamPrivateMember()) {
- try {
- // TODO: Is this considered a tree modification?
- cvsDir.setTeamPrivateMember(true);
- if(Policy.DEBUG_METAFILE_CHANGES) {
- System.out.println("[cvs] found a new CVS meta folder, marking as team-private: " + cvsDir.getFullPath()); //$NON-NLS-1$
- }
- } catch(CoreException e) {
- CVSProviderPlugin.log(CVSException.wrapException(cvsDir, Policy.bind("SyncFileChangeListener.errorSettingTeamPrivateFlag"), e)); //$NON-NLS-1$
- }
- }
- }
- }
- }
-
- protected boolean isIgnoreFile(IResource resource) {
- return resource.getType() == IResource.FILE &&
- resource.getName().equals(SyncFileWriter.IGNORE_FILE);
- }
-
- /*
- * It's a meta file if it's parent is a team-private CVS folder.
- */
- protected boolean isMetaFile(IResource resource) {
- IContainer parent = resource.getParent();
- return resource.getType() == IResource.FILE &&
- parent!=null &&
- parent.getName().equals(SyncFileWriter.CVS_DIRNAME) &&
- (parent.isTeamPrivateMember() || !parent.exists());
- }
-
- /*
- * This is a meta file (e.g. folder/CVS/Entries), notify that 'folder' and it's immediate children
- * may have their CVS sync state changed. If the 'folder' is deleted than no notification is
- * required.
- */
- protected IContainer[] handleChangedMetaFile(IResource resource) {
- IContainer changedContainer = resource.getParent().getParent();
- if(changedContainer.exists()) {
- return new IContainer[] {changedContainer};
- } else {
- return new IContainer[0];
- }
- }
-
- /**
- * @return boolean
- */
- public boolean isProjectOpening() {
- return isProjectOpening;
- }
-
- /**
- * Sets the isProjectOpening.
- * @param isProjectOpening The isProjectOpening to set
- */
- public void setProjectOpening(boolean isProjectOpening) {
- this.isProjectOpening = isProjectOpening;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileWriter.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileWriter.java
deleted file mode 100644
index 774c30761..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileWriter.java
+++ /dev/null
@@ -1,612 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.util;
-
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-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.IResourceStatus;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-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.core.runtime.QualifiedName;
-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.Policy;
-import org.eclipse.team.internal.ccvs.core.resources.CVSEntryLineTag;
-import org.eclipse.team.internal.ccvs.core.syncinfo.BaserevInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.NotifyInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/*
- * This is a helper class that knows the format of the CVS metafiles. It
- * provides a bridge between the CVS metafile formats and location to the
- * Eclipse CVS client ResourceSyncInfo and FolderSyncInfo types.
- */
-public class SyncFileWriter {
-
- // the famous CVS meta directory name
- public static final String CVS_DIRNAME = "CVS"; //$NON-NLS-1$
-
- // CVS meta files located in the CVS subdirectory
- public static final String REPOSITORY = "Repository"; //$NON-NLS-1$
- public static final String ROOT = "Root"; //$NON-NLS-1$
- public static final String STATIC = "Entries.Static"; //$NON-NLS-1$
- public static final String TAG = "Tag"; //$NON-NLS-1$
- public static final String ENTRIES = "Entries"; //$NON-NLS-1$
- //private static final String PERMISSIONS = "Permissions"; //$NON-NLS-1$
- public static final String ENTRIES_LOG="Entries.Log"; //$NON-NLS-1$
- public static final String NOTIFY = "Notify"; //$NON-NLS-1$
- public static final String BASE_DIRNAME = "Base"; //$NON-NLS-1$
- public static final String BASEREV = "Baserev"; //$NON-NLS-1$
-
- // the local workspace file that contains pattern for ignored resources
- public static final String IGNORE_FILE = ".cvsignore"; //$NON-NLS-1$
-
- // Some older CVS clients may of added a line to the entries file consisting
- // of only a 'D'. It is safe to ingnore these entries.
- private static final String FOLDER_TAG="D"; //$NON-NLS-1$
-
- // Command characters found in the Entries.log file
- private static final String ADD_TAG="A "; //$NON-NLS-1$
- private static final String REMOVE_TAG="R "; //$NON-NLS-1$
-
- // key for saving the mod stamp for each writen meta file
- public static final QualifiedName MODSTAMP_KEY = new QualifiedName("org.eclipse.team.cvs.core", "meta-file-modtime"); //$NON-NLS-1$ //$NON-NLS-2$
-
- /**
- * Reads the CVS/Entries, CVS/Entries.log and CVS/Permissions files from the
- * specified folder and returns ResourceSyncInfo instances for the data stored therein.
- * If the folder does not have a CVS subdirectory then <code>null</code> is returned.
- */
- public static byte[][] readAllResourceSync(IContainer parent) throws CVSException {
- IFolder cvsSubDir = getCVSSubdirectory(parent);
- if (! cvsSubDir.exists()) return null;
-
- // process Entries file contents
- String[] entries = readLines(cvsSubDir.getFile(ENTRIES));
- if (entries == null) return null;
- Map infos = new TreeMap();
- for (int i = 0; i < entries.length; i++) {
- String line = entries[i];
- if(!FOLDER_TAG.equals(line) && !"".equals(line)) { //$NON-NLS-1$
- ResourceSyncInfo info = new ResourceSyncInfo(line, null, null);
- infos.put(info.getName(), info);
- }
- }
-
- // process Entries.log file contents
- String[] entriesLog = readLines(cvsSubDir.getFile(ENTRIES_LOG));
- if (entriesLog != null) {
- for (int i = 0; i < entriesLog.length; i++) {
- String line = entriesLog[i];
- if (line.startsWith(ADD_TAG)) {
- line = line.substring(ADD_TAG.length());
- ResourceSyncInfo info = new ResourceSyncInfo(line, null, null);
- infos.put(info.getName(), info);
- } else if (line.startsWith(REMOVE_TAG)) {
- line = line.substring(REMOVE_TAG.length());
- ResourceSyncInfo info = new ResourceSyncInfo(line, null, null);
- infos.remove(info.getName());
- }
- }
- }
-
- //return (ResourceSyncInfo[])infos.values().toArray(new ResourceSyncInfo[infos.size()]);
- byte[][] result = new byte[infos.size()][];
- int i = 0;
- for (Iterator iter = infos.values().iterator(); iter.hasNext();) {
- ResourceSyncInfo info = (ResourceSyncInfo) iter.next();
- result[i++] = info.getBytes();
- }
- return result;
- }
-
- public static void writeAllResourceSync(IContainer parent, byte[][] infos) throws CVSException {
- try {
- IFolder cvsSubDir = createCVSSubdirectory(parent);
-
- // format file contents
- String[] entries = new String[infos.length];
- for (int i = 0; i < infos.length; i++) {
- byte[] info = infos[i];
- entries[i] = new String(info);
- }
-
- // write Entries
- writeLines(cvsSubDir.getFile(ENTRIES), entries);
-
- // delete Entries.log
- cvsSubDir.getFile(ENTRIES_LOG).delete(IResource.NONE, null);
- } catch(CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
- /**
- * Reads the CVS/Root, CVS/Repository, CVS/Tag, and CVS/Entries.static files from
- * the specified folder and returns a FolderSyncInfo instance for the data stored therein.
- * If the folder does not have a CVS subdirectory then <code>null</code> is returned.
- */
- public static FolderSyncInfo readFolderSync(IContainer folder) throws CVSException {
- IFolder cvsSubDir = getCVSSubdirectory(folder);
- if (! cvsSubDir.exists()) return null;
-
- // check to make sure the the cvs folder is hidden
- if (!cvsSubDir.isTeamPrivateMember()) {
- try {
- cvsSubDir.setTeamPrivateMember(true);
- } catch (CoreException e) {
- CVSProviderPlugin.log(e);
- }
- }
-
- // read CVS/Root
- String root = readFirstLine(cvsSubDir.getFile(ROOT));
- if (root == null) return null;
-
- // read CVS/Repository
- String repository = readFirstLine(cvsSubDir.getFile(REPOSITORY));
- if (repository == null) return null;
-
- // read CVS/Tag
- String tag = readFirstLine(cvsSubDir.getFile(TAG));
- CVSTag cvsTag = (tag != null) ? new CVSEntryLineTag(tag) : null;
-
- // read Entries.Static
- String staticDir = readFirstLine(cvsSubDir.getFile(STATIC));
- boolean isStatic = (staticDir != null);
-
- // return folder sync
- return new FolderSyncInfo(repository, root, cvsTag, isStatic);
- }
-
- /**
- * Writes the CVS/Root, CVS/Repository, CVS/Tag, and CVS/Entries.static files to the
- * specified folder using the data contained in the specified FolderSyncInfo instance.
- */
- public static void writeFolderSync(IContainer folder, FolderSyncInfo info) throws CVSException {
- try {
- IFolder cvsSubDir = createCVSSubdirectory(folder);
-
- // write CVS/Root
- writeLines(cvsSubDir.getFile(ROOT), new String[] {info.getRoot()});
-
- // write CVS/Repository
- writeLines(cvsSubDir.getFile(REPOSITORY), new String[] {info.getRepository()});
-
- // write CVS/Tag
- IFile tagFile = cvsSubDir.getFile(TAG);
- if (info.getTag() != null) {
- writeLines(tagFile, new String[] {info.getTag().toEntryLineFormat(false)});
- } else {
- if(tagFile.exists()) {
- tagFile.delete(IResource.NONE, null);
- }
- }
-
- // write CVS/Entries.Static
- IFile staticFile = cvsSubDir.getFile(STATIC);
- if(info.getIsStatic()) {
- // the existance of the file is all that matters
- writeLines(staticFile, new String[] {""}); //$NON-NLS-1$
- } else {
- if(staticFile.exists()) {
- staticFile.delete(IResource.NONE, null);
- }
- }
- } catch(CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * Returns all .cvsignore entries for the specified folder.
- */
- public static String[] readCVSIgnoreEntries(IContainer folder) throws CVSException {
- IFile ignoreFile = folder.getFile(new Path(IGNORE_FILE));
- if (ignoreFile != null) {
- return readLines(ignoreFile);
- }
- return null;
- }
-
- /**
- * Writes all entries to the specified folder's .cvsignore file, overwriting any
- * previous edition of the file.
- */
- public static void writeCVSIgnoreEntries(IContainer folder, String[] patterns) throws CVSException {
- IFile ignoreFile = folder.getFile(new Path(IGNORE_FILE));
- writeLines(ignoreFile, patterns);
- }
-
- /**
- * Delete folder sync is equilavent to removing the CVS subdir.
- */
- public static void deleteFolderSync(IContainer folder) throws CVSException {
- try {
- getCVSSubdirectory(folder).delete(IResource.NONE, null);
- } catch(CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * Reads the CVS/Notify file from the specified folder and returns NotifyInfo instances
- * for the data stored therein. If the folder does not have a CVS subdirectory then <code>null</code> is returned.
- */
- public static NotifyInfo[] readAllNotifyInfo(IContainer parent) throws CVSException {
- IFolder cvsSubDir = getCVSSubdirectory(parent);
- if (! cvsSubDir.exists()) return null;
-
- // process Notify file contents
- String[] entries = readLines(cvsSubDir.getFile(NOTIFY));
- if (entries == null) return null;
- Map infos = new TreeMap();
- for (int i = 0; i < entries.length; i++) {
- String line = entries[i];
- if(!"".equals(line)) { //$NON-NLS-1$
- NotifyInfo info = new NotifyInfo(parent, line);
- infos.put(info.getName(), info);
- }
- }
-
- return (NotifyInfo[])infos.values().toArray(new NotifyInfo[infos.size()]);
- }
-
- /**
- * Writes the CVS/Notify file to the specified folder using the data contained in the
- * specified NotifyInfo instances. A CVS subdirectory must already exist (an exception
- * is thrown if it doesn't).
- */
- public static void writeAllNotifyInfo(IContainer parent, NotifyInfo[] infos) throws CVSException {
- // get the CVS directory
- IFolder cvsSubDir = getCVSSubdirectory(parent);
- // write lines will throw an exception if the CVS directoru does not exist
-
- if (infos.length == 0) {
- // if there are no notify entries, delete the notify file
- try {
- IFile notifyFile = cvsSubDir.getFile(NOTIFY);
- if(notifyFile.exists()) {
- notifyFile.delete(IResource.NONE, null);
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- } else {
- // format file contents
- String[] entries = new String[infos.length];
- for (int i = 0; i < infos.length; i++) {
- NotifyInfo info = infos[i];
- entries[i] = info.getNotifyLine();
- }
-
- // write Notify entries
- writeLines(cvsSubDir.getFile(NOTIFY), entries);
- }
- }
-
- /**
- * Reads the CVS/Baserev file from the specified folder and returns
- * BaserevInfo instances for the data stored therein. If the folder does not
- * have a CVS subdirectory then <code>null</code> is returned.
- */
- public static BaserevInfo[] readAllBaserevInfo(IContainer parent) throws CVSException {
- IFolder cvsSubDir = getCVSSubdirectory(parent);
- if (! cvsSubDir.exists()) return null;
-
- // process Notify file contents
- String[] entries = readLines(cvsSubDir.getFile(BASEREV));
- if (entries == null) return null;
- Map infos = new TreeMap();
- for (int i = 0; i < entries.length; i++) {
- String line = entries[i];
- if(!"".equals(line)) { //$NON-NLS-1$
- BaserevInfo info = new BaserevInfo(line);
- infos.put(info.getName(), info);
- }
- }
-
- return (BaserevInfo[])infos.values().toArray(new BaserevInfo[infos.size()]);
- }
-
- /**
- * Writes the CVS/Baserev file to the specified folder using the data
- * contained in the specified BaserevInfo instances. A CVS subdirectory must
- * already exist (an exception is thrown if it doesn't).
- */
- public static void writeAllBaserevInfo(IContainer parent, BaserevInfo[] infos) throws CVSException {
- // get the CVS directory
- IFolder cvsSubDir = getCVSSubdirectory(parent);
- // write lines will throw an exception if the CVS directory does not exist
-
- // format file contents
- String[] entries = new String[infos.length];
- for (int i = 0; i < infos.length; i++) {
- BaserevInfo info = infos[i];
- entries[i] = info.getEntryLine();
- }
-
- // write Notify entries
- writeLines(cvsSubDir.getFile(BASEREV), entries);
- }
-
- /**
- * Returns the CVS subdirectory for this folder.
- */
- private static IFolder getCVSSubdirectory(IContainer folder) throws CVSException {
- return folder.getFolder(new Path(CVS_DIRNAME));
- }
-
- /**
- * Creates and makes team-private and returns a CVS subdirectory in this folder.
- */
- private static IFolder createCVSSubdirectory(IContainer folder) throws CVSException {
- try {
- final IFolder cvsSubDir = getCVSSubdirectory(folder);
- if (! cvsSubDir.exists()) {
- // important to have both the folder creation and setting of team-private in the
- // same runnable so that the team-private flag is set before other delta listeners
- // sees the CVS folder creation.
- ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- cvsSubDir.create(false /*don't force*/, true /*make local*/, null);
- cvsSubDir.setTeamPrivateMember(true);
- }
- }, folder, null);
- }
- return cvsSubDir;
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /*
- * Reads the first line of the specified file.
- * Returns null if the file does not exist, or the empty string if it is blank.
- */
- private static String readFirstLine(IFile file) throws CVSException {
- if (! file.exists()) return null;
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(file.getContents()));
- try {
- String line = reader.readLine();
- if (line == null) return ""; //$NON-NLS-1$
- return line;
- } finally {
- reader.close();
- }
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /*
- * Reads all lines of the specified file.
- * Returns null if the file does not exist.
- */
- private static String[] readLines(IFile file) throws CVSException {
- try {
- 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);
- }
- return (String[]) fileContentStore.toArray(new String[fileContentStore.size()]);
- } finally {
- reader.close();
- }
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- } catch (CoreException e) {
- if (e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND)
- return null;
- throw CVSException.wrapException(e);
- }
- }
-
- /*
- * Reads all lines of the specified file.
- * Returns null if the file does not exist.
- */
- public static byte[][] readLines(InputStream stream) throws CVSException {
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
- List fileContentStore = new ArrayList();
- try {
- String line;
- while ((line = reader.readLine()) != null) {
- fileContentStore.add(line.getBytes());
- }
- return (byte[][]) fileContentStore.toArray(new byte[fileContentStore.size()][]);
- } finally {
- reader.close();
- }
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /*
- * Writes all lines to the specified file, using linefeed terminators for
- * compatibility with other CVS clients.
- */
- private static void writeLines(final IFile file, final String[] contents) throws CVSException {
- try {
- // The creation of sync files has to be in a runnable in order for the resulting delta
- // to include the MODSTAMP value. If not in a runnable then create/setContents
- // will trigger a delta and the SyncFileWriter change listener won't know that the delta
- // was a result of our own creation.
- ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- try {
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- writeLinesToStreamAndClose(os, contents);
- if(!file.exists()) {
- file.create(new ByteArrayInputStream(os.toByteArray()), IResource.NONE /*don't keep history and don't force*/, null);
- } else {
- file.setContents(new ByteArrayInputStream(os.toByteArray()), IResource.NONE /*don't keep history and don't force*/, null);
- }
- file.setSessionProperty(MODSTAMP_KEY, new Long(file.getModificationStamp()));
- } catch(CVSException e) {
- throw new CoreException(e.getStatus());
- }
- }
- }, file, null);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- private static void writeLinesToStreamAndClose(OutputStream os, String[] contents) throws CVSException {
- try {
- try {
- for (int i = 0; i < contents.length; i++) {
- os.write(contents[i].getBytes());
- os.write(0x0A); // newline byte
- }
- } finally {
- os.close();
- }
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * Method writeFileToBaseDirectory.
- *
- * @param file
- * @param info
- */
- public static void writeFileToBaseDirectory(IFile file, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- try {
- IFolder baseFolder = getBaseDirectory(file);
- if (!baseFolder.exists()) {
- baseFolder.create(false /* force */, true /* local */, Policy.subMonitorFor(monitor, 10));
- }
- IFile target = baseFolder.getFile(new Path(file.getName()));
- if (target.exists()) {
- // XXX Should ensure that we haven't already copied it
- // XXX write the revision to the CVS/Baserev file
- target.delete(true, Policy.subMonitorFor(monitor, 10));
- }
- // Copy the file so the timestamp is maintained
- file.copy(target.getFullPath(), true /* force */, Policy.subMonitorFor(monitor, 80));
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- }
- /**
- * Method restoreFileFromBaseDirectory.
- * @param file
- * @param info
- * @param monitor
- */
- public static void restoreFileFromBaseDirectory(IFile file, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- try {
- IFolder baseFolder = getBaseDirectory(file);
- IFile source = baseFolder.getFile(new Path(file.getName()));
- if (!source.exists()) {
- throw new CVSException(Policy.bind("SyncFileWriter.baseNotAvailable", file.getFullPath().toString())); //$NON-NLS-1$
- }
- if (file.exists()) {
- file.delete(false /* force */, true /* keep history */, Policy.subMonitorFor(monitor, 10));
- }
- // Copy the file so the timestamp is maintained
- source.move(file.getFullPath(), false /* force */, true /* keep history */,Policy.subMonitorFor(monitor, 100));
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Method deleteFileFromBaseDirectory.
- * @param file
- * @param monitor
- */
- public static void deleteFileFromBaseDirectory(IFile file, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- try {
- IFolder baseFolder = getBaseDirectory(file);
- IFile source = baseFolder.getFile(new Path(file.getName()));
- if (source.exists()) {
- source.delete(false, false, Policy.subMonitorFor(monitor, 100));
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- }
-
- private static IFolder getBaseDirectory(IFile file) throws CVSException {
- IContainer cvsFolder = getCVSSubdirectory(file.getParent());
- IFolder baseFolder = cvsFolder.getFolder(new Path(BASE_DIRNAME));
- return baseFolder;
- }
-
- /**
- * Return a handle to the CVS/Template file for the given folder
- * @param folder
- * @return IFile
- * @throws CVSException
- */
- public static IFile getTemplateFile(IContainer folder) throws CVSException {
- IFolder cvsFolder = createCVSSubdirectory(folder);
- return cvsFolder.getFile("Template"); //$NON-NLS-1$
- }
-
- /**
- * Method isEdited.
- * @param resource
- * @return boolean
- */
- public static boolean isEdited(IFile file) throws CVSException {
- IFolder baseFolder = getBaseDirectory(file);
- IFile baseFile = baseFolder.getFile(file.getName());
- return baseFile.exists();
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Util.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Util.java
deleted file mode 100644
index ba67eef69..000000000
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/Util.java
+++ /dev/null
@@ -1,578 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.core.util;
-
-
-import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.internal.ccvs.core.*;
-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.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.Policy;
-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.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * Unsorted static helper-methods
- */
-public class Util {
-
- /**
- * Return the last segment of the given path
- * @param path
- * @return String
- */
- public static String getLastSegment(String path) {
- int index = path.lastIndexOf(Session.SERVER_SEPARATOR);
- if (index == -1) {
- return path;
- }
- if (index == path.length() - 1) {
- return getLastSegment(path.substring(0, index));
- }
- return path.substring(index + 1);
-
- }
-
- /**
- * Return the the given path with the last segment removed
- * @param path
- * @return String
- */
- public static String removeLastSegment(String path) {
- int index = path.lastIndexOf(Session.SERVER_SEPARATOR);
- if (index == -1)
- return ""; //$NON-NLS-1$
- else
- return path.substring(0, index);
-
- }
- /**
- * Return the path without a trailing /
- * @param path
- * @return String
- */
- public static String asPath(String path) {
- if (path.endsWith(Session.SERVER_SEPARATOR)) {
- return path.substring(0, path.length() - Session.SERVER_SEPARATOR.length());
- }
- return path;
- }
- /*
- * *
- * Get the extention of the path of resource
- * relative to the path of root
- *
- * @throws CVSException if root is not a root-folder of resource
- */
- public static String getRelativePath(String rootName, String resourceName)
- throws CVSException {
-
- if (!resourceName.startsWith(rootName) || rootName.length() > resourceName.length()) {
- throw new CVSException(Policy.bind("Util.Internal_error,_resource_does_not_start_with_root_3")); //$NON-NLS-1$
- }
-
- // Otherwise we would get an ArrayOutOfBoundException
- // in case of two equal Resources
- if (rootName.length() == resourceName.length()) {
- return ""; //$NON-NLS-1$
- }
-
- // Remove leading slash if there is one
- String result = resourceName.substring(rootName.length()).replace('\\', '/');
- if (result.startsWith("/")) { //$NON-NLS-1$
- result = result.substring(1);
- }
- return result;
- }
-
- /**
- * Append the prefix and suffix to form a valid CVS path.
- */
- public static String appendPath(String prefix, String suffix) {
- if (prefix.length() == 0 || prefix.equals(Session.CURRENT_LOCAL_FOLDER)) {
- return suffix;
- } else if (prefix.endsWith(Session.SERVER_SEPARATOR)) {
- if (suffix.startsWith(Session.SERVER_SEPARATOR))
- return prefix + suffix.substring(1);
- else
- return prefix + suffix;
- } else if (suffix.startsWith(Session.SERVER_SEPARATOR))
- return prefix + suffix;
- else
- return prefix + Session.SERVER_SEPARATOR + suffix;
- }
-
- public static void logError(String message, Throwable throwable) {
- CVSProviderPlugin.log(IStatus.ERROR, message, throwable);
- }
-
- /**
- * If the number of segments in the relative path of <code>resource</code> to <code>root</code> is
- * greater than <code>split</code> then the returned path is truncated to <code>split</code> number
- * of segments and '...' is shown as the first segment of the path.
- */
- public static String toTruncatedPath(ICVSResource resource, ICVSFolder root, int split) {
- try {
- String stringPath = resource.getRelativePath(root);
- if (stringPath.equals(Session.CURRENT_LOCAL_FOLDER)) {
- return resource.getName();
- }
- String truncatedPath = toTruncatedPath(stringPath, split);
- // Special handling when the root is a project.
- // Append project name to the beginning of the path
- IResource iResource = root.getIResource();
- if (iResource != null && iResource.getType() == IResource.PROJECT) {
- truncatedPath = iResource.getName() + Session.SERVER_SEPARATOR + truncatedPath;
- }
- return truncatedPath;
- } catch(CVSException e) {
- return resource.getName();
- }
- }
-
- public static String toTruncatedPath(String stringPath, int split) {
- // Search backwards until split separators are found
- int count = 0;
- int index = stringPath.length();
- while (count++ < split && index != -1) {
- index = stringPath.lastIndexOf(Session.SERVER_SEPARATOR, index - 1);
- }
- if (index == -1) {
- return stringPath;
- } else {
- return Policy.bind("Util.truncatedPath", stringPath.substring(index)); //$NON-NLS-1$
- }
- }
-
- /**
- * Helper method that will time out when making a socket connection.
- * This is required because there is no way to provide a timeout value
- * when creating a socket and in some instances, they don't seem to
- * timeout at all.
- */
- public static Socket createSocket(final String host, final int port, IProgressMonitor monitor) throws UnknownHostException, IOException {
-
- // Start a thread to open a socket
- final Socket[] socket = new Socket[] { null };
- final Exception[] exception = new Exception[] {null };
- final Thread thread = new Thread(new Runnable() {
- public void run() {
- try {
- Socket newSocket = new Socket(host, port);
- synchronized (socket) {
- if (Thread.interrupted()) {
- // we we're either cancelled or timed out so just close the socket
- newSocket.close();
- } else {
- socket[0] = newSocket;
- }
- }
- } catch (UnknownHostException e) {
- exception[0] = e;
- } catch (IOException e) {
- exception[0] = e;
- }
- }
- });
- thread.start();
-
- // Wait the appropriate number of seconds
- int timeout = CVSProviderPlugin.getPlugin().getTimeout();
- if (timeout == 0) timeout = CVSProviderPlugin.DEFAULT_TIMEOUT;
- for (int i = 0; i < timeout; i++) {
- try {
- // wait for the thread to complete or 1 second, which ever comes first
- thread.join(1000);
- } catch (InterruptedException e) {
- // I think this means the thread was interupted but not necessarily timed out
- // so we don't need to do anything
- }
- synchronized (socket) {
- // if the user cancelled, clean up before preempting the operation
- if (monitor.isCanceled()) {
- if (thread.isAlive()) {
- thread.interrupt();
- }
- if (socket[0] != null) {
- socket[0].close();
- }
- // this method will throw the proper exception
- Policy.checkCanceled(monitor);
- }
- }
- }
- // If the thread is still running (i.e. we timed out) signal that it is too late
- synchronized (socket) {
- if (thread.isAlive()) {
- thread.interrupt();
- }
- }
- if (exception[0] != null) {
- if (exception[0] instanceof UnknownHostException)
- throw (UnknownHostException)exception[0];
- else
- throw (IOException)exception[0];
- }
- if (socket[0] == null) {
- throw new InterruptedIOException(Policy.bind("Util.timeout", host)); //$NON-NLS-1$
- }
- return socket[0];
- }
-
- /**
- * Helper method that will time out when running an external command.
- * This is required because there is no way to provide a timeout value
- * when executing an external command and in some instances, they don't seem to
- * timeout at all.
- */
- public static Process createProcess(final String[] command, IProgressMonitor monitor) throws IOException {
-
- // Start a thread to execute the command and get a handle to the process
- final Process[] process = new Process[] { null };
- final Exception[] exception = new Exception[] {null };
- final Thread thread = new Thread(new Runnable() {
- public void run() {
- try {
- Process newProcess = Runtime.getRuntime().exec(command);
- synchronized (process) {
- if (Thread.interrupted()) {
- // we we're either cancelled or timed out so just destroy the process
- newProcess.destroy();
- } else {
- process[0] = newProcess;
- }
- }
- } catch (IOException e) {
- exception[0] = e;
- }
- }
- });
- thread.start();
-
- // Wait the appropriate number of seconds
- int timeout = CVSProviderPlugin.getPlugin().getTimeout();
- if (timeout == 0) timeout = CVSProviderPlugin.DEFAULT_TIMEOUT;
- for (int i = 0; i < timeout; i++) {
- try {
- // wait for the thread to complete or 1 second, which ever comes first
- thread.join(1000);
- } catch (InterruptedException e) {
- // I think this means the thread was interupted but not necessarily timed out
- // so we don't need to do anything
- }
- synchronized (process) {
- // if the user cancelled, clean up before preempting the operation
- if (monitor.isCanceled()) {
- if (thread.isAlive()) {
- thread.interrupt();
- }
- if (process[0] != null) {
- process[0].destroy();
- }
- // this method will throw the proper exception
- Policy.checkCanceled(monitor);
- }
- }
- }
- // If the thread is still running (i.e. we timed out) signal that it is too late
- synchronized (process) {
- if (thread.isAlive()) {
- thread.interrupt();
- }
- }
- if (exception[0] != null) {
- throw (IOException)exception[0];
- }
- if (process[0] == null) {
- throw new InterruptedIOException(Policy.bind("Util.processTimeout", command[0])); //$NON-NLS-1$
- }
- return process[0];
- }
-
- public static String[] parseIntoSubstrings(String string, String delimiter) {
- List result = new ArrayList();
- int start = 0;
- int index = string.indexOf(delimiter);
- String next;
- while (index != -1) {
- next = string.substring(start, index);
- result.add(next);
- start = index + 1;
- index = string.indexOf(delimiter, start);
- }
- if (start >= string.length()) {
- next = "";//$NON-NLS-1$
- } else {
- next = string.substring(start);
- }
- result.add(next);
- return (String[]) result.toArray(new String[result.size()]);
- }
-
- /**
- * Return the substring at the given index (starting at 0) where each
- * element is delimited by the provided delimiter.
- *
- * @param bytes
- * @param delimiter
- * @param index
- * @param includeRest
- * @return String
- */
- public static String getSubstring(byte[] bytes, byte delimiter, int index, boolean includeRest) {
- byte[] bytesForSlot = getBytesForSlot(bytes, delimiter, index, includeRest);
- if (bytesForSlot == null) {
- return null;
- }
- return new String(bytesForSlot);
- }
-
- /**
- * Return the offset the the Nth delimeter from the given start index.
- * @param bytes
- * @param delimiter
- * @param start
- * @param n
- * @return int
- */
- public static int getOffsetOfDelimeter(byte[] bytes, byte delimiter, int start, int n) {
- int count = 0;
- for (int i = start; i < bytes.length; i++) {
- if (bytes[i] == delimiter) count++;
- if (count == n) return i;
- }
- // the Nth delimeter was not found
- return -1;
- }
-
- /**
- * Method getBytesForSlot.
- * @param syncBytes
- * @param SEPARATOR_BYTE
- * @param i
- * @param b
- * @return byte[]
- */
- public static byte[] getBytesForSlot(byte[] bytes, byte delimiter, int index, boolean includeRest) {
- // Find the starting index
- int start;
- if (index == 0) {
- // make start -1 so that end determination will start at offset 0.
- start = -1;
- } else {
- start = getOffsetOfDelimeter(bytes, delimiter, 0, index);
- if (start == -1) return null;
- }
- // Find the ending index
- int end = getOffsetOfDelimeter(bytes, delimiter, start + 1, 1);
- // Calculate the length
- int length;
- if (end == -1 || includeRest) {
- length = bytes.length - start - 1;
- } else {
- length = end - start - 1;
- }
- byte[] result = new byte[length];
- System.arraycopy(bytes, start + 1, result, 0, length);
- return result;
- }
-
- /**
- * Method equals.
- * @param syncBytes
- * @param oldBytes
- * @return boolean
- */
- public static boolean equals(byte[] syncBytes, byte[] oldBytes) {
- if (syncBytes == null || oldBytes == null) return syncBytes == oldBytes;
- if (syncBytes.length != oldBytes.length) return false;
- for (int i = 0; i < oldBytes.length; i++) {
- if (oldBytes[i] != syncBytes[i]) return false;
- }
- return true;
- }
-
- /**
- * Workaround a CVS bug where a CVS Folder with no immediately contained files has an incorrect
- * Tag type stored in the TAG file. In this case, the tag type is always BRANCH (Tv1)
- *
- * The fix is for folders with no files, use the tag type for the containing project. Since projects almost
- * always have files the TAG file is usually correct.
- *
- * For the case where the folder tag name does not match the project tag name we can not do much so we just
- * return the folder tag which will currently always be a branch.
- *
- * @param resource The IResource being tested. Can not be null.
- * @param tag The CVSTag as reported by CVS for the IResource. May be null.
- * @return CVSTag The corrected tag for the resource. May be null.
- */
-
- public static CVSTag getAccurateFolderTag(IResource resource, CVSTag tag) {
-
- // Determine if the folder contains files as immediate children.
- if (resource.getType() != IResource.FOLDER) {
- return tag;
- }
-
- IResource[] members = null;
- try {
- members = ((IFolder) resource).members();
- } catch (CoreException e1) {
- return tag;
- }
-
- for (int i = 0; i < members.length; i++) {
- if (members[i].getType() == IResource.FILE) {
- return tag;
- }
- }
-
- // Folder contains no files so this may not really be a branch.
- // Make the type the same as the project tag type if both are the same tag name.
- IProject project = resource.getProject();
- if (project == null) {
- return tag;
- }
-
- ICVSFolder projectFolder = CVSWorkspaceRoot.getCVSFolderFor(project);
- FolderSyncInfo projectSyncInfo;
- try {
- projectSyncInfo = projectFolder.getFolderSyncInfo();
- } catch (CVSException e) {
- return tag;
- }
-
- if (projectSyncInfo == null) {
- return tag;
- }
-
- CVSTag projectTag = projectSyncInfo.getTag();
-
- if (projectTag != null && projectTag.getName().equals(tag.getName())) {
- return projectTag;
- } else {
- return tag;
- }
- }
-
- /**
- * Workaround for CVS "bug" where CVS ENTRIES file does not contain correct
- * Branch vs. Version info. Entries files always record a Tv1 so all entries would
- * appear as branches.
- *
- * By comparing the revision number to the tag name
- * you can determine if the tag is a branch or version.
- *
- * @param cvsResource the resource to test. Must nut be null.
- * @return the correct cVSTag. May be null.
- */
-
- public static CVSTag getAccurateFileTag(ICVSResource cvsResource) throws CVSException {
-
- CVSTag tag = null;
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- if(info != null) {
- tag = info.getTag();
- }
-
- FolderSyncInfo parentInfo = cvsResource.getParent().getFolderSyncInfo();
- CVSTag parentTag = null;
- if(parentInfo != null) {
- parentTag = parentInfo.getTag();
- }
-
- if(tag != null) {
- if(tag.getName().equals(info.getRevision())) {
- tag = new CVSTag(tag.getName(), CVSTag.VERSION);
- } else if(parentTag != null){
- tag = new CVSTag(tag.getName(), parentTag.getType());
- }
- } else {
- // if a file doesn't have tag info, very possible for example
- // when the file is in HEAD, use the parents.
- tag = parentTag;
- }
-
- return tag;
- }
-
- /**
- * Return the fullest path that we can obtain for the given resource
- * @param resource
- * @return
- */
- public static String getFullestPath(ICVSResource resource) {
- try {
- IResource local = resource.getIResource();
- if (local != null) {
- return local.getFullPath().toString();
- }
- } catch (CVSException e) {
- // Ignore and try the next method;
- }
- try {
- String remotePath = resource.getRepositoryRelativePath();
- if (remotePath != null) {
- return remotePath;
- }
- } catch (CVSException e) {
- // Ignore and try the next method;
- }
- return resource.getName();
- }
-
- public static String getVariablePattern(String pattern, String variableName) {
- return "(" + variableName + ":" + pattern + ":" + variableName + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- }
-
- /**
- * @param localRevision
- * @return
- */
- public static int[] convertToDigits(String localRevision) {
- try {
- String digitStrings[] = localRevision.split("\\."); //$NON-NLS-1$
- int[] digits = new int[digitStrings.length];
- for (int i = 0; i < digitStrings.length; i++) {
- String digitString = digitStrings[i];
- digits[i] = Integer.parseInt(digitString);
- }
- return digits;
- } catch (NumberFormatException e) {
- CVSProviderPlugin.log(CVSException.wrapException(e));
- return new int[0];
- }
- }
-
- public static String toTruncatedPath(ICVSStorage file, ICVSFolder localRoot, int i) {
- if (file instanceof ICVSResource) {
- return toTruncatedPath((ICVSResource)file, localRoot, i);
- }
- return file.getName();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/.classpath b/bundles/org.eclipse.team.cvs.ui/.classpath
deleted file mode 100644
index 065ac06e1..000000000
--- a/bundles/org.eclipse.team.cvs.ui/.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.ui/.cvsignore b/bundles/org.eclipse.team.cvs.ui/.cvsignore
deleted file mode 100644
index fe99505dc..000000000
--- a/bundles/org.eclipse.team.cvs.ui/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-
diff --git a/bundles/org.eclipse.team.cvs.ui/.options b/bundles/org.eclipse.team.cvs.ui/.options
deleted file mode 100644
index 6c209bcfb..000000000
--- a/bundles/org.eclipse.team.cvs.ui/.options
+++ /dev/null
@@ -1,7 +0,0 @@
-# Debugging options for the org.eclipse.team.cvs.ui plugin.
-
-# Turn on debugging for the plugin.
-org.eclipse.team.cvs.ui/debug=false
-
-# Shows buffering and flushing of CVS console info to the console document
-org.eclipse.team.cvs.ui/consolebuffering=false
diff --git a/bundles/org.eclipse.team.cvs.ui/.project b/bundles/org.eclipse.team.cvs.ui/.project
deleted file mode 100644
index 2e8b0ec7f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.team.cvs.ui</name>
- <comment></comment>
- <projects>
- <project>org.eclipse.compare</project>
- <project>org.eclipse.core.resources</project>
- <project>org.eclipse.core.resources.spysupport</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.cvs.core</project>
- <project>org.eclipse.team.ui</project>
- <project>org.eclipse.ui</project>
- <project>org.eclipse.ui.console</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/bundles/org.eclipse.team.cvs.ui/about.html b/bundles/org.eclipse.team.cvs.ui/about.html
deleted file mode 100644
index 9db411aab..000000000
--- a/bundles/org.eclipse.team.cvs.ui/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.team.cvs.ui/build.properties b/bundles/org.eclipse.team.cvs.ui/build.properties
deleted file mode 100644
index 405e31126..000000000
--- a/bundles/org.eclipse.team.cvs.ui/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.teamcvsui.jar=src/
-src.includes=about.html
-bin.includes=about.html,icons/,plugin.xml,plugin.properties,*.jar \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/clear_co.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/clear_co.gif
deleted file mode 100644
index 255832653..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/collapseall.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/collapseall.gif
deleted file mode 100644
index 0bae56c34..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/filter_history.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/filter_history.gif
deleted file mode 100644
index 1492b4efa..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/filter_history.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/newstream_wiz.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/newstream_wiz.gif
deleted file mode 100644
index fffccf7a7..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/newstream_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/refresh.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/refresh.gif
deleted file mode 100644
index a063c230a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/synced.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/synced.gif
deleted file mode 100644
index f865f3a39..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/clcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/annotate.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/annotate.gif
deleted file mode 100644
index f0e0cae03..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/annotate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/checkout.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/checkout.gif
deleted file mode 100644
index 1409330d8..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/checkout.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/contents.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/contents.gif
deleted file mode 100644
index 133140dc6..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/contents.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/history.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/history.gif
deleted file mode 100644
index 0d78ca31b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ctool16/history.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/annotate_view.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/annotate_view.gif
deleted file mode 100644
index d28c2519d..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/annotate_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/console_view.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/console_view.gif
deleted file mode 100644
index 99aed6cba..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/console_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/cvs_persp.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/cvs_persp.gif
deleted file mode 100644
index 4761ce75a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/cvs_persp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/history_view.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/history_view.gif
deleted file mode 100644
index 24ed918b3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/history_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/rep_editors_view.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/rep_editors_view.gif
deleted file mode 100644
index b3823f4dc..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/rep_editors_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/repo_rep.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/repo_rep.gif
deleted file mode 100644
index 8ade8a019..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/cview16/repo_rep.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/clear_co.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/clear_co.gif
deleted file mode 100644
index d873c49b8..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/filter_history.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/filter_history.gif
deleted file mode 100644
index 2b6285b75..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/filter_history.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/refresh.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/refresh.gif
deleted file mode 100644
index b2281b40c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/dlcl16/refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/dtool16/contents.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/dtool16/contents.gif
deleted file mode 100644
index ca68c5d47..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/dtool16/contents.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/clear_co.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/clear_co.gif
deleted file mode 100644
index 6faf8d66f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/collapseall.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/collapseall.gif
deleted file mode 100644
index 3409b11b3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/filter_history.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/filter_history.gif
deleted file mode 100644
index 537265693..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/filter_history.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/refresh.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/refresh.gif
deleted file mode 100644
index 919423d43..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/synced.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/synced.gif
deleted file mode 100644
index ae5d5488c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/elcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/etool16/contents.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/etool16/contents.gif
deleted file mode 100644
index 684e659cc..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/etool16/contents.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph1.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph1.gif
deleted file mode 100644
index 706dc020e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph2.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph2.gif
deleted file mode 100644
index 1492b4efa..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph3.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph3.gif
deleted file mode 100644
index 5a8c7ea96..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph4.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph4.gif
deleted file mode 100644
index 6152fd7e2..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph5.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph5.gif
deleted file mode 100644
index 19df9ae7d..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph6.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph6.gif
deleted file mode 100644
index 9b278e6fa..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph7.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph7.gif
deleted file mode 100644
index a063c230a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph7.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph8.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph8.gif
deleted file mode 100644
index 9ed470d02..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/glyphs/glyph8.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/branches_rep.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/branches_rep.gif
deleted file mode 100644
index 21cc9f7b0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/branches_rep.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/module_rep.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/module_rep.gif
deleted file mode 100644
index 72b2dd1ac..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/module_rep.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/prjversions_rep.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/prjversions_rep.gif
deleted file mode 100644
index 72258bdef..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/prjversions_rep.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/repository_rep.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/repository_rep.gif
deleted file mode 100644
index 197a669f6..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/repository_rep.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/tag.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/tag.gif
deleted file mode 100644
index dc5a486d3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/tag.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/versions_rep.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/versions_rep.gif
deleted file mode 100644
index 9b55c268c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/obj16/versions_rep.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/confauto_ov.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/confauto_ov.gif
deleted file mode 100644
index 65d335d36..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/confauto_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/edited_ov.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/edited_ov.gif
deleted file mode 100644
index e750fd58e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/edited_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/merged_ov.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/merged_ov.gif
deleted file mode 100644
index 2616852d4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/merged_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/no_remotedir_ov.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/no_remotedir_ov.gif
deleted file mode 100644
index 0a63808bc..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/no_remotedir_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/question_ov.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/question_ov.gif
deleted file mode 100644
index 62903bf50..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/ovr16/question_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/cvs_synch.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/cvs_synch.gif
deleted file mode 100644
index c4a11c3cc..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/cvs_synch.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/newconnect_wiz.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/newconnect_wiz.gif
deleted file mode 100644
index ead6e3cc4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/newconnect_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/newlocation_wiz.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/newlocation_wiz.gif
deleted file mode 100644
index 81483819d..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/wizards/newlocation_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/createpatch_wizban.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/createpatch_wizban.gif
deleted file mode 100644
index 442f976f6..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/createpatch_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/keywordsub_wizban.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/keywordsub_wizban.gif
deleted file mode 100644
index e5f67afb5..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/keywordsub_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/mergestream_wizban.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/mergestream_wizban.gif
deleted file mode 100644
index 218d49973..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/mergestream_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/newconnect_wizban.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/newconnect_wizban.gif
deleted file mode 100644
index 41a82848b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/newconnect_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/newlocation_wizban.gif b/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/newlocation_wizban.gif
deleted file mode 100644
index 8f6b2dfca..000000000
--- a/bundles/org.eclipse.team.cvs.ui/icons/full/wizban/newlocation_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.properties b/bundles/org.eclipse.team.cvs.ui/plugin.properties
deleted file mode 100644
index 0b090f018..000000000
--- a/bundles/org.eclipse.team.cvs.ui/plugin.properties
+++ /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
-###############################################################################
-providerName=Eclipse.org
-pluginName=CVS Team Provider UI
-
-CVS=CVS
-
-CVSRepositoryExploring=CVS Repository Exploring
-
-CVSGroupMenu.label=C&VS
-
-SharingWizard.name=CVS
-
-CVSWorkspaceParticipant=CVS Workspace
-CVSMergeParticipant=CVS Merge
-
-PreferencePage.name=CVS
-ConsolePreferencePage.name=Console
-DecoratorPreferencePage.name=Label Decorations
-ExtMethodPreferencePage.name=Ext Connection Method
-WatchEditPreferencePage.name=Watch/Edit
-
-DecoratorStandard.name=CVS
-DecoratorStandard.desc=Shows CVS specific information on resources in projects under CVS control. Information includes the revision number, branch or version name, etc.
-
-AddAction.label=&Add to Version Control
-AddAction.tooltip=Add the Selected Resources to Version Control
-
-MergeAction.label=&Merge...
-MergeAction.tooltip=Merge
-
-BranchAction.label=&Branch...
-BranchAction.tooltip=Branch
-
-CompareRemoteResourcesAction.label=Com&pare
-CompareRemoteResourcesAction.tooltip=Compare the Remote Resources with Each Other
-
-CompareRemoteWithTagAction.label=Compare &With...
-CompareRemoteWithTagAction.tooltip=Compare with a Branch or a Version
-
-CompareWithRemoteAction.label=&Latest from Repository
-CompareWithRemoteAction.tooltip=Compare with Content on CVS Server
-
-CompareWithRevisionAction.label=&Revision...
-CompareWithRevisionAction.tooltip=Compare with Revision on CVS Server
-
-CompareWithTagAction.label=Another &Branch or Version...
-CompareWithTagAction.tooltip=Compare with a Branch or a Version on the CVS Server
-
-ContentAction.label=Compare File Contents
-ContentAction.tooltip=Use File Contents Instead of Timestamps When Comparing
-
-ConvertNature.label=Convert Provider from Nature
-ConvertNature.tooltip=Converts a CVS project from using natures to using properties
-
-CopyRepositoryNameAction.label=&Copy to Clipboard
-CopyRepositoryNameAction.tooltip=Copy Repository Names to Clipboard
-
-IgnoreAction.label=A&dd to .cvsignore...
-IgnoreAction.tooltip=Ignore the Selected Resources when Synchronizing
-
-RefreshTagsAction.label=Refresh &Branches...
-RefreshTagsAction.tooltip=Refresh the branch tags and their members using the auto-refresh files associated with each remote folder
-
-RemoveRootAction.label=Discard &Location
-RemoveRootAction.tooltip=Discard Location
-
-ReplaceWithRevisionAction.label=&Revision...
-ReplaceWithRevisionAction.tooltip=Replace with Revision on CVS Server
-
-ReplaceWithTagAction.label=&Another Branch or Version...
-ReplaceWithTagAction.tooltip=Replace with Branch or Version on the CVS Server
-
-TagAction.label=&Tag as Version...
-TagAction.tooltip=Tag the resources with a CVS version tag
-
-TagInRepositoryAction.label=&Tag as Version...
-TagInRepositoryAction.tooltip=Tag the resources with a CVS version tag
-
-MoveTagAction.label=Tag with &Existing...
-MoveTagAction.tooltip=Tag the selected resources with an existing tag
-
-SetKeywordSubstitutionAction.label=C&hange ASCII/Binary Property...
-SetKeywordSubstitutionAction.tooltip=Change whether the selected resources should be treated as ASCII or binary on the CVS Server
-
-UpdateAction.label=&Update
-UpdateAction.tooltip=Update
-
-ReplaceWithAction.label=&Latest from Repository
-ReplaceWithAction.tooltip=Replace with last committed content from CVS Server
-
-ConfigureTags.label=Configure &Branches and Versions...
-ConfigureTags.tooltip=Configure the branch and version tags shown in the workbench
-
-AddToBranch.label=Add &to Branch List...
-AddToBranch.tooltip=Add the selected remote folder to a branch
-
-CommitAction.label=&Commit...
-CommitAction.tooltip=Commit
-
-CheckoutAction.label=&Check Out
-CheckoutAction.tooltip=Check out a module from the repository to the workspace
-
-CheckoutAsAction.label=Check Out &As...
-CheckoutAsAction.tooltip=Check out a module from the repository to the workspace
-
-OpenLogEntryAction.label=&Open
-OpenLogEntryAction.tooltip=Open Remote File
-
-OpenRemoteFileAction.label=&Open
-OpenRemoteFileAction.tooltip=Open Remote File
-
-ShowHistoryAction.label=Show in Resource &History
-ShowHistoryAction.tooltip=Show in Resource History
-
-ShowAnnotationAction.label=Show &Annotation
-ShowAnnotationAction.tooltip=Show Annotation
-
-GenerateDiff.label=Create &Patch...
-GenerateDiff.tooltip=Compare your workspace contents with the server and generate a diff file that can be used as a patch file.
-
-RefreshFromLocal.label=&Refresh from local CVS state
-RefreshFromLocal.tooltip=Refresh the workbench with changes made to CVS projects from outside the workbench.
-
-Synchronize.label=&Synchronize with Repository...
-Synchronize.tooltip=Synchronize the workspace resources with those in the repository
-
-SynchronizeOutgoing.label=S&ynchronize Outgoing Changes...
-SynchronizeOutgoing.tooltip=Synchronize the outgoing changes with the repository
-
-EditAction.label=&Edit
-EditAction.tooltip=Perform a ''cvs edit'' on the selected files
-
-UneditAction.label=U&nedit
-UneditAction.tooltip=Perform a ''cvs unedit'' on the selected files
-
-viewCategory=CVS
-
-Console.name=CVS Console
-
-RepositoriesView.name=CVS Repositories
-
-HistoryFilter.label=&Filter History
-HistoryFilter.tooltip=Filter History
-
-HistoryView.name=CVS Resource History
-
-UnmanageFolder.label=&Disconnect...
-UnmanageFolder.tooltip=Disconnect from the CVS repository.
-
-CVSActionSet.categoryName=CVS
-CVSActionSet.description=Actions that apply when working with CVS repositories
-CVSActionSet.newLabel=Add CVS Repository
-CVSActionSet.newTooltip=Add CVS Repository
-
-RestoreFromRepositoryAction.label=&Restore from Repository...
-RestoreFromRepositoryAction.tooltip=Restore resources that have been deleted from the remote folder.
-
-ShowEditorsAction.label=Show Editors
-ShowEditorsAction.tooltip=Perform a ''cvs editors'' on the selected file
-
-EditorsView.name=CVS Editors
-AnnotateView.name=CVS Annotate
-CVSConsoleFont.label=CVS Console Font
-CVSConsoleFont.description=The font for the CVS console.
-
-CVSWorkspaceSubscriber.update.label=&Update
-CVSWorkspaceSubscriber.update.tooltip=Perform an update on the visible resources
-
-CVSWorkspaceSubscriber.commit.label=&Commit...
-CVSWorkspaceSubscriber.commit.tooltip=Perform a commit on the visible resources
-
-CVSWorkspaceSubscriber.overcommit.label=&Override and Commit...
-CVSWorkspaceSubscriber.overcommit.tooltip=Perform an override and commit on the visible resources. This will make the remote contents equal to the local ignoring any remote changes.
-
-CVSWorkspaceSubscriber.overupdate.label=O&verride and Update
-CVSWorkspaceSubscriber.overupdate.tooltip=Perform an override and update on the visible resources. This will make the local contents equal to the remote ignoring any local changes.
-
-CVSWorkspaceSubscriber.confirmMerged.label=&Mark as Merged
-CVSWorkspaceSubscriber.confirmMerged.tooltip=Mark the conflict as merged by upgrading the base to match the remote
-
-CVSWorkspaceSubscriber.merge.label=&Update
-CVSWorkspaceSubscriber.merge.tooltip=Perform an update merge on the visible resources
-
-CVSCompareSubscriber.revert.label=Re&vert Local to Remote
-CVSCompareSubscriber.revert.tooltip=Revert the local file contents to match that of their corresponding remotes
-
-WorkInProgress.name=Work In Progress
-CVSRemoteQuickDiffProvider.label=Latest CVS Revision \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.xml b/bundles/org.eclipse.team.cvs.ui/plugin.xml
deleted file mode 100644
index f65ad3cc9..000000000
--- a/bundles/org.eclipse.team.cvs.ui/plugin.xml
+++ /dev/null
@@ -1,995 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.team.cvs.ui"
- name="%pluginName"
- version="3.0.0"
- provider-name="%providerName"
- class="org.eclipse.team.internal.ccvs.ui.CVSUIPlugin">
-
- <runtime>
- <library name="teamcvsui.jar">
- <export name="*"/>
- <packages prefixes="org.eclipse.team.internal.ccvs.ui"/>
- </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.runtime"/>
- <import plugin="org.eclipse.core.resources"/>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.ui.console"/>
- <import plugin="org.eclipse.team.core"/>
- <import plugin="org.eclipse.team.ui"/>
- <import plugin="org.eclipse.team.cvs.core"/>
- <import plugin="org.eclipse.compare"/>
- </requires>
-
-<!-- *************** Synchronize View Participant **************** -->
-<extension
- point="org.eclipse.team.ui.synchronizeParticipants">
- <participant
- name="%CVSWorkspaceParticipant"
- icon="icons/full/cview16/cvs_persp.gif"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant"
- type="static"
- id="org.eclipse.team.cvs.ui.cvsworkspace-participant">
- </participant>
- <participant
- name="%CVSMergeParticipant"
- icon="icons/full/clcl16/newstream_wiz.gif"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.MergeSynchronizeParticipant"
- type="dynamic"
- id="org.eclipse.team.cvs.ui.cvsmerge-participant">
- </participant>
-</extension>
-
-<!-- *************** Authenticator **************** -->
- <extension
- point="org.eclipse.team.cvs.core.authenticator">
- <authenticator>
- <run
- class="org.eclipse.team.internal.ccvs.ui.WorkbenchUserAuthenticator">
- </run>
- </authenticator>
- </extension>
-<!-- *************** CVS File Modification Validator **************** -->
- <extension
- point="org.eclipse.team.cvs.core.filemodificationvalidator">
- <validator>
- <run
- class="org.eclipse.team.internal.ccvs.ui.FileModificationValidator">
- </run>
- </validator>
- </extension>
-<!-- ******************* Wizards ****************** -->
- <extension
- point="org.eclipse.team.ui.configurationWizards">
- <wizard
- name="%SharingWizard.name"
- icon="icons/full/wizards/newconnect_wiz.gif"
- class="org.eclipse.team.internal.ccvs.ui.wizards.SharingWizard"
- id="org.eclipse.team.ccvs.ui.SharingWizard">
- </wizard>
- </extension>
-<!-- ************** Property Pages *************** -->
- <extension
- point="org.eclipse.ui.propertyPages">
- <page
- objectClass="org.eclipse.core.resources.IFile"
- adaptable="true"
- name="%CVS"
- class="org.eclipse.team.internal.ccvs.ui.CVSFilePropertiesPage"
- id="org.eclipse.team.ccvs.ui.propertyPages.CVSFilePropertiesPage">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- </page>
- <page
- objectClass="org.eclipse.core.resources.IFolder"
- adaptable="true"
- name="%CVS"
- class="org.eclipse.team.internal.ccvs.ui.CVSFolderPropertiesPage"
- id="org.eclipse.team.ccvs.ui.propertyPages.CVSFolderPropertiesPage">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- </page>
- <page
- objectClass="org.eclipse.core.resources.IProject"
- adaptable="true"
- name="%CVS"
- class="org.eclipse.team.internal.ccvs.ui.CVSProjectPropertiesPage"
- id="org.eclipse.team.ccvs.ui.propertyPages.CVSProjectPropertiesPage">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- </page>
- <page
- objectClass="org.eclipse.team.internal.ccvs.ui.repo.RepositoryRoot"
- name="%CVS"
- class="org.eclipse.team.internal.ccvs.ui.repo.CVSRepositoryPropertiesPage"
- id="org.eclipse.team.ccvs.ui.propertyPages.CVSRepositoryPropertiesPage">
- </page>
- </extension>
-
-<!-- ******************* Action Definitions ******************** -->
-
- <extension point="org.eclipse.ui.commands">
- <category
- name="%CVSActionSet.categoryName"
- description="%CVSActionSet.description"
- id="org.eclipse.team.cvs.ui.actionSet">
- </category>
- <command
- category="org.eclipse.team.cvs.ui.actionSet"
- name="%CVSActionSet.newLabel"
- description="%CVSActionSet.newTooltip"
- id="org.eclipse.team.cvs.ui.new.location">
- </command>
- </extension>
-
-<!-- ******************* Menus ******************** -->
- <extension
- point="org.eclipse.ui.popupMenus">
- <objectContribution
- objectClass="org.eclipse.core.resources.IFile"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.IFileContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="%IgnoreAction.label"
- tooltip="%IgnoreAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction"
- menubarPath="team.main/group3"
- helpContextId="org.eclipse.team.cvs.ui.team_ignore_action_context"
- id="org.eclipse.team.ccvs.ui.ignore">
- </action>
- <action
- label="%AddAction.label"
- tooltip="%AddAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.AddAction"
- menubarPath="team.main/group3"
- helpContextId="org.eclipse.team.cvs.ui.team_add_action_context"
- id="org.eclipse.team.ccvs.ui.add">
- </action>
- <action
- label="%ShowHistoryAction.label"
- tooltip="%ShowHistoryAction.tooltip"
- icon="icons/full/ctool16/history.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowResourceInHistoryAction"
- menubarPath="team.main/group2"
- helpContextId="org.eclipse.team.cvs.ui.show_in_history_action_context"
- id="org.eclipse.team.ccvs.ui.showHistory">
- </action>
- <action
- label="%ShowAnnotationAction.label"
- tooltip="%ShowAnnotationAction.tooltip"
- icon="icons/full/ctool16/annotate.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowAnnotationAction"
- menubarPath="team.main/group2"
- helpContextId="org.eclipse.team.cvs.ui.get_annotate_action_context"
- id="org.eclipse.team.ccvs.ui.showAnnotation">
- </action>
- <action
- label="%CompareWithRevisionAction.label"
- tooltip="%CompareWithRevisionAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.CompareWithRevisionAction"
- menubarPath="compareWithMenu/compareWithGroup"
- helpContextId="org.eclipse.team.cvs.ui.compare_with_revision_action_context"
- id="org.eclipse.team.ccvs.ui.compareWithRevision">
- </action>
- <action
- label="%ReplaceWithRevisionAction.label"
- tooltip="%ReplaceWithRevisionAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.CompareWithRevisionAction"
- menubarPath="replaceWithMenu/replaceWithGroup"
- helpContextId="org.eclipse.team.cvs.ui.replace_with_revision_action_context"
- id="org.eclipse.team.ccvs.ui.replaceWithRevision">
- </action>
- <action
- label="%EditAction.label"
- tooltip="%EditAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.EditAction"
- menubarPath="team.main/group4"
- helpContextId="org.eclipse.team.cvs.ui.team_edit_action_context"
- id="org.eclipse.team.ccvs.ui.edit">
- </action>
- <action
- label="%UneditAction.label"
- tooltip="%UneditAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.UneditAction"
- menubarPath="team.main/group4"
- helpContextId="org.eclipse.team.cvs.ui.team_unedit_action_context"
- id="org.eclipse.team.ccvs.ui.unedit">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.core.resources.IResource"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.ResourceContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="%SetKeywordSubstitutionAction.label"
- tooltip="%SetKeywordSubstitutionAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.SetKeywordSubstitutionAction"
- menubarPath="team.main/group3"
- helpContextId="org.eclipse.team.cvs.ui.team_set_keyword_mode_action_context"
- id="org.eclipse.team.ccvs.ui.setKeywordSubstitution">
- </action>
- <action
- label="%MergeAction.label"
- tooltip="%MergeAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.MergeAction"
- menubarPath="team.main/group2"
- helpContextId="org.eclipse.team.cvs.ui.team_merge_action_context"
- id="org.eclipse.team.ccvs.ui.merge">
- </action>
- <action
- label="%BranchAction.label"
- tooltip="%BranchAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.BranchAction"
- menubarPath="team.main/group2"
- helpContextId="org.eclipse.team.cvs.ui.team_branch_action_context"
- id="org.eclipse.team.ccvs.ui.branch">
- </action>
- <action
- label="%TagAction.label"
- tooltip="%TagAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.TagLocalAction"
- menubarPath="team.main/group2"
- helpContextId="org.eclipse.team.cvs.ui.team_tag_as_version_action_context"
- id="org.eclipse.team.ccvs.ui.tag">
- </action>
- <action
- label="%CompareWithTagAction.label"
- tooltip="%CompareWithTagAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.CompareWithTagAction"
- menubarPath="compareWithMenu/compareWithGroup"
- helpContextId="org.eclipse.team.cvs.ui.compare_with_tag_action_context"
- id="org.eclipse.team.ccvs.ui.compareWithTag">
- </action>
- <action
- label="%CompareWithRemoteAction.label"
- tooltip="%CompareWithRemoteAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.CompareWithRemoteAction"
- menubarPath="compareWithMenu/compareWithGroup"
- helpContextId="org.eclipse.team.cvs.ui.compare_with_latest_action_context"
- id="org.eclipse.team.ccvs.ui.compareWithRemote">
- </action>
- <action
- label="%ReplaceWithTagAction.label"
- tooltip="%ReplaceWithTagAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithTagAction"
- menubarPath="replaceWithMenu/replaceWithGroup"
- helpContextId="org.eclipse.team.cvs.ui.replace_with_tag_action_context"
- id="org.eclipse.team.ccvs.ui.replaceWithTag">
- </action>
- <action
- label="%ReplaceWithAction.label"
- tooltip="%ReplaceWithAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithRemoteAction"
- menubarPath="replaceWithMenu/replaceWithGroup"
- helpContextId="org.eclipse.team.cvs.ui.replace_with_latest_action_context"
- id="org.eclipse.team.ccvs.ui.replace">
- </action>
- <action
- label="%GenerateDiff.label"
- tooltip="%GenerateDiff.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.GenerateDiffFileAction"
- menubarPath="team.main/group1"
- helpContextId="org.eclipse.team.cvs.ui.team_create__action_context"
- id="org.eclipse.team.ccvs.ui.GenerateDiff">
- </action>
- <action
- label="%UpdateAction.label"
- tooltip="%UpdateAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.UpdateAction"
- menubarPath="team.main/group1"
- helpContextId="org.eclipse.team.cvs.ui.team_update_action_context"
- id="org.eclipse.team.ccvs.ui.update">
- </action>
- <action
- label="%CommitAction.label"
- tooltip="%CommitAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.CommitAction"
- menubarPath="team.main/group1"
- helpContextId="org.eclipse.team.cvs.ui.team_commit_action_context"
- id="org.eclipse.team.ccvs.ui.commit">
- </action>
- <action
- label="%Synchronize.label"
- tooltip="%Synchronize.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.SyncAction"
- menubarPath="team.main/group1"
- helpContextId="org.eclipse.team.cvs.ui.team_synchronize_action_context"
- id="org.eclipse.team.ccvs.ui.sync">
- </action>
- </objectContribution>
-
- <objectContribution
- objectClass="org.eclipse.core.resources.IResource"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.ResourceContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="%ShowEditorsAction.label"
- tooltip="%ShowEditorsAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowEditorsAction"
- menubarPath="team.main/group4"
- helpContextId="org.eclipse.team.cvs.ui.team_show_editors_action_context"
- id="org.eclipse.team.ccvs.ui.showeditors">
- </action>
- </objectContribution>
-
-
- <!-- ************** Project Menu *************** -->
-
-
- <objectContribution
- objectClass="org.eclipse.core.resources.IProject"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.IProjectContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="%UnmanageFolder.label"
- tooltip="%UnmanageFolder.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.UnmanageAction"
- menubarPath="team.main/projectGroup"
- helpContextId="org.eclipse.team.cvs.ui.team_disconnect_action_context"
- id="org.eclipse.team.ccvs.ui.unmanage">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.core.resources.IContainer"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.IContainerContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="%RestoreFromRepositoryAction.label"
- tooltip="%RestoreFromRepositoryAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.RestoreFromRepositoryAction"
- menubarPath="team.main/group4"
- helpContextId="org.eclipse.team.cvs.ui.team_restore_from_repository_action_context"
- id="org.eclipse.team.ccvs.ui.restoreFromRepository">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.core.resources.IFolder"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.IFolderContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="%IgnoreAction.label"
- tooltip="%IgnoreAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction"
- menubarPath="team.main/group3"
- helpContextId="org.eclipse.team.cvs.ui.team_ignore_action_context"
- id="org.eclipse.team.ccvs.ui.ignore">
- </action>
- <action
- label="%AddAction.label"
- tooltip="%AddAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.AddAction"
- menubarPath="team.main/group3"
- helpContextId="org.eclipse.team.cvs.ui.team_add_action_context"
- id="org.eclipse.team.ccvs.ui.add">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder"
- id="org.eclipse.team.ccvs.ui.RemoteFolderContributions">
- <action
- label="%CheckoutAsAction.label"
- tooltip="%CheckoutAsAction.tooltip"
- menubarPath="checkoutGroup"
- class="org.eclipse.team.internal.ccvs.ui.actions.CheckoutAsAction"
- helpContextId="org.eclipse.team.cvs.ui.checkout_as_action_context"
- id="org.eclipse.team.ccvs.ui.checkoutAs">
- </action>
- <action
- label="%CheckoutAction.label"
- tooltip="%CheckoutAction.tooltip"
- menubarPath="checkoutGroup"
- class="org.eclipse.team.internal.ccvs.ui.actions.CheckoutAction"
- helpContextId="org.eclipse.team.cvs.ui.checkout_as_project_action_context"
- id="org.eclipse.team.ccvs.ui.checkout">
- </action>
- <action
- id="org.eclipse.team.ccvs.ui.configureTagsOnRemoteFolder"
- label="%ConfigureTags.label"
- menubarPath="miscGroup"
- tooltip="%ConfigureTags.tooltip"
- icon="icons/full/clcl16/newstream_wiz.gif"
- helpContextId="org.eclipse.team.cvs.ui.tag_configuration_overview"
- class="org.eclipse.team.internal.ccvs.ui.actions.ConfigureTagsFromRepoViewOnFolder"/>
- <action
- id="org.eclipse.team.ccvs.ui.addToBranch"
- label="%AddToBranch.label"
- menubarPath="miscGroup"
- tooltip="%ddToBranch.tooltip"
- icon="icons/full/clcl16/newstream_wiz.gif"
- helpContextId="org.eclipse.team.cvs.ui.add_to_branch_context"
- class="org.eclipse.team.internal.ccvs.ui.repo.AddToBranchAction"/>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.team.internal.ccvs.core.ICVSRemoteFile"
- id="org.eclipse.team.ccvs.ui.RemoteFileContributions">
- <action
- label="%OpenRemoteFileAction.label"
- tooltip="%OpenRemoteFileAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.OpenRemoteFileAction"
- helpContextId="org.eclipse.team.cvs.ui.open_remote_file_action_context"
- id="org.eclipse.team.ccvs.ui.openRemoteFile">
- </action>
- <action
- label="%ShowHistoryAction.label"
- tooltip="%ShowHistoryAction.tooltip"
- icon="icons/full/ctool16/history.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowHistoryAction"
- helpContextId="org.eclipse.team.cvs.ui.show_in_history_action_context"
- id="org.eclipse.team.ccvs.ui.showHistory">
- </action>
- <action
- label="%ShowAnnotationAction.label"
- tooltip="%ShowAnnotationAction.tooltip"
- icon="icons/full/ctool16/annotate.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowAnnotationAction"
- helpContextId="org.eclipse.team.cvs.ui.get_annotate_action_context"
- id="org.eclipse.team.ccvs.ui.showAnnotation">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.team.internal.ccvs.core.ILogEntry"
- id="org.eclipse.team.ccvs.ui.LogEntryContributions">
- <action
- label="%OpenLogEntryAction.label"
- tooltip="%OpenLogEntryAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.OpenLogEntryAction"
- helpContextId="org.eclipse.team.cvs.ui.open_remote_file_action_context"
- id="org.eclipse.team.ccvs.ui.openLogEntry">
- </action>
- <action
- label="%CompareRemoteResourcesAction.label"
- tooltip="%CompareRemoteResourcesAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.CompareRemoteResourcesAction"
- enablesFor="2"
- helpContextId="org.eclipse.team.cvs.ui.compare_remote_resources_action_context"
- id="org.eclipse.team.ccvs.ui.compareLogEntries">
- </action>
- <action
- label="%ShowAnnotationAction.label"
- tooltip="%ShowAnnotationAction.tooltip"
- icon="icons/full/ctool16/annotate.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowAnnotationAction"
- helpContextId="org.eclipse.team.cvs.ui.get_annotate_action_context"
- id="org.eclipse.team.ccvs.ui.showAnnotation">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.team.internal.ccvs.ui.model.RemoteModule"
- id="org.eclipse.team.ccvs.ui.VersionCategoryContributions">
- <action
- id="org.eclipse.team.ccvs.ui.configureTagsOnRemoteModule"
- label="%ConfigureTags.label"
- tooltip="%ConfigureTags.label"
- icon="icons/full/clcl16/newstream_wiz.gif"
- helpContextId="org.eclipse.team.cvs.ui.tag_configuration_overview"
- class="org.eclipse.team.internal.ccvs.ui.actions.ConfigureTagsFromRepoViewOnFolder"/>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.team.internal.ccvs.ui.model.ProjectVersion"
- id="org.eclipse.team.ccvs.ui.ProjectVersionContributions">
- <action
- id="org.eclipse.team.ccvs.ui.configureTagsOnProjectVersion"
- label="%ConfigureTags.label"
- tooltip="%ConfigureTags.label"
- icon="icons/full/clcl16/newstream_wiz.gif"
- helpContextId="org.eclipse.team.cvs.ui.tag_configuration_overview"
- class="org.eclipse.team.internal.ccvs.ui.actions.ConfigureTagsFromRepoView"/>
- </objectContribution>
-
- <objectContribution
- objectClass="org.eclipse.team.internal.ccvs.ui.repo.RepositoryRoot"
- id="org.eclipse.team.ccvs.ui.RemoteRootContributions">
- <action
- label="%CopyRepositoryNameAction.label"
- tooltip="%CopyRepositoryNameAction.tooltip"
- menubarPath="miscGroup"
- class="org.eclipse.team.internal.ccvs.ui.repo.CopyRepositoryNameAction"
- helpContextId="org.eclipse.team.cvs.ui.copy_repository_name_action_context"
- id="org.eclipse.team.ccvs.ui.copyNames">
- </action>
- <action
- label="%RefreshTagsAction.label"
- icon="icons/full/clcl16/newstream_wiz.gif"
- tooltip="%RefreshTagsAction.tooltip"
- menubarPath="tagGroup"
- class="org.eclipse.team.internal.ccvs.ui.repo.RefreshTagsAction"
- helpContextId="org.eclipse.team.cvs.ui.refresh_tags_action_context"
- id="org.eclipse.team.ccvs.ui.refreshTags">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.team.internal.ccvs.ui.model.BranchCategory"
- id="org.eclipse.team.ccvs.ui.model.BranchCategoryContributions">
- <action
- label="%RefreshTagsAction.label"
- icon="icons/full/clcl16/newstream_wiz.gif"
- tooltip="%RefreshTagsAction.tooltip"
- menubarPath="tagGroup"
- class="org.eclipse.team.internal.ccvs.ui.repo.RefreshTagsAction"
- helpContextId="org.eclipse.team.cvs.ui.refresh_tags_action_context"
- id="org.eclipse.team.ccvs.ui.refreshTags">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.team.internal.ccvs.core.ICVSRemoteResource"
- id="org.eclipse.team.ccvs.ui.RemoteResourceContributions">
- <action
- label="%CompareRemoteResourcesAction.label"
- menubarPath="miscGroup"
- tooltip="%CompareRemoteResourcesAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.CompareRemoteResourcesAction"
- enablesFor="2"
- helpContextId="org.eclipse.team.cvs.ui.compare_remote_resources_action_context"
- id="org.eclipse.team.ccvs.ui.compareRemoteResources">
- </action>
- <action
- label="%CompareRemoteWithTagAction.label"
- menubarPath="miscGroup"
- tooltip="%CompareRemoteWithTagAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.CompareRemoteWithTagAction"
- helpContextId="org.eclipse.team.cvs.ui.compare_remote_with_tag_action_context"
- id="org.eclipse.team.ccvs.ui.compareRemoteWithTag">
- </action>
- <action
- label="%MoveTagAction.label"
- menubarPath="tagGroup"
- tooltip="%MoveTagAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.MoveRemoteTagAction"
- helpContextId="org.eclipse.team.cvs.ui.move_remote_tag_action_context"
- id="org.eclipse.team.ccvs.ui.moveTagInRepository">
- </action>
- <action
- label="%TagInRepositoryAction.label"
- menubarPath="tagGroup"
- tooltip="%TagInRepositoryAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.TagInRepositoryAction"
- helpContextId="org.eclipse.team.cvs.ui.tag_remote_action_context"
- id="org.eclipse.team.ccvs.ui.tagInRepository">
- </action>
- </objectContribution>
- </extension>
-
-<!-- ************* Subscriber Menus ************ -->
-
- <extension
- point="org.eclipse.ui.popupMenus">
- <viewerContribution
- id="org.eclipse.team.ccvs.ui.CVSWorkspaceSubscriberContributions"
- targetID="org.eclipse.team.cvs.ui.cvsworkspace-participant">
- <action
- label="%CVSWorkspaceSubscriber.commit.label"
- menubarPath="SubscriberActionsGroup1"
- tooltip="%CVSWorkspaceSubscriber.commit.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitAction"
- overrideActionId="org.eclipse.team.ccvs.ui.commit"
- helpContextId="org.eclipse.team.cvs.ui.workspace_subscriber_commit_action"
- id="org.eclipse.team.ccvs.ui.CVSWorkspaceSubscriber.commit">
- </action>
- <action
- label="%CVSWorkspaceSubscriber.update.label"
- menubarPath="SubscriberActionsGroup1"
- tooltip="%CVSWorkspaceSubscriber.update.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceUpdateAction"
- overrideActionId="org.eclipse.team.ccvs.ui.update"
- helpContextId="org.eclipse.team.cvs.ui.workspace_subscriber_update_action"
- id="org.eclipse.team.ccvs.ui.CVSWorkspaceSubscriber.update">
- </action>
- <action
- label="%CVSWorkspaceSubscriber.confirmMerged.label"
- menubarPath="SubscriberActionsGroup2"
- tooltip="%CVSWorkspaceSubscriber.confirmMerged.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberConfirmMergedAction"
- helpContextId="org.eclipse.team.cvs.ui.workspace_subscriber_confirm_merged_action"
- id="org.eclipse.team.ccvs.ui.CVSWorkspaceSubscriber.confirmMerged">
- </action>
- <action
- label="%CVSWorkspaceSubscriber.overcommit.label"
- menubarPath="SubscriberActionsGroup2"
- tooltip="%CVSWorkspaceSubscriber.overcommit.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.OverrideAndCommitAction"
- helpContextId="org.eclipse.team.cvs.ui.workspace_subscriber_overcommit_action"
- id="org.eclipse.team.ccvs.ui.CVSWorkspaceSubscriber.overcommit">
- </action>
- <action
- label="%CVSWorkspaceSubscriber.overupdate.label"
- menubarPath="SubscriberActionsGroup2"
- tooltip="%CVSWorkspaceSubscriber.overupdate.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.OverrideAndUpdateAction"
- helpContextId="org.eclipse.team.cvs.ui.workspace_subscriber_overupdate_action"
- id="org.eclipse.team.ccvs.ui.CVSWorkspaceSubscriber.overupdate">
- </action>
- <action
- label="%ShowHistoryAction.label"
- tooltip="%ShowHistoryAction.tooltip"
- icon="icons/full/ctool16/history.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowResourceInHistoryAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.show_in_history_action_context"
- id="org.eclipse.team.ccvs.ui.showHistory">
- </action>
- <action
- label="%ShowAnnotationAction.label"
- tooltip="%ShowAnnotationAction.tooltip"
- icon="icons/full/ctool16/annotate.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowAnnotationAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.get_annotate_action_context"
- id="org.eclipse.team.ccvs.ui.showAnnotation">
- </action>
- <action
- label="%BranchAction.label"
- tooltip="%BranchAction.tooltip"
- icon="icons/full/clcl16/newstream_wiz.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.BranchAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.team_branch_action_context"
- id="org.eclipse.team.ccvs.ui.branch">
- </action>
- <action
- label="%GenerateDiff.label"
- tooltip="%GenerateDiff.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.GenerateDiffFileAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.team_create_patch_action_context"
- id="org.eclipse.team.ccvs.ui.GenerateDiff">
- </action>
- <action
- label="%IgnoreAction.label"
- tooltip="%IgnoreAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.team_ignore_action_context"
- id="org.eclipse.team.ccvs.ui.ignore">
- </action>
- </viewerContribution>
-
- <viewerContribution
- id="org.eclipse.team.ccvs.ui.CVSMergeSubscriberContributions"
- targetID="org.eclipse.team.cvs.ui.cvsmerge-participant">
- <action
- label="%CVSWorkspaceSubscriber.confirmMerged.label"
- menubarPath="SubscriberActionsGroup1"
- tooltip="%CVSWorkspaceSubscriber.confirmMerged.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberConfirmMergedAction"
- helpContextId="org.eclipse.team.cvs.ui.workspace_subscriber_confirm_merged_action"
- id="org.eclipse.team.ccvs.ui.CVSMergeSubscriber.confirmMerged">
- </action>
- <action
- label="%CVSWorkspaceSubscriber.merge.label"
- menubarPath="SubscriberActionsGroup1"
- tooltip="%CVSWorkspaceSubscriber.merge.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.MergeUpdateAction"
- overrideActionId="org.eclipse.team.ccvs.ui.update"
- helpContextId="org.eclipse.team.cvs.ui.workspace_subscriber_merge_action"
- id="org.eclipse.team.ccvs.ui.CVSMergeSubscriber.merge">
- </action>
- <action
- label="%ShowHistoryAction.label"
- tooltip="%ShowHistoryAction.tooltip"
- icon="icons/full/ctool16/history.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowResourceInHistoryAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.show_in_history_action_context"
- id="org.eclipse.team.ccvs.ui.showHistory">
- </action>
- <action
- label="%ShowAnnotationAction.label"
- tooltip="%ShowAnnotationAction.tooltip"
- icon="icons/full/ctool16/annotate.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowAnnotationAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.get_annotate_action_context"
- id="org.eclipse.team.ccvs.ui.showAnnotation">
- </action>
- </viewerContribution>
-
- <viewerContribution
- id="org.eclipse.team.ccvs.ui.CVSCompareSubscriberContributions"
- targetID="org.eclipse.team.cvs.ui.compare-participant">
- <action
- label="%CVSCompareSubscriber.revert.label"
- menubarPath="SubscriberActionsGroup1"
- tooltip="%CVSCompareSubscriber.revert.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.subscriber.CompareRevertAction"
- helpContextId="org.eclipse.team.cvs.ui.compare_revert_action"
- id="org.eclipse.team.ccvs.ui.CVSCompareSubscriber.revert">
- </action>
- <action
- label="%ShowHistoryAction.label"
- tooltip="%ShowHistoryAction.tooltip"
- icon="icons/full/ctool16/history.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowResourceInHistoryAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.show_in_history_action_context"
- id="org.eclipse.team.ccvs.ui.showHistory">
- </action>
- <action
- label="%ShowAnnotationAction.label"
- tooltip="%ShowAnnotationAction.tooltip"
- icon="icons/full/ctool16/annotate.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowAnnotationAction"
- menubarPath="SubscriberActionsGroup3"
- helpContextId="org.eclipse.team.cvs.ui.get_annotate_action_context"
- id="org.eclipse.team.ccvs.ui.showAnnotation">
- </action>
- </viewerContribution>
- </extension>
-
-<!-- ************** Views ********************** -->
- <extension
- point="org.eclipse.ui.views">
- <category
- name="%viewCategory"
- id="org.eclipse.team.ccvs.ui">
- </category>
- <view
- name="%Console.name"
- icon="icons/full/cview16/console_view.gif"
- category="org.eclipse.team.ccvs.ui"
- class="org.eclipse.team.internal.ccvs.ui.Console"
- id="org.eclipse.team.ccvs.ui.console">
- </view>
- <view
- name="%RepositoriesView.name"
- icon="icons/full/cview16/repo_rep.gif"
- category="org.eclipse.team.ccvs.ui"
- fastViewWidthRatio="0.5"
- class="org.eclipse.team.internal.ccvs.ui.repo.RepositoriesView"
- id="org.eclipse.team.ccvs.ui.RepositoriesView">
- </view>
- <view
- name="%HistoryView.name"
- icon="icons/full/cview16/history_view.gif"
- category="org.eclipse.team.ccvs.ui"
- class="org.eclipse.team.internal.ccvs.ui.HistoryView"
- id="org.eclipse.team.ccvs.ui.HistoryView">
- </view>
- <view
- name="%EditorsView.name"
- icon="icons/full/cview16/rep_editors_view.gif"
- category="org.eclipse.team.ccvs.ui"
- class="org.eclipse.team.internal.ccvs.ui.EditorsView"
- id="org.eclipse.team.ccvs.ui.EditorsView">
- </view>
- <view
- name="%AnnotateView.name"
- icon="icons/full/cview16/annotate_view.gif"
- category="org.eclipse.team.ccvs.ui"
- class="org.eclipse.team.internal.ccvs.ui.AnnotateView"
- id="org.eclipse.team.ccvs.ui.AnnotateView">
- </view>
- </extension>
-<!-- **************** Preferences ******************* -->
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- name="%PreferencePage.name"
- category="org.eclipse.team.ui.TeamPreferences"
- class="org.eclipse.team.internal.ccvs.ui.CVSPreferencesPage"
- id="org.eclipse.team.cvs.ui.CVSPreferences">
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- name="%ConsolePreferencePage.name"
- category="org.eclipse.team.cvs.ui.CVSPreferences"
- class="org.eclipse.team.internal.ccvs.ui.ConsolePreferencesPage"
- id="org.eclipse.team.cvs.ui.ConsolePreferences">
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- name="%DecoratorPreferencePage.name"
- category="org.eclipse.team.cvs.ui.CVSPreferences"
- class="org.eclipse.team.internal.ccvs.ui.CVSDecoratorPreferencesPage"
- id="org.eclipse.team.cvs.ui.CVSDecoratorPreferences">
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- name="%ExtMethodPreferencePage.name"
- category="org.eclipse.team.cvs.ui.CVSPreferences"
- class="org.eclipse.team.internal.ccvs.ui.ExtMethodPreferencePage"
- id="org.eclipse.team.cvs.ui.ExtMethodPreferencePage">
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- name="%WatchEditPreferencePage.name"
- category="org.eclipse.team.cvs.ui.CVSPreferences"
- class="org.eclipse.team.internal.ccvs.ui.WatchEditPreferencePage"
- id="org.eclipse.team.cvs.ui.WatchEditPreferencePage">
- </page>
- </extension>
-
-<!-- **************** Decorator ******************* -->
- <extension
- point="org.eclipse.ui.decorators">
- <decorator
- objectClass="org.eclipse.core.resources.IResource"
- adaptable="true"
- label="%DecoratorStandard.name"
- state="false"
- lightweight= "true"
- quadrant = "BOTTOM_RIGHT"
- class="org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator"
- id="org.eclipse.team.cvs.ui.decorator">
- <description>
- %DecoratorStandard.desc
- </description>
- </decorator>
- </extension>
-<!-- *************** View Actions **************** -->
- <extension
- point="org.eclipse.ui.viewActions">
- <viewContribution
- targetID="org.eclipse.team.ccvs.ui.HistoryView"
- id="org.eclipse.team.cvs.ui.history">
- <action
- label="%HistoryFilter.label"
- icon="icons/full/elcl16/filter_history.gif"
- disabledIcon="icons/full/dlcl16/filter_history.gif"
- hoverIcon="icons/full/clcl16/filter_history.gif"
- tooltip="%HistoryFilter.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.HistoryFilterAction"
- toolbarPath="actions"
- id="org.eclipse.team.cvs.ui.historyaction">
- </action>
- </viewContribution>
- </extension>
-
-<!-- **************** CVS Perspective ******************* -->
- <extension
- point="org.eclipse.ui.perspectives">
- <perspective
- name="%CVSRepositoryExploring"
- icon="icons/full/cview16/cvs_persp.gif"
- class="org.eclipse.team.internal.ccvs.ui.CVSPerspective"
- id="org.eclipse.team.cvs.ui.cvsPerspective">
- </perspective>
- </extension>
-<!-- ************** Perspective Extensions **************** -->
- <extension
- point="org.eclipse.ui.perspectiveExtensions">
- <perspectiveExtension
- targetID="org.eclipse.ui.resourcePerspective">
- <perspectiveShortcut
- id="org.eclipse.team.cvs.ui.cvsPerspective">
- </perspectiveShortcut>
- <view id="org.eclipse.team.ccvs.ui.console"
- relative="org.eclipse.ui.views.TaskList"
- visible="false"
- relationship="stack"/>
- <view id="org.eclipse.team.ccvs.ui.HistoryView"
- relative="org.eclipse.ui.views.TaskList"
- visible="false"
- relationship="stack"/>
- <view id="org.eclipse.team.ccvs.ui.RepositoriesView"
- relative="org.eclipse.ui.views.ResourceNavigator"
- visible="false"
- relationship="stack"/>
- <view id="org.eclipse.team.ccvs.ui.AnnotateView"
- relative="org.eclipse.ui.views.ResourceNavigator"
- visible="false"
- relationship="stack"/>
- </perspectiveExtension>
- <perspectiveExtension
- targetID="org.eclipse.team.cvs.ui.cvsPerspective">
- <actionSet id="org.eclipse.team.cvs.ui.CVSActionSet"/>
- <view id="org.eclipse.team.ccvs.ui.AnnotateView"
- relative="org.eclipse.team.ccvs.ui.RepositoriesView"
- relationship="stack"/>
- </perspectiveExtension>
- </extension>
-
- <!-- ************** Project Sets **************** -->
- <extension point="org.eclipse.team.core.projectSets">
- <projectSet id="org.eclipse.team.cvs.core.cvsnature" class="org.eclipse.team.internal.ccvs.ui.CVSProjectSetSerializer"/>
- </extension>
-
-
- <!-- ************ Editor Actions ************** -->
- <extension point="org.eclipse.ui.editorActions">
- <editorContribution
- id="org.eclipse.team.cvs.ui.contentCompare"
- targetID="org.eclipse.compare.CompareEditor">
- <action
- id="org.eclipse.team.cvs.ui.ContentAction"
- state="false"
- toolbarPath="Normal/additions"
- icon="icons/full/etool16/contents.gif"
- disabledIcon="icons/full/dtool16/contents.gif"
- hoverIcon="icons/full/ctool16/contents.gif"
- label="%ContentAction.label"
- tooltip="%ContentAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.ContentAction">
- </action>
- </editorContribution>
- </extension>
-
- <!-- ********** Action Sets ************** -->
- <extension point="org.eclipse.ui.actionSets">
- <actionSet
- label="%CVS"
- visible="false"
- id="org.eclipse.team.cvs.ui.CVSActionSet"
- description="%CVSActionSet.description">
- <action
- toolbarPath="Normal/CVS"
- label="%CVSActionSet.newLabel"
- tooltip="%CVSActionSet.newTooltip"
- icon="icons/full/wizards/newconnect_wiz.gif"
- class="org.eclipse.team.internal.ccvs.ui.actions.NewRepositoryAction"
- id="org.eclipse.team.cvs.ui.actions.NewRepositoryAction"
- definitionId="org.eclipse.team.cvs.ui.new.location">
- </action>
- </actionSet>
- </extension>
-
- <!-- ********** Font Definitions ************** -->
- <extension
- point="org.eclipse.ui.fontDefinitions">
- <fontDefinition
- label="%CVSConsoleFont.label"
- defaultsTo="org.eclipse.jface.textfont"
- id="pref_console_font">
- <description>
- %CVSConsoleFont.description
- </description>
- </fontDefinition>
- </extension>
-
- <!-- ********** QuickDiff text editor support ************** -->
- <extension
- point="org.eclipse.ui.workbench.texteditor.quickDiffReferenceProvider">
- <referenceprovider
- label="%CVSRemoteQuickDiffProvider.label"
- class="org.eclipse.team.internal.ccvs.ui.RemoteRevisionQuickDiffProvider"
- id="org.eclipse.quickdiff.providers.CVSReferenceProvider">
- </referenceprovider>
- </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AdaptableHierarchicalResourceList.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AdaptableHierarchicalResourceList.java
deleted file mode 100644
index cd1edfe4b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AdaptableHierarchicalResourceList.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-
-/**
- * This class acts as an adaptable list that will return the resources in the
- * hierarchy indicated by their paths
- */
-public class AdaptableHierarchicalResourceList extends AdaptableResourceList {
- private IContainer root;
-
- /**
- * Constructor for AdaptableHierarchicalResourceList.
- * @param resources
- */
- public AdaptableHierarchicalResourceList(IContainer root, IResource[] resources) {
- super(resources);
- this.root = root;
- }
-
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
- */
- public Object[] getChildren(Object o) {
- return getChildenFor(root);
- }
-
- private IResource[] getChildenFor(IContainer parent) {
- Set children = new HashSet();
- IPath parentPath = parent.getFullPath();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- IPath resourcePath = resource.getFullPath();
- if (parent instanceof IWorkspaceRoot) {
- children.add(((IWorkspaceRoot)parent).getProject(resourcePath.segment(0)));
- } else if (parentPath.isPrefixOf(resourcePath)) {
- IPath parentRelativePath = resourcePath.removeFirstSegments(parentPath.segmentCount());
- if (parentRelativePath.segmentCount() == 1) {
- children.add(resource);
- } else if (parentRelativePath.segmentCount() > 1) {
- children.add(parent.getFolder(new Path(parentRelativePath.segment(0))));
- }
- }
- }
- return (IResource[]) children.toArray(new IResource[children.size()]);
- }
-
- /**
- * Returns a content provider for <code>IResource</code>s that returns
- * only children of the given resource type.
- */
- public ITreeContentProvider getTreeContentProvider() {
- return new WorkbenchContentProvider() {
- public Object[] getChildren(Object o) {
- if (o instanceof IContainer) {
- return getChildenFor((IContainer) o);
- } else {
- return super.getChildren(o);
- }
- }
- };
- }
-
- public void setResources(IResource[] resources) {
- this.resources = resources;
- }
- /**
- * Returns the root.
- * @return IContainer
- */
- public IContainer getRoot() {
- return root;
- }
-
- /**
- * Sets the root.
- * @param root The root to set
- */
- public void setRoot(IContainer root) {
- this.root = root;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AdaptableResourceList.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AdaptableResourceList.java
deleted file mode 100644
index d8179f457..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AdaptableResourceList.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * This class acts as a resource list that can be used in table widgets.
- */
-public class AdaptableResourceList implements IAdaptable, IWorkbenchAdapter {
-
- IResource[] resources;
-
- public AdaptableResourceList(IResource[] resources) {
- this.resources = resources;
- }
-
- /**
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
-
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(Object)
- */
- public Object[] getChildren(Object o) {
- return resources;
- }
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return null;
- }
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
- */
- public String getLabel(Object o) {
- return o == null ? "" : o.toString();//$NON-NLS-1$
- }
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
- */
- public Object getParent(Object o) {
- return null;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AddToVersionControlDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AddToVersionControlDialog.java
deleted file mode 100644
index a6d7d48d3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AddToVersionControlDialog.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Shell;
-import org.eclipse.team.internal.ui.dialogs.DetailsDialog;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * This dialog allows the user to add a set of resources to version control.
- * They can either all be added or the user can choose which to add from a
- * details list.
- */
-public class AddToVersionControlDialog extends DetailsDialog {
-
- private static final int WIDTH_HINT = 350;
- private final static int SELECTION_HEIGHT_HINT = 100;
-
- private IResource[] unaddedResources;
- private Object[] resourcesToAdd;
-
- private CheckboxTableViewer listViewer;
- /**
- * Constructor for AddToVersionControlDialog.
- * @param parentShell
- */
- public AddToVersionControlDialog(Shell parentShell, IResource[] unaddedResources) {
- super(parentShell, Policy.bind("AddToVersionControlDialog.title")); //$NON-NLS-1$
- this.unaddedResources = unaddedResources;
- }
-
- /**
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
- */
- protected void createMainDialogArea(Composite parent) {
- Composite composite = new Composite(parent, SWT.NULL);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.ADD_TO_VERSION_CONTROL_DIALOG);
-
- // add a description label
- if (unaddedResources.length==1) {
- createWrappingLabel(composite, Policy.bind("AddToVersionControlDialog.thereIsAnUnaddedResource", new Integer(unaddedResources.length).toString())); //$NON-NLS-1$
- } else {
- createWrappingLabel(composite, Policy.bind("AddToVersionControlDialog.thereAreUnaddedResources", new Integer(unaddedResources.length).toString())); //$NON-NLS-1$
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ui.DetailsDialog#createDropDownDialogArea(org.eclipse.swt.widgets.Composite)
- */
- protected Composite createDropDownDialogArea(Composite parent) {
- // create a composite with standard margins and spacing
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- addUnaddedResourcesArea(composite);
-
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.ADD_TO_VERSION_CONTROL_DIALOG);
-
- return composite;
- }
-
- private void addUnaddedResourcesArea(Composite composite) {
-
- // add a description label
- createWrappingLabel(composite, Policy.bind("ReleaseCommentDialog.unaddedResources")); //$NON-NLS-1$
-
- // add the selectable checkbox list
- listViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = SELECTION_HEIGHT_HINT;
- data.widthHint = WIDTH_HINT;
- listViewer.getTable().setLayoutData(data);
-
- // set the contents of the list
- listViewer.setLabelProvider(new WorkbenchLabelProvider() {
- protected String decorateText(String input, Object element) {
- if (element instanceof IResource)
- return ((IResource)element).getFullPath().toString();
- else
- return input;
- }
- });
- listViewer.setContentProvider(new WorkbenchContentProvider());
- listViewer.setInput(new AdaptableResourceList(unaddedResources));
- if (resourcesToAdd == null) {
- listViewer.setAllChecked(true);
- } else {
- listViewer.setCheckedElements(resourcesToAdd);
- }
- listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- resourcesToAdd = listViewer.getCheckedElements();
- }
- });
-
- addSelectionButtons(composite);
- }
-
- /**
- * Add the selection and deselection buttons to the dialog.
- * @param composite org.eclipse.swt.widgets.Composite
- */
- private void addSelectionButtons(Composite composite) {
-
- Composite buttonComposite = new Composite(composite, SWT.RIGHT);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- buttonComposite.setLayout(layout);
- GridData data =
- new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.GRAB_HORIZONTAL);
- data.grabExcessHorizontalSpace = true;
- composite.setData(data);
-
- Button selectButton = createButton(buttonComposite, IDialogConstants.SELECT_ALL_ID, Policy.bind("ReleaseCommentDialog.selectAll"), false); //$NON-NLS-1$
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- listViewer.setAllChecked(true);
- resourcesToAdd = null;
- }
- };
- selectButton.addSelectionListener(listener);
-
- Button deselectButton = createButton(buttonComposite, IDialogConstants.DESELECT_ALL_ID, Policy.bind("ReleaseCommentDialog.deselectAll"), false); //$NON-NLS-1$
- listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- listViewer.setAllChecked(false);
- resourcesToAdd = new Object[0];
-
- }
- };
- deselectButton.addSelectionListener(listener);
- }
-
- /**
- * @see org.eclipse.team.internal.ui.DetailsDialog#updateEnablements()
- */
- protected void updateEnablements() {
- }
-
- /**
- * Returns the resourcesToAdd.
- * @return IResource[]
- */
- public IResource[] getResourcesToAdd() {
- if (resourcesToAdd == null) {
- return unaddedResources;
- } else {
- List result = Arrays.asList(resourcesToAdd);
- return (IResource[]) result.toArray(new IResource[result.size()]);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
- */
- protected void createButtonsForButtonBar(Composite parent) {
- createButton(parent, IDialogConstants.YES_ID, IDialogConstants.YES_LABEL, true);
- createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, true);
- super.createButtonsForButtonBar(parent);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.DetailsDialog#includeOkButton()
- */
- protected boolean includeOkButton() {
- return false;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
- */
- protected void buttonPressed(int id) {
- // hijack yes and no buttons to set the correct return
- // codes.
- if(id == IDialogConstants.YES_ID || id == IDialogConstants.NO_ID) {
- setReturnCode(id);
- close();
- } else {
- super.buttonPressed(id);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AlternateUserValidationDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AlternateUserValidationDialog.java
deleted file mode 100644
index 6f4e08eb2..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AlternateUserValidationDialog.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.internal.ccvs.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
-import org.eclipse.swt.graphics.FontData;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class AlternateUserValidationDialog extends Dialog {
- String user;
- String password = ""; //$NON-NLS-1$
- List numXs = new ArrayList();
- Label icon1;
- Label icon2;
- Label icon3;
- Label icon4;
- Text passwordText;
- boolean inUpdate = false;
-
- Image[] images;
-
- public AlternateUserValidationDialog(Shell parentShell, String user) {
- super(parentShell);
- this.user = user;
- initializeImages();
- }
-
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(Policy.bind("AlternateUserValidationDialog.Enter_Password_2")); //$NON-NLS-1$
- }
-
- protected Control createContents(Composite parent) {
- Composite main = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- main.setLayout(layout);
- main.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Composite iconComposite = new Composite(main, SWT.NONE);
- layout = new GridLayout();
- layout.numColumns = 2;
- iconComposite.setLayout(layout);
- iconComposite.setLayoutData(new GridData());
-
- icon1 = createLabel(iconComposite);
- icon2 = createLabel(iconComposite);
- icon3 = createLabel(iconComposite);
- icon4 = createLabel(iconComposite);
-
- Composite middleComposite = new Composite(main, SWT.NONE);
- middleComposite.setLayout(new GridLayout());
- middleComposite.setLayoutData(new GridData());
-
- Label l = new Label(middleComposite, SWT.NULL);
- l.setText(Policy.bind("AlternateUserValidationDialog.message", user)); //$NON-NLS-1$
- l.setLayoutData(new GridData());
- l = new Label(middleComposite, SWT.NULL);
- l.setText(""); //$NON-NLS-1$
- l.setLayoutData(new GridData());
- passwordText = new Text(middleComposite, SWT.SINGLE | SWT.BORDER);
- GridData data = new GridData();
- data.widthHint = 250;
- passwordText.setLayoutData(data);
-
- passwordText.addVerifyListener(new VerifyListener() {
- public void verifyText(VerifyEvent e) {
- if (inUpdate) return;
- e.doit = false;
- inUpdate = true;
- switch ((int)e.character) {
- case 8: {
- // backspace pressed
- if (password.length() > 0) {
- password = password.substring(0, password.length() - 1);
- }
- // get rid of bogus Xs
- int numX = ((Integer)numXs.get(numXs.size() - 1)).intValue();
- numXs.remove(numXs.size() - 1);
- String oldText = passwordText.getText();
- String newText = oldText.substring(0, oldText.length() - numX);
- passwordText.setText(newText);
- passwordText.setSelection(newText.length());
- break;
- }
- default: {
- String oldText = passwordText.getText();
- String x = getXs();
- numXs.add(numXs.size(), new Integer(x.length()));
- String newText = oldText + x;
- passwordText.setText(newText);
- passwordText.setSelection(newText.length());
- password += e.character;
- }
- }
- inUpdate = false;
- updateImages();
- }
- });
- /*passwordText.addTraverseListener(new TraverseListener() {
- public void keyTraversed(TraverseEvent e) {
- switch (e.detail) {
- case SWT.TRAVERSE_ARROW_NEXT:
- case SWT.TRAVERSE_ARROW_PREVIOUS:
- e.detail = SWT.TRAVERSE_NONE;
- e.doit = false;
- break;
- }
- }
- });*/
- Composite buttonComposite = new Composite(main, SWT.NONE);
- buttonComposite.setLayout(new GridLayout());
- buttonComposite.setLayoutData(new GridData());
- Button b = new Button(buttonComposite, SWT.PUSH);
- b.setText(Policy.bind("AlternateUserValidationDialog.OK_6")); //$NON-NLS-1$
- data = new GridData();
- data.widthHint = 70;
- b.setLayoutData(data);
- b.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- okPressed();
- }
- });
- buttonComposite.getShell().setDefaultButton(b);
- b = new Button(buttonComposite, SWT.PUSH);
- b.setText(Policy.bind("AlternateUserValidationDialog.Cancel_7")); //$NON-NLS-1$
- data = new GridData();
- data.widthHint = 70;
- b.setLayoutData(data);
- b.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- cancelPressed();
- }
- });
- Dialog.applyDialogFont(parent);
- return main;
- }
-
- public boolean close() {
- boolean result = super.close();
- if (images != null) {
- for (int i = 0; i < images.length; i++) {
- images[i].dispose();
- images[i] = null;
- }
- images = null;
- }
- return result;
- }
- public String getPassword() {
- return password;
- }
-
- Label createLabel(Composite parent) {
- Label result = new Label(parent, SWT.NULL);
- GridData data = new GridData();
- data.widthHint = 22;
- data.heightHint = 22;
- result.setLayoutData(data);
- result.setImage(getImage());
- return result;
- }
- Image getImage() {
- double random = Math.random();
- random *= 7; // Random number between 0.0 and 7.0
- long num = Math.round(random);
- return images[(int)num];
- }
- void initializeImages() {
- images = new Image[8];
- for (int i = 0; i < images.length; i++) {
- images[i] = CVSUIPlugin.getPlugin().getImageDescriptor("glyphs/glyph" + (i+1) + ".gif").createImage(); //$NON-NLS-1$ //$NON-NLS-2$
- }
- FontData fd = new FontData();
- fd.setStyle(SWT.BOLD);
- fd.setHeight(10);
- // On Windows, set the font to Sans Serif for an authentic look
- if (System.getProperty("os.name").indexOf("Windows") != -1) { //$NON-NLS-1$ //$NON-NLS-2$
- fd.setName("Microsoft Sans Serif"); //$NON-NLS-1$
- }
- }
- void updateImages() {
- icon1.setImage(getImage());
- icon2.setImage(getImage());
- icon3.setImage(getImage());
- icon4.setImage(getImage());
- }
- public void setUsername(String user) {
- this.user = user;
- }
- String getXs() {
- double random = Math.random();
- random *= 2;
- random += 2;
- long num = Math.round(random);
- // Random number between 2 and 4
- switch ((int)num) {
- case 2:
- return "XX"; //$NON-NLS-1$
- case 3:
- return "XXX"; //$NON-NLS-1$
- case 4:
- return "XXXX"; //$NON-NLS-1$
- }
- return "X"; //$NON-NLS-1$
- }
- protected void cancelPressed() {
- password = null;
- super.cancelPressed();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AnnotateView.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AnnotateView.java
deleted file mode 100644
index 61dd02b9b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AnnotateView.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.ui.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.registry.EditorDescriptor;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-/**
- * A view showing the results of the CVS Annotate Command. A linked
- * combination of a View of annotations, a source editor and the
- * Resource History View
- */
-public class AnnotateView extends ViewPart implements ISelectionChangedListener {
-
- ITextEditor editor;
- HistoryView historyView;
- IWorkbenchPage page;
-
- ListViewer viewer;
- IDocument document;
- Collection cvsAnnotateBlocks;
- ICVSResource cvsResource;
- InputStream contents;
-
- IStructuredSelection previousListSelection;
- ITextSelection previousTextSelection;
- boolean lastSelectionWasText = false;
-
-
- public static final String VIEW_ID = "org.eclipse.team.ccvs.ui.AnnotateView"; //$NON-NLS-1$
- private Composite top;
-
- public AnnotateView() {
- super();
- }
-
- public void createPartControl(Composite parent) {
-
- this.top = parent;
-
- // Create default contents
- Label label = new Label(top, SWT.WRAP);
- label.setText(Policy.bind("CVSAnnotateView.viewInstructions")); //$NON-NLS-1$
- label.setLayoutData(new GridData(GridData.FILL_BOTH));
- top.layout();
- }
-
- /**
- * Show the annotation view.
- * @param cvsResource
- * @param cvsAnnotateBlocks
- * @param contents
- * @throws InvocationTargetException
- */
- public void showAnnotations(ICVSResource cvsResource, Collection cvsAnnotateBlocks, InputStream contents) throws InvocationTargetException {
- showAnnotations(cvsResource, cvsAnnotateBlocks, contents, true);
- }
-
- /**
- * Show the annotation view.
- * @param cvsResource
- * @param cvsAnnotateBlocks
- * @param contents
- * @param useHistoryView
- * @throws InvocationTargetException
- */
- public void showAnnotations(ICVSResource cvsResource, Collection cvsAnnotateBlocks, InputStream contents, boolean useHistoryView) throws InvocationTargetException {
-
- // Remove old viewer
- Control[] oldChildren = top.getChildren();
- if (oldChildren != null) {
- for (int i = 0; i < oldChildren.length; i++) {
- oldChildren[i].dispose();
- }
- }
-
- viewer = new ListViewer(top, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
- viewer.setContentProvider(new ArrayContentProvider());
- viewer.setLabelProvider(new LabelProvider());
- viewer.addSelectionChangedListener(this);
- viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-
- WorkbenchHelp.setHelp(viewer.getControl(), IHelpContextIds.ANNOTATE_VIEW);
-
- top.layout();
-
- this.cvsResource = cvsResource;
- this.contents = contents;
- this.cvsAnnotateBlocks = cvsAnnotateBlocks;
- page = CVSUIPlugin.getActivePage();
- viewer.setInput(cvsAnnotateBlocks);
- editor = (ITextEditor) openEditor();
- IDocumentProvider provider = editor.getDocumentProvider();
- document = provider.getDocument(editor.getEditorInput());
-
- setTitle(Policy.bind("CVSAnnotateView.showFileAnnotation", new Object[] {cvsResource.getName()})); //$NON-NLS-1$
- try {
- IResource localResource = cvsResource.getIResource();
- if (localResource != null) {
- setTitleToolTip(localResource.getFullPath().toString());
- } else {
- setTitleToolTip(cvsResource.getName());
- }
- } catch (CVSException e) {
- setTitleToolTip(cvsResource.getName());
- }
-
- if (!useHistoryView) {
- return;
- }
-
- // Get hook to the HistoryView
-
- try {
- historyView = (HistoryView) page.showView(HistoryView.VIEW_ID);
- historyView.showHistory((ICVSRemoteFile) CVSWorkspaceRoot.getRemoteResourceFor(cvsResource));
- } catch (PartInitException e) {
- throw new InvocationTargetException(e);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- /**
- * Makes the view visible in the active perspective. If there
- * isn't a view registered <code>null</code> is returned.
- * Otherwise the opened view part is returned.
- */
- public static AnnotateView openInActivePerspective() throws PartInitException {
- return (AnnotateView) CVSUIPlugin.getActivePage().showView(VIEW_ID);
- }
-
- /**
- * Selection changed in either the Annotate List View or the
- * Source editor.
- */
- public void selectionChanged(SelectionChangedEvent event) {
-
- if (event.getSelection() instanceof IStructuredSelection) {
- listSelectionChanged((IStructuredSelection) event.getSelection());
- } else if (event.getSelection() instanceof ITextSelection) {
- textSelectionChanged((ITextSelection) event.getSelection());
- }
-
-
- }
-
- /**
- * A selection event in the Annotate Source Editor
- * @param event
- */
- private void textSelectionChanged(ITextSelection selection) {
-
- // Track where the last selection event came from to avoid
- // a selection event loop.
- lastSelectionWasText = true;
-
- // Locate the annotate block containing the selected line number.
- CVSAnnotateBlock match = null;
- for (Iterator iterator = cvsAnnotateBlocks.iterator(); iterator.hasNext();) {
- CVSAnnotateBlock block = (CVSAnnotateBlock) iterator.next();
- if (block.contains(selection.getStartLine())) {
- match = block;
- break;
- }
- }
-
- // Select the annotate block in the List View.
- if (match == null) {
- return;
- }
-
- StructuredSelection listSelection = new StructuredSelection(match);
- viewer.setSelection(listSelection, true);
- }
-
- /**
- * A selection event in the Annotate List View
- * @param selection
- */
- private void listSelectionChanged(IStructuredSelection selection) {
-
- // If the editor was closed, reopen it.
- if (editor == null || editor.getSelectionProvider() == null) {
- try {
- contents.reset();
- showAnnotations(cvsResource, cvsAnnotateBlocks, contents, false);
- } catch (InvocationTargetException e) {
- return;
- } catch (IOException e) {
- return;
- }
- }
-
- ISelectionProvider selectionProvider = editor.getSelectionProvider();
- if (selectionProvider == null) {
- // Failed to open the editor but what else can we do.
- return;
- }
-
- ITextSelection textSelection = (ITextSelection) selectionProvider.getSelection();
- CVSAnnotateBlock listSelection = (CVSAnnotateBlock) selection.getFirstElement();
-
- /**
- * Ignore event if the current text selection is already equal to the corresponding
- * list selection. Nothing to do. This prevents infinite event looping.
- *
- * Extra check to handle single line deltas
- */
-
- if (textSelection.getStartLine() == listSelection.getStartLine() && textSelection.getEndLine() == listSelection.getEndLine() && selection.equals(previousListSelection)) {
- return;
- }
-
- // If the last selection was a text selection then bale to prevent a selection loop.
- if (!lastSelectionWasText) {
- try {
- int start = document.getLineOffset(listSelection.getStartLine());
- int end = document.getLineOffset(listSelection.getEndLine() + 1);
- editor.selectAndReveal(start, end - start);
- if (editor != null && !page.isPartVisible(editor)) {
- page.activate(editor);
- }
-
- } catch (BadLocationException e) {
- // Ignore - nothing we can do.
- }
- }
-
-
- // Select the revision in the history view.
- if(historyView != null) {
- historyView.selectRevision(listSelection.getRevision());
- }
- lastSelectionWasText = false;
- }
-
- /**
- * Try and open the correct registered editor type for the file.
- * @throws InvocationTargetException
- */
- private IEditorPart openEditor() throws InvocationTargetException {
- // Open the editor
- IEditorPart part;
- ICVSRemoteFile file;
- IEditorRegistry registry;
-
- try {
- file = (ICVSRemoteFile) CVSWorkspaceRoot.getRemoteResourceFor(cvsResource);
- } catch (CVSException e1) {
- throw new InvocationTargetException(e1);
- }
-
- registry = CVSUIPlugin.getPlugin().getWorkbench().getEditorRegistry();
- IEditorDescriptor descriptor = registry.getDefaultEditor(file.getName());
-
- // Determine if the registered editor is an ITextEditor.
- // There is currently no support from UI to determine this information. This
- // problem has been logged in: https://bugs.eclipse.org/bugs/show_bug.cgi?id=47362
- // For now, use internal classes.
- String id;
-
- if (descriptor == null || !(descriptor instanceof EditorDescriptor) || !(((EditorDescriptor)descriptor).isInternal())) {
- id = IDEWorkbenchPlugin.DEFAULT_TEXT_EDITOR_ID; //$NON-NLS-1$
- } else {
- try {
- Object obj = IDEWorkbenchPlugin.createExtension(((EditorDescriptor) descriptor).getConfigurationElement(), "class"); //$NON-NLS-1$
- if (obj instanceof ITextEditor) {
- id = descriptor.getId();
- } else {
- id = IDEWorkbenchPlugin.DEFAULT_TEXT_EDITOR_ID;
- }
- } catch (CoreException e) {
- id = IDEWorkbenchPlugin.DEFAULT_TEXT_EDITOR_ID;
- }
- }
-
- // Either reuse an existing editor or open a new editor of the correct type.
- try {
- try {
- if (editor != null && editor instanceof IReusableEditor && page.isPartVisible(editor) && editor.getSite().getId().equals(id)) {
- // We can reuse the editor
- ((IReusableEditor) editor).setInput(new RemoteAnnotationEditorInput(file, contents));
- part = editor;
- } else {
- // We can not reuse the editor so close the existing one and open a new one.
- if (editor != null) {
- page.closeEditor(editor, false);
- editor = null;
- }
- part = page.openEditor(new RemoteAnnotationEditorInput(file, contents), id);
- }
- } catch (PartInitException e) {
- throw e;
- }
- } catch (PartInitException e) {
- // Total failure.
- throw new InvocationTargetException(e);
- }
-
- // Hook Editor post selection listener.
- ITextEditor editor = (ITextEditor) part;
- if (editor.getSelectionProvider() instanceof IPostSelectionProvider) {
- ((IPostSelectionProvider) editor.getSelectionProvider()).addPostSelectionChangedListener(this);
- }
-
- return part;
- }
-
- // This method implemented to be an ISelectionChangeListener but we
- // don't really care when the List or Editor get focus.
- public void setFocus() {
- return;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AvoidableMessageDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AvoidableMessageDialog.java
deleted file mode 100644
index 3259f7911..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/AvoidableMessageDialog.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.internal.ccvs.ui;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-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;
-
-public class AvoidableMessageDialog extends MessageDialog {
- Button dontShowAgain;
- boolean dontShow;
- boolean showOption;
-
- public AvoidableMessageDialog(Shell shell, String dialogTitle, Image dialogTitleImage, String dialogMessage, int dialogImageType, String[] dialogButtonLabels, int defaultIndex) {
- this(shell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex, true);
- }
-
- public AvoidableMessageDialog(Shell shell, String dialogTitle, Image dialogTitleImage, String dialogMessage, int dialogImageType, String[] dialogButtonLabels, int defaultIndex, boolean showOption) {
- super(shell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex);
- this.showOption = showOption;
- }
-
- protected Control createCustomArea(Composite composite) {
- if ( ! showOption) return null;
- dontShow = false;
- dontShowAgain = new Button(composite, SWT.CHECK);
- GridData data = new GridData();
- data.horizontalIndent = 50;
- dontShowAgain.setLayoutData(data);
- dontShowAgain.setText(Policy.bind("AvoidableMessageDialog.dontShowAgain")); //$NON-NLS-1$
- dontShowAgain.setSelection(dontShow);
- dontShowAgain.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- dontShow = dontShowAgain.getSelection();
- }
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
-
- });
- return dontShowAgain;
- }
-
- public boolean isDontShowAgain() {
- return dontShow;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/BranchPromptDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/BranchPromptDialog.java
deleted file mode 100644
index fea313b87..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/BranchPromptDialog.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-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.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.ui.merge.ProjectElement;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositorySorter;
-import org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage;
-import org.eclipse.team.internal.ui.dialogs.DetailsDialog;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class BranchPromptDialog extends DetailsDialog {
-
- private ICVSFolder folder;
- private String branchTag = ""; //$NON-NLS-1$
- private String versionTag= ""; //$NON-NLS-1$
- private String versionName= ""; //$NON-NLS-1$
-
- private boolean allStickyResources;
- private boolean update;
-
- private Text versionText;
- private Text branchText;
-
- private static final int TABLE_HEIGHT_HINT = 150;
-
- // widgets;
- private TreeViewer tagTree;
-
- public BranchPromptDialog(Shell parentShell, String title, ICVSFolder folder, boolean allResourcesSticky, String versionName) {
- super(parentShell, title);
- this.folder = folder;
- this.allStickyResources = allResourcesSticky;
- this.versionName = versionName;
- }
-
- /**
- * @see DetailsDialog#createMainDialogArea(Composite)
- */
- protected void createMainDialogArea(Composite composite) {
- // create message
- Label label = new Label(composite, SWT.WRAP);
- String message;
- if(allStickyResources) {
- message = Policy.bind("BranchWizardPage.pageDescriptionVersion"); //$NON-NLS-1$
- } else {
- message = Policy.bind("BranchWizardPage.pageDescription"); //$NON-NLS-1$
- }
- label.setText(message);
- GridData data = new GridData(
- GridData.GRAB_HORIZONTAL |
- GridData.GRAB_VERTICAL |
- GridData.HORIZONTAL_ALIGN_FILL |
- GridData.VERTICAL_ALIGN_CENTER);
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);;
- label.setLayoutData(data);
-
- CVSWizardPage.createLabel(composite, Policy.bind("BranchWizardPage.branchName")); //$NON-NLS-1$
- branchText = CVSWizardPage.createTextField(composite);
- branchText.addListener(SWT.Modify, new Listener() {
- public void handleEvent(Event event) {
- branchTag = branchText.getText();
- updateEnablements();
- updateVersionName(branchTag);
- }
- });
-
- final Button check = new Button(composite, SWT.CHECK);
- data = new GridData();
- data.horizontalSpan = 2;
- check.setLayoutData(data);
- check.setText(Policy.bind("BranchWizardPage.startWorking")); //$NON-NLS-1$
- check.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- update = check.getSelection();
- }
- });
- check.setSelection(true);
- update = true;
-
- label = new Label(composite, SWT.WRAP);
- label.setText(Policy.bind("BranchWizardPage.specifyVersion")); //$NON-NLS-1$
- data = new GridData();
- data.horizontalSpan = 2;
- data.widthHint = 350;
- label.setLayoutData(data);
-
- CVSWizardPage.createLabel(composite, Policy.bind("BranchWizardPage.versionName")); //$NON-NLS-1$
- versionText = CVSWizardPage.createTextField(composite);
- versionText.addListener(SWT.Modify, new Listener() {
- public void handleEvent(Event event) {
- versionTag = versionText.getText();
- updateEnablements();
- }
- });
-
- if(allStickyResources) {
- versionText.setEditable(false);
- versionText.setText(versionName);
- }
-
- // F1 Help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.BRANCH_DIALOG);
- Dialog.applyDialogFont(composite);
- branchText.setFocus();
- }
-
- /**
- * Updates version name
- */
- protected void updateVersionName(String branchName) {
- if(versionText!=null && !allStickyResources) {
- versionText.setText(Policy.bind("BranchWizardPage.versionPrefix") + branchName); //$NON-NLS-1$
- }
- }
-
- /**
- * @see DetailsDialog#createDropDownDialogArea(Composite)
- */
- protected Composite createDropDownDialogArea(Composite parent) {
-
- // create a composite with standard margins and spacing
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Label label = new Label(composite, SWT.WRAP);
- label.setText(Policy.bind("BranchWizardPage.existingVersionsAndBranches")); //$NON-NLS-1$
- GridData data = new GridData(
- GridData.GRAB_HORIZONTAL |
- GridData.GRAB_VERTICAL |
- GridData.HORIZONTAL_ALIGN_FILL |
- GridData.VERTICAL_ALIGN_CENTER);
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);;
- label.setLayoutData(data);
-
- tagTree = createTree(composite);
- tagTree.setInput(new ProjectElement(folder, ProjectElement.INCLUDE_BRANCHES | ProjectElement.INCLUDE_VERSIONS));
- Runnable refresh = new Runnable() {
- public void run() {
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- tagTree.refresh();
- }
- });
- }
- };
- TagConfigurationDialog.createTagDefinitionButtons(getShell(), composite, new ICVSFolder[] {folder},
- convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT),
- convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH),
- refresh, refresh);
- Dialog.applyDialogFont(parent);
- return composite;
- }
-
- /**
- * Creates the existing branch and version tree viewer in the details pane
- */
- protected TreeViewer createTree(Composite parent) {
- Tree tree = new Tree(parent, SWT.SINGLE | SWT.BORDER);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = TABLE_HEIGHT_HINT;
- tree.setLayoutData(data);
- TreeViewer result = new TreeViewer(tree);
- result.setContentProvider(new WorkbenchContentProvider());
- result.setLabelProvider(new WorkbenchLabelProvider());
- result.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- }
- });
- result.setSorter(new RepositorySorter());
- return result;
- }
-
- /**
- * Validates branch and version names
- */
- protected void updateEnablements() {
- String message = null;
- boolean complete = false;
-
- if (branchTag.length() == 0) {
- message = ""; //$NON-NLS-1$
- } else {
- IStatus status = CVSTag.validateTagName(branchTag);
- if (!status.isOK()) {
- message = Policy.bind("BranchWizard.branchNameWarning", status.getMessage()); //$NON-NLS-1$
- } else {
- if(versionText!=null) {
- status = CVSTag.validateTagName(versionText.getText());
- if (!status.isOK()) {
- message = Policy.bind("BranchWizard.versionNameWarning", status.getMessage()); //$NON-NLS-1$
- } else {
- if(versionTag.length() != 0 && versionTag.equals(branchTag)) {
- message = Policy.bind("BranchWizard.branchAndVersionMustBeDifferent"); //$NON-NLS-1$
- }
- }
- }
- }
- }
- setPageComplete(message == null);
- setErrorMessage(message);
- }
-
- /**
- * Returns the branch tag name
- */
- public String getBranchTagName() {
- return branchTag;
- }
-
- /**
- * Returns the version tag name
- */
- public String getVersionTagName() {
- return versionTag;
- }
-
- /**
- * Returns the state of the update checkbox
- */
- public boolean getUpdate() {
- return update;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSCompareEditorInput.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSCompareEditorInput.java
deleted file mode 100644
index d855470e9..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSCompareEditorInput.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.team.internal.ccvs.ui;
-
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.compare.structuremergeviewer.Differencer;
-import org.eclipse.compare.structuremergeviewer.IDiffContainer;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-
-/**
- * A compare input for comparing remote resources. Use <code>CVSLocalCompareInput</code>
- * when comparing resources in the workspace to remote resources.
- */
-public class CVSCompareEditorInput extends CompareEditorInput {
- private ITypedElement left;
- private ITypedElement right;
- private ITypedElement ancestor;
- private Image leftImage;
- private Image rightImage;
- private Image ancestorImage;
-
- // comparison constants
- private static final int NODE_EQUAL = 0;
- private static final int NODE_NOT_EQUAL = 1;
- private static final int NODE_UNKNOWN = 2;
-
- /**
- * Creates a new CVSCompareEditorInput.
- */
- public CVSCompareEditorInput(ResourceEditionNode left, ResourceEditionNode right) {
- this(left, right, null);
- }
-
- /**
- * Creates a new CVSCompareEditorInput.
- */
- public CVSCompareEditorInput(ResourceEditionNode left, ResourceEditionNode right, ResourceEditionNode ancestor) {
- super(new CompareConfiguration());
- // TODO: Invokers of this method should ensure that trees and contents are prefetched
- this.left = left;
- this.right = right;
- this.ancestor = ancestor;
- if (left != null) {
- this.leftImage = left.getImage();
- }
- if (right != null) {
- this.rightImage = right.getImage();
- }
- if (ancestor != null) {
- this.ancestorImage = ancestor.getImage();
- }
- }
-
- /**
- * Returns the label for the given input element.
- */
- private String getLabel(ITypedElement element) {
- if (element instanceof ResourceEditionNode) {
- ICVSRemoteResource edition = ((ResourceEditionNode)element).getRemoteResource();
- ICVSResource resource = (ICVSResource)edition;
- if (edition instanceof ICVSRemoteFile) {
- try {
- return Policy.bind("nameAndRevision", resource.getName(), ((ICVSRemoteFile)edition).getRevision()); //$NON-NLS-1$
- } catch (TeamException e) {
- // fall through
- }
- }
- try {
- if (edition.isContainer()) {
- CVSTag tag = ((ICVSRemoteFolder)edition).getTag();
- if (tag == null) {
- return Policy.bind("CVSCompareEditorInput.inHead", edition.getName()); //$NON-NLS-1$
- } else if (tag.getType() == CVSTag.BRANCH) {
- return Policy.bind("CVSCompareEditorInput.inBranch", new Object[] {edition.getName(), tag.getName()}); //$NON-NLS-1$
- } else {
- return Policy.bind("CVSCompareEditorInput.repository", new Object[] {edition.getName(), tag.getName()}); //$NON-NLS-1$
- }
- } else {
- return Policy.bind("CVSCompareEditorInput.repository", new Object[] {edition.getName(), resource.getSyncInfo().getRevision()}); //$NON-NLS-1$
- }
- } catch (TeamException e) {
- handle(e);
- // Fall through and get the default label
- }
- }
- return element.getName();
- }
-
- /**
- * Returns the label for the given input element.
- */
- private String getVersionLabel(ITypedElement element) {
- if (element instanceof ResourceEditionNode) {
- ICVSRemoteResource edition = ((ResourceEditionNode)element).getRemoteResource();
- ICVSResource resource = (ICVSResource)edition;
- try {
- if (edition.isContainer()) {
- CVSTag tag = ((ICVSRemoteFolder)resource).getTag();
- if (tag == null) {
- return Policy.bind("CVSCompareEditorInput.headLabel"); //$NON-NLS-1$
- } else if (tag.getType() == CVSTag.BRANCH) {
- return Policy.bind("CVSCompareEditorInput.branchLabel", tag.getName()); //$NON-NLS-1$
- } else {
- return tag.getName();
- }
- } else {
- return resource.getSyncInfo().getRevision();
- }
- } catch (TeamException e) {
- handle(e);
- // Fall through and get the default label
- }
- }
- return element.getName();
- }
-
- /*
- * Returns a guess of the resource name being compared, for display
- * in the title.
- */
- private String guessResourceName() {
- if (left != null) {
- return left.getName();
- }
- if (right != null) {
- return right.getName();
- }
- if (ancestor != null) {
- return ancestor.getName();
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Handles a random exception and sanitizes it into a reasonable
- * error message.
- */
- private void handle(Exception e) {
- // create a status
- Throwable t = e;
- // unwrap the invocation target exception
- if (t instanceof InvocationTargetException) {
- t = ((InvocationTargetException)t).getTargetException();
- }
- IStatus error;
- if (t instanceof CoreException) {
- error = ((CoreException)t).getStatus();
- } else if (t instanceof TeamException) {
- error = ((TeamException)t).getStatus();
- } else {
- error = new Status(IStatus.ERROR, CVSUIPlugin.ID, 1, Policy.bind("internal"), t); //$NON-NLS-1$
- }
- setMessage(error.getMessage());
- if (!(t instanceof TeamException)) {
- CVSUIPlugin.log(error.getSeverity(), error.getMessage(), t);
- }
- }
-
- /**
- * Sets up the title and pane labels for the comparison view.
- */
- private void initLabels() {
- CompareConfiguration cc = (CompareConfiguration) getCompareConfiguration();
- setLabels(cc, new StructuredSelection());
-
- String title;
- if (ancestor != null) {
- title = Policy.bind("CVSCompareEditorInput.titleAncestor", new Object[] {guessResourceName(), getVersionLabel(ancestor), getVersionLabel(left), getVersionLabel(right)} ); //$NON-NLS-1$
- } else {
- String leftName = null;
- if (left != null) leftName = left.getName();
- String rightName = null;
- if (right != null) rightName = right.getName();
- boolean differentNames = false;
- if (leftName != null && !leftName.equals(rightName)) {
- title = Policy.bind("CVSCompareEditorInput.titleNoAncestorDifferent", new Object[] {leftName, getVersionLabel(left), rightName, getVersionLabel(right)} ); //$NON-NLS-1$
- } else {
- title = Policy.bind("CVSCompareEditorInput.titleNoAncestor", new Object[] {guessResourceName(), getVersionLabel(left), getVersionLabel(right)} ); //$NON-NLS-1$
- }
- }
- setTitle(title);
- }
-
- private void setLabels(CompareConfiguration cc, IStructuredSelection selection) {
- ITypedElement left = this.left;
- ITypedElement right = this.right;
- ITypedElement ancestor = this.ancestor;
-
- if (left != null) {
- cc.setLeftLabel(getLabel(left));
- cc.setLeftImage(leftImage);
- }
-
- if (right != null) {
- cc.setRightLabel(getLabel(right));
- cc.setRightImage(rightImage);
- }
-
- if (ancestor != null) {
- cc.setAncestorLabel(getLabel(ancestor));
- cc.setAncestorImage(ancestorImage);
- }
- }
-
- /* (Non-javadoc)
- * Method declared on CompareEditorInput
- */
- public boolean isSaveNeeded() {
- return false;
- }
-
- /* (non-Javadoc)
- * Method declared on CompareEditorInput
- */
- protected Object prepareInput(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- final boolean threeWay = ancestor != null;
- if (right == null || left == null) {
- setMessage(Policy.bind("CVSCompareEditorInput.different")); //$NON-NLS-1$
- return null;
- }
-
- initLabels();
-
- final Differencer d = new Differencer() {
- protected boolean contentsEqual(Object input1, Object input2) {
- int compare = teamEqual(input1, input2);
- if (compare == NODE_EQUAL) {
- return true;
- }
- if (compare == NODE_NOT_EQUAL) {
- return false;
- }
- //revert to slow content comparison
- return super.contentsEqual(input1, input2);
- }
- protected void updateProgress(IProgressMonitor progressMonitor, Object node) {
- if (node instanceof ITypedElement) {
- ITypedElement element = (ITypedElement)node;
- progressMonitor.subTask(Policy.bind("CompareEditorInput.fileProgress", new String[] {element.getName()})); //$NON-NLS-1$
- progressMonitor.worked(1);
- }
- }
- protected Object[] getChildren(Object input) {
- if (input instanceof IStructureComparator) {
- Object[] children= ((IStructureComparator)input).getChildren();
- if (children != null)
- return children;
- }
- return null;
- }
- 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);
- }
- };
-
- try {
- // do the diff
- Object result = null;
- monitor.beginTask(Policy.bind("CVSCompareEditorInput.comparing"), 30); //$NON-NLS-1$
- IProgressMonitor sub = new SubProgressMonitor(monitor, 30);
- sub.beginTask(Policy.bind("CVSCompareEditorInput.comparing"), 100); //$NON-NLS-1$
- try {
- result = d.findDifferences(threeWay, sub, null, ancestor, left, right);
- } finally {
- sub.done();
- }
- return result;
- } catch (OperationCanceledException e) {
- throw new InterruptedException(e.getMessage());
- } catch (RuntimeException e) {
- handle(e);
- return null;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Compares two nodes to determine if they are equal. Returns NODE_EQUAL
- * of they are the same, NODE_NOT_EQUAL if they are different, and
- * NODE_UNKNOWN if comparison was not possible.
- */
- protected int teamEqual(Object left, Object right) {
- // calculate the type for the left contribution
- ICVSRemoteResource leftEdition = null;
- if (left instanceof ResourceEditionNode) {
- leftEdition = ((ResourceEditionNode)left).getRemoteResource();
- }
-
- // calculate the type for the right contribution
- ICVSRemoteResource rightEdition = null;
- if (right instanceof ResourceEditionNode)
- rightEdition = ((ResourceEditionNode)right).getRemoteResource();
-
-
- // compare them
-
- if (leftEdition == null || rightEdition == null) {
- return NODE_UNKNOWN;
- }
- // if they're both non-files, they're the same
- if (leftEdition.isContainer() && rightEdition.isContainer()) {
- return NODE_EQUAL;
- }
- // if they have different types, they're different
- if (leftEdition.isContainer() != rightEdition.isContainer()) {
- return NODE_NOT_EQUAL;
- }
-
- String leftLocation = leftEdition.getRepository().getLocation();
- String rightLocation = rightEdition.getRepository().getLocation();
- if (!leftLocation.equals(rightLocation)) {
- return NODE_UNKNOWN;
- }
- try {
- ResourceSyncInfo leftInfo = ((ICVSResource)leftEdition).getSyncInfo();
- ResourceSyncInfo rightInfo = ((ICVSResource)rightEdition).getSyncInfo();
-
- if (leftEdition.getRepositoryRelativePath().equals(rightEdition.getRepositoryRelativePath()) &&
- leftInfo.getRevision().equals(rightInfo.getRevision())) {
- return NODE_EQUAL;
- } else {
- if(considerContentIfRevisionOrPathDiffers()) {
- return NODE_UNKNOWN;
- } else {
- return NODE_NOT_EQUAL;
- }
- }
- } catch (TeamException e) {
- handle(e);
- return NODE_UNKNOWN;
- }
- }
-
- private boolean considerContentIfRevisionOrPathDiffers() {
- return CVSUIPlugin.getPlugin().getPreferenceStore().getBoolean(ICVSUIConstants.PREF_CONSIDER_CONTENTS);
- }
-
- public Viewer createDiffViewer(Composite parent) {
- Viewer viewer = super.createDiffViewer(parent);
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- CompareConfiguration cc = getCompareConfiguration();
- setLabels(cc, (IStructuredSelection)event.getSelection());
- }
- });
- return viewer;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSCompareRevisionsInput.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSCompareRevisionsInput.java
deleted file mode 100644
index 2b6087f67..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSCompareRevisionsInput.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.internal.ccvs.ui;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.compare.CompareUI;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.ResourceNode;
-import org.eclipse.compare.structuremergeviewer.DiffContainer;
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.compare.structuremergeviewer.Differencer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-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.ui.actions.CVSAction;
-import org.eclipse.team.internal.ccvs.ui.actions.ShowAnnotationAction;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class CVSCompareRevisionsInput extends CompareEditorInput {
- IFile resource;
- ILogEntry[] editions;
- TableViewer viewer;
- Action getContentsAction;
- Action getRevisionAction;
- Action getAnnotateAction;
- Shell shell;
-
- private HistoryTableProvider historyTableProvider;
-
- class TypedBufferedContent extends ResourceNode {
- public TypedBufferedContent(IFile resource) {
- super(resource);
- }
- protected InputStream createStream() throws CoreException {
- return ((IFile)getResource()).getContents();
- }
- public void setContent(byte[] contents) {
- if (contents == null) contents = new byte[0];
- final InputStream is = new ByteArrayInputStream(contents);
- IRunnableWithProgress runnable = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- IFile file = resource;
- if (is != null) {
- if (!file.exists()) {
- file.create(is, false, monitor);
- } else {
- file.setContents(is, false, true, monitor);
- }
- } else {
- file.delete(false, true, monitor);
- }
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- }
- }
- };
- try {
- new ProgressMonitorDialog(shell).run(false, false, runnable);
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(CVSUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow().getShell(), Policy.bind("TeamFile.saveChanges", resource.getName()), null, e); //$NON-NLS-1$
- } catch (InterruptedException e) {
- // Ignore
- }
- fireContentChanged();
- }
- public ITypedElement replace(ITypedElement child, ITypedElement other) {
- return null;
- }
- }
-
- /**
- * This class is an edition node which knows the log entry it came from.
- */
- class ResourceRevisionNode extends ResourceEditionNode {
- ILogEntry entry;
- public ResourceRevisionNode(ILogEntry entry) {
- super(entry.getRemoteFile());
- this.entry = entry;
- }
- public ILogEntry getLogEntry() {
- return entry;
- }
- public String getName() {
- ICVSRemoteResource edition = getRemoteResource();
- String revisionName = entry.getRevision();
- if (revisionName != null) {
- IResource resource = CVSCompareRevisionsInput.this.resource;
- try {
- ICVSRemoteFile currentEdition = (ICVSRemoteFile) CVSWorkspaceRoot.getRemoteResourceFor(resource);
- if (currentEdition != null && currentEdition.getRevision().equals(revisionName)) {
- Policy.bind("currentRevision", revisionName); //$NON-NLS-1$
- } else {
- return revisionName;
- }
- } catch (TeamException e) {
- handle(e);
- }
- }
- return super.getName();
- }
- };
- /**
- * A compare node that gets its label from the right element
- */
- class VersionCompareDiffNode extends DiffNode implements IAdaptable {
- public VersionCompareDiffNode(ITypedElement left, ITypedElement right) {
- super(left, right);
- }
- public String getName() {
- return getRight().getName();
- }
- public Object getAdapter(Class adapter) {
- if (adapter == ILogEntry.class) {
- return ((ResourceRevisionNode)getRight()).getLogEntry();
- }
- return null;
- }
-
- };
- /**
- * A content provider which knows how to get the children of the diff container
- */
- class VersionCompareContentProvider implements IStructuredContentProvider {
- public void dispose() {
- }
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- public Object[] getElements(Object inputElement) {
- if (inputElement instanceof DiffContainer) {
- return ((DiffContainer)inputElement).getChildren();
- }
- return null;
- }
- };
-
- public CVSCompareRevisionsInput(IFile resource, ILogEntry[] editions) {
- super(new CompareConfiguration());
- this.resource = resource;
- this.editions = editions;
- updateCurrentEdition();
- initializeActions();
- }
-
- public Viewer createDiffViewer(Composite parent) {
- this.shell = parent.getShell();
- viewer = getHistoryTableProvider().createTable(parent);
- Table table = viewer.getTable();
- table.setData(CompareUI.COMPARE_VIEWER_TITLE, Policy.bind("CVSCompareRevisionsInput.structureCompare")); //$NON-NLS-1$
-
- viewer.setContentProvider(new VersionCompareContentProvider());
-
- MenuManager mm = new MenuManager();
- mm.setRemoveAllWhenShown(true);
- mm.addMenuListener(
- new IMenuListener() {
- public void menuAboutToShow(IMenuManager mm) {
- mm.add(getContentsAction);
- mm.add(getRevisionAction);
- mm.add(getAnnotateAction);
- }
- }
- );
- table.setMenu(mm.createContextMenu(table));
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (!(selection instanceof IStructuredSelection)) {
- getContentsAction.setEnabled(false);
- getRevisionAction.setEnabled(false);
- getAnnotateAction.setEnabled(false);
- return;
- }
- IStructuredSelection ss = (IStructuredSelection)selection;
- getContentsAction.setEnabled(ss.size() == 1);
- getRevisionAction.setEnabled(ss.size() == 1);
- getAnnotateAction.setEnabled(ss.size() == 1);
- }
- });
-
- // Add F1 help.
- WorkbenchHelp.setHelp(table, IHelpContextIds.COMPARE_REVISIONS_VIEW);
- WorkbenchHelp.setHelp(getContentsAction, IHelpContextIds.GET_FILE_CONTENTS_ACTION);
- WorkbenchHelp.setHelp(getRevisionAction, IHelpContextIds.GET_FILE_REVISION_ACTION);
- WorkbenchHelp.setHelp(getAnnotateAction, IHelpContextIds.GET_ANNOTATE_ACTION);
-
- return viewer;
- }
-
- private void initLabels() {
- CompareConfiguration cc = (CompareConfiguration)getCompareConfiguration();
- String resourceName = resource.getName();
-// if (editions[0].isTeamStreamResource()) {
-// setTitle(Policy.bind("CompareResourceEditorInput.compareResourceAndStream", new Object[] {resourceName, editions[0].getTeamStream().getName()}));
-// } else {
-// setTitle(Policy.bind("CompareResourceEditorInput.compareResourceAndVersions", new Object[] {resourceName}));
-// }
- setTitle(Policy.bind("CVSCompareRevisionsInput.compareResourceAndVersions", new Object[] {resourceName})); //$NON-NLS-1$
- cc.setLeftEditable(true);
- cc.setRightEditable(false);
-
- String leftLabel = Policy.bind("CVSCompareRevisionsInput.workspace", new Object[] {resourceName}); //$NON-NLS-1$
- cc.setLeftLabel(leftLabel);
- String rightLabel = Policy.bind("CVSCompareRevisionsInput.repository", new Object[] {resourceName}); //$NON-NLS-1$
- cc.setRightLabel(rightLabel);
- }
- private void initializeActions() {
-
- getAnnotateAction = new Action(Policy.bind("HistoryView.getAnnotateAction"), null) { //$NON-NLS-1$
- public void run() {
- try {
- IStructuredSelection selection = (IStructuredSelection)viewer.getSelection();
- if (selection.size() != 1) return;
- VersionCompareDiffNode node = (VersionCompareDiffNode)selection.getFirstElement();
- ResourceEditionNode right = (ResourceEditionNode)node.getRight();
- ICVSRemoteResource edition = right.getRemoteResource();
- ShowAnnotationAction annotateAction = new ShowAnnotationAction();
- annotateAction.execute(edition);
-
- } catch (InterruptedException e) {
- // Do nothing
- return;
- } catch (InvocationTargetException e) {
- handle(e);
- }
- }
- };
-
- getContentsAction = new Action(Policy.bind("HistoryView.getContentsAction"), null) { //$NON-NLS-1$
- public void run() {
- try {
- new ProgressMonitorDialog(shell).run(false, true, new WorkspaceModifyOperation() {
- protected void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- IStructuredSelection selection = (IStructuredSelection)viewer.getSelection();
- if (selection.size() != 1) return;
- VersionCompareDiffNode node = (VersionCompareDiffNode)selection.getFirstElement();
- ResourceEditionNode right = (ResourceEditionNode)node.getRight();
- ICVSRemoteResource edition = right.getRemoteResource();
- // Do the load. This just consists of setting the local contents. We don't
- // actually want to change the base.
- try {
- monitor.beginTask(null, 100);
- InputStream in = edition.getContents(new SubProgressMonitor(monitor, 50));
- resource.setContents(in, false, true, new SubProgressMonitor(monitor, 50));
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- });
- } catch (InterruptedException e) {
- // Do nothing
- return;
- } catch (InvocationTargetException e) {
- handle(e);
- }
- // recompute the labels on the viewer
- updateCurrentEdition();
- viewer.refresh();
- }
- };
-
- getRevisionAction = new Action(Policy.bind("HistoryView.getRevisionAction"), null) { //$NON-NLS-1$
- public void run() {
- try {
- new ProgressMonitorDialog(shell).run(false, true, new WorkspaceModifyOperation() {
- protected void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- IStructuredSelection selection = (IStructuredSelection)viewer.getSelection();
- if (selection.size() != 1) return;
- VersionCompareDiffNode node = (VersionCompareDiffNode)selection.getFirstElement();
- ResourceEditionNode right = (ResourceEditionNode)node.getRight();
- ICVSRemoteResource edition = right.getRemoteResource();
- // Do the load. This just consists of setting the local contents. We don't
- // actually want to change the base.
- try {
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(resource.getProject());
- CVSTag revisionTag = new CVSTag(((ICVSRemoteFile)edition).getRevision(), CVSTag.VERSION);
- if(CVSAction.checkForMixingTags(shell, new IResource[] {resource}, revisionTag)) {
- provider.update(new IResource[] {resource}, new Command.LocalOption[] {Update.IGNORE_LOCAL_CHANGES},
- revisionTag, true /*create backups*/, monitor);
- getHistoryTableProvider().setFile((ICVSFile)edition);
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InterruptedException e) {
- // Do nothing
- return;
- } catch (InvocationTargetException e) {
- handle(e);
- }
- // recompute the labels on the viewer
- viewer.refresh();
- }
- };
- }
- protected Object prepareInput(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- initLabels();
- DiffNode diffRoot = new DiffNode(Differencer.NO_CHANGE);
- for (int i = 0; i < editions.length; i++) {
- ITypedElement left = new TypedBufferedContent(resource);
- ITypedElement right = new ResourceRevisionNode(editions[i]);
- diffRoot.add(new VersionCompareDiffNode(left, right));
- }
- return diffRoot;
- }
- private void updateCurrentEdition() {
- try {
- getHistoryTableProvider().setFile((ICVSFile) CVSWorkspaceRoot.getRemoteResourceFor(resource));
- } catch (TeamException e) {
- handle(e);
- }
- }
- private void handle(Exception e) {
- setMessage(CVSUIPlugin.openError(shell, null, null, e, CVSUIPlugin.LOG_NONTEAM_EXCEPTIONS).getMessage());
- }
- /**
- * Returns the historyTableProvider.
- * @return HistoryTableProvider
- */
- public HistoryTableProvider getHistoryTableProvider() {
- if (historyTableProvider == null) {
- historyTableProvider = new HistoryTableProvider();
- }
- return historyTableProvider;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecoratorConfiguration.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecoratorConfiguration.java
deleted file mode 100644
index 79eba69a7..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecoratorConfiguration.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-
-import java.util.Map;
-
-import org.eclipse.jface.viewers.IDecoration;
-
-public class CVSDecoratorConfiguration {
-
- // bindings for
- public static final String RESOURCE_NAME = "name"; //$NON-NLS-1$
- public static final String RESOURCE_TAG = "tag"; //$NON-NLS-1$
- public static final String FILE_REVISION = "revision"; //$NON-NLS-1$
- public static final String FILE_KEYWORD = "keyword"; //$NON-NLS-1$
-
- // bindings for repository location
- public static final String REMOTELOCATION_METHOD = "method"; //$NON-NLS-1$
- public static final String REMOTELOCATION_USER = "user"; //$NON-NLS-1$
- public static final String REMOTELOCATION_HOST = "host"; //$NON-NLS-1$
- public static final String REMOTELOCATION_ROOT = "root"; //$NON-NLS-1$
- public static final String REMOTELOCATION_REPOSITORY = "repository"; //$NON-NLS-1$
-
- // bindings for resource states
- public static final String DIRTY_FLAG = "dirty_flag"; //$NON-NLS-1$
- public static final String ADDED_FLAG = "added_flag"; //$NON-NLS-1$
- public static final String DEFAULT_DIRTY_FLAG = ">"; //$NON-NLS-1$
- public static final String DEFAULT_ADDED_FLAG = "*"; //$NON-NLS-1$
-
- // default text decoration formats
- public static final String DEFAULT_FILETEXTFORMAT = "{dirty_flag}{name} {revision} {tag} ({keyword})"; //$NON-NLS-1$
- public static final String DEFAULT_FOLDERTEXTFORMAT = "{dirty_flag}{name} {tag}"; //$NON-NLS-1$
- public static final String DEFAULT_PROJECTTEXTFORMAT = "{dirty_flag}{name} {tag} [{host}]"; //$NON-NLS-1$
-
- // prefix characters that can be removed if the following binding is not found
- private static final char KEYWORD_SEPSPACE = ' ';
- private static final char KEYWORD_SEPCOLON = ':';
- private static final char KEYWORD_SEPAT = '@';
-
- public static void decorate(IDecoration decoration, String format, Map bindings) {
- StringBuffer prefix = new StringBuffer(80);
- StringBuffer suffix = new StringBuffer(80);
- StringBuffer output = prefix;
-
- int length = format.length();
- int start = -1;
- int end = length;
- while (true) {
- if ((end = format.indexOf('{', start)) > -1) {
- output.append(format.substring(start + 1, end));
- if ((start = format.indexOf('}', end)) > -1) {
- String key = format.substring(end + 1, start);
- String s;
-
- //We use the RESOURCE_NAME key to determine if we are doing the prefix or suffix. The name isn't actually part of either.
- if(key.equals(RESOURCE_NAME)) {
- output = suffix;
- s = null;
- } else {
- s = (String) bindings.get(key);
- }
-
- if(s!=null) {
- output.append(s);
- } else {
- // support for removing prefix character if binding is null
- int curLength = output.length();
- if(curLength>0) {
- char c = output.charAt(curLength - 1);
- if(c == KEYWORD_SEPCOLON || c == KEYWORD_SEPAT) {
- output.deleteCharAt(curLength - 1);
- }
- }
- }
- } else {
- output.append(format.substring(end, length));
- break;
- }
- } else {
- output.append(format.substring(start + 1, length));
- break;
- }
- }
-
- if (prefix.length() != 0) {
- decoration.addPrefix(prefix.toString());
- }
- if (suffix.length() != 0) {
- decoration.addSuffix(suffix.toString());
- }
- }
-
-//todo: leaving the old bind method in until senders can be fixed
-
- public static String bind(String format, Map bindings) {
- StringBuffer output = new StringBuffer(80);
- int length = format.length();
- int start = -1;
- int end = length;
- while (true) {
- if ((end = format.indexOf('{', start)) > -1) {
- output.append(format.substring(start + 1, end));
- if ((start = format.indexOf('}', end)) > -1) {
- String s = (String)bindings.get(format.substring(end + 1, start));
- if(s!=null) {
- output.append(s);
- } else {
- // support for removing prefix character if binding is null
- int curLength = output.length();
- if(curLength>0) {
- char c = output.charAt(curLength - 1);
- if(c == KEYWORD_SEPCOLON || c == KEYWORD_SEPAT) {
- output.deleteCharAt(curLength - 1);
- }
- }
- }
- } else {
- output.append(format.substring(end, length));
- break;
- }
- } else {
- output.append(format.substring(start + 1, length));
- break;
- }
- }
- return output.toString();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecoratorPreferencesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecoratorPreferencesPage.java
deleted file mode 100644
index ef27dbefb..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecoratorPreferencesPage.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.compare.internal.TabFolderLayout;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-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.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class CVSDecoratorPreferencesPage extends PreferencePage implements IWorkbenchPreferencePage {
-
- private Button imageShowDirty;
- private Button imageShowHasRemote;
- private Button imageShowAdded;
- private Button imageShowNewResource;
-
- private Text fileTextFormat;
- private Text fileTextFormatExample;
-
- private Text folderTextFormat;
- private Text folderTextFormatExample;
-
- private Text projectTextFormat;
- private Text projectTextFormatExample;
-
- private Text dirtyFlag;
- private Text addedFlag;
-
- private Button showDirty;
-
- class StringPair {
- String s1;
- String s2;
- }
-
- class TextPair {
- TextPair(Text t1, Text t2) {
- this.t1 = t1;
- this.t2 = t2;
- }
- Text t1;
- Text t2;
- }
-
- /**
- * Constructor for CVSDecoratorPreferencesPage.
- */
- public CVSDecoratorPreferencesPage() {
- setDescription(Policy.bind("CVSDecoratorPreferencesPage.description")); //$NON-NLS-1$;
- }
-
- protected TextPair createFormatEditorControl(Composite composite, String title, String buttonText, final Map supportedBindings) {
- createLabel(composite, title, 1);
- Text format = new Text(composite, SWT.BORDER);
- format.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- format.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- updateExamples();
- }
- });
- Button b = new Button(composite, SWT.NONE);
- b.setText(buttonText);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
- int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- data.widthHint = Math.max(widthHint, b.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
- b.setLayoutData(data);
- final Text formatToInsert = format;
- b.addListener(SWT.Selection, new Listener() {
- public void handleEvent (Event event) {
- addVariables(formatToInsert, supportedBindings);
- }
- });
-
- createLabel(composite, Policy.bind("Example__1"), 1); //$NON-NLS-1$
- Text example = new Text(composite, SWT.BORDER);
- example.setEditable(false);
- example.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- createLabel(composite, "", 1); // spacer //$NON-NLS-1$
- return new TextPair(format, example);
- }
-
- protected void updateExamples() {
- String example = ""; //$NON-NLS-1$
- Map bindings = new HashMap();
- try {
- ICVSRepositoryLocation location = CVSRepositoryLocation.fromString(":pserver:username@host.acme.org:/home/cvsroot"); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.RESOURCE_TAG, "v2_0"); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.FILE_KEYWORD,
- Command.KSUBST_TEXT.getShortDisplayText()); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.FILE_REVISION, "1.34"); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.DIRTY_FLAG, dirtyFlag.getText());
- bindings.put(CVSDecoratorConfiguration.ADDED_FLAG, addedFlag.getText());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_HOST, location.getHost());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_METHOD, location.getMethod().getName());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_USER, location.getUsername());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_ROOT, location.getRootDirectory());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_REPOSITORY, "org.eclipse.project1"); //$NON-NLS-1$
- } catch(CVSException e) {
- example = e.getMessage();
- }
- bindings.put(CVSDecoratorConfiguration.RESOURCE_NAME, "file.txt"); //$NON-NLS-1$
- setTextFormatExample(bindings);
- bindings.remove(CVSDecoratorConfiguration.RESOURCE_NAME);
- bindings.put(CVSDecoratorConfiguration.RESOURCE_NAME, "folder"); //$NON-NLS-1$
- setFolderFormatExample(bindings);
- bindings.remove(CVSDecoratorConfiguration.RESOURCE_NAME);
- bindings.put(CVSDecoratorConfiguration.RESOURCE_NAME, "Project"); //$NON-NLS-1$
- setProjectFormatExample(bindings);
- }
-
- /**
- * @see PreferencePage#createContents(Composite)
- */
- protected Control createContents(Composite parent) {
-
- // create a tab folder for the page
- TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
- tabFolder.setLayout(new TabFolderLayout());
- tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- // text decoration options
- TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
- tabItem.setText(Policy.bind("Text_Labels_12"));//$NON-NLS-1$
- tabItem.setControl(createTextDecoratorPage(tabFolder));
-
- // image decoration options
- tabItem = new TabItem(tabFolder, SWT.NONE);
- tabItem.setText(Policy.bind("Icon_Overlays_24"));//$NON-NLS-1$
- tabItem.setControl(createIconDecoratorPage(tabFolder));
-
- // general decoration options
- tabItem = new TabItem(tabFolder, SWT.NONE);
- tabItem.setText(Policy.bind("CVSDecoratorPreferencesPage.generalTabFolder"));//$NON-NLS-1$
- tabItem.setControl(createGeneralDecoratorPage(tabFolder));
-
- initializeValues();
- WorkbenchHelp.setHelp(tabFolder, IHelpContextIds.DECORATORS_PREFERENCE_PAGE);
- Dialog.applyDialogFont(parent);
- return tabFolder;
- }
-
- private Control createTextDecoratorPage(Composite parent) {
- Composite fileTextGroup = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- fileTextGroup.setLayout(layout);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- fileTextGroup.setLayoutData(data);
-
- createLabel(fileTextGroup, Policy.bind("Select_the_format_for_file,_folders,_and_project_text_labels__13"), 3); //$NON-NLS-1$
-
- TextPair format = createFormatEditorControl(fileTextGroup, Policy.bind("&File_Format__14"), Policy.bind("Add_&Variables_15"), getFileBindingDescriptions()); //$NON-NLS-1$ //$NON-NLS-2$
- fileTextFormat = format.t1;
- fileTextFormatExample = format.t2;
- format = createFormatEditorControl(fileTextGroup, Policy.bind("F&older_Format__16"), Policy.bind("Add_Varia&bles_17"), getFolderBindingDescriptions()); //$NON-NLS-1$ //$NON-NLS-2$
- folderTextFormat = format.t1;
- folderTextFormatExample = format.t2;
- format = createFormatEditorControl(fileTextGroup, Policy.bind("&Project_Format__18"), Policy.bind("Add_Variable&s_19"), getFolderBindingDescriptions()); //$NON-NLS-1$ //$NON-NLS-2$
- projectTextFormat = format.t1;
- projectTextFormatExample = format.t2;
-
- createLabel(fileTextGroup, Policy.bind("&Label_decoration_for_outgoing__20"), 1); //$NON-NLS-1$
- dirtyFlag = new Text(fileTextGroup, SWT.BORDER);
- dirtyFlag.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- dirtyFlag.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- updateExamples();
- }
- });
- createLabel(fileTextGroup, "", 1); // spacer //$NON-NLS-1$
-
- createLabel(fileTextGroup, Policy.bind("Label_decorat&ion_for_added__22"), 1); //$NON-NLS-1$
- addedFlag = new Text(fileTextGroup, SWT.BORDER);
- addedFlag.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- addedFlag.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- updateExamples();
- }
- });
-
- return fileTextGroup;
- }
-
- private Control createIconDecoratorPage(Composite parent) {
- Composite imageGroup = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- imageGroup.setLayout(layout);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- imageGroup.setLayoutData(data);
-
- createLabel(imageGroup, Policy.bind("CVSDecoratorPreferencesPage.iconDescription"), 1); //$NON-NLS-1$
-
- imageShowDirty = createCheckBox(imageGroup, Policy.bind("Sho&w_outgoing_25")); //$NON-NLS-1$
- imageShowHasRemote = createCheckBox(imageGroup, Policy.bind("Show_has_&remote_26")); //$NON-NLS-1$
- imageShowAdded = createCheckBox(imageGroup, Policy.bind("S&how_is_added_27")); //$NON-NLS-1$
- imageShowNewResource = createCheckBox(imageGroup, Policy.bind("CVSDecoratorPreferencesPage.newResources")); //$NON-NLS-1$
- return imageGroup;
- }
-
- private Control createGeneralDecoratorPage(Composite parent) {
- Composite composite = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- composite.setLayout(layout);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- composite.setLayoutData(data);
- createLabel(composite, Policy.bind("CVSDecoratorPreferencesPage.generalDescription"), 1); //$NON-NLS-1$
- showDirty = createCheckBox(composite, Policy.bind("&Compute_deep_outgoing_state_for_folders_(disabling_this_will_improve_decorator_performance)_28")); //$NON-NLS-1$
- return composite;
- }
-
- private Label createLabel(Composite parent, String text, int span) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = span;
- data.horizontalAlignment = GridData.FILL;
- label.setLayoutData(data);
- return label;
- }
-
- private Button createCheckBox(Composite group, String label) {
- Button button = new Button(group, SWT.CHECK);
- button.setText(label);
- return button;
- }
-
- protected void setTextFormatExample(Map bindings) {
- String example = CVSDecoratorConfiguration.bind(fileTextFormat.getText(), bindings);
- fileTextFormatExample.setText(example);
- }
-
- protected void setFolderFormatExample(Map bindings) {
- String example = CVSDecoratorConfiguration.bind(folderTextFormat.getText(), bindings);
- folderTextFormatExample.setText(example);
- }
-
- protected void setProjectFormatExample(Map bindings) {
- String example = CVSDecoratorConfiguration.bind(projectTextFormat.getText(), bindings);
- projectTextFormatExample.setText(example);
- }
-
- /**
- * Initializes states of the controls from the preference store.
- */
- private void initializeValues() {
- IPreferenceStore store = getPreferenceStore();
-
- fileTextFormat.setText(store.getString(ICVSUIConstants.PREF_FILETEXT_DECORATION));
- folderTextFormat.setText(store.getString(ICVSUIConstants.PREF_FOLDERTEXT_DECORATION));
- projectTextFormat.setText(store.getString(ICVSUIConstants.PREF_PROJECTTEXT_DECORATION));
-
- addedFlag.setText(store.getString(ICVSUIConstants.PREF_ADDED_FLAG));
- dirtyFlag.setText(store.getString(ICVSUIConstants.PREF_DIRTY_FLAG));
-
- imageShowDirty.setSelection(store.getBoolean(ICVSUIConstants.PREF_SHOW_DIRTY_DECORATION));
- imageShowAdded.setSelection(store.getBoolean(ICVSUIConstants.PREF_SHOW_ADDED_DECORATION));
- imageShowHasRemote.setSelection(store.getBoolean(ICVSUIConstants.PREF_SHOW_HASREMOTE_DECORATION));
- imageShowNewResource.setSelection(store.getBoolean(ICVSUIConstants.PREF_SHOW_NEWRESOURCE_DECORATION));
-
- showDirty.setSelection(store.getBoolean(ICVSUIConstants.PREF_CALCULATE_DIRTY));
- setValid(true);
- }
-
- /**
- * @see IWorkbenchPreferencePage#init(IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-
- /**
- * OK was clicked. Store the CVS preferences.
- *
- * @return whether it is okay to close the preference page
- */
- public boolean performOk() {
- IPreferenceStore store = getPreferenceStore();
- store.setValue(ICVSUIConstants.PREF_FILETEXT_DECORATION, fileTextFormat.getText());
- store.setValue(ICVSUIConstants.PREF_FOLDERTEXT_DECORATION, folderTextFormat.getText());
- store.setValue(ICVSUIConstants.PREF_PROJECTTEXT_DECORATION, projectTextFormat.getText());
-
- store.setValue(ICVSUIConstants.PREF_ADDED_FLAG, addedFlag.getText());
- store.setValue(ICVSUIConstants.PREF_DIRTY_FLAG, dirtyFlag.getText());
-
- store.setValue(ICVSUIConstants.PREF_SHOW_DIRTY_DECORATION, imageShowDirty.getSelection());
- store.setValue(ICVSUIConstants.PREF_SHOW_ADDED_DECORATION, imageShowAdded.getSelection());
- store.setValue(ICVSUIConstants.PREF_SHOW_HASREMOTE_DECORATION, imageShowHasRemote.getSelection());
- store.setValue(ICVSUIConstants.PREF_SHOW_NEWRESOURCE_DECORATION, imageShowNewResource.getSelection());
-
- store.setValue(ICVSUIConstants.PREF_CALCULATE_DIRTY, showDirty.getSelection());
-
- CVSUIPlugin.broadcastPropertyChange(new PropertyChangeEvent(this, CVSUIPlugin.P_DECORATORS_CHANGED, null, null));
- CVSUIPlugin.getPlugin().savePluginPreferences();
- return true;
- }
-
- /**
- * Defaults was clicked. Restore the CVS preferences to
- * their default values
- */
- protected void performDefaults() {
- super.performDefaults();
- IPreferenceStore store = getPreferenceStore();
-
- fileTextFormat.setText(store.getDefaultString(ICVSUIConstants.PREF_FILETEXT_DECORATION));
- folderTextFormat.setText(store.getDefaultString(ICVSUIConstants.PREF_FOLDERTEXT_DECORATION));
- projectTextFormat.setText(store.getDefaultString(ICVSUIConstants.PREF_PROJECTTEXT_DECORATION));
-
- addedFlag.setText(store.getDefaultString(ICVSUIConstants.PREF_ADDED_FLAG));
- dirtyFlag.setText(store.getDefaultString(ICVSUIConstants.PREF_DIRTY_FLAG));
-
- imageShowDirty.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_SHOW_DIRTY_DECORATION));
- imageShowAdded.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_SHOW_ADDED_DECORATION));
- imageShowHasRemote.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_SHOW_HASREMOTE_DECORATION));
- imageShowNewResource.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_SHOW_NEWRESOURCE_DECORATION));
-
- showDirty.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_CALCULATE_DIRTY));
- }
-
- /**
- * Returns preference store that belongs to the our plugin.
- * This is important because we want to store
- * our preferences separately from the desktop.
- *
- * @return the preference store for this plugin
- */
- protected IPreferenceStore doGetPreferenceStore() {
- return CVSUIPlugin.getPlugin().getPreferenceStore();
- }
-
- /**
- * Add another project to the list at the end.
- */
- private void addVariables(Text target, Map bindings) {
-
- final List variables = new ArrayList(bindings.size());
-
- ILabelProvider labelProvider = new LabelProvider() {
- public String getText(Object element) {
- return ((StringPair)element).s1 + " - " + ((StringPair)element).s2; //$NON-NLS-1$
- }
- };
-
- IStructuredContentProvider contentsProvider = new IStructuredContentProvider() {
- public Object[] getElements(Object inputElement) {
- return (Object[]) variables.toArray(new StringPair[variables.size()]);
- }
- public void dispose() {}
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
- };
-
- for (Iterator it = bindings.keySet().iterator(); it.hasNext();) {
- StringPair variable = new StringPair();
- variable.s1 = (String) it.next(); // variable
- variable.s2 = (String) bindings.get(variable.s1); // description
- variables.add(variable);
- }
-
- ListSelectionDialog dialog =
- new ListSelectionDialog(
- this.getShell(),
- this,
- contentsProvider,
- labelProvider,
- Policy.bind("Select_the_&variables_to_add_to_the_decoration_format__30")); //$NON-NLS-1$
- dialog.setTitle(Policy.bind("Add_Variables_31")); //$NON-NLS-1$
- if (dialog.open() != ListSelectionDialog.OK)
- return;
-
- Object[] result = dialog.getResult();
-
- for (int i = 0; i < result.length; i++) {
- target.insert("{"+((StringPair)result[i]).s1 +"}"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- private Map getFolderBindingDescriptions() {
- Map bindings = new HashMap();
- bindings.put(CVSDecoratorConfiguration.RESOURCE_NAME, Policy.bind("name_of_the_resource_being_decorated_34")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.RESOURCE_TAG, Policy.bind("the_tag_applied_to_the_resource_(version,_branch,_or_date)_35")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_HOST, Policy.bind("the_repository_location__s_hostname_36")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_METHOD, Policy.bind("the_connection_method_(e.g._pserver,_ssh)_37")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_USER, Policy.bind("user_name_for_the_connection_38")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_ROOT, Policy.bind("repository_home_directory_on_server_39")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_REPOSITORY, Policy.bind("root_relative_directory_40")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.DIRTY_FLAG, Policy.bind("flag_indicating_that_the_folder_has_a_child_resource_with_outgoing_changes_41")); //$NON-NLS-1$
- return bindings;
- }
-
- private Map getFileBindingDescriptions() {
- Map bindings = new HashMap();
- bindings.put(CVSDecoratorConfiguration.RESOURCE_NAME, Policy.bind("name_of_the_resource_being_decorated_42")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.RESOURCE_TAG, Policy.bind("the_tag_applied_to_the_resource_43")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.FILE_KEYWORD, Policy.bind("keyword_substitution_rule_for_the_resource_44")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.FILE_REVISION, Policy.bind("last_revision_loaded_into_workspace_45")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.DIRTY_FLAG, Policy.bind("flag_indicating_that_the_file_has_outgoing_changes_46")); //$NON-NLS-1$
- bindings.put(CVSDecoratorConfiguration.ADDED_FLAG, Policy.bind("flag_indicating_that_the_file_has_been_added_to_the_server_47")); //$NON-NLS-1$
- return bindings;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFieldEditorPreferencePage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFieldEditorPreferencePage.java
deleted file mode 100644
index a60360891..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFieldEditorPreferencePage.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.ui;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * This class acts as an abstract superclass for CVS preference pages that use
- * field editors.
- */
-public abstract class CVSFieldEditorPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
- public static IPreferenceStore getCVSPreferenceStore() {
- return CVSUIPlugin.getPlugin().getPreferenceStore();
- }
-
- /**
- * Constructor for CVSFieldEditorPreferencePage.
- */
- public CVSFieldEditorPreferencePage() {
- super(GRID);
- setPreferenceStore(getCVSPreferenceStore());
- String description = getPageDescription();
- if (description != null)
- setDescription(description);
- }
-
- /**
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
- protected Control createContents(Composite parent) {
- Control control = super.createContents(parent);
- String id = getPageHelpContextId();
- if (id != null)
- WorkbenchHelp.setHelp(control, id);
- Dialog.applyDialogFont(control);
- return control;
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-
- /**
- * Method getPageHelpContextId must be overridden by subclasses to provide
- * the help context ID of the page. Return null for no page F1 help.
- *
- * @return String
- */
- protected abstract String getPageHelpContextId();
-
- /**
- * Method getPageDescription must be overridden by subclasses to provide the
- * description of the page. Return null for no description.
- * @return String
- */
- protected abstract String getPageDescription();
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFilePropertiesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFilePropertiesPage.java
deleted file mode 100644
index b700f744c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFilePropertiesPage.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-
-import java.text.DateFormat;
-import java.util.Date;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.Dialog;
-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.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-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.Util;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class CVSFilePropertiesPage extends CVSPropertiesPage {
- IFile file;
-
- /*
- * @see PreferencesPage#createContents
- */
- protected Control createContents(Composite parent) {
- initialize();
- noDefaultAndApplyButton();
- Composite composite = new Composite(parent, SWT.NULL);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- composite.setLayout(layout);
-
- try {
- ICVSFile cvsResource = CVSWorkspaceRoot.getCVSFileFor(file);
- if (!cvsResource.isManaged()) {
- if (cvsResource.isIgnored()) {
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.ignored")); //$NON-NLS-1$
- } else {
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.notManaged")); //$NON-NLS-1$
- }
- createLabel(composite, ""); //$NON-NLS-1$
- return composite;
- }
- ResourceSyncInfo syncInfo = cvsResource.getSyncInfo();
-
-
-
- if (syncInfo.isAdded()) {
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.isAdded"), 2); //$NON-NLS-1$
- } else {
- // Base
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.baseRevision")); //$NON-NLS-1$
- createLabel(composite, syncInfo.getRevision());
- Date baseTime = syncInfo.getTimeStamp();
- if (baseTime != null) {
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.baseTimestamp")); //$NON-NLS-1$
- createLabel(composite, DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(syncInfo.getTimeStamp()));
- }
-
- // Modified
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.modified")); //$NON-NLS-1$
- createLabel(composite, cvsResource.isModified(null) ? Policy.bind("yes") : Policy.bind("no")); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- // Keyword Mode
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.keywordMode")); //$NON-NLS-1$
- createLabel(composite, syncInfo.getKeywordMode().getLongDisplayText());
-
- // Tag
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.tag")); //$NON-NLS-1$
- CVSTag tag = Util.getAccurateFileTag(cvsResource);
- createLabel(composite, getTagLabel(tag));
-
- // Permissions
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.permissions")); //$NON-NLS-1$
- String permissions = syncInfo.getPermissions();
- if (permissions == null) {
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.notAvailable")); //$NON-NLS-1$
- } else {
- createLabel(composite, syncInfo.getPermissions());
- }
- } catch (TeamException e) {
- // Display error text
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.error")); //$NON-NLS-1$
- createLabel(composite, ""); //$NON-NLS-1$
- }
- WorkbenchHelp.setHelp(getControl(), IHelpContextIds.FILE_PROPERTY_PAGE);
- Dialog.applyDialogFont(parent);
- 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, int span) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = span;
- data.horizontalAlignment = GridData.FILL;
- label.setLayoutData(data);
- return label;
- }
- protected Label createLabel(Composite parent, String text) {
- return createLabel(parent, text, 1);
- }
- /**
- * Initializes the page
- */
- private void initialize() {
- // Get the file that is the source of this property page
- file = null;
- IAdaptable element = getElement();
- if (element instanceof IFile) {
- file = (IFile)element;
- } else {
- Object adapter = element.getAdapter(IFile.class);
- if (adapter instanceof IFile) {
- file = (IFile)adapter;
- }
- }
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFolderPropertiesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFolderPropertiesPage.java
deleted file mode 100644
index ac4d9c648..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSFolderPropertiesPage.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-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.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-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.util.Util;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class CVSFolderPropertiesPage extends CVSPropertiesPage {
-
- IFolder folder;
- private Label root;
- private Label repository;
-
- /**
- * @see PreferencePage#createContents(Composite)
- */
- protected Control createContents(Composite parent) {
- initialize();
- noDefaultAndApplyButton();
- Composite composite = new Composite(parent, SWT.NULL);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- composite.setLayout(layout);
-
- try {
- ICVSFolder cvsResource = CVSWorkspaceRoot.getCVSFolderFor(folder);
- if (!cvsResource.isManaged()) {
- if (cvsResource.isIgnored()) {
- createLabel(composite, Policy.bind("CVSFolderPropertiesPage.ignored"), 2); //$NON-NLS-1$
- } else {
- createLabel(composite, Policy.bind("CVSFolderPropertiesPage.notManaged"), 2); //$NON-NLS-1$
- }
- } else if (!cvsResource.isCVSFolder()) {
- // We have a managed folder which is not a cvs folder.
- // This is really an invalid state but it does happen once in a while
- createLabel(composite, Policy.bind("CVSFolderPropertiesPage.notCVSFolder"), 2); //$NON-NLS-1$
- } else {
- FolderSyncInfo syncInfo = cvsResource.getFolderSyncInfo();
- createLabel(composite, Policy.bind("CVSFolderPropertiesPage.root")); //$NON-NLS-1$
- root = createLabel(composite, syncInfo.getRoot());
- createLabel(composite, Policy.bind("CVSFolderPropertiesPage.repository")); //$NON-NLS-1$
- repository = createLabel(composite, syncInfo.getRepository());
-
- // Tag
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.tag")); //$NON-NLS-1$
- CVSTag tag = syncInfo.getTag();
-
- if (tag != null && tag.getType() == CVSTag.BRANCH) {
- tag = Util.getAccurateFolderTag(folder, tag);
- }
-
- createLabel(composite, getTagLabel(tag));
-
- // Static-ness
- if (syncInfo.getIsStatic()) {
- createLabel(composite, Policy.bind("CVSFolderPropertiesPage.static")); //$NON-NLS-1$
- createLabel(composite, syncInfo.getIsStatic() ? Policy.bind("yes") : Policy.bind("no")); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- createLabel(composite, "", 2); // spacer //$NON-NLS-1$
-
- // Allow the folder to be disconnected from CVS control
- final Button disconnect = new Button(composite, SWT.NONE);
- disconnect.setText(Policy.bind("CVSFolderPropertiesPage.disconnect")); //$NON-NLS-1$
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END);
- data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
- int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- data.widthHint = Math.max(widthHint, disconnect.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
- disconnect.setLayoutData(data);
- disconnect.addListener(SWT.Selection, new Listener() {
- public void handleEvent (Event event) {
- // perform a disconnect
- if (disconnectFolder()) {
- root.setText(Policy.bind("CVSFilePropertiesPage.none")); //$NON-NLS-1$
- repository.setText(Policy.bind("CVSFilePropertiesPage.none")); //$NON-NLS-1$
- disconnect.setEnabled(false);
- }
- }
- });
- }
- } catch (TeamException e) {
- // Display error text
- createLabel(composite, Policy.bind("CVSFilePropertiesPage.error"), 2); //$NON-NLS-1$
- }
- WorkbenchHelp.setHelp(getControl(), IHelpContextIds.FOLDER_PROPERTY_PAGE);
- Dialog.applyDialogFont(parent);
- 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, int span) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = span;
- data.horizontalAlignment = GridData.FILL;
- label.setLayoutData(data);
- return label;
- }
-
- protected Label createLabel(Composite parent, String text) {
- return createLabel(parent, text, 1);
- }
- /**
- * Initializes the page
- */
- private void initialize() {
- // Get the file that is the source of this property page
- folder = null;
- IAdaptable element = getElement();
- if (element instanceof IFolder) {
- folder = (IFolder)element;
- } else {
- Object adapter = element.getAdapter(IFolder.class);
- if (adapter instanceof IFolder) {
- folder = (IFolder)adapter;
- }
- }
- }
-
- private boolean disconnectFolder() {
- if (MessageDialog.openQuestion(getShell(), Policy.bind("CVSFolderPropertiesPage.disconnectTitle"), Policy.bind("CVSFolderPropertiesPage.disconnectQuestion"))) { //$NON-NLS-1$ //$NON-NLS-2$
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder);
- try {
- cvsFolder.unmanage(null);
- } catch (CVSException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- return false;
- }
- return true;
- } else {
- return false;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSLightweightDecorator.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSLightweightDecorator.java
deleted file mode 100644
index 335660518..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSLightweightDecorator.java
+++ /dev/null
@@ -1,592 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-
-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 org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-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.IResourceStateChangeListener;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners;
-import org.eclipse.team.internal.core.ExceptionCollector;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.team.ui.ISharedImages;
-import org.eclipse.team.ui.TeamUI;
-
-public class CVSLightweightDecorator extends LabelProvider implements ILightweightLabelDecorator, IResourceStateChangeListener, IPropertyChangeListener {
-
- // Decorator id as defined in the decorator extension point
- public final static String ID = "org.eclipse.team.cvs.ui.decorator"; //$NON-NLS-1$
-
- // Images cached for better performance
- private static ImageDescriptor dirty;
- private static ImageDescriptor checkedIn;
- private static ImageDescriptor noRemoteDir;
- private static ImageDescriptor added;
- private static ImageDescriptor merged;
- private static ImageDescriptor newResource;
- private static ImageDescriptor edited;
-
- private static ExceptionCollector exceptions = new ExceptionCollector(Policy.bind("CVSDecorator.exceptionMessage"), CVSUIPlugin.ID, IStatus.ERROR, CVSUIPlugin.getPlugin().getLog()); //$NON-NLS-1$;
-
-
-
- /*
- * Define a cached image descriptor which only creates the image data once
- */
- public static class CachedImageDescriptor extends ImageDescriptor {
- ImageDescriptor descriptor;
- ImageData data;
- public CachedImageDescriptor(ImageDescriptor descriptor) {
- this.descriptor = descriptor;
- }
- public ImageData getImageData() {
- if (data == null) {
- data = descriptor.getImageData();
- }
- return data;
- }
- }
-
- public static class Decoration implements IDecoration {
- public String prefix, suffix;
- public ImageDescriptor overlay;
-
- /**
- * @see org.eclipse.jface.viewers.IDecoration#addPrefix(java.lang.String)
- */
- public void addPrefix(String prefix) {
- this.prefix = prefix;
- }
- /**
- * @see org.eclipse.jface.viewers.IDecoration#addSuffix(java.lang.String)
- */
- public void addSuffix(String suffix) {
- this.suffix = suffix;
- }
- /**
- * @see org.eclipse.jface.viewers.IDecoration#addOverlay(org.eclipse.jface.resource.ImageDescriptor)
- */
- public void addOverlay(ImageDescriptor overlay) {
- this.overlay = overlay;
- }
- }
-
- static {
- dirty = new CachedImageDescriptor(TeamUIPlugin.getImageDescriptor(ISharedImages.IMG_DIRTY_OVR));
- checkedIn = new CachedImageDescriptor(TeamUIPlugin.getImageDescriptor(ISharedImages.IMG_CHECKEDIN_OVR));
- added = new CachedImageDescriptor(TeamUIPlugin.getImageDescriptor(ISharedImages.IMG_CHECKEDIN_OVR));
- merged = new CachedImageDescriptor(CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_MERGED));
- newResource = new CachedImageDescriptor(CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_QUESTIONABLE));
- edited = new CachedImageDescriptor(CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_EDITED));
- noRemoteDir = new CachedImageDescriptor(CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_NO_REMOTEDIR));
- }
-
- public CVSLightweightDecorator() {
- ResourceStateChangeListeners.getListener().addResourceStateChangeListener(this);
- TeamUI.addPropertyChangeListener(this);
- CVSUIPlugin.addPropertyChangeListener(this);
- CVSProviderPlugin.broadcastDecoratorEnablementChanged(true /* enabled */);
- }
-
- public static boolean isDirty(final ICVSResource cvsResource) {
- try {
- return !cvsResource.isIgnored() && cvsResource.isModified(null);
- } catch (CVSException e) {
- //if we get an error report it to the log but assume dirty
- handleException(e);
- return true;
- }
- }
-
- public static boolean isDirty(IResource resource) {
-
- // No need to decorate non-existant resources
- if (!resource.exists()) return false;
-
- return isDirty(CVSWorkspaceRoot.getCVSResourceFor(resource));
-
- }
-
- /*
- * Answers null if a provider does not exist or the provider is not a CVS provider. These resources
- * will be ignored by the decorator.
- */
- private CVSTeamProvider getCVSProviderFor(IResource resource) {
- RepositoryProvider p =
- RepositoryProvider.getProvider(
- resource.getProject(),
- CVSProviderPlugin.getTypeId());
- if (p == null) {
- return null;
- }
- return (CVSTeamProvider) p;
- }
-
- /**
- * Returns the resource for the given input object, or
- * null if there is no resource associated with it.
- *
- * @param object the object to find the resource for
- * @return the resource for the given object, or null
- */
- private IResource getResource(Object object) {
- if (object instanceof IResource) {
- return (IResource) object;
- }
- if (object instanceof IAdaptable) {
- return (IResource) ((IAdaptable) object).getAdapter(
- IResource.class);
- }
- return null;
- }
- /**
- * This method should only be called by the decorator thread.
- *
- * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
- */
- public void decorate(Object element, IDecoration decoration) {
-
- IResource resource = getResource(element);
- if (resource == null || resource.getType() == IResource.ROOT)
- return;
-
- CVSTeamProvider cvsProvider = getCVSProviderFor(resource);
- if (cvsProvider == null)
- return;
-
-
- // if the resource is ignored return an empty decoration. This will
- // force a decoration update event and clear the existing CVS decoration.
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- try {
- if (cvsResource.isIgnored()) {
- return;
- }
- } catch (CVSException e) {
- // The was an exception in isIgnored. Don't decorate
- //todo should log this error
- handleException(e);
- return;
- }
-
- // determine a if resource has outgoing changes (e.g. is dirty).
- boolean isDirty = false;
- boolean computeDeepDirtyCheck = isDeepDirtyCalculationEnabled();
- int type = resource.getType();
- if (type == IResource.FILE || computeDeepDirtyCheck) {
- isDirty = CVSLightweightDecorator.isDirty(resource);
- }
-
- decorateTextLabel(resource, decoration, isDirty, true);
-
- ImageDescriptor overlay = getOverlay(resource, isDirty, cvsProvider);
- if(overlay != null) { //actually sending null arg would work but this makes logic clearer
- decoration.addOverlay(overlay);
- }
- }
-
- private boolean isDeepDirtyCalculationEnabled() {
- IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- return store.getBoolean(ICVSUIConstants.PREF_CALCULATE_DIRTY);
- }
-
- //todo the showRevisions flag is temp, a better solution is DecoratorStrategy classes which have most the code below
- public static void decorateTextLabel(IResource resource, IDecoration decoration, boolean isDirty, boolean showRevisions) {
- try {
- Map bindings = new HashMap(3);
- String format = ""; //$NON-NLS-1$
- IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
-
- // if the resource does not have a location then return. This can happen if the resource
- // has been deleted after we where asked to decorate it.
- if(!resource.isAccessible() || resource.getLocation() == null) {
- return;
- }
-
- int type = resource.getType();
-
- if (type == IResource.FOLDER) {
- format = store.getString(ICVSUIConstants.PREF_FOLDERTEXT_DECORATION);
- } else if (type == IResource.PROJECT) {
- format = store.getString(ICVSUIConstants.PREF_PROJECTTEXT_DECORATION);
- } else {
- format = store.getString(ICVSUIConstants.PREF_FILETEXT_DECORATION);
- }
-
- if (isDirty) {
- bindings.put(CVSDecoratorConfiguration.DIRTY_FLAG, store.getString(ICVSUIConstants.PREF_DIRTY_FLAG));
- }
-
- CVSTag tag = getTagToShow(resource);
- if (tag != null) {
- bindings.put(CVSDecoratorConfiguration.RESOURCE_TAG, tag.getName());
- }
-
- if (type != IResource.FILE) {
- ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor((IContainer) resource);
- FolderSyncInfo folderInfo = folder.getFolderSyncInfo();
- if (folderInfo != null) {
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(folderInfo.getRoot());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_HOST, location.getHost());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_METHOD, location.getMethod().getName());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_USER, location.getUsername());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_ROOT, location.getRootDirectory());
- bindings.put(CVSDecoratorConfiguration.REMOTELOCATION_REPOSITORY, folderInfo.getRepository());
- }
- } else {
- format = store.getString(ICVSUIConstants.PREF_FILETEXT_DECORATION);
- ICVSFile file = CVSWorkspaceRoot.getCVSFileFor((IFile) resource);
- ResourceSyncInfo fileInfo = file.getSyncInfo();
- if (fileInfo != null) {
- if (fileInfo.isAdded()) {
- bindings.put(CVSDecoratorConfiguration.ADDED_FLAG, store.getString(ICVSUIConstants.PREF_ADDED_FLAG));
- } else {
- if(showRevisions)
- bindings.put(CVSDecoratorConfiguration.FILE_REVISION, fileInfo.getRevision());
- }
- KSubstOption option = fileInfo.getKeywordMode() != null ?
- fileInfo.getKeywordMode() :
- KSubstOption.fromFile((IFile) resource);
- bindings.put(CVSDecoratorConfiguration.FILE_KEYWORD, option.getShortDisplayText());
- } else {
- // only show the type that cvs will use when comitting the file
- KSubstOption option = KSubstOption.fromFile((IFile) resource);
- bindings.put(CVSDecoratorConfiguration.FILE_KEYWORD, option.getShortDisplayText());
- }
- }
-
- CVSDecoratorConfiguration.decorate(decoration, format, bindings);
-
- } catch (CVSException e) {
- handleException(e);
- return;
- }
- }
-
- /**
- * Only show the tag if the resources tag is different than the parents. Or else, tag
- * names will clutter the text decorations.
- */
- protected static CVSTag getTagToShow(IResource resource) throws CVSException {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- CVSTag tag = null;
-
- // for unmanaged resources don't show a tag since they will be added in
- // the context of their parents tag. For managed resources only show tags
- // if different than parent.
- boolean managed = false;
-
- if(cvsResource.isFolder()) {
- FolderSyncInfo folderInfo = ((ICVSFolder)cvsResource).getFolderSyncInfo();
- if(folderInfo != null) {
- tag = folderInfo.getTag();
- managed = true;
- }
- } else {
- ResourceSyncInfo info = ((ICVSFile)cvsResource).getSyncInfo();
- if(info != null) {
- tag = info.getTag();
- managed = true;
- }
- }
-
- ICVSFolder parent = cvsResource.getParent();
- if(parent != null && managed) {
- FolderSyncInfo parentInfo = parent.getFolderSyncInfo();
- if(parentInfo != null) {
- CVSTag parentTag = parentInfo.getTag();
- parentTag = (parentTag == null ? CVSTag.DEFAULT : parentTag);
- tag = (tag == null ? CVSTag.DEFAULT : tag);
- // must compare tags by name because CVS doesn't do a good job of
- // using T and N prefixes for folders and files.
- if( parentTag.getName().equals(tag.getName())) {
- tag = null;
- }
- }
- }
- return tag;
- }
-
- /* Determine and return the overlay icon to use.
- * We only get to use one, so if many are applicable at once we chose the
- * one we think is the most important to show.
- * Return null if no overlay is to be used.
- */
- public static ImageDescriptor getOverlay(IResource resource, boolean isDirty, CVSTeamProvider provider) {
-
- // for efficiency don't look up a pref until its needed
- IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- boolean showNewResources = store.getBoolean(ICVSUIConstants.PREF_SHOW_NEWRESOURCE_DECORATION);
-
- // show newResource icon
- if (showNewResources) {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- try {
- if (cvsResource.exists()) {
- boolean isNewResource = false;
- if (cvsResource.isFolder()) {
- if (!((ICVSFolder)cvsResource).isCVSFolder()) {
- isNewResource = true;
- }
- } else if (!cvsResource.isManaged()) {
- isNewResource = true;
- }
- if (isNewResource) {
- return newResource;
- }
- }
- } catch (CVSException e) {
- handleException(e);
- return null;
- }
- }
-
- boolean showDirty = store.getBoolean(ICVSUIConstants.PREF_SHOW_DIRTY_DECORATION);
-
- // show dirty icon
- if(showDirty && isDirty) {
- return dirty;
- }
-
- boolean showAdded = store.getBoolean(ICVSUIConstants.PREF_SHOW_ADDED_DECORATION);
-
- if (showAdded && resource.getType() == IResource.FILE) {
- try {
- if (resource.getLocation() != null) {
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile) resource);
- ResourceSyncInfo info = cvsFile.getSyncInfo();
- // show merged icon if file has been merged but has not been edited (e.g. on commit it will be ignored)
- if (info != null && info.isNeedsMerge(cvsFile.getTimeStamp())) {
- return merged;
- // show added icon if file has been added locally.
- } else if (info != null && info.isAdded()) {
- // todo
- return added;
- }
- }
- } catch (CVSException e) {
- handleException(e);
- return null;
- }
- }
-
- // if watch/edit is enabled, show non-read-only files as being edited
- boolean decorateEdited;
- try {
- decorateEdited = provider.isWatchEditEnabled();
- } catch (CVSException e1) {
- handleException(e1);
- decorateEdited = false;
- }
-
- if (decorateEdited && resource.getType() == IResource.FILE && !resource.isReadOnly() && CVSWorkspaceRoot.hasRemote(resource)) {
- return edited;
- }
-
- boolean showHasRemote = store.getBoolean(ICVSUIConstants.PREF_SHOW_HASREMOTE_DECORATION);
-
- // Simplest is that is has remote.
- if (showHasRemote && CVSWorkspaceRoot.hasRemote(resource)) {
- if (resource.getType() != IResource.FILE) {
- // check if the folder is local diectory with no remote
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor((IContainer)resource);
- try {
- FolderSyncInfo folderSyncInfo = cvsFolder.getFolderSyncInfo();
- if (folderSyncInfo != null && folderSyncInfo.isVirtualDirectory()) {
- return noRemoteDir;
- }
- } catch (CVSException e) {
- // log the exception and show the shared overlay
- handleException(e);
- }
- }
- return checkedIn;
- }
-
- //nothing matched
- return null;
-
- }
-
- /*
- * Add resource and its parents to the List
- */
-
- private void addWithParents(IResource resource, Set resources) {
- IResource current = resource;
-
- while (current.getType() != IResource.ROOT) {
- resources.add(current);
- current = current.getParent();
- }
- }
-
- /*
- * Perform a blanket refresh of all CVS decorations
- */
- public static void refresh() {
- CVSUIPlugin.getPlugin().getWorkbench().getDecoratorManager().update(CVSUIPlugin.DECORATOR_ID);
- }
-
- /*
- * Update the decorators for every resource in project
- */
-
- public void refresh(IProject project) {
- final List resources = new ArrayList();
- try {
- project.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) {
- resources.add(resource);
- return true;
- }
- });
- postLabelEvent(new LabelProviderChangedEvent(this, resources.toArray()));
- } catch (CoreException e) {
- handleException(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#resourceSyncInfoChanged(org.eclipse.core.resources.IResource[])
- */
- public void resourceSyncInfoChanged(IResource[] changedResources) {
- resourceStateChanged(changedResources);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#externalSyncInfoChange(org.eclipse.core.resources.IResource[])
- */
- public void externalSyncInfoChange(IResource[] changedResources) {
- resourceStateChanged(changedResources);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#resourceModificationStateChanged(org.eclipse.core.resources.IResource[])
- */
- public void resourceModified(IResource[] changedResources) {
- resourceStateChanged(changedResources);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#resourceStateChanged(org.eclipse.core.resources.IResource[])
- */
- public void resourceStateChanged(IResource[] changedResources) {
- // add depth first so that update thread processes parents first.
- //System.out.println(">> State Change Event");
- Set resourcesToUpdate = new HashSet();
-
- boolean showingDeepDirtyIndicators = isDeepDirtyCalculationEnabled();
-
- for (int i = 0; i < changedResources.length; i++) {
- IResource resource = changedResources[i];
-
- if(showingDeepDirtyIndicators) {
- addWithParents(resource, resourcesToUpdate);
- } else {
- resourcesToUpdate.add(resource);
- }
- }
-
- postLabelEvent(new LabelProviderChangedEvent(this, resourcesToUpdate.toArray()));
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#projectConfigured(org.eclipse.core.resources.IProject)
- */
- public void projectConfigured(IProject project) {
- refresh(project);
- }
- /**
- * @see org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener#projectDeconfigured(org.eclipse.core.resources.IProject)
- */
- public void projectDeconfigured(IProject project) {
- refresh(project);
- }
-
- /**
- * Post the label event to the UI thread
- *
- * @param events the events to post
- */
- private void postLabelEvent(final LabelProviderChangedEvent event) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- fireLabelProviderChanged(event);
- }
- });
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
- */
- public void dispose() {
- super.dispose();
- CVSProviderPlugin.broadcastDecoratorEnablementChanged(false /* disabled */);
- TeamUI.removePropertyChangeListener(this);
- CVSUIPlugin.removePropertyChangeListener(this);
- }
-
- /**
- * Handle exceptions that occur in the decorator.
- */
- private static void handleException(Exception e) {
- exceptions.handleException(e);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- String prop = event.getProperty();
- if(prop.equals(TeamUI.GLOBAL_IGNORES_CHANGED)) {
- refresh();
- } else if(prop.equals(CVSUIPlugin.P_DECORATORS_CHANGED)) {
- refresh();
- }
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSLocalCompareEditorInput.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSLocalCompareEditorInput.java
deleted file mode 100644
index efef0f332..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSLocalCompareEditorInput.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.internal.ccvs.ui;
-
-
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.resources.CVSRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.ui.sync.CVSSyncCompareInput;
-import org.eclipse.team.internal.ui.sync.SyncView;
-
-public class CVSLocalCompareEditorInput extends CVSSyncCompareInput {
- CVSTag[] tags;
-
- public CVSLocalCompareEditorInput(IResource[] resources, CVSTag[] tags) {
- super(resources);
- Assert.isTrue(resources.length == tags.length);
- this.tags = tags;
- }
-
- public CVSLocalCompareEditorInput(IResource[] resources, CVSTag tag) {
- super(resources);
- Assert.isTrue(tag != null);
- this.tags = new CVSTag[] {tag};
- }
-
- public Viewer createDiffViewer(Composite parent) {
- Viewer viewer = super.createDiffViewer(parent);
- getViewer().syncModeChanged(SyncView.SYNC_COMPARE);
- return viewer;
- }
-
- protected IRemoteSyncElement[] createSyncElements(IProgressMonitor monitor) throws TeamException {
- IResource[] resources = getResources();
- IRemoteSyncElement[] trees = new IRemoteSyncElement[resources.length];
- int work = 100 * resources.length;
- monitor.beginTask(null, work);
- try {
- for (int i = 0; i < trees.length; i++) {
- IResource resource = resources[i];
- CVSTag tag;
- if(tags.length != resources.length) {
- tag = tags[0];
- } else {
- tag = tags[i];
- }
- IRemoteResource remote = CVSWorkspaceRoot.getRemoteTree(resource, tag, getCacheFileContentsHint(), Policy.subMonitorFor(monitor, 50));
- trees[i] = new CVSRemoteSyncElement(false /* two-way */, resource, null, remote);
- }
- } finally {
- monitor.done();
- }
- //getViewer().resetFilters();
- return trees;
- }
-
- private boolean getCacheFileContentsHint() {
- return getSyncGranularity() != IRemoteSyncElement.GRANULARITY_TIMESTAMP;
- }
-
- public String getTitle() {
- return Policy.bind("CVSLocalCompareEditorInput.title", tags[0].getName()); //$NON-NLS-1$
- }
-
- protected void contentsChanged(ICompareInput source) {
- }
-
- public String getToolTipText() {
- return getTitle();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPerspective.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPerspective.java
deleted file mode 100644
index 025bd64c0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPerspective.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.internal.ccvs.ui;
-
-
-import org.eclipse.team.internal.ccvs.ui.repo.*;
-import org.eclipse.ui.*;
-
-public class CVSPerspective implements IPerspectiveFactory {
-
- /* (Non-javadoc)
- * Method declared on IPerpsectiveFactory
- */
- public void createInitialLayout(IPageLayout layout) {
- defineActions(layout);
- defineLayout(layout);
- }
-
- /**
- * Defines the initial actions for a page.
- */
-
- public void defineActions(IPageLayout layout) {
-
- // Add "new wizards".
- layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.project"); //$NON-NLS-1$
- layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder"); //$NON-NLS-1$
- layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.file"); //$NON-NLS-1$
-
- // Add "show views".
- layout.addShowViewShortcut(IPageLayout.ID_RES_NAV);
- layout.addShowViewShortcut(IPageLayout.ID_OUTLINE);
- layout.addShowViewShortcut(IPageLayout.ID_TASK_LIST);
- layout.addShowViewShortcut(HistoryView.VIEW_ID);
- layout.addShowViewShortcut(RepositoriesView.VIEW_ID);
- }
-
- /**
- * Defines the initial layout for a page.
- */
- public void defineLayout(IPageLayout layout) {
- String editorArea = layout.getEditorArea();
- IFolderLayout top =
- layout.createFolder("top", IPageLayout.LEFT, 0.40f, editorArea); //$NON-NLS-1$
- top.addView(RepositoriesView.VIEW_ID);
- layout.addView(HistoryView.VIEW_ID, IPageLayout.BOTTOM, 0.70f, editorArea);
- layout.setEditorAreaVisible(true);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPreferencesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPreferencesPage.java
deleted file mode 100644
index 00b563546..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPreferencesPage.java
+++ /dev/null
@@ -1,487 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-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.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.client.Command.QuietOption;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * CVS Preference Page
- *
- * Allows the configuration of CVS specific options.
- * The currently supported options are:
- * - Allow loading of CVS administration directory (CVSROOT)
- *
- * There are currently a couple of deficiencies:
- * 1. The Repository view is not refreshed when the show CVSROOT option is changed
- * 2. There is no help associated with the page
- */
-public class CVSPreferencesPage extends PreferencePage implements IWorkbenchPreferencePage {
-
- private Button pruneEmptyDirectoriesField;
- private Text timeoutValue;
- private Combo quietnessCombo;
- private Combo compressionLevelCombo;
- private Combo ksubstCombo;
- private List ksubstOptions;
- private Button considerContentsInCompare;
- private Button replaceUnmanaged;
- private Button repositoriesAreBinary;
- private Button determineVersionEnabled;
- private Button confirmMoveTag;
- private Button debugProtocol;
-
- private Button never;
- private Button prompt;
- private Button auto;
-
- public CVSPreferencesPage() {
- // sort the options by display text
- setDescription(Policy.bind("CVSPreferencePage.description")); //$NON-NLS-1$
- KSubstOption[] options = KSubstOption.getAllKSubstOptions();
- this.ksubstOptions = new ArrayList();
- for (int i = 0; i < options.length; i++) {
- KSubstOption option = options[i];
- if (! option.isBinary()) {
- ksubstOptions.add(option);
- }
- }
- Collections.sort(ksubstOptions, new Comparator() {
- public int compare(Object a, Object b) {
- String aKey = ((KSubstOption) a).getLongDisplayText();
- String bKey = ((KSubstOption) b).getLongDisplayText();
- return aKey.compareTo(bKey);
- }
- });
- }
-
- /**
- * Utility method that creates a combo box
- *
- * @param parent the parent for the new label
- * @return the new widget
- */
- protected Combo createCombo(Composite parent, int widthChars) {
- Combo combo = new Combo(parent, SWT.READ_ONLY);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- GC gc = new GC(combo);
- gc.setFont(combo.getFont());
- FontMetrics fontMetrics = gc.getFontMetrics();
- data.widthHint = Dialog.convertWidthInCharsToPixels(fontMetrics, widthChars);
- gc.dispose();
- combo.setLayoutData(data);
- return combo;
- }
-
- /**
- * 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
- */
- private Composite createComposite(Composite parent, int numColumns) {
- Composite composite = new Composite(parent, SWT.NULL);
-
- //GridLayout
- GridLayout layout = new GridLayout();
- layout.numColumns = numColumns;
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- composite.setLayout(layout);
-
- //GridData
- GridData data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- composite.setLayoutData(data);
- return composite;
- }
-
- /**
- * Creates an 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
- */
- private 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;
- }
-
- /**
- * @see PreferencePage#createContents(Composite)
- */
- protected Control createContents(Composite parent) {
- Composite composite = createComposite(parent, 2);
-
- pruneEmptyDirectoriesField = createCheckBox(composite, Policy.bind("CVSPreferencePage.pruneEmptyDirectories")); //$NON-NLS-1$
- considerContentsInCompare = createCheckBox(composite, Policy.bind("CVSPreferencePage.considerContentsInCompare")); //$NON-NLS-1$
- replaceUnmanaged = createCheckBox(composite, Policy.bind("CVSPreferencePage.replaceUnmanaged")); //$NON-NLS-1$
- repositoriesAreBinary = createCheckBox(composite, Policy.bind("CVSPreferencePage.repositoriesAreBinary")); //$NON-NLS-1$
- determineVersionEnabled = createCheckBox(composite, Policy.bind("CVSPreferencePage.determineVersionEnabled")); //$NON-NLS-1$
- confirmMoveTag = createCheckBox(composite, Policy.bind("CVSPreferencePage.confirmMoveTag")); //$NON-NLS-1$
- debugProtocol = createCheckBox(composite, Policy.bind("CVSPreferencePage.debugProtocol")); //$NON-NLS-1$
-
- createLabel(composite, ""); createLabel(composite, ""); //$NON-NLS-1$ //$NON-NLS-2$
-
- createLabel(composite, Policy.bind("CVSPreferencePage.timeoutValue")); //$NON-NLS-1$
- timeoutValue = createTextField(composite);
- timeoutValue.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- // Parse the timeout value
- try {
- int x = Integer.parseInt(timeoutValue.getText());
- if (x >= 0) {
- setErrorMessage(null);
- setValid(true);
- } else {
- setErrorMessage(Policy.bind("CVSPreferencesPage.Timeout_must_not_be_negative_1")); //$NON-NLS-1$
- setValid(false);
- }
- } catch (NumberFormatException ex) {
- setErrorMessage(Policy.bind("CVSPreferencesPage.Timeout_must_be_a_number_2")); //$NON-NLS-1$
- setValid(false);
- }
- }
- });
-
- createLabel(composite, Policy.bind("CVSPreferencePage.quietness")); //$NON-NLS-1$
- quietnessCombo = createCombo(composite);
-
- createLabel(composite, Policy.bind("CVSPreferencePage.compressionLevel")); //$NON-NLS-1$
- compressionLevelCombo = createCombo(composite);
-
- createLabel(composite, Policy.bind("CVSPreferencePage.defaultTextKSubst")); //$NON-NLS-1$
- int chars = 0;
- for (Iterator it = ksubstOptions.iterator(); it.hasNext();) {
- KSubstOption option = (KSubstOption) it.next();
- int c = option.getLongDisplayText().length();
- if(c > chars) {
- chars = c;
- }
- }
- ksubstCombo = createCombo(composite, chars);
-
- createLabel(composite, ""); createLabel(composite, ""); //$NON-NLS-1$ //$NON-NLS-2$
-
- createSaveCombo(composite);
-
- initializeValues();
-
- quietnessCombo.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- if (getQuietnessOptionFor(quietnessCombo.getSelectionIndex()).equals(Command.SILENT)) {
- MessageDialog.openWarning(getShell(), Policy.bind("CVSPreferencePage.silentWarningTitle"), Policy.bind("CVSPreferencePage.silentWarningMessage")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
- });
-
- WorkbenchHelp.setHelp(pruneEmptyDirectoriesField, IHelpContextIds.PREF_PRUNE);
- WorkbenchHelp.setHelp(compressionLevelCombo, IHelpContextIds.PREF_COMPRESSION);
- WorkbenchHelp.setHelp(quietnessCombo, IHelpContextIds.PREF_QUIET);
- WorkbenchHelp.setHelp(ksubstCombo, IHelpContextIds.PREF_KEYWORDMODE);
- WorkbenchHelp.setHelp(timeoutValue, IHelpContextIds.PREF_COMMS_TIMEOUT);
- WorkbenchHelp.setHelp(considerContentsInCompare, IHelpContextIds.PREF_CONSIDER_CONTENT);
- WorkbenchHelp.setHelp(replaceUnmanaged, IHelpContextIds.PREF_REPLACE_DELETE_UNMANAGED);
- WorkbenchHelp.setHelp(repositoriesAreBinary, IHelpContextIds.PREF_TREAT_NEW_FILE_AS_BINARY);
- WorkbenchHelp.setHelp(determineVersionEnabled, IHelpContextIds.PREF_DETERMINE_SERVER_VERSION);
- WorkbenchHelp.setHelp(confirmMoveTag, IHelpContextIds.PREF_CONFIRM_MOVE_TAG);
- Dialog.applyDialogFont(parent);
- 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
- */
- private 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;
- }
- /**
- * Creates an new text widget and sets the default
- * layout data.
- *
- * @param group the composite in which to create the checkbox
- * @return the new text widget
- */
- private Text createTextField(Composite group) {
- Text text = new Text(group, SWT.BORDER);
- text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- return text;
- }
- /**
- * Initializes states of the controls from the preference store.
- */
- private void initializeValues() {
- IPreferenceStore store = getPreferenceStore();
- pruneEmptyDirectoriesField.setSelection(store.getBoolean(ICVSUIConstants.PREF_PRUNE_EMPTY_DIRECTORIES));
- timeoutValue.setText(new Integer(store.getInt(ICVSUIConstants.PREF_TIMEOUT)).toString());
- repositoriesAreBinary.setSelection(store.getBoolean(ICVSUIConstants.PREF_REPOSITORIES_ARE_BINARY));
- quietnessCombo.add(Policy.bind("CVSPreferencePage.notquiet")); //$NON-NLS-1$
- quietnessCombo.add(Policy.bind("CVSPreferencePage.somewhatquiet")); //$NON-NLS-1$
- quietnessCombo.add(Policy.bind("CVSPreferencePage.reallyquiet")); //$NON-NLS-1$
- quietnessCombo.select(store.getInt(ICVSUIConstants.PREF_QUIETNESS));
- for (int i = 0; i < 10; ++i) {
- compressionLevelCombo.add(Policy.bind("CVSPreferencePage.level" + i)); //$NON-NLS-1$
- }
- compressionLevelCombo.select(store.getInt(ICVSUIConstants.PREF_COMPRESSION_LEVEL));
- for (Iterator it = ksubstOptions.iterator(); it.hasNext();) {
- KSubstOption option = (KSubstOption) it.next();
- ksubstCombo.add(option.getLongDisplayText());
- }
- ksubstCombo.select(getKSubstComboIndexFor(store.getString(ICVSUIConstants.PREF_TEXT_KSUBST)));
- considerContentsInCompare.setSelection(store.getBoolean(ICVSUIConstants.PREF_CONSIDER_CONTENTS));
- replaceUnmanaged.setSelection(store.getBoolean(ICVSUIConstants.PREF_REPLACE_UNMANAGED));
- determineVersionEnabled.setSelection(store.getBoolean(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION));
- confirmMoveTag.setSelection(store.getBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG));
- debugProtocol.setSelection(store.getBoolean(ICVSUIConstants.PREF_DEBUG_PROTOCOL));
-
- initializeSaveRadios(store.getInt(ICVSUIConstants.PREF_SAVE_DIRTY_EDITORS));
- }
-
- /**
- * @see IWorkbenchPreferencePage#init(IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-
- /**
- * OK was clicked. Store the CVS preferences.
- *
- * @return whether it is okay to close the preference page
- */
- public boolean performOk() {
-
- // Parse the timeout value
- int timeout = Integer.parseInt(timeoutValue.getText());
-
- IPreferenceStore store = getPreferenceStore();
-
- // set the provider preferences first because the preference change
- // listeners invoked from the preference store change may need these
- // values
-
- store.setValue(ICVSUIConstants.PREF_PRUNE_EMPTY_DIRECTORIES, pruneEmptyDirectoriesField.getSelection());
- store.setValue(ICVSUIConstants.PREF_TIMEOUT, timeout);
- store.setValue(ICVSUIConstants.PREF_QUIETNESS, quietnessCombo.getSelectionIndex());
- store.setValue(ICVSUIConstants.PREF_COMPRESSION_LEVEL, compressionLevelCombo.getSelectionIndex());
- // Text mode processed separately to avoid empty string in properties file.
- String mode =((KSubstOption)ksubstOptions.get(ksubstCombo.getSelectionIndex())).toMode();
- if (mode.length() == 0) {
- mode = "-kkv"; //$NON-NLS-1$
- }
- store.setValue(ICVSUIConstants.PREF_TEXT_KSUBST, mode);
- store.setValue(ICVSUIConstants.PREF_CONSIDER_CONTENTS, considerContentsInCompare.getSelection());
- store.setValue(ICVSUIConstants.PREF_REPLACE_UNMANAGED, replaceUnmanaged.getSelection());
- store.setValue(ICVSUIConstants.PREF_SAVE_DIRTY_EDITORS, getSaveRadio());
- store.setValue(ICVSUIConstants.PREF_REPOSITORIES_ARE_BINARY, repositoriesAreBinary.getSelection());
- store.setValue(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION, determineVersionEnabled.getSelection());
- store.setValue(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG, confirmMoveTag.getSelection());
- store.setValue(ICVSUIConstants.PREF_DEBUG_PROTOCOL, debugProtocol.getSelection());
-
- CVSProviderPlugin.getPlugin().setReplaceUnmanaged(
- store.getBoolean(ICVSUIConstants.PREF_REPLACE_UNMANAGED));
- CVSProviderPlugin.getPlugin().setPruneEmptyDirectories(
- store.getBoolean(ICVSUIConstants.PREF_PRUNE_EMPTY_DIRECTORIES));
- CVSProviderPlugin.getPlugin().setTimeout(
- store.getInt(ICVSUIConstants.PREF_TIMEOUT));
- CVSProviderPlugin.getPlugin().setQuietness(
- getQuietnessOptionFor(store.getInt(ICVSUIConstants.PREF_QUIETNESS)));
- CVSProviderPlugin.getPlugin().setCompressionLevel(
- store.getInt(ICVSUIConstants.PREF_COMPRESSION_LEVEL));
- CVSProviderPlugin.getPlugin().setDebugProtocol(
- store.getBoolean(ICVSUIConstants.PREF_DEBUG_PROTOCOL));
- CVSProviderPlugin.getPlugin().setRepositoriesAreBinary(store.getBoolean(ICVSUIConstants.PREF_REPOSITORIES_ARE_BINARY));
- KSubstOption oldKSubst = CVSProviderPlugin.getPlugin().getDefaultTextKSubstOption();
- KSubstOption newKSubst = KSubstOption.fromMode(store.getString(ICVSUIConstants.PREF_TEXT_KSUBST));
- CVSProviderPlugin.getPlugin().setDefaultTextKSubstOption(newKSubst);
- CVSProviderPlugin.getPlugin().setDetermineVersionEnabled(store.getBoolean(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION));
- CVSProviderPlugin.getPlugin().setConfirmMoveTagEnabled(store.getBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG));
-
- // changing the default keyword substitution mode for text files may affect
- // information displayed in the decorators
- if (! oldKSubst.equals(newKSubst)) {
- CVSUIPlugin.broadcastPropertyChange(new PropertyChangeEvent(this, CVSUIPlugin.P_DECORATORS_CHANGED, null, null));
- }
-
- CVSUIPlugin.getPlugin().savePluginPreferences();
- return true;
- }
-
- /**
- * Defaults was clicked. Restore the CVS preferences to
- * their default values
- */
- protected void performDefaults() {
- super.performDefaults();
- IPreferenceStore store = getPreferenceStore();
- pruneEmptyDirectoriesField.setSelection(
- store.getDefaultBoolean(ICVSUIConstants.PREF_PRUNE_EMPTY_DIRECTORIES));
- timeoutValue.setText(new Integer(store.getDefaultInt(ICVSUIConstants.PREF_TIMEOUT)).toString());
- quietnessCombo.select(store.getDefaultInt(ICVSUIConstants.PREF_QUIETNESS));
- compressionLevelCombo.select(store.getDefaultInt(ICVSUIConstants.PREF_COMPRESSION_LEVEL));
- ksubstCombo.select(getKSubstComboIndexFor(store.getDefaultString(ICVSUIConstants.PREF_TEXT_KSUBST)));
- replaceUnmanaged.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_REPLACE_UNMANAGED));
- initializeSaveRadios(store.getDefaultInt(ICVSUIConstants.PREF_SAVE_DIRTY_EDITORS));
- repositoriesAreBinary.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_REPOSITORIES_ARE_BINARY));
- confirmMoveTag.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG));
- debugProtocol.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_DEBUG_PROTOCOL));
- }
-
- private void createSaveCombo(Composite composite) {
- Group group = new Group(composite, SWT.NULL);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
- data.horizontalSpan = 2;
- group.setLayoutData(data);
- GridLayout layout = new GridLayout();
- group.setLayout(layout);
- group.setText(Policy.bind("CVSPreferencePage.Save_dirty_editors_before_CVS_operations_1")); //$NON-NLS-1$
-
- never = new Button(group, SWT.RADIO | SWT.LEFT);
- never.setLayoutData(new GridData());
- never.setText(Policy.bind("CVSPreferencePage.&Never_2")); //$NON-NLS-1$
-
- prompt = new Button(group, SWT.RADIO | SWT.LEFT);
- prompt.setLayoutData(new GridData());
- prompt.setText(Policy.bind("CVSPreferencePage.&Prompt_3")); //$NON-NLS-1$
-
- auto = new Button(group, SWT.RADIO | SWT.LEFT);
- auto.setLayoutData(new GridData());
- auto.setText(Policy.bind("CVSPreferencePage.Auto-&save_4")); //$NON-NLS-1$
-
- WorkbenchHelp.setHelp(group, IHelpContextIds.PREF_SAVE_DIRTY_EDITORS);
- }
-
- /**
- * Returns preference store that belongs to the our plugin.
- * This is important because we want to store
- * our preferences separately from the desktop.
- *
- * @return the preference store for this plugin
- */
- protected IPreferenceStore doGetPreferenceStore() {
- return CVSUIPlugin.getPlugin().getPreferenceStore();
- }
-
- protected static QuietOption getQuietnessOptionFor(int option) {
- switch (option) {
- case 0: return Command.VERBOSE;
- case 1: return Command.PARTLY_QUIET;
- case 2: return Command.SILENT;
- }
- return null;
- }
-
- protected int getKSubstComboIndexFor(String mode) {
- KSubstOption ksubst = KSubstOption.fromMode(mode);
- int i = 0;
- for (Iterator it = ksubstOptions.iterator(); it.hasNext();) {
- KSubstOption option = (KSubstOption) it.next();
- if (ksubst.equals(option)) return i;
- i++;
- }
- // unknown option, add it to the list
- ksubstOptions.add(ksubst);
- ksubstCombo.add(ksubst.getLongDisplayText());
- return i;
- }
-
- protected void initializeSaveRadios(int option) {
- auto.setSelection(false);
- never.setSelection(false);
- prompt.setSelection(false);
- switch(option) {
- case ICVSUIConstants.OPTION_AUTOMATIC:
- auto.setSelection(true); break;
- case ICVSUIConstants.OPTION_NEVER:
- never.setSelection(true); break;
- case ICVSUIConstants.OPTION_PROMPT:
- prompt.setSelection(true); break;
- }
- }
-
- protected int getSaveRadio() {
- if(auto.getSelection()) {
- return ICVSUIConstants.OPTION_AUTOMATIC;
- } else if(never.getSelection()) {
- return ICVSUIConstants.OPTION_NEVER;
- } else {
- return ICVSUIConstants.OPTION_PROMPT;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java
deleted file mode 100644
index 0ff2d8168..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java
+++ /dev/null
@@ -1,433 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-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.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-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.CVSTeamProvider;
-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.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.IUserInfo;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class CVSProjectPropertiesPage extends CVSPropertiesPage {
- IProject project;
- ICVSRepositoryLocation oldLocation;
- ICVSRepositoryLocation newLocation = null;
-
- private static final int TABLE_HEIGHT_HINT = 150;
- private static final int TABLE_WIDTH_HINT = 300;
-
- // Widgets
- Label methodLabel;
- Label userLabel;
- Label hostLabel;
- Label pathLabel;
- Label moduleLabel;
- Label portLabel;
- Label tagLabel;
- private Button fetchButton;
- private Button watchEditButton;
-
- IUserInfo info;
- CVSTeamProvider provider;
- private boolean fetch;
- private boolean watchEdit;
-
- private class RepositorySelectionDialog extends Dialog {
- ICVSRepositoryLocation[] locations;
- ICVSRepositoryLocation location;
-
- TableViewer viewer;
- Button okButton;
- public RepositorySelectionDialog(Shell shell) {
- super(shell);
- }
- protected void createButtonsForButtonBar(Composite parent) {
- // create OK and Cancel buttons by default
- okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
- okButton.setEnabled(false);
- createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
- }
- protected Control createDialogArea(Composite parent) {
- parent.getShell().setText(Policy.bind("CVSProjectPropertiesPage.Select_a_Repository_1")); //$NON-NLS-1$
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- createLabel(composite, Policy.bind("CVSProjectPropertiesPage.Select_a_CVS_repository_location_to_share_the_project_with__2"), 1); //$NON-NLS-1$
- Table table = new Table(composite, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- GridData data = new GridData();
- data.widthHint = TABLE_WIDTH_HINT;
- data.heightHint = TABLE_HEIGHT_HINT;
- table.setLayoutData(data);
- viewer = new TableViewer(table);
- viewer.setLabelProvider(new WorkbenchLabelProvider());
- viewer.setContentProvider(new WorkbenchContentProvider() {
- public Object[] getElements(Object inputElement) {
- return locations;
- }
- });
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection)event.getSelection();
- if (selection.isEmpty()) {
- location = null;
- okButton.setEnabled(false);
- } else {
- location = (ICVSRepositoryLocation)selection.getFirstElement();
- okButton.setEnabled(true);
- }
- }
- });
- viewer.addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- okPressed();
- }
- });
- viewer.setInput(locations);
- return composite;
- }
- protected void cancelPressed() {
- location = null;
- super.cancelPressed();
- }
- public void setLocations(ICVSRepositoryLocation[] locations) {
- this.locations = locations;
- }
- public ICVSRepositoryLocation getLocation() {
- return location;
- }
- };
-
- /*
- * @see PreferencesPage#createContents
- */
- protected Control createContents(Composite parent) {
- initialize();
-
- Composite composite = new Composite(parent, SWT.NULL);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- composite.setLayout(layout);
-
- Label label = createLabel(composite, Policy.bind("CVSProjectPropertiesPage.connectionType"), 1); //$NON-NLS-1$
- methodLabel = createLabel(composite, "", 1); //$NON-NLS-1$
-
- label = createLabel(composite, Policy.bind("CVSProjectPropertiesPage.user"), 1); //$NON-NLS-1$
- userLabel = createLabel(composite, "", 1); //$NON-NLS-1$
-
- label = createLabel(composite, Policy.bind("CVSPropertiesPage.host"), 1); //$NON-NLS-1$
- hostLabel = createLabel(composite, "", 1); //$NON-NLS-1$
-
- label = createLabel(composite, Policy.bind("CVSPropertiesPage.port"), 1); //$NON-NLS-1$
- portLabel = createLabel(composite, "", 1); //$NON-NLS-1$
-
- label = createLabel(composite, Policy.bind("CVSPropertiesPage.path"), 1); //$NON-NLS-1$
- pathLabel = createLabel(composite, "", 1); //$NON-NLS-1$
-
- label = createLabel(composite, Policy.bind("CVSPropertiesPage.module"), 1); //$NON-NLS-1$
- moduleLabel = createLabel(composite, "", 1); //$NON-NLS-1$
-
- label = createLabel(composite, Policy.bind("CVSPropertiesPage.tag"), 1); //$NON-NLS-1$
- tagLabel = createLabel(composite, "", 1); //$NON-NLS-1$
-
- createLabel(composite, "", 1); //$NON-NLS-1$
-
- // Should absent directories be fetched on update
- fetchButton = createCheckBox(composite, Policy.bind("CVSProjectPropertiesPage.fetchAbsentDirectoriesOnUpdate")); //$NON-NLS-1$
- fetchButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- fetch = fetchButton.getSelection();
- }
- });
-
- // Should the project be configured for watch/edit
- watchEditButton = createCheckBox(composite, Policy.bind("CVSProjectPropertiesPage.configureForWatchEdit")); //$NON-NLS-1$
- watchEditButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- watchEdit = watchEditButton.getSelection();
- }
- });
-
- createLabel(composite, "", 1); //$NON-NLS-1$
- createLabel(composite, "", 1); //$NON-NLS-1$
- createLabel(composite, "", 1); //$NON-NLS-1$
- createLabel(composite, "", 1); //$NON-NLS-1$
-
- label = new Label(composite, SWT.WRAP);
- label.setText(Policy.bind("CVSProjectPropertiesPage.You_can_change_the_sharing_of_this_project_to_another_repository_location._However,_this_is_only_possible_if_the_new_location_is___compatible___(on_the_same_host_with_the_same_repository_path)._1")); //$NON-NLS-1$
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = 200;
- data.horizontalSpan = 2;
- label.setLayoutData(data);
-
- Button changeButton = new Button(composite, SWT.PUSH);
- changeButton.setText(Policy.bind("CVSProjectPropertiesPage.Change_Sharing_5")); //$NON-NLS-1$
- data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
- int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- data.widthHint = Math.max(widthHint, changeButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
- changeButton.setLayoutData(data);
- changeButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- // Find out which repo locations are appropriate
- ICVSRepositoryLocation[] locations = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownRepositoryLocations();
- List compatibleLocations = new ArrayList();
- for (int i = 0; i < locations.length; i++) {
- ICVSRepositoryLocation location = locations[i];
- // Only locations with the same host and root are eligible
- if (!location.getHost().equals(hostLabel.getText())) continue;
- if (!location.getRootDirectory().equals(pathLabel.getText())) continue;
- if (location.equals(oldLocation)) continue;
- compatibleLocations.add(location);
- }
- RepositorySelectionDialog dialog = new RepositorySelectionDialog(getShell());
- dialog.setLocations((ICVSRepositoryLocation[])compatibleLocations.toArray(new ICVSRepositoryLocation[compatibleLocations.size()]));
- dialog.open();
- ICVSRepositoryLocation location = dialog.getLocation();
- if (location == null) return;
- newLocation = location;
- initializeValues(newLocation);
- }
- });
-
- initializeValues(oldLocation);
- WorkbenchHelp.setHelp(getControl(), IHelpContextIds.PROJECT_PROPERTY_PAGE);
- Dialog.applyDialogFont(parent);
- 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, int span) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = span;
- data.horizontalAlignment = GridData.FILL;
- label.setLayoutData(data);
- return label;
- }
- /**
- * 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;
- }
- /**
- * Initializes the page
- */
- private void initialize() {
- // Get the project that is the source of this property page
- project = null;
- IAdaptable element = getElement();
- if (element instanceof IProject) {
- project = (IProject)element;
- } else {
- Object adapter = element.getAdapter(IProject.class);
- if (adapter instanceof IProject) {
- project = (IProject)adapter;
- }
- }
- // Do some pre-checks to ensure we're in a good state
- provider = (CVSTeamProvider)RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId());
- if (provider == null) return;
- CVSWorkspaceRoot cvsRoot = provider.getCVSWorkspaceRoot();
- try {
- oldLocation = cvsRoot.getRemoteLocation();
- fetch = provider.getFetchAbsentDirectories();
- watchEdit = provider.isWatchEditEnabled();
- } catch (TeamException e) {
- handle(e);
- }
- }
- /**
- * Set the initial values of the widgets
- */
- private void initializeValues(ICVSRepositoryLocation location) {
- if (provider == null) return;
- CVSWorkspaceRoot cvsRoot = provider.getCVSWorkspaceRoot();
- ICVSFolder folder = cvsRoot.getLocalRoot();
-
- try {
- if (!folder.isCVSFolder()) return;
- methodLabel.setText(location.getMethod().getName());
- info = location.getUserInfo(true);
- userLabel.setText(info.getUsername());
- hostLabel.setText(location.getHost());
- int port = location.getPort();
- if (port == ICVSRepositoryLocation.USE_DEFAULT_PORT) {
- portLabel.setText(Policy.bind("CVSPropertiesPage.defaultPort")); //$NON-NLS-1$
- } else {
- portLabel.setText("" + port); //$NON-NLS-1$
- }
- pathLabel.setText(location.getRootDirectory());
- FolderSyncInfo syncInfo = folder.getFolderSyncInfo();
- if (syncInfo == null) return;
- String label = syncInfo.getRepository();
- if (label.equals(FolderSyncInfo.VIRTUAL_DIRECTORY)) {
- label = Policy.bind("CVSPropertiesPage.virtualModule", label); //$NON-NLS-1$
- }
- moduleLabel.setText(label);
- fetchButton.setSelection(fetch);
- watchEditButton.setSelection(watchEdit);
- } catch (TeamException e) {
- handle(e);
- }
-
- initializeTag();
- }
-
- private void initializeTag() {
- provider = (CVSTeamProvider)RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId());
- if (provider == null) return;
- try {
- ICVSFolder local = CVSWorkspaceRoot.getCVSFolderFor(project);
- CVSTag tag = local.getFolderSyncInfo().getTag();
-
- tagLabel.setText(getTagLabel(tag));
-
- } catch (TeamException e) {
- handle(e);
- }
- }
- /*
- * @see PreferencesPage#performOk
- */
- public boolean performOk() {
- final boolean[] changeReadOnly = { false };
- try {
- if (fetch != provider.getFetchAbsentDirectories())
- provider.setFetchAbsentDirectories(fetch);
- if (watchEdit != provider.isWatchEditEnabled()) {
- provider.setWatchEditEnabled(watchEdit);
- changeReadOnly[0] = true;
- }
- } catch (CVSException e) {
- handle(e);
- }
- if (newLocation == null && !changeReadOnly[0]) {
- return true;
- }
- try {
- new ProgressMonitorDialog(getShell()).run(true, false, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- monitor.beginTask(Policy.bind("CVSProjectPropertiesPage.progressTaskName"), //$NON-NLS-1$
- ((newLocation == null)?0:100) + (changeReadOnly[0]?100:0));
- if (newLocation != null)
- provider.setRemoteRoot(newLocation, Policy.subMonitorFor(monitor, 100));
- if (changeReadOnly[0])
- setReadOnly(watchEdit, Policy.infiniteSubMonitorFor(monitor, 100));
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- newLocation = null;
- if (changeReadOnly[0]) {
- CVSUIPlugin.broadcastPropertyChange(new PropertyChangeEvent(this, CVSUIPlugin.P_DECORATORS_CHANGED, null, null));
- }
- } catch (InvocationTargetException e) {
- handle(e);
- } catch (InterruptedException e) {
- return false;
- }
-
- return true;
- }
- /**
- * @param watchEdit
- */
- protected void setReadOnly(final boolean watchEdit, final IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, 512);
- String taskName = watchEdit?
- Policy.bind("CVSProjectPropertiesPage.setReadOnly"): //$NON-NLS-1$
- Policy.bind("CVSProjectPropertiesPage.clearReadOnly"); //$NON-NLS-1$
- monitor.subTask(taskName);
- ICVSFolder root = CVSWorkspaceRoot.getCVSFolderFor(project);
- root.accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- // only change managed, unmodified files
- if (file.isManaged() && !file.isModified(null))
- file.setReadOnly(watchEdit);
- monitor.worked(1);
- }
-
- public void visitFolder(ICVSFolder folder) throws CVSException {
- folder.acceptChildren(this);
- }
- });
- monitor.done();
- }
- /**
- * Shows the given errors to the user.
- */
- protected void handle(Throwable t) {
- CVSUIPlugin.openError(getShell(), null, null, t);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectSetSerializer.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectSetSerializer.java
deleted file mode 100644
index a520ede7c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectSetSerializer.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.IProjectSetSerializer;
-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.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class CVSProjectSetSerializer implements IProjectSetSerializer {
-
- /**
- * @see IProjectSetSerializer#asReference(IProject[])
- *
- * "1.0,repoLocation,module,projectName[,tag]"
- */
- public String[] asReference(IProject[] providerProjects, Object context, IProgressMonitor monitor) throws TeamException {
- String[] result = new String[providerProjects.length];
- for (int i = 0; i < providerProjects.length; i++) {
- StringBuffer buffer = new StringBuffer();
- buffer.append("1.0,"); //$NON-NLS-1$
-
- IProject project = providerProjects[i];
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(project);
- CVSWorkspaceRoot root = provider.getCVSWorkspaceRoot();
- CVSRepositoryLocation location = CVSRepositoryLocation.fromString(root.getRemoteLocation().getLocation());
- location.setUserMuteable(true);
- String repoLocation = location.getLocation();
- buffer.append(repoLocation);
- buffer.append(","); //$NON-NLS-1$
-
- ICVSFolder folder = root.getLocalRoot();
- FolderSyncInfo syncInfo = folder.getFolderSyncInfo();
- String module = syncInfo.getRepository();
- buffer.append(module);
- buffer.append(","); //$NON-NLS-1$
-
- String projectName = folder.getName();
- buffer.append(projectName);
- CVSTag tag = syncInfo.getTag();
- if (tag != null) {
- if (tag.getType() != CVSTag.DATE) {
- buffer.append(","); //$NON-NLS-1$
- String tagName = tag.getName();
- buffer.append(tagName);
- }
- }
- result[i] = buffer.toString();
- }
- return result;
- }
-
- /**
- * @see IProjectSetSerializer#addToWorkspace(String[])
- */
- public IProject[] addToWorkspace(String[] referenceStrings, String filename, Object context, IProgressMonitor monitor) throws TeamException {
- final int size = referenceStrings.length;
- final IProject[] projects = new IProject[size];
- final ICVSRepositoryLocation[] locations = new ICVSRepositoryLocation[size];
- final String[] modules = new String[size];
- final CVSTag[] tags = new CVSTag[size];
-
- for (int i = 0; i < size; i++) {
- StringTokenizer tokenizer = new StringTokenizer(referenceStrings[i], ","); //$NON-NLS-1$
- String version = tokenizer.nextToken();
- if (!version.equals("1.0")) { //$NON-NLS-1$
- // Bail out, this is a newer version
- return null;
- }
- String repo = tokenizer.nextToken();
- locations[i] = getLocationFromString(repo);
- modules[i] = tokenizer.nextToken();
- String projectName = tokenizer.nextToken();
- projects[i] = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
- if (tokenizer.hasMoreTokens()) {
- String tagName = tokenizer.nextToken();
- tags[i] = new CVSTag(tagName, CVSTag.BRANCH);
- }
- }
- // Check if any projects will be overwritten, and warn the user.
- boolean yesToAll = false;
- int action;
- final int[] num = new int[] {size};
- for (int i = 0; i < size; i++) {
- Shell shell = null;
- IProject project = projects[i];
- if (project.exists()) {
- if (shell == null) {
- if (context instanceof Shell) {
- shell = (Shell)context;
- } else {
- return null;
- }
- }
- action = confirmOverwrite(project, yesToAll, shell);
- yesToAll = action == 2;
-
- // message dialog
- switch (action) {
- // no
- case 1:
- // Remove it from the set
- locations[i] = null;
- num[0]--;
- break;
- // yes to all
- case 2:
- // yes
- case 0:
- break;
- // cancel
- case 3:
- default:
- return null;
- }
- }
- }
- WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- monitor.beginTask("", 1000 * num[0]); //$NON-NLS-1$
- try {
- for (int i = 0; i < size; i++) {
- if (locations[i] != null) {
- CVSWorkspaceRoot.checkout(locations[i], projects[i], modules[i], tags[i], new SubProgressMonitor(monitor, 1000));
- }
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- };
- try {
- op.run(monitor);
- } catch (InterruptedException e) {
- } catch (InvocationTargetException e) {
- Throwable t = e.getTargetException();
- if (t instanceof TeamException) {
- throw (TeamException)t;
- }
- }
- List result = new ArrayList();
- for (int i = 0; i < projects.length; i++) {
- if (projects[i] != null) result.add(projects[i]);
- }
- return (IProject[])result.toArray(new IProject[result.size()]);
- }
-
- private ICVSRepositoryLocation getLocationFromString(String repo) throws CVSException {
- // create the new location
- ICVSRepositoryLocation newLocation = CVSRepositoryLocation.fromString(repo);
- if (newLocation.getUsername() == null || newLocation.getUsername().length() == 0) {
- // look for an existing location that matched
- ICVSRepositoryLocation[] locations = CVSProviderPlugin.getPlugin().getKnownRepositories();
- for (int i = 0; i < locations.length; i++) {
- ICVSRepositoryLocation location = locations[i];
- if (location.getMethod() == newLocation.getMethod()
- && location.getHost().equals(newLocation.getHost())
- && location.getPort() == newLocation.getPort()
- && location.getRootDirectory().equals(newLocation.getRootDirectory()))
- return location;
- }
- }
- return newLocation;
- }
-
- private int confirmOverwrite(IProject project, boolean yesToAll, Shell shell) {
- if (yesToAll) return 2;
- if (!project.exists()) return 0;
- final MessageDialog dialog =
- new MessageDialog(shell, Policy.bind("CVSProjectSetSerializer.Confirm_Overwrite_Project_8"), null, Policy.bind("CVSProjectSetSerializer.The_project_{0}_already_exists._Do_you_wish_to_overwrite_it__9", project.getName()), MessageDialog.QUESTION, //$NON-NLS-1$ //$NON-NLS-2$
- new String[] {
- IDialogConstants.YES_LABEL,
- IDialogConstants.NO_LABEL,
- IDialogConstants.YES_TO_ALL_LABEL,
- IDialogConstants.CANCEL_LABEL},
- 0);
- final int[] result = new int[1];
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- result[0] = dialog.open();
- }
- });
- return result[0];
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPropertiesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPropertiesPage.java
deleted file mode 100644
index 552c75f18..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSPropertiesPage.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-public abstract class CVSPropertiesPage extends PropertyPage {
-
- /**
- * Return the appropriate Tag label for properties pages
- * based on the tag type.
- * @param tag
- * @return String
- */
-
- public static String getTagLabel(CVSTag tag) {
-
- if (tag == null) {
- return Policy.bind("CVSFilePropertiesPage.none"); //$NON-NLS-1$
- }
-
- switch (tag.getType()) {
- case CVSTag.HEAD:
- return tag.getName();
- case CVSTag.VERSION:
- return Policy.bind("CVSFilePropertiesPage.version", tag.getName()); //$NON-NLS-1$
- case CVSTag.BRANCH:
- return Policy.bind("CVSFilePropertiesPage.branch", tag.getName()); //$NON-NLS-1$
- case CVSTag.DATE:
- return Policy.bind("CVSFilePropertiesPage.date", tag.getName()); //$NON-NLS-1$
- default :
- return tag.getName();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java
deleted file mode 100644
index 068cc8d07..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java
+++ /dev/null
@@ -1,748 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.ui.console.CVSOutputConsole;
-import org.eclipse.team.internal.ccvs.ui.model.CVSAdapterFactory;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryRoot;
-import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.team.internal.ui.Utils;
-import org.eclipse.team.ui.TeamUI;
-import org.eclipse.team.ui.synchronize.ISynchronizeParticipant;
-import org.eclipse.team.ui.synchronize.ISynchronizeView;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * UI Plugin for CVS provider-specific workbench functionality.
- */
-public class CVSUIPlugin extends AbstractUIPlugin {
- /**
- * The id of the CVS plug-in
- */
- public static final String ID = "org.eclipse.team.cvs.ui"; //$NON-NLS-1$
- public static final String DECORATOR_ID = "org.eclipse.team.cvs.ui.decorator"; //$NON-NLS-1$
-
- /**
- * Property constant indicating the decorator configuration has changed.
- */
- public static final String P_DECORATORS_CHANGED = CVSUIPlugin.ID + ".P_DECORATORS_CHANGED"; //$NON-NLS-1$
-
- private Hashtable imageDescriptors = new Hashtable(20);
- private static List propertyChangeListeners = new ArrayList(5);
-
- /**
- * The singleton plug-in instance
- */
- private static CVSUIPlugin plugin;
-
- /**
- * The CVS console
- */
- private CVSOutputConsole console;
-
- /**
- * The repository manager
- */
- private RepositoryManager repositoryManager;
-
- /**
- * CVSUIPlugin constructor
- *
- * @param descriptor the plugin descriptor
- */
- public CVSUIPlugin(IPluginDescriptor descriptor) {
- super(descriptor);
- plugin = this;
- }
-
- /**
- * Returns the standard display to be used. The method first checks, if
- * the thread calling this method has an associated display. If so, this
- * display is returned. Otherwise the method returns the default display.
- */
- public static Display getStandardDisplay() {
- Display display= Display.getCurrent();
- if (display == null) {
- display= Display.getDefault();
- }
- return display;
- }
-
- /**
- * Creates an image and places it in the image registry.
- */
- protected void createImageDescriptor(String id, URL baseURL) {
- URL url = null;
- try {
- url = new URL(baseURL, ICVSUIConstants.ICON_PATH + id);
- } catch (MalformedURLException e) {
- }
- ImageDescriptor desc = ImageDescriptor.createFromURL(url);
- imageDescriptors.put(id, desc);
- }
-
- /**
- * Returns the active workbench page. Note that the active page may not be
- * the one that the usr perceives as active in some situations so this
- * method of obtaining the activae page should only be used if no other
- * method is available.
- *
- * @return the active workbench page
- */
- public static IWorkbenchPage getActivePage() {
- return TeamUIPlugin.getActivePage();
- }
-
- /**
- * Register for changes made to Team properties.
- */
- public static void addPropertyChangeListener(IPropertyChangeListener listener) {
- propertyChangeListeners.add(listener);
- }
-
- /**
- * Deregister as a Team property changes.
- */
- public static void removePropertyChangeListener(IPropertyChangeListener listener) {
- propertyChangeListeners.remove(listener);
- }
-
- /**
- * Broadcast a Team property change.
- */
- public static void broadcastPropertyChange(PropertyChangeEvent event) {
- for (Iterator it = propertyChangeListeners.iterator(); it.hasNext();) {
- IPropertyChangeListener listener = (IPropertyChangeListener)it.next();
- listener.propertyChange(event);
- }
- }
-
- /**
- * Extract or convert to a TeamException
- */
- public static TeamException asTeamException(InvocationTargetException e) {
- Throwable exception = e.getTargetException();
- if (exception instanceof TeamException) {
- return (TeamException)exception;
- } else if (exception instanceof CoreException) {
- return new TeamException(((CoreException)exception).getStatus());
- } else {
- return new TeamException(new Status(IStatus.ERROR, CVSUIPlugin.ID, 0, Policy.bind("internal"), exception)); //$NON-NLS-1$
- }
- }
-
- /**
- * Run an operation involving the given resource. If an exception is thrown
- * and the code on the status is IResourceStatus.OUT_OF_SYNC_LOCAL then
- * the user will be prompted to refresh and try again. If they agree, then the
- * supplied operation will be run again.
- */
- public static void runWithRefresh(Shell parent, IResource[] resources,
- IRunnableWithProgress runnable, IProgressMonitor monitor)
- throws InvocationTargetException, InterruptedException {
- boolean firstTime = true;
- while(true) {
- try {
- runnable.run(monitor);
- return;
- } catch (InvocationTargetException e) {
- if (! firstTime) throw e;
- IStatus status = null;
- if (e.getTargetException() instanceof CoreException) {
- status = ((CoreException)e.getTargetException()).getStatus();
- } else if (e.getTargetException() instanceof TeamException) {
- status = ((TeamException)e.getTargetException()).getStatus();
- } else {
- throw e;
- }
- if (status.getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
- if (promptToRefresh(parent, resources, status)) {
- try {
- for (int i = 0; i < resources.length; i++) {
- resources[i].refreshLocal(IResource.DEPTH_INFINITE, null);
- }
- } catch (CoreException coreEx) {
- // Throw the original exception to the caller
- log(coreEx);
- throw e;
- }
- firstTime = false;
- // Fall through and the operation will be tried again
- } else {
- // User chose not to continue. Treat it as a cancel.
- throw new InterruptedException();
- }
- } else {
- throw e;
- }
- }
- }
- }
-
- private static boolean promptToRefresh(final Shell shell, final IResource[] resources, final IStatus status) {
- final boolean[] result = new boolean[] { false};
- Runnable runnable = new Runnable() {
- public void run() {
- Shell shellToUse = shell;
- if (shell == null) {
- shellToUse = new Shell(Display.getCurrent());
- }
- String question;
- if (resources.length == 1) {
- question = Policy.bind("CVSUIPlugin.refreshQuestion", status.getMessage(), resources[0].getFullPath().toString()); //$NON-NLS-1$
- } else {
- question = Policy.bind("CVSUIPlugin.refreshMultipleQuestion", status.getMessage()); //$NON-NLS-1$
- }
- result[0] = MessageDialog.openQuestion(shellToUse, Policy.bind("CVSUIPlugin.refreshTitle"), question); //$NON-NLS-1$
- }
- };
- Display.getDefault().syncExec(runnable);
- return result[0];
- }
-
- /**
- * Creates a busy cursor and runs the specified runnable.
- * May be called from a non-UI thread.
- *
- * @param parent the parent Shell for the dialog
- * @param cancelable if true, the dialog will support cancelation
- * @param runnable the runnable
- *
- * @exception InvocationTargetException when an exception is thrown from the runnable
- * @exception InterruptedException when the progress monitor is cancelled
- */
- public static void runWithProgress(Shell parent, boolean cancelable,
- final IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
- Utils.runWithProgress(parent, cancelable, runnable);
- }
-
- /**
- * Creates a busy cursor and runs the specified runnable.
- * May be called from a non-UI thread.
- *
- * @param parent the parent Shell for the dialog
- * @param cancelable if true, the dialog will support cancelation
- * @param runnable the runnable
- * @param flags customizing attributes for the error handling
- *
- * @exception InvocationTargetException when an exception is thrown from the runnable
- * @exception InterruptedException when the progress monitor is cancelled
- */
- public static void runWithProgress(final Shell parent, final boolean cancelable,
- final IRunnableWithProgress runnable, int flags) throws InvocationTargetException, InterruptedException {
-
- if ((flags & PERFORM_SYNC_EXEC) > 0) {
-
- // create a runnable that deals with exceptions
- final Exception exception[] = new Exception[] { null };
- Runnable outerRunnable = new Runnable() {
- public void run() {
- try {
- Utils.runWithProgress(parent, cancelable, runnable);
- } catch (InvocationTargetException e) {
- exception[0] = e;
- } catch (InterruptedException e) {
- exception[0] = e;
- }
- }
- };
-
- // get a Display and perform the syncExec
- Display display;
- if (parent == null) {
- display = Display.getCurrent();
- if (display == null) {
- display = Display.getDefault();
- }
- } else {
- display = parent.getDisplay();
- }
- display.syncExec(outerRunnable);
-
- // handle any exception
- if (exception[0] != null) {
- Exception e = exception[0];
- if (e instanceof InvocationTargetException) {
- throw (InvocationTargetException) e;
- } else if (e instanceof InterruptedException) {
- throw (InterruptedException) e;
- } else {
- // impossible but we'll handle it anyway
- throw new InvocationTargetException(e);
- }
- }
- } else {
- Utils.runWithProgress(parent, cancelable, runnable);
- }
- }
-
- /**
- * Returns the image descriptor for the given image ID.
- * Returns null if there is no such image.
- */
- public ImageDescriptor getImageDescriptor(String id) {
- return (ImageDescriptor)imageDescriptors.get(id);
- }
-
- /**
- * Returns the singleton plug-in instance.
- *
- * @return the plugin instance
- */
- public static CVSUIPlugin getPlugin() {
- // If the instance has not been initialized, we will wait.
- // This can occur if multiple threads try to load the plugin at the same
- // time (see bug 33825: http://bugs.eclipse.org/bugs/show_bug.cgi?id=33825)
- while (plugin == null) {
- try {
- Thread.sleep(50);
- } catch (InterruptedException e) {
- // ignore and keep trying
- }
- }
- return plugin;
- }
-
- /**
- * Returns the repository manager
- *
- * @return the repository manager
- */
- public synchronized RepositoryManager getRepositoryManager() {
- if (repositoryManager == null) {
- repositoryManager = new RepositoryManager();
- try {
- repositoryManager.startup();
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- }
- }
- return repositoryManager;
- }
-
- /**
- * Initializes the table of images used in this plugin.
- */
- private void initializeImages() {
- URL baseURL = getDescriptor().getInstallURL();
-
- // objects
- createImageDescriptor(ICVSUIConstants.IMG_REPOSITORY, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_REFRESH, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_REFRESH_ENABLED, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_REFRESH_DISABLED, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_LINK_WITH_EDITOR, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_LINK_WITH_EDITOR_ENABLED, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL_ENABLED, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_NEWLOCATION, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_CVSLOGO, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_TAG, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_MODULE, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_CLEAR, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_CLEAR_ENABLED, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_CLEAR_DISABLED, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_BRANCHES_CATEGORY, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_VERSIONS_CATEGORY, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_PROJECT_VERSION, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_WIZBAN_MERGE, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_WIZBAN_SHARE, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_WIZBAN_DIFF, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_WIZBAN_KEYWORD, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_WIZBAN_NEW_LOCATION, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_MERGEABLE_CONFLICT, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_QUESTIONABLE, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_MERGED, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_EDITED, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_NO_REMOTEDIR, baseURL);
- createImageDescriptor(ICVSUIConstants.IMG_CVS_CONSOLE, baseURL);
-
- // special
- createImageDescriptor("glyphs/glyph1.gif", baseURL); //$NON-NLS-1$
- createImageDescriptor("glyphs/glyph2.gif", baseURL); //$NON-NLS-1$
- createImageDescriptor("glyphs/glyph3.gif", baseURL); //$NON-NLS-1$
- createImageDescriptor("glyphs/glyph4.gif", baseURL); //$NON-NLS-1$
- createImageDescriptor("glyphs/glyph5.gif", baseURL); //$NON-NLS-1$
- createImageDescriptor("glyphs/glyph6.gif", baseURL); //$NON-NLS-1$
- createImageDescriptor("glyphs/glyph7.gif", baseURL); //$NON-NLS-1$
- createImageDescriptor("glyphs/glyph8.gif", baseURL); //$NON-NLS-1$
- }
- /**
- * Convenience method for logging statuses to the plugin log
- *
- * @param status the status to log
- */
- public static void log(IStatus status) {
- getPlugin().getLog().log(status);
- }
-
- public static void log(CoreException e) {
- log(e.getStatus().getSeverity(), Policy.bind("simpleInternal"), e); //$NON-NLS-1$
- }
-
- /**
- * Log the given exception along with the provided message and severity indicator
- */
- public static void log(int severity, String message, Throwable e) {
- log(new Status(severity, ID, 0, message, e));
- }
-
- // flags to tailor error reporting
- public static final int PERFORM_SYNC_EXEC = 1;
- public static final int LOG_TEAM_EXCEPTIONS = 2;
- public static final int LOG_CORE_EXCEPTIONS = 4;
- public static final int LOG_OTHER_EXCEPTIONS = 8;
- public static final int LOG_NONTEAM_EXCEPTIONS = LOG_CORE_EXCEPTIONS | LOG_OTHER_EXCEPTIONS;
-
- /**
- * Convenience method for showing an error dialog
- * @param shell a valid shell or null
- * @param exception the exception to be report
- * @param title the title to be displayed
- * @return IStatus the status that was displayed to the user
- */
- public static IStatus openError(Shell shell, String title, String message, Throwable exception) {
- return openError(shell, title, message, exception, LOG_OTHER_EXCEPTIONS);
- }
-
- /**
- * Convenience method for showing an error dialog
- * @param shell a valid shell or null
- * @param exception the exception to be report
- * @param title the title to be displayed
- * @param flags customizing attributes for the error handling
- * @return IStatus the status that was displayed to the user
- */
- public static IStatus openError(Shell providedShell, String title, String message, Throwable exception, int flags) {
- // Unwrap InvocationTargetExceptions
- if (exception instanceof InvocationTargetException) {
- Throwable target = ((InvocationTargetException)exception).getTargetException();
- // re-throw any runtime exceptions or errors so they can be handled by the workbench
- if (target instanceof RuntimeException) {
- throw (RuntimeException)target;
- }
- if (target instanceof Error) {
- throw (Error)target;
- }
- return openError(providedShell, title, message, target, flags);
- }
-
- // Determine the status to be displayed (and possibly logged)
- IStatus status = null;
- boolean log = false;
- if (exception instanceof CoreException) {
- status = ((CoreException)exception).getStatus();
- log = ((flags & LOG_CORE_EXCEPTIONS) > 0);
- } else if (exception instanceof TeamException) {
- status = ((TeamException)exception).getStatus();
- log = ((flags & LOG_TEAM_EXCEPTIONS) > 0);
- } else if (exception instanceof InterruptedException) {
- return new CVSStatus(IStatus.OK, Policy.bind("ok")); //$NON-NLS-1$
- } else if (exception != null) {
- status = new CVSStatus(IStatus.ERROR, Policy.bind("internal"), exception); //$NON-NLS-1$
- log = ((flags & LOG_OTHER_EXCEPTIONS) > 0);
- if (title == null) title = Policy.bind("SimpleInternal"); //$NON-NLS-1$
- }
-
- // Check for a build error and report it differently
- if (status.getCode() == IResourceStatus.BUILD_FAILED) {
- message = Policy.bind("buildError"); //$NON-NLS-1$
- log = true;
- }
-
- // Check for multi-status with only one child
- if (status.isMultiStatus() && status.getChildren().length == 1) {
- status = status.getChildren()[0];
- }
- if (status.isOK()) return status;
-
- // Log if the user requested it
- if (log) CVSUIPlugin.log(status.getSeverity(), status.getMessage(), exception);
-
- // Create a runnable that will display the error status
- final String displayTitle = title;
- final String displayMessage = message;
- final IStatus displayStatus = status;
- final IOpenableInShell openable = new IOpenableInShell() {
- public void open(Shell shell) {
- if (displayStatus.getSeverity() == IStatus.INFO && !displayStatus.isMultiStatus()) {
- MessageDialog.openInformation(shell, Policy.bind("information"), displayStatus.getMessage()); //$NON-NLS-1$
- } else {
- ErrorDialog.openError(shell, displayTitle, displayMessage, displayStatus);
- }
- }
- };
- openDialog(providedShell, openable, flags);
-
- // return the status we display
- return status;
- }
-
- /**
- * Interface that allows a shell to be passed to an open method. The
- * provided shell can be used without sync-execing, etc.
- */
- public interface IOpenableInShell {
- public void open(Shell shell);
- }
-
- /**
- * Open the dialog code provided in the IOpenableInShell, ensuring that
- * the provided whll is valid. This method will provide a shell to the
- * IOpenableInShell if one is not provided to the method.
- *
- * @param providedShell
- * @param openable
- * @param flags
- */
- public static void openDialog(Shell providedShell, final IOpenableInShell openable, int flags) {
- // If no shell was provided, try to get one from the active window
- if (providedShell == null) {
- IWorkbenchWindow window = CVSUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- providedShell = window.getShell();
- // sync-exec when we do this just in case
- flags = flags | PERFORM_SYNC_EXEC;
- }
- }
-
- // Create a runnable that will display the error status
- final Shell shell = providedShell;
- Runnable outerRunnable = new Runnable() {
- public void run() {
- Shell displayShell;
- if (shell == null) {
- Display display = Display.getCurrent();
- displayShell = new Shell(display);
- } else {
- displayShell = shell;
- }
- openable.open(displayShell);
- if (shell == null) {
- displayShell.dispose();
- }
- }
- };
-
- // Execute the above runnable as determined by the parameters
- if (shell == null || (flags & PERFORM_SYNC_EXEC) > 0) {
- Display display;
- if (shell == null) {
- display = Display.getCurrent();
- if (display == null) {
- display = Display.getDefault();
- }
- } else {
- display = shell.getDisplay();
- }
- display.syncExec(outerRunnable);
- } else {
- outerRunnable.run();
- }
- }
-
-
- /**
- * Initializes the preferences for this plugin if necessary.
- */
- protected void initializePreferences() {
- IPreferenceStore store = getPreferenceStore();
- // Get the plugin preferences for CVS Core
- Preferences corePrefs = CVSProviderPlugin.getPlugin().getPluginPreferences();
-
- store.setDefault(ICVSUIConstants.PREF_REPOSITORIES_ARE_BINARY, false);
- store.setDefault(ICVSUIConstants.PREF_SHOW_COMMENTS, true);
- store.setDefault(ICVSUIConstants.PREF_SHOW_TAGS, true);
- store.setDefault(ICVSUIConstants.PREF_HISTORY_VIEW_EDITOR_LINKING, false);
- store.setDefault(ICVSUIConstants.PREF_PRUNE_EMPTY_DIRECTORIES, CVSProviderPlugin.DEFAULT_PRUNE);
- store.setDefault(ICVSUIConstants.PREF_TIMEOUT, CVSProviderPlugin.DEFAULT_TIMEOUT);
- store.setDefault(ICVSUIConstants.PREF_CONSIDER_CONTENTS, false);
- store.setDefault(ICVSUIConstants.PREF_COMPRESSION_LEVEL, CVSProviderPlugin.DEFAULT_COMPRESSION_LEVEL);
- store.setDefault(ICVSUIConstants.PREF_TEXT_KSUBST, CVSProviderPlugin.DEFAULT_TEXT_KSUBST_OPTION.toMode());
- store.setDefault(ICVSUIConstants.PREF_REPLACE_UNMANAGED, true);
- store.setDefault(ICVSUIConstants.PREF_CVS_RSH, CVSProviderPlugin.DEFAULT_CVS_RSH);
- store.setDefault(ICVSUIConstants.PREF_CVS_RSH_PARAMETERS, CVSProviderPlugin.DEFAULT_CVS_RSH_PARAMETERS);
- store.setDefault(ICVSUIConstants.PREF_CVS_SERVER, CVSProviderPlugin.DEFAULT_CVS_SERVER);
- store.setDefault(ICVSUIConstants.PREF_PROMPT_ON_CHANGE_GRANULARITY, true);
- store.setDefault(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION, true);
- store.setDefault(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG, CVSProviderPlugin.DEFAULT_CONFIRM_MOVE_TAG);
- store.setDefault(ICVSUIConstants.PREF_DEBUG_PROTOCOL, false);
-
- PreferenceConverter.setDefault(store, ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR, new RGB(0, 0, 0));
- PreferenceConverter.setDefault(store, ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR, new RGB(0, 0, 255));
- PreferenceConverter.setDefault(store, ICVSUIConstants.PREF_CONSOLE_ERROR_COLOR, new RGB(255, 0, 0));
-
- store.setDefault(ICVSUIConstants.PREF_FILETEXT_DECORATION, CVSDecoratorConfiguration.DEFAULT_FILETEXTFORMAT);
- store.setDefault(ICVSUIConstants.PREF_FOLDERTEXT_DECORATION, CVSDecoratorConfiguration.DEFAULT_FOLDERTEXTFORMAT);
- store.setDefault(ICVSUIConstants.PREF_PROJECTTEXT_DECORATION, CVSDecoratorConfiguration.DEFAULT_PROJECTTEXTFORMAT);
-
- store.setDefault(ICVSUIConstants.PREF_ADDED_FLAG, CVSDecoratorConfiguration.DEFAULT_ADDED_FLAG);
- store.setDefault(ICVSUIConstants.PREF_DIRTY_FLAG, CVSDecoratorConfiguration.DEFAULT_DIRTY_FLAG);
- store.setDefault(ICVSUIConstants.PREF_SHOW_ADDED_DECORATION, true);
- store.setDefault(ICVSUIConstants.PREF_SHOW_HASREMOTE_DECORATION, true);
- store.setDefault(ICVSUIConstants.PREF_SHOW_DIRTY_DECORATION, false);
- store.setDefault(ICVSUIConstants.PREF_SHOW_NEWRESOURCE_DECORATION, true);
- store.setDefault(ICVSUIConstants.PREF_CALCULATE_DIRTY, true);
- store.setDefault(ICVSUIConstants.PREF_PROMPT_ON_MIXED_TAGS, true);
- store.setDefault(ICVSUIConstants.PREF_PROMPT_ON_SAVING_IN_SYNC, true);
- store.setDefault(ICVSUIConstants.PREF_SAVE_DIRTY_EDITORS, ICVSUIConstants.OPTION_PROMPT);
-
- // Set the watch/edit preferences defaults and values
- store.setDefault(ICVSUIConstants.PREF_CHECKOUT_READ_ONLY, corePrefs.getDefaultBoolean(CVSProviderPlugin.READ_ONLY));
- store.setDefault(ICVSUIConstants.PREF_EDIT_ACTION, ICVSUIConstants.PREF_EDIT_PROMPT_EDIT);
- store.setDefault(ICVSUIConstants.PREF_EDIT_PROMPT, ICVSUIConstants.PREF_EDIT_PROMPT_IF_EDITORS);
- // Ensure that the preference values in UI match Core
- store.setValue(ICVSUIConstants.PREF_CHECKOUT_READ_ONLY, corePrefs.getBoolean(CVSProviderPlugin.READ_ONLY));
-
- // Forward the values to the CVS plugin
- CVSProviderPlugin.getPlugin().setPruneEmptyDirectories(store.getBoolean(ICVSUIConstants.PREF_PRUNE_EMPTY_DIRECTORIES));
- CVSProviderPlugin.getPlugin().setTimeout(store.getInt(ICVSUIConstants.PREF_TIMEOUT));
- CVSProviderPlugin.getPlugin().setCvsRshCommand(store.getString(ICVSUIConstants.PREF_CVS_RSH));
- CVSProviderPlugin.getPlugin().setCvsRshParameters(store.getString(ICVSUIConstants.PREF_CVS_RSH_PARAMETERS));
- CVSProviderPlugin.getPlugin().setCvsServer(store.getString(ICVSUIConstants.PREF_CVS_SERVER));
- CVSProviderPlugin.getPlugin().setQuietness(CVSPreferencesPage.getQuietnessOptionFor(store.getInt(ICVSUIConstants.PREF_QUIETNESS)));
- CVSProviderPlugin.getPlugin().setCompressionLevel(store.getInt(ICVSUIConstants.PREF_COMPRESSION_LEVEL));
- CVSProviderPlugin.getPlugin().setReplaceUnmanaged(store.getBoolean(ICVSUIConstants.PREF_REPLACE_UNMANAGED));
- CVSProviderPlugin.getPlugin().setDefaultTextKSubstOption(KSubstOption.fromMode(store.getString(ICVSUIConstants.PREF_TEXT_KSUBST)));
- CVSProviderPlugin.getPlugin().setRepositoriesAreBinary(store.getBoolean(ICVSUIConstants.PREF_REPOSITORIES_ARE_BINARY));
- CVSProviderPlugin.getPlugin().setDetermineVersionEnabled(store.getBoolean(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION));
- CVSProviderPlugin.getPlugin().setConfirmMoveTagEnabled(store.getBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG));
- CVSProviderPlugin.getPlugin().setDebugProtocol(CVSProviderPlugin.getPlugin().isDebugProtocol() || store.getBoolean(ICVSUIConstants.PREF_DEBUG_PROTOCOL));
- }
-
- /**
- * @see Plugin#startup()
- */
- public void startup() throws CoreException {
- super.startup();
- Policy.localize("org.eclipse.team.internal.ccvs.ui.messages"); //$NON-NLS-1$
-
- CVSAdapterFactory factory = new CVSAdapterFactory();
- Platform.getAdapterManager().registerAdapters(factory, ICVSRemoteFile.class);
- Platform.getAdapterManager().registerAdapters(factory, ICVSRemoteFolder.class);
- Platform.getAdapterManager().registerAdapters(factory, ICVSRepositoryLocation.class);
- Platform.getAdapterManager().registerAdapters(factory, RepositoryRoot.class);
-
- initializeImages();
- initializePreferences();
-
- Console.startup();
-
- // Enable CVS decorators so that users don't have to enable via
- // the preference pages.
- PlatformUI.getWorkbench().getDecoratorManager().setEnabled(CVSLightweightDecorator.ID, true);
- }
-
- public static IWorkingSet getWorkingSet(IResource[] resources, String name) {
- IWorkingSet workingSet = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSet(name);
- if (workingSet == null) {
- workingSet = PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet(name, resources);
- PlatformUI.getWorkbench().getWorkingSetManager().addWorkingSet(workingSet);
- } else {
- workingSet.setElements(resources);
- }
- return workingSet;
- }
-
- /**
- * @see Plugin#shutdown()
- */
- public void shutdown() throws CoreException {
- super.shutdown();
- try {
- if (repositoryManager != null)
- repositoryManager.shutdown();
- } catch (TeamException e) {
- throw new CoreException(e.getStatus());
- }
-
- Console.shutdown();
- }
-
- /**
- * @return Returns the cvsWorkspaceSynchronizeViewPage.
- */
- public WorkspaceSynchronizeParticipant getCvsWorkspaceSynchronizeParticipant() {
- ISynchronizeParticipant[] instances = TeamUI.getSynchronizeManager().find(WorkspaceSynchronizeParticipant.ID);
- if(instances.length == 1) {
- return (WorkspaceSynchronizeParticipant)instances[0];
- } else {
- return null;
- }
- }
-
- /**
- * This is a convenience method to show the CVS workspace subscriber in the sync view.
- * The working set of the workspace participant will be set to the provided working set
- * and the provided resources will be refreshed.
- * @param shell shell used to display errors (can be <code>null</code>)
- * @param resources the resources to be refreshed (can be <code>null</code>)
- * @param workingSet the working set to be assigned to the participant (can be <code>null</code>)
- * @param mode the mode to place the participant in (can be 0)
- */
- public static void showInSyncView(Shell shell, IResource[] resources, int mode) {
- ISynchronizeView view = TeamUI.getSynchronizeManager().showSynchronizeViewInActivePage(null);
- if(view != null) {
- WorkspaceSynchronizeParticipant cvsPage = CVSUIPlugin.getPlugin().getCvsWorkspaceSynchronizeParticipant();
- view.display(cvsPage);
- if (resources != null) {
- cvsPage.refreshWithRemote(resources);
- }
- if (mode != 0) {
- cvsPage.setMode(mode);
- }
- } else {
- CVSUIPlugin.openError(shell, Policy.bind("error"), Policy.bind("Error.unableToShowSyncView"), null); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CommitCommentArea.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CommitCommentArea.java
deleted file mode 100644
index 9fb2e0fe5..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CommitCommentArea.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ui.dialogs.DialogArea;
-
-/**
- * This area provides the widgets for providing the CVS commit comment
- */
-public class CommitCommentArea extends DialogArea {
-
- private static final int WIDTH_HINT = 350;
- private static final int HEIGHT_HINT = 50;
-
- private Text text;
- private Combo previousCommentsCombo;
- private IProject mainProject;
- private String[] comments = new String[0];
- private String comment = ""; //$NON-NLS-1$
-
- public static final String OK_REQUESTED = "OkRequested";//$NON-NLS-1$
-
- /**
- * Constructor for CommitCommentArea.
- * @param parentDialog
- * @param settings
- */
- public CommitCommentArea(Dialog parentDialog, IDialogSettings settings) {
- super(parentDialog, settings);
- comments = CVSUIPlugin.getPlugin().getRepositoryManager().getPreviousComments();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.DialogArea#createArea(org.eclipse.swt.widgets.Composite)
- */
- public Control createArea(Composite parent) {
- Dialog.applyDialogFont(parent);
- Composite composite = createGrabbingComposite(parent, 1);
- initializeDialogUnits(composite);
-
- Label label = new Label(composite, SWT.NULL);
- label.setLayoutData(new GridData());
- label.setText(Policy.bind("ReleaseCommentDialog.enterComment")); //$NON-NLS-1$
-
- text = new Text(composite, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.widthHint = WIDTH_HINT;
- data.heightHint = HEIGHT_HINT;
-
- text.setLayoutData(data);
- text.selectAll();
- text.addTraverseListener(new TraverseListener() {
- public void keyTraversed(TraverseEvent e) {
- if (e.detail == SWT.TRAVERSE_RETURN && (e.stateMask & SWT.CTRL) != 0) {
- e.doit = false;
- CommitCommentArea.this.signalCtrlEnter();
- }
- }
- });
- text.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- comment = text.getText();
- }
- });
-
-
- label = new Label(composite, SWT.NULL);
- label.setLayoutData(new GridData());
- label.setText(Policy.bind("ReleaseCommentDialog.choosePrevious")); //$NON-NLS-1$
-
- previousCommentsCombo = new Combo(composite, SWT.READ_ONLY);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
- previousCommentsCombo.setLayoutData(data);
-
- // Initialize the values before we register any listeners so
- // we don't get any platform specific selection behavior
- // (see bug 32078: http://bugs.eclipse.org/bugs/show_bug.cgi?id=32078)
- initializeValues();
-
- previousCommentsCombo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int index = previousCommentsCombo.getSelectionIndex();
- if (index != -1)
- text.setText(comments[index]);
- }
- });
-
- return composite;
- }
-
- /**
- * Method initializeValues.
- */
- private void initializeValues() {
-
- // populate the previous comment list
- for (int i = 0; i < comments.length; i++) {
- previousCommentsCombo.add(flattenText(comments[i]));
- }
-
- // We don't want to have an initial selection
- // (see bug 32078: http://bugs.eclipse.org/bugs/show_bug.cgi?id=32078)
- previousCommentsCombo.setText(""); //$NON-NLS-1$
-
- // determine the initial comment text
- String initialComment;
- try {
- initialComment = getCommitTemplate();
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- initialComment = null;
- }
- if (initialComment != null && initialComment.length() != 0) {
- text.setText(initialComment);
- }
- }
-
- /*
- * Flatten the text in the multiline comment
- * @param string
- * @return String
- */
- private String flattenText(String string) {
- StringBuffer buffer = new StringBuffer(string.length() + 20);
- boolean skipAdjacentLineSeparator = true;
- for (int i = 0; i < string.length(); i++) {
- char c = string.charAt(i);
- if (c == '\r' || c == '\n') {
- if (!skipAdjacentLineSeparator)
- buffer.append(Policy.bind("separator")); //$NON-NLS-1$
- skipAdjacentLineSeparator = true;
- } else {
- buffer.append(c);
- skipAdjacentLineSeparator = false;
- }
- }
- return buffer.toString();
- }
-
- /**
- * Method signalCtrlEnter.
- */
- private void signalCtrlEnter() {
- firePropertyChangeChange(OK_REQUESTED, null, null);
- }
-
- /**
- * Method clearCommitText.
- */
- private void clearCommitText() {
- try {
- text.setText(getCommitTemplate());
- previousCommentsCombo.deselectAll();
- } catch (CVSException e) {
- CVSUIPlugin.openError(getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC);
- }
- }
-
- private String getCommitTemplate() throws CVSException {
- CVSTeamProvider provider = getProvider();
- if (provider == null) return ""; //$NON-NLS-1$
- String template = provider.getCommitTemplate();
- if (template == null) template = ""; //$NON-NLS-1$
- return template;
- }
-
- /**
- * Method getProvider.
- */
- private CVSTeamProvider getProvider() throws CVSException {
- if (mainProject == null) return null;
- return (CVSTeamProvider) RepositoryProvider.getProvider(mainProject, CVSProviderPlugin.getTypeId());
- }
-
- /**
- * Method getSelectedComment.
- * @return String
- */
- private String getSelectedComment() {
- if (comments.length == 0) {
- // There are no previous comments so use the template
- try {
- return getCommitTemplate();
- } catch (CVSException e) {
- // log the exception for now.
- // The user can surface the problem by trying to reset the comment
- CVSUIPlugin.log(e);
- }
- } else {
- int index = previousCommentsCombo.getSelectionIndex();
- if (index != -1)
- return comments[index];
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Return the entered comment
- *
- * @return the comment
- */
- public String[] getComments() {
- return comments;
- }
-
- /**
- * Returns the comment.
- * @return String
- */
- public String getComment() {
- if (comment != null && comment.length() > 0) finished();
- return comment;
- }
-
- /**
- * Method setProject.
- * @param iProject
- */
- public void setProject(IProject iProject) {
- this.mainProject = iProject;
- }
-
- private void finished() {
- // if the comment is the same as the template, ignore it
- try {
- if (comment.equals(getCommitTemplate())) {
- comment = ""; //$NON-NLS-1$
- }
- } catch (CVSException e) {
- // we couldn't get the commit template. Log the error and continue
- CVSUIPlugin.log(e);
- }
- // if there is still a comment, remember it
- if (comment.length() > 0) {
- CVSUIPlugin.getPlugin().getRepositoryManager().addComment(comment);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/Console.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/Console.java
deleted file mode 100644
index 2a56be838..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/Console.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.LineStyleEvent;
-import org.eclipse.swt.custom.LineStyleListener;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-
-/**
- * Console is a view that displays the communication with the CVS server
- */
-public class Console extends ViewPart {
- public static final String CONSOLE_ID = "org.eclipse.team.ccvs.ui.console"; //$NON-NLS-1$
- private static final DateFormat TIME_FORMAT = new SimpleDateFormat(Policy.bind("Console.resultTimeFormat")); //$NON-NLS-1$
- private static ConsoleDocument document;
- private static List /* of Console */ instances;
-
- private TextViewer viewer;
- private Color commandColor;
- private Color messageColor;
- private Color errorColor;
-
- private IDocumentListener documentListener;
- private IPropertyChangeListener propertyChangeListener;
- private TextViewerAction copyAction;
- private TextViewerAction selectAllAction;
- private Action clearOutputAction;
-
- //For buffering console content prior to flushing to view
- private static class PendingConsoleLine {
- public int type;
- public String line;
- public PendingConsoleLine(int type, String line) {
- this.type = type;
- this.line = line;
- }
- }
-
- private static final int MAX_BUFFER_SIZE = 200; //maximum size of buffer if console not open
- private static Vector pendingConsoleData = new Vector(200 * 2); //allows room for adding to end/removing from front
- private static Runnable aSyncRunnable;
-
- /*
- * Called on UI plugin startup.
- */
- public static void startup() {
- instances = new ArrayList();
- CVSProviderPlugin.getPlugin().setConsoleListener(new ConsoleListener());
- }
-
- /*
- * Called on UI plugin shutdown.
- */
- public static void shutdown() {
- document = null;
- instances = null;
- CVSProviderPlugin.getPlugin().setConsoleListener(null);
- }
-
- public Console() {
- }
-
- /*
- * @see WorkbenchPart#dispose
- */
- public void dispose() {
- // remove listeners
- if (documentListener != null) {
- document.removeDocumentListener(documentListener);
- documentListener = null;
- }
- if (propertyChangeListener != null) {
- getPreferenceStore().removePropertyChangeListener(propertyChangeListener);
- propertyChangeListener = null;
- }
- instances.remove(this);
- //if (instances.isEmpty()) document.clear();
-
- // dispose of allocated colors and fonts
- super.dispose();
- if (commandColor != null) {
- commandColor.dispose();
- commandColor = null;
- }
- if (messageColor != null) {
- messageColor.dispose();
- messageColor = null;
- }
- if (errorColor != null) {
- errorColor.dispose();
- errorColor = null;
- }
- }
-
- /*
- * @see WorkbenchPart#setFocus()
- */
- public void setFocus() {
- viewer.getTextWidget().setFocus();
- }
-
- /*
- * @see WorkbenchPart#createPartControl(Composite)
- */
- public void createPartControl(Composite parent) {
- if(document == null) {
- document = new ConsoleDocument();
- }
-
- Composite composite = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL));
-
- updatePreferences(null);
-
- // F1 Help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.CONSOLE_VIEW);
-
- // create the viewer
- viewer = new TextViewer(composite, SWT.V_SCROLL | SWT.H_SCROLL);
- GridData data = new GridData(GridData.FILL_BOTH);
- viewer.getControl().setLayoutData(data);
- viewer.setEditable(false);
- viewer.setDocument(document);
- viewer.getTextWidget().setFont(JFaceResources.getFont(ICVSUIConstants.PREF_CONSOLE_FONT));
-
- // add a selection listener to control enablement of the copy action
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- copyAction.update();
- }
- });
-
- // add a line styler for colouring lines according to their type
- viewer.getTextWidget().addLineStyleListener(new LineStyleListener() {
- public void lineGetStyle(LineStyleEvent event) {
- StyleRange style = new StyleRange(event.lineOffset, event.lineText.length(),
- getConsoleLineColor(event.lineOffset), null);
- event.styles = new StyleRange[] { style };
- }
- });
-
- // create the viewer actions
- createActions();
-
- // add a property change listener to update when preferences change
- propertyChangeListener = new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- updatePreferences(event.getProperty());
- }
- };
- getPreferenceStore().addPropertyChangeListener(propertyChangeListener);
- JFaceResources.getFontRegistry().addListener(propertyChangeListener);
-
- // add a document listener for auto-scrolling
- documentListener = new IDocumentListener() {
- public void documentAboutToBeChanged(DocumentEvent event) {
- }
- public void documentChanged(DocumentEvent event) {
- if (viewer == null) return;
- // always focus on the last line without changing the horizontal scrolling index
- // we can get away with doing it this way because the viewer is read only
- StyledText styledText = viewer.getTextWidget();
- if (styledText.isDisposed()) return;
- styledText.setTopIndex(styledText.getLineCount());
- }
- };
- document.addDocumentListener(documentListener);
-
- // we're open -- remember us
- instances.add(this);
- flushConsoleBuffer(); //in case there's anything in the buffer
- }
-
- /**
- * Create contributed actions
- */
- private void createActions() {
- CVSUIPlugin plugin = CVSUIPlugin.getPlugin();
- clearOutputAction = new Action(Policy.bind("Console.clearOutput"), plugin.getImageDescriptor(ICVSUIConstants.IMG_CLEAR_ENABLED)) { //$NON-NLS-1$
- public void run() {
- document.clear();
- }
- };
- clearOutputAction.setToolTipText(Policy.bind("Console.clearOutput")); //$NON-NLS-1$
- clearOutputAction.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_CLEAR_DISABLED));
- clearOutputAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_CLEAR));
-
- MenuManager mgr = new MenuManager();
- mgr.setRemoveAllWhenShown(true);
- mgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager mgr) {
- fillContextMenu(mgr);
- }
- });
- Menu menu = mgr.createContextMenu(viewer.getControl());
- viewer.getControl().setMenu(menu);
-
- // Create the local tool bar
- IToolBarManager tbm = getViewSite().getActionBars().getToolBarManager();
- tbm.add(clearOutputAction);
- tbm.update(false);
-
-
- // Create actions for the text editor
- IActionBars actionBars = getViewSite().getActionBars();
-
- copyAction = new TextViewerAction(viewer, ITextOperationTarget.COPY);
- copyAction.setText(Policy.bind("Console.copy")); //$NON-NLS-1$
- actionBars.setGlobalActionHandler(ITextEditorActionConstants.COPY, copyAction);
-
- selectAllAction = new TextViewerAction(viewer, ITextOperationTarget.SELECT_ALL);
- selectAllAction.setText(Policy.bind("Console.selectAll")); //$NON-NLS-1$
- actionBars.setGlobalActionHandler(ITextEditorActionConstants.SELECT_ALL, selectAllAction);
-
- actionBars.updateActionBars();
- }
-
- /**
- * Add the actions to the context menu
- *
- * @param manager the manager of the context menu
- */
- private void fillContextMenu(IMenuManager manager) {
- manager.add(copyAction);
- manager.add(selectAllAction);
- manager.add(new Separator());
- manager.add(clearOutputAction);
- }
-
- /**
- * Returns the color for the line containing the specified offset.
- */
- private Color getConsoleLineColor(int offset) {
- switch (document.getLineType(offset)) {
- case ConsoleDocument.COMMAND:
- case ConsoleDocument.STATUS:
- case ConsoleDocument.DELIMITER:
- return commandColor;
- case ConsoleDocument.MESSAGE:
- return messageColor;
- case ConsoleDocument.ERROR:
- return errorColor;
- default:
- throw new IllegalStateException();
- }
- }
-
- /**
- * Updates the console's font and colors.
- */
- private void updatePreferences(String property) {
- Display display = getViewSite().getShell().getDisplay();
- // update the console colors
- if (property == null ||
- property.equals(ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR) ||
- property.equals(ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR) ||
- property.equals(ICVSUIConstants.PREF_CONSOLE_ERROR_COLOR)) {
- Color oldCommandColor = commandColor;
- Color oldMessageColor = messageColor;
- Color oldErrorColor = errorColor;
- commandColor = createColor(display, ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR);
- messageColor = createColor(display, ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR);
- errorColor = createColor(display, ICVSUIConstants.PREF_CONSOLE_ERROR_COLOR);
- if (oldCommandColor != null) {
- if (viewer != null && ! viewer.getControl().isDisposed()) {
- viewer.refresh();
- }
- oldCommandColor.dispose();
- oldMessageColor.dispose();
- oldErrorColor.dispose();
- }
- }
- // update the console font
- if (property == null ||
- property.equals(ICVSUIConstants.PREF_CONSOLE_FONT)) {
- if (viewer != null && ! viewer.getControl().isDisposed()) {
- viewer.getTextWidget().setFont(JFaceResources.getFont(ICVSUIConstants.PREF_CONSOLE_FONT));
- }
- }
- }
-
- /**
- * Returns a color instance based on data from a preference field.
- */
- private Color createColor(Display display, String preference) {
- RGB rgb = PreferenceConverter.getColor(getPreferenceStore(), preference);
- return new Color(display, rgb);
- }
-
- /**
- * Appends a line to the console if any views are open.
- */
- private static void appendConsoleLine(final int type, final String line) {
- if (Policy.DEBUG_CONSOLE_BUFFERING) {
- System.out.println("<<Console buffering [" + String.valueOf(type) + "] :" + line); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- //add to end of buffer
- pendingConsoleData.add(
- new PendingConsoleLine(type, line));
-
- //If no document, ensure buffer size doesn't grow too long, don't flush
- if (document == null) {
- if(pendingConsoleData.size() > MAX_BUFFER_SIZE) {
- //remove extra from front of buffer
- pendingConsoleData.remove(0);
- }
- return;
- }
-
- //Do nothing if there is already an aSyncRunnable emptying the buffer
- if(aSyncRunnable != null) return;
-
- flushConsoleBuffer();
- }
-
- /*
- * Flush the buffered console data to the console.
- * Safe to call even if console isn't open (does nothing).
- */
- private static void flushConsoleBuffer() {
- if(document == null) return;
-
- Display display = Display.getCurrent();
- if (display == null) {
- display = Display.getDefault();
- }
-
- if (Policy.DEBUG_CONSOLE_BUFFERING) {
- System.out.println("++Console creating runnable"); //$NON-NLS-1$
- }
-
- display.asyncExec(aSyncRunnable = new Runnable() {
- public void run() {
- if (Policy.DEBUG_CONSOLE_BUFFERING) {
- System.out.println("==Console running runnable"); //$NON-NLS-1$
- }
- //flush all buffered console data to the console
- while (! pendingConsoleData.isEmpty()) {
- PendingConsoleLine consoleLine = (PendingConsoleLine) pendingConsoleData.remove(0);
- if (Policy.DEBUG_CONSOLE_BUFFERING) {
- System.out.println(">>Console flushing [" + String.valueOf(consoleLine.type) + "] :" + consoleLine.line); //$NON-NLS-1$ //$NON-NLS-2$
- }
- document.appendConsoleLine(consoleLine.type, consoleLine.line);
- }
- if (Policy.DEBUG_CONSOLE_BUFFERING) {
- System.out.println("--Console discarding runnable"); //$NON-NLS-1$
- }
- aSyncRunnable = null; //flush the instance so that a new one will be created when required
- }
- });
- }
-
- /**
- * Makes the CVS Console view visible in the active perspective. If there
- * isn't a CVS Console view registered <code>null</code> is returned.
- * Otherwise the opened view part is returned.
- *
- * Must be called from the UI thread.
- */
- private static Console findInActivePerspective() {
- try {
- IWorkbenchPage page = CVSUIPlugin.getActivePage();
- IViewPart consolePart = page.findView(CONSOLE_ID);
- if (consolePart == null) {
- IWorkbenchPart activePart = page.getActivePart();
- consolePart = page.showView(CONSOLE_ID);
- //restore focus stolen by the creation of the console
- if (activePart != null) page.activate(activePart);
- } else {
- page.bringToTop(consolePart);
- }
- return (Console) consolePart;
- } catch (PartInitException pe) {
- return null;
- }
- }
-
- /**
- * Returns the console preference store.
- */
- private static IPreferenceStore getPreferenceStore() {
- return CVSUIPlugin.getPlugin().getPreferenceStore();
- }
-
- private static class ConsoleListener implements IConsoleListener {
- private long commandStarted = 0;
-
- public void commandInvoked(String line) {
- commandStarted = System.currentTimeMillis();
- appendConsoleLine(ConsoleDocument.DELIMITER, Policy.bind("Console.preExecutionDelimiter")); //$NON-NLS-1$
- appendConsoleLine(ConsoleDocument.COMMAND, line);
- }
- public void messageLineReceived(String line) {
- appendConsoleLine(ConsoleDocument.MESSAGE, " " + line); //$NON-NLS-1$
- }
- public void errorLineReceived(String line) {
- appendConsoleLine(ConsoleDocument.ERROR, " " + line); //$NON-NLS-1$
- }
- public void commandCompleted(IStatus status, Exception exception) {
- long commandRuntime = System.currentTimeMillis() - commandStarted;
- String time;
- try {
- time = TIME_FORMAT.format(new Date(commandRuntime));
- } catch (RuntimeException e) {
- CVSUIPlugin.log(IStatus.ERROR, Policy.bind("Console.couldNotFormatTime"), e); //$NON-NLS-1$
- time = ""; //$NON-NLS-1$
- }
- String statusText;
- if (status != null) {
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- statusText = Policy.bind("Console.resultServerError", status.getMessage(), time); //$NON-NLS-1$
- } else {
- statusText = Policy.bind("Console.resultOk", time); //$NON-NLS-1$
- }
- appendConsoleLine(ConsoleDocument.STATUS, statusText);
- IStatus[] children = status.getChildren();
- if (children.length == 0) {
- if (!status.isOK())
- appendConsoleLine(ConsoleDocument.STATUS, messageLineForStatus(status));
- } else {
- for (int i = 0; i < children.length; i++) {
- if (!children[i].isOK())
- appendConsoleLine(ConsoleDocument.STATUS, messageLineForStatus(children[i]));
- }
- }
- } else if (exception != null) {
- if (exception instanceof OperationCanceledException) {
- statusText = Policy.bind("Console.resultAborted", time); //$NON-NLS-1$
- } else {
- statusText = Policy.bind("Console.resultException", time); //$NON-NLS-1$
- }
- appendConsoleLine(ConsoleDocument.STATUS, statusText);
- } else {
- statusText = Policy.bind("Console.resultOk", time); //$NON-NLS-1$
- }
- appendConsoleLine(ConsoleDocument.DELIMITER, Policy.bind("Console.postExecutionDelimiter")); //$NON-NLS-1$
- appendConsoleLine(ConsoleDocument.DELIMITER, ""); //$NON-NLS-1$
- flushConsoleBuffer();
- }
- /**
- * Method messageLineForStatus.
- * @param status
- */
- private String messageLineForStatus(IStatus status) {
- if (status.getSeverity() == IStatus.ERROR) {
- return Policy.bind("Console.error", status.getMessage()); //$NON-NLS-1$
- } else if (status.getSeverity() == IStatus.WARNING) {
- return Policy.bind("Console.warning", status.getMessage()); //$NON-NLS-1$
- } else if (status.getSeverity() == IStatus.INFO) {
- return Policy.bind("Console.info", status.getMessage()); //$NON-NLS-1$
- }
- return status.getMessage();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java
deleted file mode 100644
index 79891dfe4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.text.AbstractDocument;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DefaultLineTracker;
-import org.eclipse.jface.text.GapTextStore;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-
-public class ConsoleDocument extends AbstractDocument {
- public static final int COMMAND = 0; // command text
- public static final int MESSAGE = 1; // message received
- public static final int ERROR = 2; // error received
- public static final int STATUS = 3; // status text
- public static final int DELIMITER = 4; // delimiter text between runs
-
- private int[] lineTypes = null;
- private int currentLine = 0;
-
- /**
- * Creates an empty console document.
- */
- public ConsoleDocument() {
- setTextStore(new GapTextStore(512, 1024));
- setLineTracker(new DefaultLineTracker());
- completeInitialization();
- }
-
- /**
- * Clears the console document.
- */
- public void clear() {
- lineTypes = null;
- currentLine = 0;
- set(""); //$NON-NLS-1$
- }
-
- /**
- * Gets the line type for the line containing the specified offset.
- */
- public int getLineType(int offset) {
- try {
- int line = getLineOfOffset(offset);
- if (line < currentLine) return lineTypes[line];
- } catch (BadLocationException e) {
- CVSProviderPlugin.log(CVSException.wrapException(e));
- }
- return 0;
- }
-
- /**
- * Appends a line of the specified type to the end of the console.
- */
- public void appendConsoleLine(int type, String line) {
- if (lineTypes == null) {
- lineTypes = new int[16];
- } else if (currentLine >= lineTypes.length) {
- int[] oldLineTypes = lineTypes;
- lineTypes = new int[oldLineTypes.length * 2];
- System.arraycopy(oldLineTypes, 0, lineTypes, 0, oldLineTypes.length);
- }
- lineTypes[currentLine++] = type;
- try {
- replace(getLength(), 0, line + "\n"); //$NON-NLS-1$
- } catch (BadLocationException e) {
- CVSProviderPlugin.log(CVSException.wrapException(e));
- }
- }
-
- /**
- * Return the indicies of the lines that contain command strings
- */
- private int[] getCommandLines() {
- List commandLineList = new ArrayList();
- for (int i = 0; i < currentLine; i++) {
- if (lineTypes[i] == COMMAND) {
- commandLineList.add(new Integer(i));
- }
- }
- int[] commandLines = new int[commandLineList.size()];
- int i = 0;
- for (Iterator iter = commandLineList.iterator(); iter.hasNext(); ) {
- commandLines[i++] = ((Integer) iter.next()).intValue();
- }
- return commandLines;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsolePreferencesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsolePreferencesPage.java
deleted file mode 100644
index 87ffcbe9f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsolePreferencesPage.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.ColorFieldEditor;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-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.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class ConsolePreferencesPage extends PreferencePage implements IWorkbenchPreferencePage {
-
- private ColorFieldEditor commandColorEditor;
- private ColorFieldEditor messageColorEditor;
- private ColorFieldEditor errorColorEditor;
-
- /**
- * 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
- */
- private Composite createComposite(Composite parent, int numColumns) {
- Composite composite = new Composite(parent, SWT.NULL);
-
- //GridLayout
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- layout.numColumns = numColumns;
- composite.setLayout(layout);
-
- //GridData
- GridData data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- composite.setLayoutData(data);
- return composite;
- }
-
- /**
- * @see PreferencePage#createContents(Composite)
- */
- protected Control createContents(Composite parent) {
- Composite composite = createComposite(parent, 2);
- createLabel(composite, Policy.bind("ConsolePreferencePage.consoleColorSettings")); //$NON-NLS-1$
-
- commandColorEditor = createColorFieldEditor(ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR,
- Policy.bind("ConsolePreferencePage.commandColor"), composite); //$NON-NLS-1$
- messageColorEditor = createColorFieldEditor(ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR,
- Policy.bind("ConsolePreferencePage.messageColor"), composite); //$NON-NLS-1$
- errorColorEditor = createColorFieldEditor(ICVSUIConstants.PREF_CONSOLE_ERROR_COLOR,
- Policy.bind("ConsolePreferencePage.errorColor"), composite); //$NON-NLS-1$
-
- initializeValues();
- WorkbenchHelp.setHelp(composite, IHelpContextIds.CONSOLE_PREFERENCE_PAGE);
- Dialog.applyDialogFont(parent);
- 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
- */
- private Label createLabel(Composite parent, String text) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = 2;
- data.horizontalAlignment = GridData.FILL;
- label.setLayoutData(data);
- return label;
- }
- /**
- * Creates a new color field editor.
- */
- private ColorFieldEditor createColorFieldEditor(String preferenceName, String label, Composite parent) {
- ColorFieldEditor editor = new ColorFieldEditor(preferenceName, label, parent);
- editor.setPreferencePage(this);
- editor.setPreferenceStore(getPreferenceStore());
- return editor;
- }
-
- /**
- * Initializes states of the controls from the preference store.
- */
- private void initializeValues() {
- IPreferenceStore store = getPreferenceStore();
- commandColorEditor.load();
- messageColorEditor.load();
- errorColorEditor.load();
- }
-
- /**
- * @see IWorkbenchPreferencePage#init(IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-
- /**
- * OK was clicked. Store the CVS preferences.
- *
- * @return whether it is okay to close the preference page
- */
- public boolean performOk() {
- IPreferenceStore store = getPreferenceStore();
- commandColorEditor.store();
- messageColorEditor.store();
- errorColorEditor.store();
- return true;
- }
-
- /**
- * Defaults was clicked. Restore the CVS preferences to
- * their default values
- */
- protected void performDefaults() {
- super.performDefaults();
- IPreferenceStore store = getPreferenceStore();
- commandColorEditor.loadDefault();
- messageColorEditor.loadDefault();
- errorColorEditor.loadDefault();
- }
-
- /**
- * Returns preference store that belongs to the our plugin.
- * This is important because we want to store
- * our preferences separately from the desktop.
- *
- * @return the preference store for this plugin
- */
- protected IPreferenceStore doGetPreferenceStore() {
- return CVSUIPlugin.getPlugin().getPreferenceStore();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/EditorsDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/EditorsDialog.java
deleted file mode 100644
index cdf63f8fe..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/EditorsDialog.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 CSC SoftwareConsult GmbH & Co. OHG, Germany and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * CSC - Intial implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.EditorsInfo;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-
-
-/**
- *
- * A dialog for showing the result of a cvs editors command.
- * Currently not in use, but can be used before executing the edit command
- *
- * @author <a href="mailto:gregor.kohlwes@csc.com,kohlwes@gmx.net">Gregor Kohlwes</a>
- */
-public class EditorsDialog extends Dialog {
- /**
- * Constructor EditorsDialog.
- * @param shell
- * @param iEditorsInfos
- */
-
- EditorsView editorsView;
- EditorsInfo[] editorsInfo;
-
- public EditorsDialog(Shell shell, EditorsInfo[] infos) {
- super(shell);
- editorsInfo = infos;
- }
-
- protected Control createDialogArea(Composite container) {
-
- Composite parent = (Composite) super.createDialogArea(container);
- Layout layout = parent.getLayout();
-
- getShell().setText(Policy.bind("EditorsDialog.title")); //$NON-NLS-1$
- createMessageArea(parent);
- editorsView = new EditorsView();
- editorsView.createPartControl(container);
- editorsView.setInput(editorsInfo);
-
- // set F1 help
- WorkbenchHelp.setHelp(parent, IHelpContextIds.EDITORS_DIALOG);
-
- Dialog.applyDialogFont(parent);
-
- return parent;
- }
- /**
- * Method createMessageArea.
- * @param parent
- */
- private void createMessageArea(Composite parent) {
- Label label = new Label(parent, SWT.NONE);
- label.setText(Policy.bind("EditorsDialog.question")); //$NON-NLS-1$
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/EditorsView.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/EditorsView.java
deleted file mode 100644
index fece678db..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/EditorsView.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 CSC SoftwareConsult GmbH & Co. OHG, Germany and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * CSC - Intial implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.team.internal.ccvs.core.EditorsInfo;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- *
- * The <code>EditorsView</code> shows the result of cvs editors command
- *
- * @author <a href="mailto:gregor.kohlwes@csc.com,kohlwes@gmx.net">Gregor Kohlwes</a>
- * @see org.eclipse.team.internal.ccvs.ui.actions.ShowEditorsAction
- */
-public class EditorsView extends ViewPart {
- public static final String VIEW_ID = "org.eclipse.team.ccvs.ui.EditorsView"; //$NON-NLS-1$
-
- private Table table;
- private TableViewer tableViewer;
-
- class EditorsContentProvider implements IStructuredContentProvider {
-
- /**
- * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
- */
- public Object[] getElements(Object inputElement) {
- return (EditorsInfo[]) inputElement;
- }
-
- /**
- * @see org.eclipse.jface.viewers.IContentProvider#dispose()
- */
- public void dispose() {
- }
-
- /**
- * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- public void inputChanged(
- Viewer viewer,
- Object oldInput,
- Object newInput) {
- }
-
- }
-
- class EditorsLabelProvider implements ITableLabelProvider {
- /**
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
- */
- public Image getColumnImage(Object element, int columnIndex) {
- return null;
- }
-
- /**
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
- */
- public String getColumnText(Object element, int columnIndex) {
- if (element == null)
- return ""; //$NON-NLS-1$
- EditorsInfo info = (EditorsInfo) element;
-
- String result = null;
- switch (columnIndex) {
- case 0 :
- result = info.getFileName();
- break;
- case 1 :
- result = info.getUserName();
- break;
- case 2 :
- result = info.getDateString();
- break;
- case 3 :
- result = info.getComputerName();
- break;
- }
- // This method must not return null
- if (result == null) result = ""; //$NON-NLS-1$
- return result;
-
- }
-
- /**
- * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
- */
- public void addListener(ILabelProviderListener listener) {
- }
-
- /**
- * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
- */
- public void dispose() {
- }
-
- /**
- * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
- */
- public boolean isLabelProperty(Object element, String property) {
- return false;
- }
-
- /**
- * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
- */
- public void removeListener(ILabelProviderListener listener) {
- }
-
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
- */
- public void createPartControl(Composite parent) {
- table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
-
- GridData gridData = new GridData(GridData.FILL_BOTH);
- gridData.widthHint=500;
- gridData.heightHint=100;
- table.setLayoutData(gridData);
-
- TableLayout layout = new TableLayout();
- table.setLayout(layout);
-
- tableViewer = new TableViewer(table);
- createColumns(table, layout);
-
- tableViewer.setContentProvider(new EditorsContentProvider());
- tableViewer.setLabelProvider(new EditorsLabelProvider());
- // set F1 help
- WorkbenchHelp.setHelp(tableViewer.getControl(), IHelpContextIds.CVS_EDITORS_VIEW);
- }
- public void setInput(EditorsInfo[] infos) {
- tableViewer.setInput(infos);
- }
- /**
- * Method createColumns.
- * @param table
- * @param layout
- * @param viewer
- */
- private void createColumns(Table table, TableLayout layout) {
-
- TableColumn col;
- // file name
- col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("EditorsView.file")); //$NON-NLS-1$
- layout.addColumnData(new ColumnWeightData(30, true));
-
- // user name
- col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("EditorsView.user")); //$NON-NLS-1$
- layout.addColumnData(new ColumnWeightData(20, true));
-
- // creation date
- col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("EditorsView.date")); //$NON-NLS-1$
- layout.addColumnData(new ColumnWeightData(30, true));
-
- // computer name
- col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("EditorsView.computer")); //$NON-NLS-1$
- layout.addColumnData(new ColumnWeightData(20, true));
-
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPart#setFocus()
- */
- public void setFocus() {
- }
- /**
- * Method getTable.
- */
- public Table getTable() {
- return table;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ExtMethodPreferencePage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ExtMethodPreferencePage.java
deleted file mode 100644
index 6aa2ab602..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ExtMethodPreferencePage.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.internal.ccvs.ui;
-
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-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.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class ExtMethodPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
- Text cvsRsh;
- Text cvsServer;
- Text cvsRshParameters;
-
- /*
- * @see PreferencePage#createContents(Composite)
- */
- protected Control createContents(Composite parent) {
- Composite composite = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- layout.numColumns = 3;
- composite.setLayout(layout);
- composite.setLayoutData(new GridData());
-
- Label intro = new Label(composite, SWT.LEFT | SWT.WRAP);
- intro.setText(Policy.bind("ExtMethodPreferencePage_message")); //$NON-NLS-1$
- GridData data = new GridData();
- data.horizontalSpan = 3;
- data.horizontalAlignment = GridData.FILL;
- data.widthHint = 300;
- intro.setLayoutData(data);
-
- new Label(composite, SWT.LEFT).setText(Policy.bind("ExtMethodPreferencePage_CVS_RSH")); //$NON-NLS-1$
- cvsRsh = new Text(composite, SWT.BORDER);
- cvsRsh.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- final Button b = new Button(composite, SWT.NONE);
- b.setText(Policy.bind("ExtMethodPreferencePage_Browse")); //$NON-NLS-1$
- data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
- int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- data.widthHint = Math.max(widthHint, b.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
- b.setLayoutData(data);
- b.addListener(SWT.MouseDown, new Listener() {
- public void handleEvent (Event event) {
- FileDialog d = new FileDialog(getShell());
- d.setText(Policy.bind("ExtMethodPreferencePage_Details")); //$NON-NLS-1$
- String file = d.open();
- if(file!=null) {
- setCvsRshText(file);
- }
- }
- });
-
- new Label(composite, SWT.LEFT).setText(Policy.bind("ExtMethodPreferencePage_CVS_RSH_Parameters")); //$NON-NLS-1$
- cvsRshParameters = new Text(composite, SWT.BORDER);
- data = new GridData();
- data.horizontalSpan = 2;
- data.horizontalAlignment = GridData.FILL;
- cvsRshParameters.setLayoutData(data);
-
- new Label(composite, SWT.LEFT).setText(Policy.bind("ExtMethodPreferencePage_CVS_SERVER__7")); //$NON-NLS-1$
- cvsServer = new Text(composite, SWT.BORDER);
- data = new GridData();
- data.horizontalSpan = 2;
- data.horizontalAlignment = GridData.FILL;
- cvsServer.setLayoutData(data);
-
- initializeDefaults();
- WorkbenchHelp.setHelp(composite, IHelpContextIds.EXT_PREFERENCE_PAGE);
- WorkbenchHelp.setHelp(cvsRsh, IHelpContextIds.EXT_PREFERENCE_RSH);
- WorkbenchHelp.setHelp(cvsRshParameters, IHelpContextIds.EXT_PREFERENCE_PARAM);
- WorkbenchHelp.setHelp(cvsServer, IHelpContextIds.EXT_PREFERENCE_SERVER);
- Dialog.applyDialogFont(parent);
- return composite;
- }
-
- protected void initializeDefaults() {
- IPreferenceStore store = getPreferenceStore();
- cvsRsh.setText(store.getString(ICVSUIConstants.PREF_CVS_RSH));
- cvsRshParameters.setText(store.getString(ICVSUIConstants.PREF_CVS_RSH_PARAMETERS));
- cvsServer.setText(store.getString(ICVSUIConstants.PREF_CVS_SERVER));
- }
-
- /*
- * Set CVS_RSH program
- */
- protected void setCvsRshText(String s) {
- cvsRsh.setText(s);
- }
-
- /*
- * @see IWorkbenchPreferencePage#init(IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-
- /*
- * @see IPreferencePage#performOk()
- */
- public boolean performOk() {
- IPreferenceStore store = getPreferenceStore();
- store.setValue(ICVSUIConstants.PREF_CVS_RSH, cvsRsh.getText());
- store.setValue(ICVSUIConstants.PREF_CVS_RSH_PARAMETERS, cvsRshParameters.getText());
- store.setValue(ICVSUIConstants.PREF_CVS_SERVER, cvsServer.getText());
- CVSProviderPlugin.getPlugin().setCvsRshCommand(cvsRsh.getText());
- CVSProviderPlugin.getPlugin().setCvsRshParameters(cvsRshParameters.getText());
- CVSProviderPlugin.getPlugin().setCvsServer(cvsServer.getText());
- CVSUIPlugin.getPlugin().savePluginPreferences();
- return super.performOk();
- }
- /*
- * @see PreferencePage#doGetPreferenceStore()
- */
- protected IPreferenceStore doGetPreferenceStore() {
- return CVSUIPlugin.getPlugin().getPreferenceStore();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/FileModificationValidator.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/FileModificationValidator.java
deleted file mode 100644
index c87acd89a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/FileModificationValidator.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-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.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFileModificationValidator;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.actions.EditorsAction;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * IFileModificationValidator that is pluged into the CVS Repository Provider
- */
-public class FileModificationValidator implements ICVSFileModificationValidator {
-
- public static final IStatus OK = new Status(IStatus.OK, CVSUIPlugin.ID, 0, Policy.bind("ok"), null); //$NON-NLS-1$
- private static final int HIGHJACK = 1;
-
- public FileModificationValidator() {
- }
-
- /**
- * @see org.eclipse.core.resources.IFileModificationValidator#validateEdit(org.eclipse.core.resources.IFile, java.lang.Object)
- */
- public IStatus validateEdit(IFile[] files, Object context) {
- IFile[] readOnlyFiles = getManagedReadOnlyFiles(files);
- if (readOnlyFiles.length == 0) return OK;
- return edit(readOnlyFiles, getShell(context));
- }
-
- /**
- * @see org.eclipse.core.resources.IFileModificationValidator#validateSave(org.eclipse.core.resources.IFile)
- */
- public IStatus validateSave(IFile file) {
- if (!needsCheckout(file)) return OK;
- return edit(new IFile[] {file}, (Shell)null);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.core.ICVSFileModificationValidator#validateMoveDelete(org.eclipse.core.resources.IFile[], org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus validateMoveDelete(IFile[] files, IProgressMonitor monitor) {
- IFile[] readOnlyFiles = getManagedReadOnlyFiles(files);
- if (readOnlyFiles.length == 0) return OK;
-
- try {
- edit(readOnlyFiles, monitor);
- return OK;
- } catch (CVSException e) {
- return e.getStatus();
- }
- }
-
- private IFile[] getManagedReadOnlyFiles(IFile[] files) {
- List readOnlys = new ArrayList();
- for (int i = 0; i < files.length; i++) {
- IFile iFile = files[i];
- if (needsCheckout(iFile)) {
- readOnlys.add(iFile);
- }
- }
- return (IFile[]) readOnlys.toArray(new IFile[readOnlys.size()]);
- }
-
- private boolean needsCheckout(IFile file) {
- try {
- if (file.isReadOnly()) {
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(file);
- return cvsFile.isManaged();
- }
- } catch (CVSException e) {
- // Log the exception and assume we don't need a checkout
- CVSUIPlugin.log(e);
- }
- return false;
- }
-
- private CVSTeamProvider getProvider(IFile[] files) {
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(files[0].getProject(), CVSProviderPlugin.getTypeId());
- return provider;
- }
-
- private Shell getShell(Object context) {
- if (context instanceof Shell)
- return (Shell)context;
- return null;
- }
-
- private IStatus getStatus(InvocationTargetException e) {
- Throwable target = e.getTargetException();
- if (target instanceof TeamException) {
- return ((TeamException) target).getStatus();
- } else if (target instanceof CoreException) {
- return ((CoreException) target).getStatus();
- }
- return new Status(IStatus.ERROR, CVSUIPlugin.ID, 0, Policy.bind("internal"), target); //$NON-NLS-1$
- }
-
- private IStatus edit(final IFile[] files, Shell shell) {
- try {
- if (!promptToEditFiles(files, shell)) {
- return OK;
- }
- } catch (InvocationTargetException e) {
- return getStatus(e);
- } catch (InterruptedException e) {
- // Is it correct to answer OK?????
- return OK;
- }
-
- // Create a runnable to edit the file
- try {
- run(shell, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- edit(files, monitor);
- } catch (CVSException e) {
- new InvocationTargetException(e);
- }
- }
- });
- return OK;
- } catch (InvocationTargetException e) {
- return getStatus(e);
- } catch (InterruptedException e) {
- return new Status(IStatus.ERROR, CVSUIPlugin.ID, 0, Policy.bind("FileModificationValidator.vetoMessage"), null); //$NON-NLS-1$;
- }
- }
-
- private boolean promptToEditFiles(IFile[] files, Shell shell) throws InvocationTargetException, InterruptedException {
- if (files.length == 0)
- return true;
-
- if (isPerformEdit() ) {
- if(isNeverPrompt())
- return true;
-
- // Contact the server to see if anyone else is editing the files
- EditorsAction editors = fetchEditors(files, shell);
- if (editors.isEmpty()) {
- if (isAlwaysPrompt())
- return (promptEdit(shell));
- else
- return true;
- } else {
- return (editors.promptToEdit(shell));
- }
- } else {
- // Allow the files to be edited without notifying the server
- for (int i = 0; i < files.length; i++) {
- IFile file = files[i];
- file.setReadOnly(false);
- }
- return false;
- }
-
- }
-
- private boolean promptEdit(Shell shell) {
- return MessageDialog.openQuestion(shell,Policy.bind("FileModificationValidator.3"),Policy.bind("FileModificationValidator.4")); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public boolean isPerformEdit() {
- return ICVSUIConstants.PREF_EDIT_PROMPT_EDIT.equals(CVSUIPlugin.getPlugin().getPreferenceStore().getString(ICVSUIConstants.PREF_EDIT_ACTION));
- }
-
- private EditorsAction fetchEditors(IFile[] files, Shell shell) throws InvocationTargetException, InterruptedException {
- EditorsAction editors = new EditorsAction(getProvider(files),files);
- run(shell, editors);
- return editors;
- }
-
- private boolean isNeverPrompt() {
- return ICVSUIConstants.PREF_EDIT_PROMPT_NEVER.equals(CVSUIPlugin.getPlugin().getPreferenceStore().getString(ICVSUIConstants.PREF_EDIT_PROMPT));
- }
-
- private boolean isAlwaysPrompt() {
- return ICVSUIConstants.PREF_EDIT_PROMPT_ALWAYS.equals(CVSUIPlugin.getPlugin().getPreferenceStore().getString(ICVSUIConstants.PREF_EDIT_PROMPT));
- }
-
- private void run(Shell shell, final IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
- final InvocationTargetException[] exception = new InvocationTargetException[] { null };
- CVSUIPlugin.runWithProgress(shell, false, runnable, CVSUIPlugin.PERFORM_SYNC_EXEC);
- }
-
- private void edit(IFile[] files, IProgressMonitor monitor) throws CVSException {
- getProvider(files).edit(files, false /* recurse */, true /* notify server */, ICVSFile.NO_NOTIFICATION, monitor);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryDropAdapter.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryDropAdapter.java
deleted file mode 100644
index 3a053193d..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryDropAdapter.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.internal.ccvs.ui;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.ViewerDropAdapter;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.ui.part.ResourceTransfer;
-
-public class HistoryDropAdapter extends ViewerDropAdapter {
- HistoryView view;
-
- public HistoryDropAdapter(StructuredViewer viewer, HistoryView view) {
- super(viewer);
- this.view = view;
- }
- /*
- * Override dragOver to slam the detail to DROP_LINK, as we do not
- * want to really execute a DROP_MOVE, although we want to respond
- * to it.
- */
- public void dragOver(DropTargetEvent event) {
- if ((event.operations & DND.DROP_LINK) == DND.DROP_LINK) {
- event.detail = DND.DROP_LINK;
- }
- super.dragOver(event);
- }
- /*
- * Override drop to slam the detail to DROP_LINK, as we do not
- * want to really execute a DROP_MOVE, although we want to respond
- * to it.
- */
- public void drop(DropTargetEvent event) {
- super.drop(event);
- event.detail = DND.DROP_LINK;
- }
- public boolean performDrop(Object data) {
- if (data == null) return false;
- IResource[] sources = (IResource[])data;
- if (sources.length == 0) return false;
- IResource resource = sources[0];
- if (!(resource instanceof IFile)) return false;
- view.showHistory(resource);
- return true;
- }
- public boolean validateDrop(Object target, int operation, TransferData transferType) {
- if (transferType != null && ResourceTransfer.getInstance().isSupportedType(transferType)) {
- return true;
- }
- return false;
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilter.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilter.java
deleted file mode 100644
index 2be43c760..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.util.Date;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-
-public class HistoryFilter extends ViewerFilter {
- private HistoryView view;
- public String author;
- public Date fromDate;
- public Date toDate;
- public String comment;
- public boolean isOr;
-
- public HistoryFilter(HistoryView hView, String author, String comment, Date fromDate, Date toDate, boolean isOr) {
- this.view = hView;
- this.author = author;
- this.comment = comment;
- this.fromDate = fromDate;
- this.toDate = toDate;
- this.isOr = isOr;
- }
- /**
- * @see ViewerFilter#select(Viewer, Object, Object)
- */
- public boolean select(Viewer aviewer, Object parentElement, Object element) {
- if (element instanceof ILogEntry) {
- ILogEntry entry = (ILogEntry)element;
- if (isOr) {
- //empty fields should be considered a non-match
- return (hasAuthor() && authorMatch(entry) )
- || (hasDate() && dateMatch(entry))
- || (hasComment() && commentMatch(entry));
- } else {
- //"and" search
- //empty fields should be considered a match
- return (!hasAuthor() || authorMatch(entry))
- && (!hasDate() || dateMatch(entry))
- && (!hasComment() || commentMatch(entry));
- }
- }
- return false;
- }
- protected boolean authorMatch(ILogEntry entry) {
- return entry.getAuthor().equals(author);
- }
- protected boolean commentMatch(ILogEntry entry) {
- return !(entry.getComment().toLowerCase().indexOf(comment.toLowerCase()) == -1);
- }
- protected boolean dateMatch(ILogEntry entry) {
- return (fromDate.before(entry.getDate()))
- && (toDate.after(entry.getDate()));
- }
- protected boolean hasAuthor() {
- return !author.equals(""); //$NON-NLS-1$
- }
- protected boolean hasComment() {
- return !comment.equals(""); //$NON-NLS-1$
- }
- protected boolean hasDate() {
- return fromDate != null && toDate != null;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilterAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilterAction.java
deleted file mode 100644
index 3dda72428..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilterAction.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-public class HistoryFilterAction implements IViewActionDelegate {
- private HistoryView view;
- private HistoryFilter filter;
-
- /**
- * @see IViewActionDelegate#init(IViewPart)
- */
- public void init(IViewPart view) {
- this.view = (HistoryView)view;
- }
- /**
- * @see IActionDelegate#run(IAction)
- */
- public void run(IAction action) {
- HistoryFilterDialog historyDialog = new HistoryFilterDialog(view);
- if (filter != null) {
- historyDialog.setFilter(filter);
- }
- if (historyDialog.open() == Window.CANCEL) {
- return;
- }
- if (filter != null) {
- view.getViewer().removeFilter(filter);
- }
- filter = historyDialog.getFilter();
- //don't add the filter if it is blank
- if (!(filter.hasAuthor() || filter.hasDate() || filter.hasComment())) {
- return;
- }
- view.getViewer().addFilter(filter);
- }
- /**
- * @see IActionDelegate#selectionChanged(IAction, ISelection)
- */
- public void selectionChanged(IAction action, ISelection selection) {
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilterDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilterDialog.java
deleted file mode 100644
index 892860fd7..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryFilterDialog.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class HistoryFilterDialog extends Dialog {
-
- private boolean dateEntered;
- private HistoryView historyView;
- private HistoryFilter historyFilter;
-
- //widgets
- private Button orRadio;
- private Button andRadio;
- private Combo fromDayCombo;
- private Combo toDayCombo;
- private Combo fromMonthCombo;
- private Combo toMonthCombo;
- private Combo fromYearCombo;
- private Combo toYearCombo;
- private Text author;
- private Text comment;
-
- public HistoryFilterDialog(HistoryView view) {
- super(view.getViewSite().getShell());
- this.historyView = view;
- }
-
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(Policy.bind("HistoryFilterDialog.title")); //$NON-NLS-1$
- }
-
- protected Control createDialogArea(Composite parent) {
- Composite topLevel = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- topLevel.setLayout(layout);
-
- //"and" and "or" search radio buttons
- Label label = new Label(topLevel, SWT.NONE);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- label.setLayoutData(data);
- label.setText(Policy.bind("HistoryFilterDialog.showMatching")); //$NON-NLS-1$
-
- andRadio = new Button(topLevel, SWT.RADIO);
- andRadio.setText(Policy.bind("HistoryFilterDialog.matchingAll")); //$NON-NLS-1$
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- andRadio.setLayoutData(data);
- andRadio.setSelection(true);
-
- orRadio = new Button(topLevel, SWT.RADIO);
- orRadio.setText(Policy.bind("HistoryFilterDialog.matchingAny")); //$NON-NLS-1$
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- orRadio.setLayoutData(data);
-
- //author
- label = new Label(topLevel, SWT.NONE);
- label.setText(Policy.bind("HistoryFilterDialog.author")); //$NON-NLS-1$
- author = new Text(topLevel, SWT.BORDER);
- author.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- //comment
- label = new Label(topLevel, SWT.NONE);
- label.setText(Policy.bind("HistoryFilterDialog.comment")); //$NON-NLS-1$
- comment = new Text(topLevel, SWT.BORDER);
- comment.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- //"from" date
- label = new Label(topLevel, SWT.NONE);
- label.setText(Policy.bind("HistoryFilterDialog.fromDate")); //$NON-NLS-1$
- Composite fdComposite = new Composite(topLevel, SWT.NONE);
- GridLayout fdLayout = new GridLayout();
- fdLayout.numColumns = 3;
- fdComposite.setLayout(fdLayout);
- fromMonthCombo = new Combo(fdComposite, SWT.READ_ONLY);
- fromDayCombo = new Combo(fdComposite, SWT.READ_ONLY);
- fromYearCombo = new Combo(fdComposite, SWT.NONE);
- fromYearCombo.setTextLimit(4);
-
- //"to" date
- label = new Label(topLevel, SWT.NONE);
- label.setText(Policy.bind("HistoryFilterDialog.toDate")); //$NON-NLS-1$
- Composite tdComposite = new Composite(topLevel, SWT.NONE);
- GridLayout tdLayout = new GridLayout();
- tdLayout.numColumns = 3;
- tdComposite.setLayout(tdLayout);
- toMonthCombo = new Combo(tdComposite, SWT.READ_ONLY);
- toDayCombo = new Combo(tdComposite, SWT.READ_ONLY);
- toYearCombo = new Combo(tdComposite, SWT.NONE);
- toYearCombo.setTextLimit(4);
-
- //set day, month and year combos with numbers
- //years allows a selection from the past 5 years
- //or any year written in
- String days[] = new String[32];
- days[0] = "---"; //$NON-NLS-1$
- for (int i = 1; i < 32; i++) {
- days[i] = String.valueOf(i);
- }
-
- String months[] = new String[13];
- months[0] = "---"; //$NON-NLS-1$
- SimpleDateFormat format = new SimpleDateFormat("MMMM"); //$NON-NLS-1$
- Calendar calendar = Calendar.getInstance();
- for (int i = 1; i < 13; i++) {
- calendar.set(Calendar.MONTH, i - 1);
- months[i] = format.format(calendar.getTime());
- }
-
- String years[] = new String[5];
- Calendar calender = Calendar.getInstance();
- for (int i = 0; i < 5; i++) {
- years[i] = String.valueOf(calender.get(1) - i);
- }
- fromDayCombo.setItems(days);
- fromDayCombo.select(0);
- toDayCombo.setItems(days);
- toDayCombo.select(0);
- fromMonthCombo.setItems(months);
- fromMonthCombo.select(0);
- toMonthCombo.setItems(months);
- toMonthCombo.select(0);
- fromYearCombo.setItems(years);
- toYearCombo.setItems(years);
- fromYearCombo.select(0);
- toYearCombo.select(0);
-
- initializeValues();
-
- // set F1 help
- WorkbenchHelp.setHelp(topLevel, IHelpContextIds.HISTORY_FILTER_DIALOG);
- Dialog.applyDialogFont(parent);
- return topLevel;
- }
- void initializeValues() {
- if (historyFilter == null) return;
- if (historyFilter.author != null) {
- author.setText(historyFilter.author);
- }
- if (historyFilter.comment != null) {
- comment.setText(historyFilter.comment);
- }
- orRadio.setSelection(historyFilter.isOr);
- andRadio.setSelection(!historyFilter.isOr);
- Calendar calendar = Calendar.getInstance();
- if (historyFilter.fromDate != null) {
- calendar.setTime(historyFilter.fromDate);
- fromDayCombo.select(calendar.get(Calendar.DATE));
- fromMonthCombo.select(calendar.get(Calendar.MONTH) + 1);
- String yearValue = String.valueOf(calendar.get(Calendar.YEAR));
- int index = fromYearCombo.indexOf(yearValue);
- if (index == -1) {
- fromYearCombo.add(yearValue);
- index = fromYearCombo.indexOf(yearValue);
- }
- fromYearCombo.select(index);
- }
- if (historyFilter.toDate != null) {
- calendar.setTime(historyFilter.toDate);
- toDayCombo.select(calendar.get(Calendar.DATE));
- toMonthCombo.select(calendar.get(Calendar.MONTH) + 1);
- String yearValue = String.valueOf(calendar.get(Calendar.YEAR));
- int index = toYearCombo.indexOf(yearValue);
- if (index == -1) {
- toYearCombo.add(yearValue);
- index = toYearCombo.indexOf(yearValue);
- }
- toYearCombo.select(index);
- }
- }
- /**
- * A button has been pressed. Process the dialog contents.
- */
- protected void buttonPressed(int buttonId) {
- if (IDialogConstants.CANCEL_ID == buttonId) {
- super.buttonPressed(buttonId);
- return;
- }
- Date fromDate = null, toDate = null;
-
- if ((fromMonthCombo.getSelectionIndex() > 0)
- && (toMonthCombo.getSelectionIndex() > 0)
- && (fromDayCombo.getSelectionIndex() > 0)
- && (toDayCombo.getSelectionIndex() > 0)
- && (fromYearCombo.getText().length() > 0)
- && (toYearCombo.getText().length() > 0)) {
-
- //set the calendar with the user input
- //set the hours, minutes and seconds to 00
- //so as to cover the whole day
- Calendar calendar = Calendar.getInstance();
- calendar.set(
- Integer.parseInt(String.valueOf(fromYearCombo.getText())),
- fromMonthCombo.getSelectionIndex() - 1,
- Integer.parseInt(String.valueOf(fromDayCombo.getText())),
- 00, 00, 00);
- fromDate = calendar.getTime();
-
- //set the calendar with the user input
- //set the hours, minutes and seconds to 23, 59, 59
- //so as to cover the whole day
- calendar.set(
- Integer.parseInt(String.valueOf(toYearCombo.getText())),
- toMonthCombo.getSelectionIndex() - 1,
- Integer.parseInt(String.valueOf(toDayCombo.getText())),
- 23, 59, 59);
- toDate = calendar.getTime();
- }
-
- //create the filter
- historyFilter = new HistoryFilter(
- historyView,
- author.getText(),
- comment.getText(),
- fromDate,
- toDate,
- orRadio.getSelection());
-
- super.buttonPressed(buttonId);
- }
-
- /**
- * Returns the filter that was created from the provided
- * user input.
- */
- public HistoryFilter getFilter() {
- return historyFilter;
- }
- /**
- * Set the intial value of the dialog to the given filter.
- */
- public void setFilter(HistoryFilter filter) {
- this.historyFilter = filter;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryTableProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryTableProvider.java
deleted file mode 100644
index 7d2c7bc06..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryTableProvider.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import java.text.DateFormat;
-import java.util.Date;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.ui.internal.WorkbenchColors;
-
-/**
- * This class provides the table and it's required components for a file's revision
- * history
- */
-public class HistoryTableProvider {
-
- private ICVSFile currentFile;
- private String currentRevision;
-
- /**
- * Constructor for HistoryTableProvider.
- */
- public HistoryTableProvider() {
- super();
- }
-
- //column constants
- private static final int COL_REVISION = 0;
- private static final int COL_TAGS = 1;
- private static final int COL_DATE = 2;
- private static final int COL_AUTHOR = 3;
- private static final int COL_COMMENT = 4;
-
- /**
- * The history label provider.
- */
- class HistoryLabelProvider extends LabelProvider implements ITableLabelProvider, IColorProvider {
- public Image getColumnImage(Object element, int columnIndex) {
- return null;
- }
- public String getColumnText(Object element, int columnIndex) {
- ILogEntry entry = adaptToLogEntry(element);
- if (entry == null) return ""; //$NON-NLS-1$
- switch (columnIndex) {
- case COL_REVISION:
- String revision = entry.getRevision();
- String currentRevision = getCurrentRevision();
- if (currentRevision != null && currentRevision.equals(revision)) {
- revision = Policy.bind("currentRevision", revision); //$NON-NLS-1$
- }
- return revision;
- case COL_TAGS:
- CVSTag[] tags = entry.getTags();
- StringBuffer result = new StringBuffer();
- for (int i = 0; i < tags.length; i++) {
- result.append(tags[i].getName());
- if (i < tags.length - 1) {
- result.append(", "); //$NON-NLS-1$
- }
- }
- return result.toString();
- case COL_DATE:
- Date date = entry.getDate();
- if (date == null) return Policy.bind("notAvailable"); //$NON-NLS-1$
- return DateFormat.getInstance().format(date);
- case COL_AUTHOR:
- return entry.getAuthor();
- case COL_COMMENT:
- String comment = entry.getComment();
- int index = comment.indexOf("\n"); //$NON-NLS-1$
- switch (index) {
- case -1:
- return comment;
- case 0:
- return Policy.bind("HistoryView.[...]_4"); //$NON-NLS-1$
- default:
- return Policy.bind("CVSCompareRevisionsInput.truncate", comment.substring(0, index)); //$NON-NLS-1$
- }
- }
- return ""; //$NON-NLS-1$
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
- */
- public Color getForeground(Object element) {
- ILogEntry entry = adaptToLogEntry(element);
- if (entry.isDeletion()) {
- return WorkbenchColors.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
- } else {
- return null;
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
- */
- public Color getBackground(Object element) {
- return null;
- }
- }
-
- /**
- * The history sorter
- */
- class HistorySorter extends ViewerSorter {
- private boolean reversed = false;
- private int columnNumber;
-
- private VersionCollator versionCollator = new VersionCollator();
-
- // column headings: "Revision" "Tags" "Date" "Author" "Comment"
- private int[][] SORT_ORDERS_BY_COLUMN = {
- {COL_REVISION, COL_DATE, COL_AUTHOR, COL_COMMENT, COL_TAGS}, /* revision */
- {COL_TAGS, COL_REVISION, COL_DATE, COL_AUTHOR, COL_COMMENT}, /* tags */
- {COL_DATE, COL_REVISION, COL_AUTHOR, COL_COMMENT, COL_TAGS}, /* date */
- {COL_AUTHOR, COL_REVISION, COL_DATE, COL_COMMENT, COL_TAGS}, /* author */
- {COL_COMMENT, COL_REVISION, COL_DATE, COL_AUTHOR, COL_TAGS} /* comment */
- };
-
- /**
- * The constructor.
- */
- public HistorySorter(int columnNumber) {
- this.columnNumber = columnNumber;
- }
- /**
- * Compares two log entries, sorting first by the main column of this sorter,
- * then by subsequent columns, depending on the column sort order.
- */
- public int compare(Viewer viewer, Object o1, Object o2) {
- ILogEntry e1 = adaptToLogEntry(o1);
- ILogEntry e2 = adaptToLogEntry(o2);
- int result = 0;
- if (e1 == null || e2 == null) {
- result = super.compare(viewer, o1, o2);
- } else {
- int[] columnSortOrder = SORT_ORDERS_BY_COLUMN[columnNumber];
- for (int i = 0; i < columnSortOrder.length; ++i) {
- result = compareColumnValue(columnSortOrder[i], e1, e2);
- if (result != 0)
- break;
- }
- }
- if (reversed)
- result = -result;
- return result;
- }
- /**
- * Compares two markers, based only on the value of the specified column.
- */
- int compareColumnValue(int columnNumber, ILogEntry e1, ILogEntry e2) {
- switch (columnNumber) {
- case 0: /* revision */
- return versionCollator.compare(e1.getRevision(), e2.getRevision());
- case 1: /* tags */
- CVSTag[] tags1 = e1.getTags();
- CVSTag[] tags2 = e2.getTags();
- if (tags2.length == 0) {
- return -1;
- }
- if (tags1.length == 0) {
- return 1;
- }
- return getCollator().compare(tags1[0].getName(), tags2[0].getName());
- case 2: /* date */
- Date date1 = e1.getDate();
- Date date2 = e2.getDate();
- return date1.compareTo(date2);
- case 3: /* author */
- return getCollator().compare(e1.getAuthor(), e2.getAuthor());
- case 4: /* comment */
- return getCollator().compare(e1.getComment(), e2.getComment());
- default:
- return 0;
- }
- }
- /**
- * Returns the number of the column by which this is sorting.
- */
- public int getColumnNumber() {
- return columnNumber;
- }
- /**
- * Returns true for descending, or false
- * for ascending sorting order.
- */
- public boolean isReversed() {
- return reversed;
- }
- /**
- * Sets the sorting order.
- */
- public void setReversed(boolean newReversed) {
- reversed = newReversed;
- }
- }
-
- protected ILogEntry adaptToLogEntry(Object element) {
- // Get the log entry for the provided object
- ILogEntry entry = null;
- if (element instanceof ILogEntry) {
- entry = (ILogEntry) element;
- } else if (element instanceof IAdaptable) {
- entry = (ILogEntry)((IAdaptable)element).getAdapter(ILogEntry.class);
- }
- return entry;
- }
-
- /**
- * Create a TableViewer that can be used to display a list of ILogEntry instances.
- * Ths method provides the labels and sorter but does not provide a content provider
- *
- * @param parent
- * @return TableViewer
- */
- public TableViewer createTable(Composite parent) {
- Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
- GridData data = new GridData(GridData.FILL_BOTH);
- table.setLayoutData(data);
-
- TableLayout layout = new TableLayout();
- table.setLayout(layout);
-
- TableViewer viewer = new TableViewer(table);
-
- createColumns(table, layout, viewer);
-
- viewer.setLabelProvider(new HistoryLabelProvider());
-
- // By default, reverse sort by revision.
- HistorySorter sorter = new HistorySorter(COL_REVISION);
- sorter.setReversed(true);
- viewer.setSorter(sorter);
-
- return viewer;
- }
-
- /**
- * Create a CheckBoxTableViewer that can be used to display a list of ILogEntry instances.
- * Ths method provides the labels and sorter but does not provide a content provider
- *
- * @param parent
- * @return TableViewer
- */
- public CheckboxTableViewer createCheckBoxTable(Composite parent) {
- Table table = new Table(parent, SWT.CHECK | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
- GridData data = new GridData(GridData.FILL_BOTH);
- table.setLayoutData(data);
-
- TableLayout layout = new TableLayout();
- table.setLayout(layout);
-
- CheckboxTableViewer viewer = new CheckboxTableViewer(table);
-
- createColumns(table, layout, viewer);
-
- viewer.setLabelProvider(new HistoryLabelProvider());
-
- // By default, reverse sort by revision.
- HistorySorter sorter = new HistorySorter(COL_REVISION);
- sorter.setReversed(true);
- viewer.setSorter(sorter);
-
- return viewer;
- }
-
- /**
- * Creates the columns for the history table.
- */
- private void createColumns(Table table, TableLayout layout, TableViewer viewer) {
- SelectionListener headerListener = getColumnListener(viewer);
- // revision
- TableColumn col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("HistoryView.revision")); //$NON-NLS-1$
- col.addSelectionListener(headerListener);
- layout.addColumnData(new ColumnWeightData(20, true));
-
- // tags
- col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("HistoryView.tags")); //$NON-NLS-1$
- col.addSelectionListener(headerListener);
- layout.addColumnData(new ColumnWeightData(20, true));
-
- // creation date
- col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("HistoryView.date")); //$NON-NLS-1$
- col.addSelectionListener(headerListener);
- layout.addColumnData(new ColumnWeightData(20, true));
-
- // author
- col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("HistoryView.author")); //$NON-NLS-1$
- col.addSelectionListener(headerListener);
- layout.addColumnData(new ColumnWeightData(20, true));
-
- //comment
- col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- col.setText(Policy.bind("HistoryView.comment")); //$NON-NLS-1$
- col.addSelectionListener(headerListener);
- layout.addColumnData(new ColumnWeightData(50, true));
- }
-
- /**
- * Adds the listener that sets the sorter.
- */
- private SelectionListener getColumnListener(final TableViewer tableViewer) {
- /**
- * This class handles selections of the column headers.
- * Selection of the column header will cause resorting
- * of the shown tasks using that column's sorter.
- * Repeated selection of the header will toggle
- * sorting order (ascending versus descending).
- */
- return new SelectionAdapter() {
- /**
- * Handles the case of user selecting the
- * header area.
- * <p>If the column has not been selected previously,
- * it will set the sorter of that column to be
- * the current tasklist sorter. Repeated
- * presses on the same column header will
- * toggle sorting order (ascending/descending).
- */
- public void widgetSelected(SelectionEvent e) {
- // column selected - need to sort
- int column = tableViewer.getTable().indexOf((TableColumn) e.widget);
- HistorySorter oldSorter = (HistorySorter)tableViewer.getSorter();
- if (oldSorter != null && column == oldSorter.getColumnNumber()) {
- oldSorter.setReversed(!oldSorter.isReversed());
- tableViewer.refresh();
- } else {
- tableViewer.setSorter(new HistorySorter(column));
- }
- }
- };
- }
-
- public String getCurrentRevision() {
- return currentRevision;
- }
-
- /**
- * Method getRevision.
- * @param currentEdition
- */
- private String getRevision(ICVSFile currentEdition) throws CVSException {
- if (currentEdition == null) return ""; //$NON-NLS-1$
- ResourceSyncInfo info = currentEdition.getSyncInfo();
- if (info == null) return ""; //$NON-NLS-1$
- return info.getRevision();
- }
-
- public void setFile(ICVSFile file) throws CVSException {
- this.currentFile = file;
- this.currentRevision = getRevision(this.currentFile);
- }
-
- public ICVSFile getICVSFile() {
- return this.currentFile;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryView.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryView.java
deleted file mode 100644
index 19a816052..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/HistoryView.java
+++ /dev/null
@@ -1,905 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.JobStatusHandler;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSSyncInfo;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-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.ui.actions.CVSAction;
-import org.eclipse.team.internal.ccvs.ui.actions.MoveRemoteTagAction;
-import org.eclipse.team.internal.ccvs.ui.actions.OpenLogEntryAction;
-import org.eclipse.team.internal.ui.jobs.JobBusyCursor;
-import org.eclipse.team.ui.synchronize.SyncInfoCompareInput;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.ResourceTransfer;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-
-/**
- * The history view allows browsing of an array of resource revisions
- */
-public class HistoryView extends ViewPart {
- private IFile file;
- // cached for efficiency
- private ILogEntry[] entries;
-
- private HistoryTableProvider historyTableProvider;
-
- private TableViewer tableViewer;
- private TextViewer textViewer;
- private TableViewer tagViewer;
-
- private OpenLogEntryAction openAction;
- private IAction toggleTextAction;
- private IAction toggleListAction;
- private TextViewerAction copyAction;
- private TextViewerAction selectAllAction;
- private Action getContentsAction;
- private Action getRevisionAction;
- private Action refreshAction;
- private Action tagWithExistingAction;
- private Action linkWithEditorAction;
-
- private SashForm sashForm;
- private SashForm innerSashForm;
-
- private Image branchImage;
- private Image versionImage;
-
- private ILogEntry currentSelection;
- private boolean linkingEnabled;
-
- private IPreferenceStore settings;
-
- private FetchLogEntriesJob fetchLogEntriesJob;
- private JobBusyCursor jobBusyCursor;
-
- private boolean shutdown = false;
-
- public static final String VIEW_ID = "org.eclipse.team.ccvs.ui.HistoryView"; //$NON-NLS-1$
-
- private IPartListener partListener = new IPartListener() {
- public void partActivated(IWorkbenchPart part) {
- if (part instanceof IEditorPart)
- editorActivated((IEditorPart) part);
- }
- public void partBroughtToTop(IWorkbenchPart part) {
- if(part == HistoryView.this)
- editorActivated(getViewSite().getPage().getActiveEditor());
- }
- public void partOpened(IWorkbenchPart part) {
- if(part == HistoryView.this)
- editorActivated(getViewSite().getPage().getActiveEditor());
- }
- public void partClosed(IWorkbenchPart part) {
- }
- public void partDeactivated(IWorkbenchPart part) {
- }
- };
-
- private IPartListener2 partListener2 = new IPartListener2() {
- public void partActivated(IWorkbenchPartReference ref) {
- }
- public void partBroughtToTop(IWorkbenchPartReference ref) {
- }
- public void partClosed(IWorkbenchPartReference ref) {
- }
- public void partDeactivated(IWorkbenchPartReference ref) {
- }
- public void partOpened(IWorkbenchPartReference ref) {
- }
- public void partHidden(IWorkbenchPartReference ref) {
- }
- public void partVisible(IWorkbenchPartReference ref) {
- if(ref.getPart(true) == HistoryView.this)
- editorActivated(getViewSite().getPage().getActiveEditor());
- }
- public void partInputChanged(IWorkbenchPartReference ref) {
- }
- };
-
- private QualifiedName HISTORY_VIEW_JOB_TYPE = new QualifiedName(VIEW_ID, "jobs"); //$NON-NLS-1$
-
- private class FetchLogEntriesJob extends Job {
- public ICVSRemoteFile remoteFile;
- public FetchLogEntriesJob() {
- super(Policy.bind("HistoryView.fetchHistoryJob")); //$NON-NLS-1$;
- }
- public void setRemoteFile(ICVSRemoteFile file) {
- this.remoteFile = file;
- }
- public IStatus run(IProgressMonitor monitor) {
- try {
- if(remoteFile != null && !shutdown) {
- entries = remoteFile.getLogEntries(monitor);
- final String revisionId = remoteFile.getRevision();
- getSite().getShell().getDisplay().asyncExec(new Runnable() {
- public void run() {
- if(tableViewer != null && ! tableViewer.getTable().isDisposed()) {
- tableViewer.add(entries);
- selectRevision(revisionId);
- }
- }
- });
- }
- return Status.OK_STATUS;
- } catch (TeamException e) {
- return e.getStatus();
- }
- }
- };
-
- /**
- * Adds the action contributions for this view.
- */
- protected void contributeActions() {
- // Refresh (toolbar)
- CVSUIPlugin plugin = CVSUIPlugin.getPlugin();
- refreshAction = new Action(Policy.bind("HistoryView.refreshLabel"), plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH_ENABLED)) { //$NON-NLS-1$
- public void run() {
- refresh();
- }
- };
- refreshAction.setToolTipText(Policy.bind("HistoryView.refresh")); //$NON-NLS-1$
- refreshAction.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH_DISABLED));
- refreshAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH));
-
- // Link with Editor (toolbar)
- linkWithEditorAction = new Action(Policy.bind("HistoryView.linkWithLabel"), plugin.getImageDescriptor(ICVSUIConstants.IMG_LINK_WITH_EDITOR_ENABLED)) { //$NON-NLS-1$
- public void run() {
- setLinkingEnabled(isChecked());
- }
- };
- linkWithEditorAction.setToolTipText(Policy.bind("HistoryView.linkWithLabel")); //$NON-NLS-1$
- linkWithEditorAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_LINK_WITH_EDITOR));
- linkWithEditorAction.setChecked(isLinkingEnabled());
-
- // Double click open action
- openAction = new OpenLogEntryAction();
- tableViewer.getTable().addListener(SWT.DefaultSelection, new Listener() {
- public void handleEvent(Event e) {
- openAction.selectionChanged(null, tableViewer.getSelection());
- openAction.run(null);
- }
- });
-
- getContentsAction = getContextMenuAction(Policy.bind("HistoryView.getContentsAction"), true /* needs progress */, new IWorkspaceRunnable() { //$NON-NLS-1$
- public void run(IProgressMonitor monitor) throws CoreException {
- ICVSRemoteFile remoteFile = currentSelection.getRemoteFile();
- monitor.beginTask(null, 100);
- try {
- if(confirmOverwrite()) {
- InputStream in = remoteFile.getContents(new SubProgressMonitor(monitor, 50));
- file.setContents(in, false, true, new SubProgressMonitor(monitor, 50));
- }
- } catch (TeamException e) {
- throw new CoreException(e.getStatus());
- } finally {
- monitor.done();
- }
- }
- });
- WorkbenchHelp.setHelp(getContentsAction, IHelpContextIds.GET_FILE_CONTENTS_ACTION);
-
- getRevisionAction = getContextMenuAction(Policy.bind("HistoryView.getRevisionAction"), true /* needs progress */, new IWorkspaceRunnable() { //$NON-NLS-1$
- public void run(IProgressMonitor monitor) throws CoreException {
- ICVSRemoteFile remoteFile = currentSelection.getRemoteFile();
- try {
- if(confirmOverwrite()) {
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(file.getProject());
- CVSTag revisionTag = new CVSTag(remoteFile.getRevision(), CVSTag.VERSION);
-
- if(CVSAction.checkForMixingTags(getSite().getShell(), new IResource[] {file}, revisionTag)) {
- provider.update(new IResource[] {file}, new Command.LocalOption[] {Update.IGNORE_LOCAL_CHANGES},
- revisionTag, true /*create backups*/, monitor);
- historyTableProvider.setFile(remoteFile);
- tableViewer.refresh();
- }
- }
- } catch (TeamException e) {
- throw new CoreException(e.getStatus());
- }
- }
- });
- WorkbenchHelp.setHelp(getRevisionAction, IHelpContextIds.GET_FILE_REVISION_ACTION);
-
- // Override MoveRemoteTagAction to work for log entries
- final IActionDelegate tagActionDelegate = new MoveRemoteTagAction() {
- protected ICVSResource[] getSelectedCVSResources() {
- ICVSResource[] resources = super.getSelectedCVSResources();
- if (resources == null || resources.length == 0) {
- ArrayList logEntrieFiles = null;
- if (!selection.isEmpty()) {
- logEntrieFiles = new ArrayList();
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof ILogEntry) {
- logEntrieFiles.add(((ILogEntry)next).getRemoteFile());
- continue;
- }
- if (next instanceof IAdaptable) {
- IAdaptable a = (IAdaptable) next;
- Object adapter = a.getAdapter(ICVSResource.class);
- if (adapter instanceof ICVSResource) {
- logEntrieFiles.add(((ILogEntry)adapter).getRemoteFile());
- continue;
- }
- }
- }
- }
- if (logEntrieFiles != null && !logEntrieFiles.isEmpty()) {
- return (ICVSResource[])logEntrieFiles.toArray(new ICVSResource[logEntrieFiles.size()]);
- }
- }
- return resources;
- }
- };
- tagWithExistingAction = getContextMenuAction(Policy.bind("HistoryView.tagWithExistingAction"), false /* no progress */, new IWorkspaceRunnable() { //$NON-NLS-1$
- public void run(IProgressMonitor monitor) throws CoreException {
- tagActionDelegate.selectionChanged(tagWithExistingAction, tableViewer.getSelection());
- tagActionDelegate.run(tagWithExistingAction);
- if( ! ((MoveRemoteTagAction)tagActionDelegate).wasCancelled()) {
- refresh();
- }
- }
- });
- WorkbenchHelp.setHelp(getRevisionAction, IHelpContextIds.TAG_WITH_EXISTING_ACTION);
-
- // Toggle text visible action
- final IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- toggleTextAction = new Action(Policy.bind("HistoryView.showComment")) { //$NON-NLS-1$
- public void run() {
- setViewerVisibility();
- store.setValue(ICVSUIConstants.PREF_SHOW_COMMENTS, toggleTextAction.isChecked());
- }
- };
- toggleTextAction.setChecked(store.getBoolean(ICVSUIConstants.PREF_SHOW_COMMENTS));
- WorkbenchHelp.setHelp(toggleTextAction, IHelpContextIds.SHOW_COMMENT_IN_HISTORY_ACTION);
- // Toggle list visible action
- toggleListAction = new Action(Policy.bind("HistoryView.showTags")) { //$NON-NLS-1$
- public void run() {
- setViewerVisibility();
- store.setValue(ICVSUIConstants.PREF_SHOW_TAGS, toggleListAction.isChecked());
- }
- };
- toggleListAction.setChecked(store.getBoolean(ICVSUIConstants.PREF_SHOW_TAGS));
- WorkbenchHelp.setHelp(toggleListAction, IHelpContextIds.SHOW_TAGS_IN_HISTORY_ACTION);
-
- // Contribute actions to popup menu
- MenuManager menuMgr = new MenuManager();
- Menu menu = menuMgr.createContextMenu(tableViewer.getTable());
- menuMgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager menuMgr) {
- fillTableMenu(menuMgr);
- }
- });
- menuMgr.setRemoveAllWhenShown(true);
- tableViewer.getTable().setMenu(menu);
- getSite().registerContextMenu(menuMgr, tableViewer);
-
- // Contribute toggle text visible to the toolbar drop-down
- IActionBars actionBars = getViewSite().getActionBars();
- IMenuManager actionBarsMenu = actionBars.getMenuManager();
- actionBarsMenu.add(toggleTextAction);
- actionBarsMenu.add(toggleListAction);
-
- // Create the local tool bar
- IToolBarManager tbm = getViewSite().getActionBars().getToolBarManager();
- tbm.add(refreshAction);
- tbm.add(linkWithEditorAction);
- tbm.update(false);
-
- // Create actions for the text editor
- copyAction = new TextViewerAction(textViewer, ITextOperationTarget.COPY);
- copyAction.setText(Policy.bind("HistoryView.copy")); //$NON-NLS-1$
- actionBars.setGlobalActionHandler(ITextEditorActionConstants.COPY, copyAction);
-
- selectAllAction = new TextViewerAction(textViewer, ITextOperationTarget.SELECT_ALL);
- selectAllAction.setText(Policy.bind("HistoryView.selectAll")); //$NON-NLS-1$
- actionBars.setGlobalActionHandler(ITextEditorActionConstants.SELECT_ALL, selectAllAction);
-
- actionBars.updateActionBars();
-
- menuMgr = new MenuManager();
- menuMgr.setRemoveAllWhenShown(true);
- menuMgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager menuMgr) {
- fillTextMenu(menuMgr);
- }
- });
- StyledText text = textViewer.getTextWidget();
- menu = menuMgr.createContextMenu(text);
- text.setMenu(menu);
- }
- private void setViewerVisibility() {
- boolean showText = toggleTextAction.isChecked();
- boolean showList = toggleListAction.isChecked();
- if (showText && showList) {
- sashForm.setMaximizedControl(null);
- innerSashForm.setMaximizedControl(null);
- } else if (showText) {
- sashForm.setMaximizedControl(null);
- innerSashForm.setMaximizedControl(textViewer.getTextWidget());
- } else if (showList) {
- sashForm.setMaximizedControl(null);
- innerSashForm.setMaximizedControl(tagViewer.getTable());
- } else {
- sashForm.setMaximizedControl(tableViewer.getControl());
- }
- }
- /*
- * Method declared on IWorkbenchPart
- */
- public void createPartControl(Composite parent) {
- settings = CVSUIPlugin.getPlugin().getPreferenceStore();
- this.linkingEnabled = settings.getBoolean(ICVSUIConstants.PREF_HISTORY_VIEW_EDITOR_LINKING);
-
- initializeImages();
-
- sashForm = new SashForm(parent, SWT.VERTICAL);
- sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- tableViewer = createTable(sashForm);
- innerSashForm = new SashForm(sashForm, SWT.HORIZONTAL);
- tagViewer = createTagTable(innerSashForm);
- textViewer = createText(innerSashForm);
- sashForm.setWeights(new int[] { 70, 30 });
- innerSashForm.setWeights(new int[] { 50, 50 });
-
- contributeActions();
-
- setViewerVisibility();
-
- // set F1 help
- WorkbenchHelp.setHelp(sashForm, IHelpContextIds.RESOURCE_HISTORY_VIEW);
- initDragAndDrop();
-
- // Create the busy cursor with no control to start with (createViewer will set it)
- jobBusyCursor = new JobBusyCursor(parent, HISTORY_VIEW_JOB_TYPE);
-
- // add listener for editor page activation - this is to support editor linking
- getSite().getPage().addPartListener(partListener);
- getSite().getPage().addPartListener(partListener2);
- }
- private void initializeImages() {
- CVSUIPlugin plugin = CVSUIPlugin.getPlugin();
- versionImage = plugin.getImageDescriptor(ICVSUIConstants.IMG_PROJECT_VERSION).createImage();
- branchImage = plugin.getImageDescriptor(ICVSUIConstants.IMG_TAG).createImage();
- }
- /**
- * Creates the group that displays lists of the available repositories
- * and team streams.
- *
- * @param the parent composite to contain the group
- * @return the group control
- */
- protected TableViewer createTable(Composite parent) {
-
- historyTableProvider = new HistoryTableProvider();
- TableViewer viewer = historyTableProvider.createTable(parent);
-
- viewer.setContentProvider(new IStructuredContentProvider() {
- public Object[] getElements(Object inputElement) {
- // Short-circuit to optimize
- if (entries != null) return entries;
-
- if (!(inputElement instanceof ICVSRemoteFile)) return null;
- final ICVSRemoteFile remoteFile = (ICVSRemoteFile)inputElement;
- final Object[][] result = new Object[1][];
- if(fetchLogEntriesJob == null) {
- fetchLogEntriesJob = new FetchLogEntriesJob();
- }
- if(fetchLogEntriesJob.getState() != Job.NONE) {
- fetchLogEntriesJob.cancel();
- try {
- fetchLogEntriesJob.join();
- } catch (InterruptedException e) {
- CVSUIPlugin.log(new CVSException(Policy.bind("HistoryView.errorFetchingEntries", remoteFile.getName()), e)); //$NON-NLS-1$
- }
- }
- fetchLogEntriesJob.setRemoteFile(remoteFile);
- JobStatusHandler.schedule(fetchLogEntriesJob, HISTORY_VIEW_JOB_TYPE);
- return new Object[0];
- }
- public void dispose() {
- }
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- entries = null;
- }
- });
-
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (selection == null || !(selection instanceof IStructuredSelection)) {
- textViewer.setDocument(new Document("")); //$NON-NLS-1$
- tagViewer.setInput(null);
- return;
- }
- IStructuredSelection ss = (IStructuredSelection)selection;
- if (ss.size() != 1) {
- textViewer.setDocument(new Document("")); //$NON-NLS-1$
- tagViewer.setInput(null);
- return;
- }
- ILogEntry entry = (ILogEntry)ss.getFirstElement();
- textViewer.setDocument(new Document(entry.getComment()));
- tagViewer.setInput(entry.getTags());
- }
- });
-
- return viewer;
- }
-
- private TableViewer createTagTable(Composite parent) {
- Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
- TableViewer result = new TableViewer(table);
- TableLayout layout = new TableLayout();
- layout.addColumnData(new ColumnWeightData(100));
- table.setLayout(layout);
- result.setContentProvider(new SimpleContentProvider() {
- public Object[] getElements(Object inputElement) {
- if (inputElement == null) return new Object[0];
- CVSTag[] tags = (CVSTag[])inputElement;
- return tags;
- }
- });
- result.setLabelProvider(new LabelProvider() {
- public Image getImage(Object element) {
- if (element == null) return null;
- CVSTag tag = (CVSTag)element;
- switch (tag.getType()) {
- case CVSTag.BRANCH:
- case CVSTag.HEAD:
- return branchImage;
- case CVSTag.VERSION:
- return versionImage;
- }
- return null;
- }
- public String getText(Object element) {
- return ((CVSTag)element).getName();
- }
- });
- result.setSorter(new ViewerSorter() {
- public int compare(Viewer viewer, Object e1, Object e2) {
- if (!(e1 instanceof CVSTag) || !(e2 instanceof CVSTag)) return super.compare(viewer, e1, e2);
- CVSTag tag1 = (CVSTag)e1;
- CVSTag tag2 = (CVSTag)e2;
- int type1 = tag1.getType();
- int type2 = tag2.getType();
- if (type1 != type2) {
- return type2 - type1;
- }
- return super.compare(viewer, tag1, tag2);
- }
- });
- return result;
- }
- protected TextViewer createText(Composite parent) {
- TextViewer result = new TextViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.READ_ONLY);
- result.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- copyAction.update();
- }
- });
- return result;
- }
- public void dispose() {
- shutdown = true;
- if (branchImage != null) {
- branchImage.dispose();
- branchImage = null;
- }
- if (versionImage != null) {
- versionImage.dispose();
- versionImage = null;
- }
-
- if(fetchLogEntriesJob != null) {
- if(fetchLogEntriesJob.getState() != Job.NONE) {
- fetchLogEntriesJob.cancel();
- try {
- fetchLogEntriesJob.join();
- } catch (InterruptedException e) {
- CVSUIPlugin.log(new CVSException(Policy.bind("HistoryView.errorFetchingEntries", ""), e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- getSite().getPage().removePartListener(partListener);
- getSite().getPage().removePartListener(partListener2);
- jobBusyCursor.dispose();
- }
- /**
- * Returns the table viewer contained in this view.
- */
- protected TableViewer getViewer() {
- return tableViewer;
- }
- /**
- * Adds drag and drop support to the history view.
- */
- void initDragAndDrop() {
- int ops = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
- Transfer[] transfers = new Transfer[] {ResourceTransfer.getInstance()};
- tableViewer.addDropSupport(ops, transfers, new HistoryDropAdapter(tableViewer, this));
- }
- private void fillTableMenu(IMenuManager manager) {
- // file actions go first (view file)
- manager.add(new Separator(IWorkbenchActionConstants.GROUP_FILE));
- if (file != null) {
- // Add the "Add to Workspace" action if 1 revision is selected.
- ISelection sel = tableViewer.getSelection();
- if (!sel.isEmpty()) {
- if (sel instanceof IStructuredSelection) {
- if (((IStructuredSelection)sel).size() == 1) {
- manager.add(getContentsAction);
- manager.add(getRevisionAction);
- manager.add(new Separator());
- manager.add(tagWithExistingAction);
- }
- }
- }
- }
- manager.add(new Separator("additions")); //$NON-NLS-1$
- manager.add(refreshAction);
- manager.add(new Separator("additions-end")); //$NON-NLS-1$
- }
- private void fillTextMenu(IMenuManager manager) {
- manager.add(copyAction);
- manager.add(selectAllAction);
- }
- /**
- * Makes the history view visible in the active perspective. If there
- * isn't a history view registered <code>null</code> is returned.
- * Otherwise the opened view part is returned.
- */
- public static HistoryView openInActivePerspective() {
- try {
- return (HistoryView)CVSUIPlugin.getActivePage().showView(VIEW_ID);
- } catch (PartInitException pe) {
- return null;
- }
- }
- /** (Non-javadoc)
- * Method declared on IWorkbenchPart
- */
- public void setFocus() {
- if (tableViewer != null) {
- Table control = tableViewer.getTable();
- if (control != null && !control.isDisposed()) {
- control.setFocus();
- }
- }
- }
-
- /**
- * Shows the history for the given IResource in the view.
- *
- * Only files are supported for now.
- */
- public void showHistory(IResource resource) {
- if (resource instanceof IFile) {
- IFile newfile = (IFile)resource;
- if(this.file != null && newfile.equals(this.file)) {
- return;
- }
- this.file = newfile;
- RepositoryProvider teamProvider = RepositoryProvider.getProvider(file.getProject(), CVSProviderPlugin.getTypeId());
- if (teamProvider != null) {
- try {
- // for a file this will return the base
- ICVSRemoteFile remoteFile = (ICVSRemoteFile)CVSWorkspaceRoot.getRemoteResourceFor(file);
- if(remoteFile != null) {
- historyTableProvider.setFile(remoteFile);
- // input is set asynchronously so we can't assume that the view
- // has been populated until the job that queries for the history
- // has completed.
- tableViewer.setInput(remoteFile);
- setTitle(Policy.bind("HistoryView.titleWithArgument", remoteFile.getName())); //$NON-NLS-1$
- }
- } catch (TeamException e) {
- CVSUIPlugin.openError(getViewSite().getShell(), null, null, e);
- }
- }
- } else {
- this.file = null;
- tableViewer.setInput(null);
- setTitle(Policy.bind("HistoryView.title")); //$NON-NLS-1$
- }
- }
-
- /**
- * An editor has been activated. Fetch the history if it is shared with CVS and the history view
- * is visible in the current page.
- *
- * @param editor the active editor
- * @since 3.0
- */
- protected void editorActivated(IEditorPart editor) {
- // Only fetch contents if the view is shown in the current page.
- if (editor == null || !isLinkingEnabled() || !checkIfPageIsVisible()) {
- return;
- }
- IEditorInput input = editor.getEditorInput();
- // Handle compare editors opened from the Synchronize View
- if (input instanceof SyncInfoCompareInput) {
- SyncInfoCompareInput syncInput = (SyncInfoCompareInput) input;
- SyncInfo info = syncInput.getSyncInfo();
- if(info instanceof CVSSyncInfo && info.getLocal().getType() == IResource.FILE) {
- ICVSRemoteFile remote = (ICVSRemoteFile)info.getRemote();
- ICVSRemoteFile base = (ICVSRemoteFile)info.getBase();
- if(remote != null) {
- showHistory(remote);
- } else if(base != null) {
- showHistory(base);
- }
- }
- // Handle editors opened on remote files
- } else if(input instanceof RemoteFileEditorInput) {
- ICVSRemoteFile remote = ((RemoteFileEditorInput)input).getCVSRemoteFile();
- if(remote != null) {
- showHistory(remote);
- }
- // Handle regular file editors
- } else if (input instanceof IFileEditorInput) {
- IFileEditorInput fileInput = (IFileEditorInput) input;
- IFile file = fileInput.getFile();
- showHistory(file);
- }
- }
-
- private boolean checkIfPageIsVisible() {
- return getViewSite().getPage().isPartVisible(this);
- }
- /**
- * Shows the history for the given ICVSRemoteFile in the view.
- */
- public void showHistory(ICVSRemoteFile remoteFile) {
- try {
- if (remoteFile == null) {
- tableViewer.setInput(null);
- setTitle(Policy.bind("HistoryView.title")); //$NON-NLS-1$
- return;
- }
- ICVSFile existingFile = historyTableProvider.getICVSFile();
- if(existingFile != null && existingFile.equals(remoteFile)) return;
- this.file = null;
- historyTableProvider.setFile(remoteFile);
- tableViewer.setInput(remoteFile);
- setTitle(Policy.bind("HistoryView.titleWithArgument", remoteFile.getName())); //$NON-NLS-1$
- } catch (TeamException e) {
- CVSUIPlugin.openError(getViewSite().getShell(), null, null, e);
- }
- }
-
- private Action getContextMenuAction(String title, final boolean needsProgressDialog, final IWorkspaceRunnable action) {
- return new Action(title) {
- public void run() {
- try {
- if (file == null) return;
- ISelection selection = tableViewer.getSelection();
- if (!(selection instanceof IStructuredSelection)) return;
- IStructuredSelection ss = (IStructuredSelection)selection;
- Object o = ss.getFirstElement();
- currentSelection = (ILogEntry)o;
- if(needsProgressDialog) {
- new ProgressMonitorDialog(getViewSite().getShell()).run(false, true, new WorkspaceModifyOperation() {
- protected void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- action.run(monitor);
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } else {
- try {
- action.run(null);
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- }
- }
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getViewSite().getShell(), null, null, e, CVSUIPlugin.LOG_NONTEAM_EXCEPTIONS);
- } catch (InterruptedException e) {
- // Do nothing
- }
- }
-
- public boolean isEnabled() {
- ISelection selection = tableViewer.getSelection();
- if (!(selection instanceof IStructuredSelection)) return false;
- IStructuredSelection ss = (IStructuredSelection)selection;
- if(ss.size() != 1) return false;
- return true;
- }
- };
- }
-
- private boolean confirmOverwrite() {
- if (file!=null && file.exists()) {
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(file);
- try {
- if(cvsFile.isModified(null)) {
- String title = Policy.bind("HistoryView.overwriteTitle"); //$NON-NLS-1$
- String msg = Policy.bind("HistoryView.overwriteMsg"); //$NON-NLS-1$
- final MessageDialog dialog = new MessageDialog(getViewSite().getShell(), title, null, msg, MessageDialog.QUESTION, new String[] { IDialogConstants.YES_LABEL, IDialogConstants.CANCEL_LABEL }, 0);
- final int[] result = new int[1];
- getViewSite().getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- result[0] = dialog.open();
- }});
- if (result[0] != 0) {
- // cancel
- return false;
- }
- }
- } catch(CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
- return true;
- }
-
- /*
- * Refresh the view by refetching the log entries for the remote file
- */
- private void refresh() {
- entries = null;
- BusyIndicator.showWhile(tableViewer.getTable().getDisplay(), new Runnable() {
- public void run() {
- // if a local file was fed to the history view then we will have to refetch the handle
- // to properly display the current revision marker.
- if(file != null) {
- ICVSRemoteFile remoteFile;
- try {
- remoteFile = (ICVSRemoteFile) CVSWorkspaceRoot.getRemoteResourceFor(file);
- historyTableProvider.setFile(remoteFile);
- } catch (CVSException e) {
- // use previously fetched remote file, but log error
- CVSUIPlugin.log(e);
- }
- }
- tableViewer.refresh();
- }
- });
- }
-
- /**
- * Select the revision in the receiver.
- */
- public void selectRevision(String revision) {
- if (entries == null) {
- return;
- }
-
- ILogEntry entry = null;
- for (int i = 0; i < entries.length; i++) {
- if (entries[i].getRevision().equals(revision)) {
- entry = entries[i];
- break;
- }
- }
-
- if (entry != null) {
- IStructuredSelection selection = new StructuredSelection(entry);
- tableViewer.setSelection(selection, true);
- }
- }
-
- /**
- * Enabled linking to the active editor
- * @since 3.0
- */
- public void setLinkingEnabled(boolean enabled) {
- this.linkingEnabled = enabled;
-
- // remember the last setting in the dialog settings
- settings.setValue(ICVSUIConstants.PREF_HISTORY_VIEW_EDITOR_LINKING, enabled);
-
- // if turning linking on, update the selection to correspond to the active editor
- if (enabled) {
- editorActivated(getSite().getPage().getActiveEditor());
- }
- }
-
- /**
- * Returns if linking to the ative editor is enabled or disabled.
- * @return boolean indicating state of editor linking.
- */
- private boolean isLinkingEnabled() {
- return linkingEnabled;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ICVSUIConstants.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ICVSUIConstants.java
deleted file mode 100644
index 6fcad9f96..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ICVSUIConstants.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.internal.ccvs.ui;
-
-public interface ICVSUIConstants {
- public final String PREFIX = CVSUIPlugin.ID + "."; //$NON-NLS-1$
-
- // image path
- public final String ICON_PATH = "icons/full/"; //$NON-NLS-1$
-
- // images
- public final String IMG_CVS_CONSOLE = "cview16/console_view.gif"; //$NON-NLS-1$
-
- // overlays
- public final String IMG_MERGEABLE_CONFLICT = "ovr16/confauto_ov.gif"; //$NON-NLS-1$
- public final String IMG_QUESTIONABLE = "ovr16/question_ov.gif"; //$NON-NLS-1$
- public final String IMG_MERGED = "ovr16/merged_ov.gif"; //$NON-NLS-1$
- public final String IMG_EDITED = "ovr16/edited_ov.gif"; //$NON-NLS-1$
- public final String IMG_NO_REMOTEDIR = "ovr16/no_remotedir_ov.gif"; //$NON-NLS-1$
-
- // objects
- public final String IMG_REPOSITORY = "obj16/repository_rep.gif"; //$NON-NLS-1$
- public final String IMG_TAG = "obj16/tag.gif"; //$NON-NLS-1$
- public final String IMG_BRANCHES_CATEGORY = "obj16/branches_rep.gif"; //$NON-NLS-1$
- public final String IMG_VERSIONS_CATEGORY = "obj16/versions_rep.gif"; //$NON-NLS-1$
- public final String IMG_MODULE = "obj16/module_rep.gif"; //$NON-NLS-1$
- public final String IMG_PROJECT_VERSION = "obj16/prjversions_rep.gif"; //$NON-NLS-1$
-
- // toolbar
- public final String IMG_REFRESH = "clcl16/refresh.gif"; //$NON-NLS-1$
- public final String IMG_CLEAR = "clcl16/clear_co.gif"; //$NON-NLS-1$
- public final String IMG_COLLAPSE_ALL = "clcl16/collapseall.gif"; //$NON-NLS-1$
- public final String IMG_LINK_WITH_EDITOR = "clcl16/synced.gif"; //$NON-NLS-1$
-
- // toolbar (disabled)
- public final String IMG_REFRESH_DISABLED = "dlcl16/refresh.gif"; //$NON-NLS-1$
- public final String IMG_CLEAR_DISABLED = "dlcl16/clear_co.gif"; //$NON-NLS-1$
-
- // toolbar (enabled)
- public final String IMG_REFRESH_ENABLED = "elcl16/refresh.gif"; //$NON-NLS-1$
- public final String IMG_CLEAR_ENABLED = "elcl16/clear_co.gif"; //$NON-NLS-1$
- public final String IMG_COLLAPSE_ALL_ENABLED = "elcl16/collapseall.gif"; //$NON-NLS-1$
- public final String IMG_LINK_WITH_EDITOR_ENABLED = "elcl16/synced.gif"; //$NON-NLS-1$
-
- // wizards
- public final String IMG_NEWLOCATION = "wizards/newlocation_wiz.gif"; //$NON-NLS-1$
- public final String IMG_CVSLOGO = "wizards/newconnect_wiz.gif"; //$NON-NLS-1$
-
- // preferences
- public final String PREF_SHOW_COMMENTS = "pref_show_comments"; //$NON-NLS-1$
- public final String PREF_SHOW_TAGS = "pref_show_tags"; //$NON-NLS-1$
- public final String PREF_HISTORY_VIEW_EDITOR_LINKING = "pref_history_view_linking"; //$NON-NLS-1$
- public final String PREF_PRUNE_EMPTY_DIRECTORIES = "pref_prune_empty_directories"; //$NON-NLS-1$
- public final String PREF_TIMEOUT = "pref_timeout"; //$NON-NLS-1$
- public final String PREF_QUIETNESS = "pref_quietness"; //$NON-NLS-1$
- public final String PREF_CVS_RSH = "pref_cvs_rsh"; //$NON-NLS-1$
- public final String PREF_CVS_RSH_PARAMETERS = "pref_cvs_rsh_parameters"; //$NON-NLS-1$
- public final String PREF_CVS_SERVER = "pref_cvs_server"; //$NON-NLS-1$
- public final String PREF_CONSIDER_CONTENTS = "pref_consider_contents"; //$NON-NLS-1$
- public final String PREF_REPLACE_UNMANAGED = "pref_replace_unmanaged"; //$NON-NLS-1$
- public final String PREF_COMPRESSION_LEVEL = "pref_compression_level"; //$NON-NLS-1$
- public final String PREF_TEXT_KSUBST = "pref_text_ksubst"; //$NON-NLS-1$
- public final String PREF_PROMPT_ON_MIXED_TAGS = "pref_prompt_on_mixed_tags"; //$NON-NLS-1$
- public final String PREF_PROMPT_ON_SAVING_IN_SYNC = "pref_prompt_on_saving_in_sync"; //$NON-NLS-1$
- public final String PREF_SAVE_DIRTY_EDITORS = "pref_save_dirty_editors"; //$NON-NLS-1$
- public final String PREF_PROMPT_ON_CHANGE_GRANULARITY = "pref_prompt_on_change_granularity"; //$NON-NLS-1$
- public final String PREF_REPOSITORIES_ARE_BINARY = "pref_repositories_are_binary"; //$NON-NLS-1$
- public final String PREF_DETERMINE_SERVER_VERSION = "pref_determine_server_version"; //$NON-NLS-1$
- public final String PREF_CONFIRM_MOVE_TAG = "pref_confirm_move_tag"; //$NON-NLS-1$
- public final String PREF_DEBUG_PROTOCOL = "pref_debug_protocol"; //$NON-NLS-1$
-
- // console preferences
- public final String PREF_CONSOLE_COMMAND_COLOR = "pref_console_command_color"; //$NON-NLS-1$
- public final String PREF_CONSOLE_MESSAGE_COLOR = "pref_console_message_color"; //$NON-NLS-1$
- public final String PREF_CONSOLE_ERROR_COLOR = "pref_console_error_color"; //$NON-NLS-1$
- public final String PREF_CONSOLE_FONT = "pref_console_font"; //$NON-NLS-1$
-
- // decorator preferences
- public final String PREF_FILETEXT_DECORATION = "pref_filetext_decoration"; //$NON-NLS-1$
- public final String PREF_FOLDERTEXT_DECORATION = "pref_foldertext_decoration"; //$NON-NLS-1$
- public final String PREF_PROJECTTEXT_DECORATION = "pref_projecttext_decoration"; //$NON-NLS-1$
-
- public final String PREF_SHOW_DIRTY_DECORATION = "pref_show_overlaydirty"; //$NON-NLS-1$
- public final String PREF_SHOW_ADDED_DECORATION = "pref_show_added"; //$NON-NLS-1$
- public final String PREF_SHOW_HASREMOTE_DECORATION = "pref_show_hasremote"; //$NON-NLS-1$
- public final String PREF_SHOW_NEWRESOURCE_DECORATION = "pref_show_newresource"; //$NON-NLS-1$
-
- public final String PREF_DIRTY_FLAG = "pref_dirty_flag"; //$NON-NLS-1$
- public final String PREF_ADDED_FLAG = "pref_added_flag"; //$NON-NLS-1$
-
- public final String PREF_CALCULATE_DIRTY = "pref_calculate_dirty"; //$NON-NLS-1$
-
- // watch/edit preferences
- public final String PREF_CHECKOUT_READ_ONLY = "pref_checkout_read_only"; //$NON-NLS-1$
- public final String PREF_EDIT_ACTION = "pref_edit_action"; //$NON-NLS-1$
- public final String PREF_EDIT_PROMPT_EDIT = "edit"; //$NON-NLS-1$
- public final String PREF_EDIT_PROMPT_HIGHJACK = "highjack"; //$NON-NLS-1$
- public final String PREF_EDIT_PROMPT = "pref_edit_prompt"; //$NON-NLS-1$
- public final String PREF_EDIT_PROMPT_NEVER = "never"; //$NON-NLS-1$
- public final String PREF_EDIT_PROMPT_ALWAYS = "always"; //$NON-NLS-1$
- public final String PREF_EDIT_PROMPT_IF_EDITORS = "only"; //$NON-NLS-1$
-
- // Repositories view preferences
- public final String PREF_GROUP_VERSIONS_BY_PROJECT = "pref_group_versions_by_project"; //$NON-NLS-1$
-
- // Wizard banners
- public final String IMG_WIZBAN_SHARE = "wizban/newconnect_wizban.gif"; //$NON-NLS-1$
- public final String IMG_WIZBAN_MERGE = "wizban/mergestream_wizban.gif"; //$NON-NLS-1$
- public final String IMG_WIZBAN_DIFF = "wizban/createpatch_wizban.gif"; //$NON-NLS-1$
- public final String IMG_WIZBAN_KEYWORD = "wizban/keywordsub_wizban.gif"; //$NON-NLS-1$
- public final String IMG_WIZBAN_NEW_LOCATION = "wizban/newlocation_wizban.gif"; //$NON-NLS-1$
- // XXX checkout is same as ne connect. If it changes, it must be initialized
- public final String IMG_WIZBAN_CHECKOUT = "wizban/newconnect_wizban.gif"; //$NON-NLS-1$
-
- // Properties
- public final String PROP_NAME = "cvs.name"; //$NON-NLS-1$
- public final String PROP_REVISION = "cvs.revision"; //$NON-NLS-1$
- public final String PROP_AUTHOR = "cvs.author"; //$NON-NLS-1$
- public final String PROP_COMMENT = "cvs.comment"; //$NON-NLS-1$
- public final String PROP_DATE = "cvs.date"; //$NON-NLS-1$
- public final String PROP_DIRTY = "cvs.dirty"; //$NON-NLS-1$
- public final String PROP_MODIFIED = "cvs.modified"; //$NON-NLS-1$
- public final String PROP_KEYWORD = "cvs.date"; //$NON-NLS-1$
- public final String PROP_TAG = "cvs.tag"; //$NON-NLS-1$
- public final String PROP_PERMISSIONS = "cvs.permissions"; //$NON-NLS-1$
- public final String PROP_HOST = "cvs.host"; //$NON-NLS-1$
- public final String PROP_USER = "cvs.user"; //$NON-NLS-1$
- public final String PROP_METHOD = "cvs.method"; //$NON-NLS-1$
- public final String PROP_PORT = "cvs.port"; //$NON-NLS-1$
- public final String PROP_ROOT = "cvs.root"; //$NON-NLS-1$
-
- // preference options
- public final int OPTION_NEVER = 1;
- public final int OPTION_PROMPT = 2;
- public final int OPTION_AUTOMATIC = 3;
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IHelpContextIds.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IHelpContextIds.java
deleted file mode 100644
index 6fbaab5b0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IHelpContextIds.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-/**
- * Here's how to reference the help context in code:
- *
- * WorkbenchHelp.setHelp(actionOrControl, IHelpContextIds.NAME_DEFIED_BELOW);
- */
-public interface IHelpContextIds {
-
- public static final String PREFIX = CVSUIPlugin.ID + "."; //$NON-NLS-1$
-
- // Dialogs
- public static final String TAG_CONFIGURATION_OVERVIEW = PREFIX + "tag_configuration_overview"; //$NON-NLS-1$
- public static final String TAG_CONFIGURATION_REFRESHLIST = PREFIX + "tag_configuration_refreshlist"; //$NON-NLS-1$
- public static final String TAG_CONFIGURATION_REFRESHACTION = PREFIX + "tag_configuration_refreshaction"; //$NON-NLS-1$
- public static final String USER_VALIDATION_DIALOG = PREFIX + "user_validation_dialog_context"; //$NON-NLS-1$
- public static final String RELEASE_COMMENT_DIALOG = PREFIX + "release_comment_dialog_context"; //$NON-NLS-1$
- public static final String BRANCH_DIALOG = PREFIX + "branch_dialog_context"; //$NON-NLS-1$
- public static final String ADD_TO_VERSION_CONTROL_DIALOG = PREFIX + "add_to_version_control_dialog_context"; //$NON-NLS-1$
- public static final String SYNCHRONIZE_PROJECTS_DIALOG = PREFIX + "sychronize_projects_dialog_context"; //$NON-NLS-1$
- public static final String EDITORS_DIALOG = PREFIX + "editors_dialog_context"; //$NON-NLS-1$
- public static final String HISTORY_FILTER_DIALOG = PREFIX + "history_filter_dialog_context"; //$NON-NLS-1$
-
- // Different uses of the TagSelectionDialog
- public static final String REPLACE_TAG_SELECTION_DIALOG = PREFIX + "replace_tag_selection_dialog_context"; //$NON-NLS-1$
- public static final String COMPARE_TAG_SELECTION_DIALOG = PREFIX + "compare_tag_selection_dialog_context"; //$NON-NLS-1$
- public static final String TAG_REMOTE_WITH_EXISTING_DIALOG = PREFIX + "tag_remote_with_existing_dialog_context"; //$NON-NLS-1$
- public static final String SHARE_WITH_EXISTING_TAG_SELETION_DIALOG = PREFIX + "share_with_existing_tag_selection_dialog_context"; //$NON-NLS-1$
-
- // Different uses of the TagAsVersionDialog
- public static final String TAG_AS_VERSION_DIALOG = PREFIX + "tag_as_version_dialog_context"; //$NON-NLS-1$
-
- // Wizard Pages
- public static final String SHARING_AUTOCONNECT_PAGE = PREFIX + "sharing_autoconnect_page_context"; //$NON-NLS-1$
- public static final String SHARING_SELECT_REPOSITORY_PAGE = PREFIX + "sharing_select_repository_page_context"; //$NON-NLS-1$
- public static final String SHARING_NEW_REPOSITORY_PAGE = PREFIX + "sharing_new_repository_page_context"; //$NON-NLS-1$
- public static final String SHARING_MODULE_PAGE = PREFIX + "sharing_module_page_context"; //$NON-NLS-1$
- public static final String SHARING_FINISH_PAGE = PREFIX + "sharing_finish_page_context"; //$NON-NLS-1$
- public static final String PATCH_SELECTION_PAGE = PREFIX + "patch_selection_page_context"; //$NON-NLS-1$
- public static final String PATCH_OPTIONS_PAGE = PREFIX + "patch_options_page_context"; //$NON-NLS-1$
- public static final String KEYWORD_SUBSTITUTION_SELECTION_PAGE = PREFIX + "keyword_substituton_selection_page_context"; //$NON-NLS-1$
- public static final String KEYWORD_SUBSTITUTION_SUMMARY_PAGE = PREFIX + "keyword_substituton_summary_page_context"; //$NON-NLS-1$
- public static final String KEYWORD_SUBSTITUTION_SHARED_PAGE = PREFIX + "keyword_substituton_shared_page_context"; //$NON-NLS-1$
- public static final String KEYWORD_SUBSTITUTION_CHANGED_PAGE = PREFIX + "keyword_substituton_changed_page_context"; //$NON-NLS-1$
- public static final String KEYWORD_SUBSTITUTION_COMMIT_COMMENT_PAGE = PREFIX + "keyword_substituton_commit_comment_page_context"; //$NON-NLS-1$
- public static final String MERGE_START_PAGE = PREFIX + "merge_start_page_context"; //$NON-NLS-1$
- public static final String MERGE_END_PAGE = PREFIX + "merge_end_page_context"; //$NON-NLS-1$
- public static final String CHECKOUT_INTO_RESOURCE_SELECTION_PAGE = PREFIX + "checkout_into_resource_selection_page_context"; //$NON-NLS-1$
- public static final String RESTORE_FROM_REPOSITORY_FILE_SELECTION_PAGE = PREFIX + "restore_from_repository_file_selection_page_context"; //$NON-NLS-1$
- public static final String WORKING_SET_FOLDER_SELECTION_PAGE = PREFIX + "working_set_folder_selection_page_context"; //$NON-NLS-1$
- public static final String REFRESH_REMOTE_PROJECT_SELECTION_PAGE = PREFIX + "refresh_remote_project_selection_page_context"; //$NON-NLS-1$
-
- // Preference Pages
- public static final String PREF_PRUNE = PREFIX + "prune_empty_directories_pref"; //$NON-NLS-1$
- public static final String PREF_QUIET = PREFIX + "quietness_level_pref"; //$NON-NLS-1$
- public static final String PREF_COMPRESSION = PREFIX + "compression_level_pref"; //$NON-NLS-1$
- public static final String PREF_KEYWORDMODE = PREFIX + "default_keywordmode_pref"; //$NON-NLS-1$
- public static final String PREF_COMMS_TIMEOUT = PREFIX + "comms_timeout_pref"; //$NON-NLS-1$
- public static final String PREF_CONSIDER_CONTENT = PREFIX + "consider_content_pref"; //$NON-NLS-1$
- public static final String PREF_REPLACE_DELETE_UNMANAGED = PREFIX + "replace_deletion_of_unmanaged_pref"; //$NON-NLS-1$
- public static final String PREF_SAVE_DIRTY_EDITORS = PREFIX + "save_dirty_editors_pref"; //$NON-NLS-1$
- public static final String PREF_TREAT_NEW_FILE_AS_BINARY = PREFIX + "treat_new_files_as_binary_pref"; //$NON-NLS-1$
- public static final String PREF_DETERMINE_SERVER_VERSION = PREFIX + "determine_server_version"; //$NON-NLS-1$
- public static final String PREF_CONFIRM_MOVE_TAG = PREFIX + "confirm_move_tag"; //$NON-NLS-1$
-
- public static final String CONSOLE_PREFERENCE_PAGE = PREFIX + "console_preference_page_context"; //$NON-NLS-1$
- public static final String EXT_PREFERENCE_PAGE = PREFIX + "ext_preference_page_context"; //$NON-NLS-1$
- public static final String EXT_PREFERENCE_RSH = PREFIX + "ext_preference_rsh_context"; //$NON-NLS-1$
- public static final String EXT_PREFERENCE_PARAM = PREFIX + "ext_preference_param_context"; //$NON-NLS-1$
- public static final String EXT_PREFERENCE_SERVER = PREFIX + "ext_preference_server_context"; //$NON-NLS-1$
- public static final String DECORATORS_PREFERENCE_PAGE = PREFIX + "decorators_preference_page_context"; //$NON-NLS-1$
- public static final String WATCH_EDIT_PREFERENCE_PAGE = PREFIX + "watch_edit_preference_page_context"; //$NON-NLS-1$
-
- // Views
- public static final String CONSOLE_VIEW = PREFIX + "console_view_context"; //$NON-NLS-1$
- public static final String REPOSITORIES_VIEW = PREFIX + "repositories_view_context"; //$NON-NLS-1$
- public static final String RESOURCE_HISTORY_VIEW = PREFIX + "resource_history_view_context"; //$NON-NLS-1$
- public static final String COMPARE_REVISIONS_VIEW = PREFIX + "compare_revision_view_context"; //$NON-NLS-1$
- public static final String CVS_EDITORS_VIEW = PREFIX + "cvs_editors_view_context"; //$NON-NLS-1$
- public static final String ANNOTATE_VIEW = PREFIX + "annotate_view_context"; //$NON-NLS-1$
-
- // Viewers
- public static final String CATCHUP_RELEASE_VIEWER = PREFIX + "catchup_release_viewer_context"; //$NON-NLS-1$
-
- // Add to .cvsignore dialog
- public static final String ADD_TO_CVSIGNORE = PREFIX + "add_to_cvsignore_context"; //$NON-NLS-1$
-
- // Actions
- public static final String GET_ANNOTATE_ACTION = PREFIX + "get_annotate_action_context"; //$NON-NLS-1$
- public static final String GET_FILE_REVISION_ACTION = PREFIX + "get_file_revision_action_context"; //$NON-NLS-1$
- public static final String GET_FILE_CONTENTS_ACTION = PREFIX + "get_file_contents_action_context"; //$NON-NLS-1$
- public static final String TAG_WITH_EXISTING_ACTION = PREFIX + "tag_with_existing_action_context"; //$NON-NLS-1$
- public static final String NEW_REPOSITORY_LOCATION_ACTION = PREFIX + "new_repository_location_action_context"; //$NON-NLS-1$
- public static final String NEW_DEV_ECLIPSE_REPOSITORY_LOCATION_ACTION = PREFIX + "new_dev_eclipse repository_location_action_context"; //$NON-NLS-1$
- public static final String SHOW_COMMENT_IN_HISTORY_ACTION = PREFIX + "show_comment_in_history_action_context"; //$NON-NLS-1$
- public static final String SHOW_TAGS_IN_HISTORY_ACTION = PREFIX + "show_tag_in_history_action_context"; //$NON-NLS-1$
- public static final String SELECT_WORKING_SET_ACTION = PREFIX + "select_working_set_action_context"; //$NON-NLS-1$
- public static final String DESELECT_WORKING_SET_ACTION = PREFIX + "deselect_working_set_action_context"; //$NON-NLS-1$
- public static final String EDIT_WORKING_SET_ACTION = PREFIX + "edit_working_set_action_context"; //$NON-NLS-1$
- public static final String REMOVE_REPOSITORY_LOCATION_ACTION = PREFIX + "remove_root_action_context"; //$NON-NLS-1$
- public static final String SHOW_IN_RESOURCE_HISTORY = PREFIX + "show_in_history_action_context"; //$NON-NLS-1$
- public static final String SELECT_NEW_RESOURCES_ACTION = PREFIX + "select_new_action_context"; //$NON-NLS-1$
- public static final String CONFIRM_MERGE_ACTION = PREFIX + "confirm_merge_action_context"; //$NON-NLS-1$;
- public static final String DISCONNECT_ACTION = PREFIX + "disconnect_action_context"; //$NON-NLS-1$;
-
- // Sync view menu actions
- public static final String SYNC_COMMIT_ACTION = PREFIX + "sync_commit_action_context"; //$NON-NLS-1$
- public static final String SYNC_FORCED_COMMIT_ACTION = PREFIX + "sync_forced_commit_action_context"; //$NON-NLS-1$
- public static final String SYNC_UPDATE_ACTION = PREFIX + "sync_update_action_context"; //$NON-NLS-1$
- public static final String SYNC_FORCED_UPDATE_ACTION = PREFIX + "sync_forced_update_action_context"; //$NON-NLS-1$
- public static final String SYNC_ADD_ACTION = PREFIX + "sync_add_action_context"; //$NON-NLS-1$
- public static final String SYNC_IGNORE_ACTION = PREFIX + "sync_ignore_action_context"; //$NON-NLS-1$
- public static final String MERGE_UPDATE_ACTION = PREFIX + "merge_update_action_context"; //$NON-NLS-1$
- public static final String MERGE_FORCED_UPDATE_ACTION = PREFIX + "merge_forced_update_action_context"; //$NON-NLS-1$
- public static final String MERGE_UPDATE_WITH_JOIN_ACTION = PREFIX + "merge_update_with_joinaction_context"; //$NON-NLS-1$
-
- // properties pages
- public static final String REPOSITORY_LOCATION_PROPERTY_PAGE = PREFIX + "repository_location_property_page_context"; //$NON-NLS-1$
- public static final String PROJECT_PROPERTY_PAGE = PREFIX + "project_property_page_context"; //$NON-NLS-1$
- public static final String FOLDER_PROPERTY_PAGE = PREFIX + "folder_property_page_context"; //$NON-NLS-1$
- public static final String FILE_PROPERTY_PAGE = PREFIX + "file_property_page_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IRepositoryListener.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IRepositoryListener.java
deleted file mode 100644
index e488cdf7f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IRepositoryListener.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.ui;
-
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-
-public interface IRepositoryListener {
- public void repositoryAdded(ICVSRepositoryLocation root);
- public void repositoryRemoved(ICVSRepositoryLocation root);
- public void repositoriesChanged(ICVSRepositoryLocation[] roots);
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IgnoreResourcesDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IgnoreResourcesDialog.java
deleted file mode 100644
index a8d331bab..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/IgnoreResourcesDialog.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.JFaceColors;
-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.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.util.FileNameMatcher;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class IgnoreResourcesDialog extends Dialog {
- // resources that should be ignored
- private IResource[] resources;
-
- // preference keys
- private final String ACTION_KEY = "Action"; //$NON-NLS-1$
- private static final int ADD_NAME_ENTRY = 0;
- private static final int ADD_EXTENSION_ENTRY = 1;
- private static final int ADD_CUSTOM_ENTRY = 2;
-
- // dialogs settings that are persistent between workbench sessions
- private IDialogSettings settings;
-
- // buttons
- private Button addNameEntryButton;
- private Button addExtensionEntryButton;
- private Button addCustomEntryButton;
- private Text customEntryText;
- private Label statusMessageLabel;
-
- private int selectedAction;
- private String customPattern;
-
- // layout controls
- private static final int LABEL_WIDTH_HINT = 400;
- private static final int LABEL_INDENT_WIDTH = 32;
-
- /**
- * Creates a new dialog for ignoring resources.
- * @param shell the parent shell
- * @param resources the array of resources to be ignored
- */
- public IgnoreResourcesDialog(Shell shell, IResource[] resources) {
- super(shell);
- this.resources = resources;
-
- IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings();
- this.settings = workbenchSettings.getSection("IgnoreResourcesDialog");//$NON-NLS-1$
- if (settings == null) {
- this.settings = workbenchSettings.addNewSection("IgnoreResourcesDialog");//$NON-NLS-1$
- }
-
- try {
- selectedAction = settings.getInt(ACTION_KEY);
- } catch (NumberFormatException e) {
- selectedAction = ADD_NAME_ENTRY;
- }
- }
-
- /**
- * Determines the ignore pattern to use for a resource given the selected action.
- *
- * @param resource the resource
- * @return the ignore pattern for the specified resource
- */
- public String getIgnorePatternFor(IResource resource) {
- switch (selectedAction) {
- case ADD_NAME_ENTRY:
- return resource.getName();
- case ADD_EXTENSION_ENTRY: {
- String extension = resource.getFileExtension();
- return (extension == null) ? resource.getName() : "*." + extension; //$NON-NLS-1$
- }
- case ADD_CUSTOM_ENTRY:
- return customPattern;
- }
- throw new IllegalStateException();
- }
-
- /* (non-Javadoc)
- * Method declared on Dialog.
- */
- protected void createButtonsForButtonBar(Composite parent) {
- createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
- createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
- }
-
- /* (non-Javadoc)
- * Method declared on Dialog.
- */
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- if (resources.length == 1) {
- newShell.setText(Policy.bind("IgnoreResourcesDialog.titleSingle", resources[0].getName())); //$NON-NLS-1$
- } else {
- newShell.setText(Policy.bind("IgnoreResourcesDialog.titleMany", Integer.toString(resources.length))); //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * Method declared on Dialog.
- */
- protected Control createContents(Composite parent) {
- Control control = super.createContents(parent);
- updateEnablements();
- return control;
- }
-
- /* (non-Javadoc)
- * Method declared on Dialog.
- */
- protected Control createDialogArea(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- top.setLayout(new GridLayout());
-
- WorkbenchHelp.setHelp(top, IHelpContextIds.ADD_TO_CVSIGNORE);
-
- createIndentedLabel(top, Policy.bind("IgnoreResourcesDialog.prompt"), 0); //$NON-NLS-1$
-
- Listener selectionListener = new Listener() {
- public void handleEvent(Event event) {
- updateEnablements();
- }
- };
- Listener modifyListener = new Listener() {
- public void handleEvent(Event event) {
- validate();
- }
- };
-
- addNameEntryButton = createRadioButton(top, Policy.bind("IgnoreResourcesDialog.addNameEntryButton")); //$NON-NLS-1$
- addNameEntryButton.addListener(SWT.Selection, selectionListener);
- addNameEntryButton.setSelection(selectedAction == ADD_NAME_ENTRY);
- createIndentedLabel(top, Policy.bind("IgnoreResourcesDialog.addNameEntryExample"), LABEL_INDENT_WIDTH); //$NON-NLS-1$
-
- addExtensionEntryButton = createRadioButton(top, Policy.bind("IgnoreResourcesDialog.addExtensionEntryButton")); //$NON-NLS-1$
- addExtensionEntryButton.addListener(SWT.Selection, selectionListener);
- addExtensionEntryButton.setSelection(selectedAction == ADD_EXTENSION_ENTRY);
- createIndentedLabel(top, Policy.bind("IgnoreResourcesDialog.addExtensionEntryExample"), LABEL_INDENT_WIDTH); //$NON-NLS-1$
-
- addCustomEntryButton = createRadioButton(top, Policy.bind("IgnoreResourcesDialog.addCustomEntryButton")); //$NON-NLS-1$
- addCustomEntryButton.addListener(SWT.Selection, selectionListener);
- addCustomEntryButton.setSelection(selectedAction == ADD_CUSTOM_ENTRY);
- createIndentedLabel(top, Policy.bind("IgnoreResourcesDialog.addCustomEntryExample"), LABEL_INDENT_WIDTH); //$NON-NLS-1$
-
- customEntryText = createIndentedText(top, resources[0].getName(), LABEL_INDENT_WIDTH);
- customEntryText.addListener(SWT.Modify, modifyListener);
-
- statusMessageLabel = createIndentedLabel(top, "", 0); //$NON-NLS-1$
- Dialog.applyDialogFont(parent);
- return top;
- }
-
- /* (non-Javadoc)
- * Method declared on Dialog.
- */
- protected void okPressed() {
- settings.put(ACTION_KEY, selectedAction);
- super.okPressed();
- }
-
- private Label createIndentedLabel(Composite parent, String text, int indent) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.FILL_HORIZONTAL);
- data.horizontalIndent = indent;
- label.setLayoutData(data);
- return label;
- }
-
- private Text createIndentedText(Composite parent, String text, int indent) {
- Text textbox = new Text(parent, SWT.BORDER);
- textbox.setText(text);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- data.horizontalIndent = indent;
- textbox.setLayoutData(data);
- return textbox;
- }
-
- private Label createWrappingLabel(Composite parent, String text) {
- Label label = new Label(parent, SWT.WRAP);
- label.setText(text);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.widthHint = LABEL_WIDTH_HINT;
- label.setLayoutData(data);
- return label;
- }
-
- private Button createRadioButton(Composite parent, String text) {
- Button button = new Button(parent, SWT.RADIO);
- button.setText(text);
- button.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.FILL_HORIZONTAL));
- return button;
- }
-
- private void updateEnablements() {
- if (addNameEntryButton.getSelection()) {
- selectedAction = ADD_NAME_ENTRY;
- } else if (addExtensionEntryButton.getSelection()) {
- selectedAction = ADD_EXTENSION_ENTRY;
- } else if (addCustomEntryButton.getSelection()) {
- selectedAction = ADD_CUSTOM_ENTRY;
- }
- customEntryText.setEnabled(selectedAction == ADD_CUSTOM_ENTRY);
- validate();
- }
-
- private void validate() {
- if (selectedAction == ADD_CUSTOM_ENTRY) {
- customPattern = customEntryText.getText();
- if (customPattern.length() == 0) {
- setError(Policy.bind("IgnoreResourcesDialog.patternMustNotBeEmpty")); //$NON-NLS-1$
- return;
- }
- FileNameMatcher matcher = new FileNameMatcher(new String[] { customPattern });
- for (int i = 0; i < resources.length; i++) {
- String name = resources[i].getName();
- if (! matcher.match(name)) {
- setError(Policy.bind("IgnoreResourcesDialog.patternDoesNotMatchFile", name)); //$NON-NLS-1$
- return;
- }
- }
- }
- setError(null);
- }
-
- private void setError(String text) {
- if (text == null) {
- statusMessageLabel.setText(""); //$NON-NLS-1$
- getButton(IDialogConstants.OK_ID).setEnabled(true);
- } else {
- statusMessageLabel.setText(text);
- statusMessageLabel.setForeground(JFaceColors.getErrorText(getShell().getDisplay()));
- getButton(IDialogConstants.OK_ID).setEnabled(false);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/KeyboardInteractiveDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/KeyboardInteractiveDialog.java
deleted file mode 100644
index 00b16a5d8..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/KeyboardInteractiveDialog.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*-mode:java; c-basic-offset:2; -*- */
-/**********************************************************************
-Copyright (c) 2004, Atsuhiko Yamanaka, JCraft,Inc. and others.
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Common Public License v1.0
-which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/cpl-v10.html
-
-Contributors:
- Atsuhiko Yamanaka, JCraft,Inc. - initial API and implementation.
-**********************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-/**
- * A dialog for keyboad-interactive authentication for the ssh2 connection.
- */
-public class KeyboardInteractiveDialog extends Dialog {
- // widgets
- private Text[] texts;
-
- protected String domain;
- protected String destination;
- protected String name;
- protected String instruction;
- protected String lang;
- protected String[] prompt;
- protected boolean[] echo;
- private String message;
- private String[] result;
-
- /**
- * Creates a nwe KeyboardInteractiveDialog.
- *
- * @param parentShell the parent shell
- * @param destication the location
- * @param name the name
- * @param instruction the instruction
- * @param prompt the titles for textfields
- * @param echo '*' should be used or not
- */
- public KeyboardInteractiveDialog(Shell parentShell,
- String location,
- String destination,
- String name,
- String instruction,
- String[] prompt,
- boolean[] echo){
- super(parentShell);
- this.domain=location;
- this.destination=destination;
- this.name=name;
- this.instruction=instruction;
- this.prompt=prompt;
- this.echo=echo;
- this.message=Policy.bind("KeyboradInteractiveDialog.message", destination+(name!=null && name.length()>0 ? ": "+name : "")); //NON-NLS-1$
- }
- /**
- * @see Window#configureShell
- */
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(message);
- }
- /**
- * @see Window#create
- */
- public void create() {
- super.create();
- if(texts.length>0){
- texts[0].setFocus();
- }
- }
- /**
- * @see Dialog#createDialogArea
- */
- protected Control createDialogArea(Composite parent) {
- Composite main=new Composite(parent, SWT.NONE);
- GridLayout layout=new GridLayout();
- layout.numColumns=3;
- main.setLayout(layout);
- main.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- if (message!=null) {
- Label messageLabel=new Label(main, SWT.WRAP);
- messageLabel.setText(message);
- GridData data=new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan=3;
- messageLabel.setLayoutData(data);
- }
- if(domain!=null){
- Label label = new Label(main, SWT.WRAP);
- label.setText(Policy.bind("KeyboardInteractiveDialog.labelRepository", domain));
- GridData data=new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan=3;
- label.setLayoutData(data);
- }
- if (instruction!=null && instruction.length()>0) {
- Label messageLabel=new Label(main, SWT.WRAP);
- messageLabel.setText(instruction);
- GridData data=new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan=3;
- messageLabel.setLayoutData(data);
- }
- createPasswordFields(main);
- return main;
- }
- /**
- * Creates the widgets that represent the entry area.
- *
- * @param parent the parent of the widgets
- */
- protected void createPasswordFields(Composite parent) {
- texts=new Text[prompt.length];
-
- for(int i=0; i<prompt.length; i++){
- new Label(parent, SWT.NONE).setText(prompt[i]);
- texts[i]=new Text(parent, SWT.BORDER);
- GridData data=new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint=convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
- texts[i].setLayoutData(data);
-
- if(!echo[i]){
- texts[i].setEchoChar('*');
- }
- new Label(parent, SWT.NONE);
- }
-
- }
- /**
- * Returns the entered values, or null
- * if the user canceled.
- *
- * @return the entered values
- */
- public String[] getResult() {
- return result;
- }
- /**
- * Notifies that the ok button of this dialog has been pressed.
- * <p>
- * The default implementation of this framework method sets
- * this dialog's return code to <code>Window.OK</code>
- * and closes the dialog. Subclasses may override.
- * </p>
- */
- protected void okPressed() {
- result=new String[prompt.length];
- for(int i=0; i<texts.length; i++){
- result[i]=texts[i].getText();
- }
- super.okPressed();
- }
- /**
- * Notifies that the cancel button of this dialog has been pressed.
- * <p>
- * The default implementation of this framework method sets
- * this dialog's return code to <code>Window.CANCEL</code>
- * and closes the dialog. Subclasses may override.
- * </p>
- */
- protected void cancelPressed() {
- result=null;
- super.cancelPressed();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ListSelectionArea.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ListSelectionArea.java
deleted file mode 100644
index 5fe2e8595..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ListSelectionArea.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.team.internal.ui.dialogs.DialogArea;
-
-/**
- * Reusable area that provides a list to select from and a select all and
- * deselect all button.
- */
-public class ListSelectionArea extends DialogArea {
- private Object inputElement;
- private IStructuredContentProvider contentProvider;
- private ILabelProvider labelProvider;
- private String message;
- private List initialSelections;
-
- // the visual selection widget group
- private CheckboxTableViewer listViewer;
-
- private Object[] previousCheckedElements;
-
- // sizing constants
- private final static int SIZING_SELECTION_WIDGET_HEIGHT = 250;
- private final static int SIZING_SELECTION_WIDGET_WIDTH = 300;
-
- public static final String LIST_SELECTION = "ListSelection"; //$NON-NLS-1$
-
- /**
- * Constructor for ListSelectionArea.
- * @param parentDialog
- * @param settings
- */
- public ListSelectionArea(
- Dialog parentDialog,
- Object input,
- IStructuredContentProvider contentProvider,
- ILabelProvider labelProvider,
- String message) {
- super(parentDialog, null);
- this.inputElement = input;
- this.contentProvider = contentProvider;
- this.labelProvider = labelProvider;
- this.message = message;
- this.initialSelections = new ArrayList();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.DialogArea#createArea(org.eclipse.swt.widgets.Composite)
- */
- public Control createArea(Composite parent) {
- Dialog.applyDialogFont(parent);
- Composite composite = createComposite(parent, 1);
- initializeDialogUnits(composite);
-
- if (message != null)
- createWrappingLabel(composite, message, 1);
-
- listViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
- data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
- listViewer.getTable().setLayoutData(data);
-
- listViewer.setLabelProvider(labelProvider);
- listViewer.setContentProvider(contentProvider);
-
- listViewer.addCheckStateListener(new ICheckStateListener() {
- public void checkStateChanged(CheckStateChangedEvent event) {
- Object[] checkedElements = getViewer().getCheckedElements();
- firePropertyChangeChange(LIST_SELECTION, previousCheckedElements, checkedElements);
- previousCheckedElements = checkedElements;
- }
- });
-
- addSelectionButtons(composite);
-
- initializeViewer();
-
- // initialize page
- if (!getInitialElementSelections().isEmpty())
- checkInitialSelections();
-
- return composite;
- }
-
- /**
- * Initializes this dialog's viewer after it has been laid out.
- */
- private void initializeViewer() {
- listViewer.setInput(inputElement);
- }
-
- /**
- * Visually checks the previously-specified elements in this dialog's list
- * viewer.
- */
- private void checkInitialSelections() {
- Iterator itemsToCheck = getInitialElementSelections().iterator();
-
- while (itemsToCheck.hasNext())
- listViewer.setChecked(itemsToCheck.next(),true);
- }
-
- /**
- * Add the selection and deselection buttons to the dialog.
- * @param composite org.eclipse.swt.widgets.Composite
- */
- private void addSelectionButtons(Composite composite) {
- Composite buttonComposite = new Composite(composite, SWT.RIGHT);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- buttonComposite.setLayout(layout);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.GRAB_HORIZONTAL);
- data.grabExcessHorizontalSpace = true;
- composite.setData(data);
-
- Button selectButton = createButton(buttonComposite, Policy.bind("ListSelectionArea.selectAll"), GridData.HORIZONTAL_ALIGN_FILL); //$NON-NLS-1$
-
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- listViewer.setAllChecked(true);
- }
- };
- selectButton.addSelectionListener(listener);
-
-
- Button deselectButton = createButton(buttonComposite, Policy.bind("ListSelectionArea.deselectAll"), GridData.HORIZONTAL_ALIGN_FILL); //$NON-NLS-1$
-
- listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- listViewer.setAllChecked(false);
-
- }
- };
- deselectButton.addSelectionListener(listener);
- }
-
- /**
- * Returns the list of initial element selections.
- * @return List
- */
- protected List getInitialElementSelections(){
- return initialSelections;
- }
-
- /**
- * Sets the initial selection in this selection dialog to the given elements.
- *
- * @param selectedElements the array of elements to select
- */
- public void setInitialSelections(Object[] selectedElements) {
- initialSelections = new ArrayList(selectedElements.length);
- for (int i = 0; i < selectedElements.length; i++)
- initialSelections.add(selectedElements[i]);
- }
-
- /**
- * Sets the initial selection in this selection dialog to the given elements.
- *
- * @param selectedElements the List of elements to select
- */
- public void setInitialElementSelections(List selectedElements) {
- initialSelections = selectedElements;
- }
- /**
- * Returns the listViewer.
- * @return CheckboxTableViewer
- */
- public CheckboxTableViewer getViewer() {
- return listViewer;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/MessageDialogWithToggle.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/MessageDialogWithToggle.java
deleted file mode 100644
index 0867c280b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/MessageDialogWithToggle.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-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.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.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.ui.internal.WorkbenchMessages;
-
-/**
- * A message dialog which also allows the user to adjust a toggle setting.
- *
- * This is typically used to allow the user to indicate whether the dialog
- * should be shown in the future.
- */
-public class MessageDialogWithToggle extends MessageDialog {
-
- /**
- * The message displayed to the user, with the toggle button
- */
- private String toggleMessage = null;
- private boolean toggleState = false;
- private Button toggleButton = null;
-
- /**
- * The preference store which will be affected by the toggle button
- */
- IPreferenceStore fStore = null;
-
- /**
- * Creates a message dialog with a toggle.
- * See the superclass constructor for info on the other parameters.
- *
- * @param toggleMessage the message for the toggle control, or <code>null</code>
- * for the default message ("Do not show this message again").
- * @param toggleState the initial state for the toggle
- *
- */
- public MessageDialogWithToggle(Shell parentShell, String dialogTitle, Image image, String message, int dialogImageType, String[] dialogButtonLabels, int defaultIndex, String toggleMessage, boolean toggleState) {
- super(parentShell, dialogTitle, image, message, dialogImageType, dialogButtonLabels, defaultIndex);
- this.toggleMessage = toggleMessage;
- this.toggleState = toggleState;
- }
-
- /**
- * Returns the toggle state. This can be called even after the dialog
- * is closed.
- *
- * @return <code>true</code> if the toggle button is checked,
- * <code>false</code> if not
- */
- public boolean getToggleState() {
- return toggleState;
- }
-
- /* (non-Javadoc)
- * Method declared in Dialog.
- */
- protected Control createDialogArea(Composite parent) {
- Composite dialogArea = (Composite) super.createDialogArea(parent);
- toggleButton = createToggleButton(dialogArea);
- return dialogArea;
- }
-
- /**
- * Creates a toggle button with the toggle message and state.
- */
- protected Button createToggleButton(Composite parent) {
- final Button button= new Button(parent, SWT.CHECK | SWT.LEFT);
- String text = toggleMessage;
- if (text == null) {
- text = WorkbenchMessages.getString("MessageDialogWithToggle.defaultToggleMessage"); //$NON-NLS-1$
- }
- button.setText(text);
- button.setSelection(toggleState);
-
- GridData data = new GridData(SWT.NONE);
- data.horizontalSpan= 2;
- data.horizontalAlignment= GridData.CENTER;
- button.setLayoutData(data);
- button.setFont(parent.getFont());
-
- button.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- toggleState = button.getSelection();
- }
-
- });
- return button;
- }
-
- /**
- * Returns the toggle button.
- *
- * @return the toggle button
- */
- protected Button getToggleButton() {
- return toggleButton;
- }
-
- /**
- * Convenience method to open a simple confirm (OK/Cancel) dialog.
- *
- * @param parent the parent shell of the dialog, or <code>null</code> if none
- * @param title the dialog's title, or <code>null</code> if none
- * @param message the message
- * @param toggleMessage the message for the toggle control, or <code>null</code>
- * for the default message ("Don't show me this message again").
- * @param toggleState the initial state for the toggle
- * @return the dialog, after being closed by the user, which the client can
- * only call <code>getReturnCode()</code> or <code>getToggleState()</code>
- */
- public static MessageDialogWithToggle openConfirm(Shell parent, String title, String message, String toggleMessage, boolean toggleState) {
- MessageDialogWithToggle dialog = new MessageDialogWithToggle(
- parent,
- title,
- null, // accept the default window icon
- message,
- QUESTION,
- new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL},
- 0, // OK is the default
- toggleMessage,
- toggleState);
- dialog.open();
- return dialog;
- }
-
- /**
- * Convenience method to open a standard error dialog.
- *
- * @param parent the parent shell of the dialog, or <code>null</code> if none
- * @param title the dialog's title, or <code>null</code> if none
- * @param message the message
- * @param toggleMessage the message for the toggle control, or <code>null</code>
- * for the default message ("Don't show me this message again").
- * @param toggleState the initial state for the toggle
- * @return the dialog, after being closed by the user, which the client can
- * only call <code>getReturnCode()</code> or <code>getToggleState()</code>
- */
- public static MessageDialogWithToggle openError(Shell parent, String title, String message, String toggleMessage, boolean toggleState) {
- MessageDialogWithToggle dialog = new MessageDialogWithToggle(
- parent,
- title,
- null, // accept the default window icon
- message,
- ERROR,
- new String[] {IDialogConstants.OK_LABEL},
- 0, // ok is the default
- toggleMessage,
- toggleState);
- dialog.open();
- return dialog;
- }
-
- /**
- * Convenience method to open a standard information dialog.
- *
- * @param parent the parent shell of the dialog, or <code>null</code> if none
- * @param title the dialog's title, or <code>null</code> if none
- * @param message the message
- * @param toggleMessage the message for the toggle control, or <code>null</code>
- * for the default message ("Don't show me this message again").
- * @param toggleState the initial state for the toggle
- * @return the dialog, after being closed by the user, which the client can
- * only call <code>getReturnCode()</code> or <code>getToggleState()</code>
- */
- public static MessageDialogWithToggle openInformation(Shell parent, String title, String message, String toggleMessage, boolean toggleState) {
- MessageDialogWithToggle dialog = new MessageDialogWithToggle(
- parent,
- title,
- null, // accept the default window icon
- message,
- INFORMATION,
- new String[] { IDialogConstants.OK_LABEL },
- 0, // ok is the default
- toggleMessage,
- toggleState);
- dialog.open();
- return dialog;
- }
-
- /**
- * Convenience method to open a simple Yes/No question dialog.
- *
- * @param parent the parent shell of the dialog, or <code>null</code> if none
- * @param title the dialog's title, or <code>null</code> if none
- * @param message the message
- * @param toggleMessage the message for the toggle control, or <code>null</code>
- * for the default message ("Don't show me this message again").
- * @param toggleState the initial state for the toggle
- * @return the dialog, after being closed by the user, which the client can
- * only call <code>getReturnCode()</code> or <code>getToggleState()</code>
- */
- public static MessageDialogWithToggle openQuestion(Shell parent, String title, String message, String toggleMessage, boolean toggleState) {
- MessageDialogWithToggle dialog = new MessageDialogWithToggle(
- parent,
- title,
- null, // accept the default window icon
- message,
- QUESTION,
- new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL},
- 1, // no is the default
- toggleMessage,
- toggleState);
- dialog.open();
- return dialog;
- }
-
- /**
- * Convenience method to open a standard warning dialog.
- *
- * @param parent the parent shell of the dialog, or <code>null</code> if none
- * @param title the dialog's title, or <code>null</code> if none
- * @param message the message
- * @param toggleMessage the message for the toggle control, or <code>null</code>
- * for the default message ("Don't show me this message again").
- * @param toggleState the initial state for the toggle
- * @return the dialog, after being closed by the user, which the client can
- * only call <code>getReturnCode()</code> or <code>getToggleState()</code>
- */
- public static MessageDialogWithToggle openWarning(Shell parent, String title, String message, String toggleMessage, boolean toggleState) {
- MessageDialogWithToggle dialog = new MessageDialogWithToggle(
- parent,
- title,
- null, // accept the default window icon
- message,
- WARNING,
- new String[] {IDialogConstants.OK_LABEL},
- 0, // ok is the default
- toggleMessage,
- toggleState);
- dialog.open();
- return dialog;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/OverlayIconCache.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/OverlayIconCache.java
deleted file mode 100644
index c6c06b12f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/OverlayIconCache.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.team.internal.ui.*;
-
-/**
- * Maintains a cache of OverlayIcons.
- */
-public class OverlayIconCache {
- private Map /*from OverlayIcon to Image*/ cache = new HashMap();
-
- /**
- * Returns and caches an image corresponding to the specified icon.
- * @param icon the icon
- * @return the image
- */
- public Image getImageFor(OverlayIcon icon) {
- Image image = (Image) cache.get(icon);
- if (image == null) {
- image = icon.createImage();
- cache.put(icon, image);
- }
- return image;
- }
-
- /**
- * Disposes of all images in the cache.
- */
- public void disposeAll() {
- for (Iterator it = cache.values().iterator(); it.hasNext();) {
- Image image = (Image) it.next();
- image.dispose();
- }
- cache.clear();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/Policy.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/Policy.java
deleted file mode 100644
index a3cee4bad..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/Policy.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-
-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;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.team.internal.core.InfiniteSubProgressMonitor;
-
-public class Policy {
- public static boolean DEBUG_CONSOLE_BUFFERING = false;
-
- static {
- //init debug options
- if (CVSUIPlugin.getPlugin().isDebugging()) {
- DEBUG_CONSOLE_BUFFERING = "true".equalsIgnoreCase(Platform.getDebugOption(CVSUIPlugin.ID + "/consolebuffering")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- 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())
- cancelOperation();
- }
- public static void cancelOperation() {
- throw new OperationCanceledException();
- }
- public static IProgressMonitor monitorFor(IProgressMonitor monitor) {
- if (monitor == null)
- return new NullProgressMonitor();
- return monitor;
- }
- public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new SubProgressMonitor(monitor, ticks);
- }
- public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks, int style) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new SubProgressMonitor(monitor, ticks, style);
- }
-
- public static IProgressMonitor infiniteSubMonitorFor(IProgressMonitor monitor, int ticks) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new InfiniteSubProgressMonitor(monitor, ticks);
- }
-
- public static ResourceBundle getBundle() {
- return bundle;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ReleaseCommentDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ReleaseCommentDialog.java
deleted file mode 100644
index 91425e880..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ReleaseCommentDialog.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.ui.dialogs.DetailsDialog;
-import org.eclipse.team.ui.synchronize.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Prompts the user for a multi-line comment for releasing to CVS.
- */
-public class ReleaseCommentDialog extends DetailsDialog {
-
- CommitCommentArea commitCommentArea;
- // dialogs settings that are persistent between workbench sessions
- private IDialogSettings settings;
- private IResource[] resourcesToCommit;
- private CompareEditorInput compareEditorInput;
- private static final String HEIGHT_KEY = "width-key"; //$NON-NLS-1$
- private static final String WIDTH_KEY = "height-key"; //$NON-NLS-1$
-
- /**
- * ReleaseCommentDialog constructor.
- *
- * @param parentShell the parent of this dialog
- */
- public ReleaseCommentDialog(Shell parentShell, IResource[] resourcesToCommit) {
- super(parentShell, Policy.bind("ReleaseCommentDialog.title")); //$NON-NLS-1$
- this.resourcesToCommit = resourcesToCommit;
- int shellStyle = getShellStyle();
- setShellStyle(shellStyle | SWT.RESIZE | SWT.MAX);
- commitCommentArea = new CommitCommentArea(this, null);
- // Get a project from which the commit template can be obtained
- if (resourcesToCommit.length > 0)
- commitCommentArea.setProject(resourcesToCommit[0].getProject());
-
- IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings();
- this.settings = workbenchSettings.getSection("ReleaseCommentDialog");//$NON-NLS-1$
- if (settings == null) {
- this.settings = workbenchSettings.addNewSection("ReleaseCommentDialog");//$NON-NLS-1$
- }
- }
-
- /*
- * @see Dialog#createDialogArea(Composite)
- */
- protected void createMainDialogArea(Composite parent) {
- getShell().setText(Policy.bind("ReleaseCommentDialog.title")); //$NON-NLS-1$
- Composite composite = new Composite(parent, SWT.NULL);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- commitCommentArea.createArea(composite);
- commitCommentArea.addPropertyChangeListener(new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty() == CommitCommentArea.OK_REQUESTED)
- okPressed();
- }
- });
-
- CompareConfiguration cc = new CompareConfiguration();
- cc.setLeftEditable(false);
-
- // Create a sync set containing only the resources that will be committed.
- TeamSubscriberParticipant participant = CVSUIPlugin.getPlugin().getCvsWorkspaceSynchronizeParticipant();
- SyncInfoSet currentSet = participant.getTeamSubscriberSyncInfoCollector().getSyncInfoSet();
- MutableSyncInfoSet set = new MutableSyncInfoSet();
- for (int i = 0; i < resourcesToCommit.length; i++) {
- IResource resource = resourcesToCommit[i];
- SyncInfo info = currentSet.getSyncInfo(resource);
- if(info != null) {
- set.add(info);
- }
- }
- compareEditorInput = new SyncInfoSetCompareInput(cc, new DiffTreeViewerConfiguration(set));
-
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.RELEASE_COMMENT_DIALOG);
- Dialog.applyDialogFont(parent);
-
- //return composite;
- }
-
- /**
- * @see Window#getInitialSize()
- */
- protected Point getInitialSize() {
- int width, height;
- try {
- height = settings.getInt(HEIGHT_KEY);
- width = settings.getInt(WIDTH_KEY);
- } catch(NumberFormatException e) {
- return super.getInitialSize();
- }
- Point p = super.getInitialSize();
- return new Point(width, p.y);
- }
-
- /**
- * Returns the comment.
- * @return String
- */
- public String getComment() {
- return commitCommentArea.getComment();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.dialogs.DetailsDialog#createDropDownDialogArea(org.eclipse.swt.widgets.Composite)
- */
- protected Composite createDropDownDialogArea(Composite parent) {
- try {
- compareEditorInput.run(new NullProgressMonitor());
- } catch (InterruptedException e) {
- } catch (InvocationTargetException e) {
- }
-
- Composite result= new Composite(parent, SWT.NONE);
- GridLayout layout= new GridLayout();
- result.setLayout(layout);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.grabExcessHorizontalSpace = true;
- data.grabExcessVerticalSpace = true;
- data.heightHint = 350;
- result.setLayoutData(data);
- Label l = new Label(result, SWT.WRAP);
- l.setText(Policy.bind("ReleaseCommentDialog.6")); //$NON-NLS-1$
- Control c = compareEditorInput.createContents(result);
- data = new GridData(GridData.FILL_BOTH);
- c.setLayoutData(data);
- return result;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.dialogs.DetailsDialog#updateEnablements()
- */
- protected void updateEnablements() {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.window.Window#close()
- */
- public boolean close() {
- Rectangle bounds = getShell().getBounds();
- settings.put(HEIGHT_KEY, bounds.height);
- settings.put(WIDTH_KEY, bounds.width);
- return super.close();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteAnnotationEditorInput.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteAnnotationEditorInput.java
deleted file mode 100644
index 7cac5cff7..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteAnnotationEditorInput.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * An editor input for a cvs annotation response
- */
-public class RemoteAnnotationEditorInput extends RemoteFileEditorInput implements IWorkbenchAdapter, IStorageEditorInput {
-
- InputStream contents;
-
- /**
- * @param contents
- */
- public RemoteAnnotationEditorInput(ICVSRemoteFile file, InputStream contents) {
- super(file);
- this.contents = contents;
- }
-
- /**
- * Returns the underlying IStorage object.
- *
- * @return an IStorage object.
- * @exception CoreException if this method fails
- */
- public IStorage getStorage() throws CoreException {
- if (storage == null) {
- storage = new RemoteAnnotationStorage(file, contents);
- }
- return storage;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteAnnotationStorage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteAnnotationStorage.java
deleted file mode 100644
index 93240eec2..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteAnnotationStorage.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.internal.ccvs.ui;
-
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-
-public class RemoteAnnotationStorage extends RemoteFileStorage implements IStorage {
-
- InputStream contents;
-
- /**
- * @param file
- */
- public RemoteAnnotationStorage(ICVSRemoteFile file, InputStream contents) {
- super(file);
- this.contents = contents;
- }
-
- public InputStream getContents() throws CoreException {
- return contents;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteFileEditorInput.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteFileEditorInput.java
deleted file mode 100644
index a5401a7d1..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteFileEditorInput.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * An editor input for a file in a repository.
- */
-public class RemoteFileEditorInput implements IWorkbenchAdapter, IStorageEditorInput {
- ICVSRemoteFile file;
- IStorage storage;
-
- /**
- * Creates FileEditionEditorInput on the given file.
- */
- public RemoteFileEditorInput(ICVSRemoteFile file) {
- this.file = file;
- }
- /**
- * Returns whether the editor input exists.
- * <p>
- * This method is primarily used to determine if an editor input should
- * appear in the "File Most Recently Used" menu. An editor input will appear
- * in the list until the return value of <code>exists</code> becomes
- * <code>false</code> or it drops off the bottom of the list.
- *
- * @return <code>true</code> if the editor input exists; <code>false</code>
- * otherwise
- */
- public boolean exists() {
- return true;
- }
- public boolean equals(Object o) {
- if (!(o instanceof RemoteFileEditorInput)) return false;
- RemoteFileEditorInput input = (RemoteFileEditorInput)o;
- return file.equals(input.file);
- }
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found.
- *
- * @param adapter the adapter class to look up
- * @return a object castable to the given class,
- * or <code>null</code> if this object does not
- * have an adapter for the given class
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) {
- return this;
- }
- return null;
- }
- /**
- * Returns the children of this object. When this object
- * is displayed in a tree, the returned objects will be this
- * element's children. Returns an empty array if this
- * object has no children.
- *
- * @param object The object to get the children for.
- */
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
- /**
- * Returns the content type of the input. For instance, if the input
- * wraps an <code>IFile</code> the content type would be derived from
- * the extension or mime type. If the input wraps another object it
- * may just be the object type. The content type is used for
- * editor mapping.
- */
- public String getContentType() {
- String name = file.getName();
- return name.substring(name.lastIndexOf('.')+1);
- }
- /**
- * Returns the fully qualified path name of the input.
- */
- public String getFullPath() {
- //use path to make sure slashes are correct
- ICVSRepositoryLocation location = file.getRepository();
- IPath path = new Path(location.getRootDirectory());
- path = path.setDevice(location.getHost() + Path.DEVICE_SEPARATOR);
- path = path.append(file.getRepositoryRelativePath());
- String fullPath;
- try {
- String revision = file.getRevision();
- fullPath = Policy.bind("RemoteFileEditorInput.fullPathAndRevision", path.toString(), revision); //$NON-NLS-1$
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- fullPath = path.toString();
- }
- return fullPath;
- }
- /**
- * Returns the image descriptor for this input.
- *
- * @return the image descriptor for this input
- */
- public ImageDescriptor getImageDescriptor() {
- IWorkbenchAdapter fileAdapter = (IWorkbenchAdapter)file.getAdapter(IWorkbenchAdapter.class);
- return fileAdapter == null ? null : fileAdapter.getImageDescriptor(file);
- }
- /**
- * @see IWorkbenchAdapter#getImageDescriptor
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- IWorkbenchAdapter fileAdapter = (IWorkbenchAdapter)file.getAdapter(IWorkbenchAdapter.class);
- return fileAdapter == null ? null : fileAdapter.getImageDescriptor(file);
- }
- /**
- * @see IWorkbenchAdapter#getLabel
- */
- public String getLabel(Object o) {
- return file.getName();
- }
- /**
- * Returns the input name for display purposes. For instance, if
- * the fully qualified input name is "a\b\MyFile.gif" the return value for
- * <code>getName</code> is "MyFile.gif".
- */
- public String getName() {
- String name = file.getName();
- try {
- return Policy.bind("nameAndRevision", name, file.getRevision()); //$NON-NLS-1$
- } catch (TeamException e) {
- return name;
- }
- }
- /**
- * Returns the logical parent of the given object in its tree.
- * Returns <code>null</code> if there is no parent, or if this object doesn't
- * belong to a tree.
- *
- * @param object The object to get the parent for.
- */
- public Object getParent(Object o) {
- return null;
- }
- /*
- * Returns an interface used to persist the object. If the editor input
- * cannot be persisted this method returns <code>null</code>.
- */
- public IPersistableElement getPersistable() {
- //not persistable
- return null;
- }
- /**
- * Returns the underlying IStorage object.
- *
- * @return an IStorage object.
- * @exception CoreException if this method fails
- */
- public IStorage getStorage() throws CoreException {
- if (storage == null) {
- storage = new RemoteFileStorage(file);
- }
- return storage;
- }
- /**
- * Returns the tool tip text for this editor input. This text
- * is used to differentiate between two input with the same name.
- * For instance, MyClass.java in folder X and MyClass.java in folder Y.
- * <p>
- * The format of the path will vary with each input type. For instance,
- * if the editor input is of type <code>IFileEditorInput</code> this method
- * should return the fully qualified resource path. For editor input of
- * other types it may be different.
- * </p>
- * @return the tool tip text
- */
- public String getToolTipText() {
- return getFullPath();
- }
-
- /**
- * Returns the remote CVS file shown in this editor input.
- * @return the remote file handle.
- */
- public ICVSRemoteFile getCVSRemoteFile() {
- return file;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteFileStorage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteFileStorage.java
deleted file mode 100644
index d9c6b27be..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteFileStorage.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-
-public class RemoteFileStorage extends PlatformObject implements IStorage {
- ICVSRemoteFile file;
- public RemoteFileStorage(ICVSRemoteFile file) {
- this.file = file;
- }
-
- /**
- * Returns an open input stream on the contents of this file.
- * The client is responsible for closing the stream when finished.
- *
- * @return an input stream containing the contents of the file
- * @exception CoreException if this method fails.
- */
- public InputStream getContents() throws CoreException {
- try {
- final InputStream[] holder = new InputStream[1];
- CVSUIPlugin.runWithProgress(null, true /*cancelable*/, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- holder[0] = file.getContents(monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- return holder[0];
- } catch (InterruptedException e) {
- // operation canceled
- } catch (InvocationTargetException e) {
- Throwable t = e.getTargetException();
- if (t instanceof TeamException) {
- throw new CoreException(((TeamException) t).getStatus());
- }
- // should not get here
- }
- return new ByteArrayInputStream(new byte[0]);
- }
- public IPath getFullPath() {
- ICVSRepositoryLocation location = file.getRepository();
- IPath path = new Path(location.getRootDirectory());
- path = path.setDevice(location.getHost() + Path.DEVICE_SEPARATOR);
- path = path.append(file.getRepositoryRelativePath());
- return path;
- }
- public String getName() {
- return file.getName();
- }
- public boolean isReadOnly() {
- return true;
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteRevisionQuickDiffProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteRevisionQuickDiffProvider.java
deleted file mode 100644
index 5f51fbdf4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/RemoteRevisionQuickDiffProvider.java
+++ /dev/null
@@ -1,395 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.io.BufferedReader;
-import java.io.CharArrayWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.ITeamResourceChangeListener;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.TeamDelta;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.editors.text.IStorageDocumentProvider;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.IElementStateListener;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.quickdiff.IQuickDiffProviderImplementation;
-
-/**
- * A QuickDiff provider that provides a reference to the latest revision of a file
- * in the CVS repository. The provider notifies when the file's sync state changes
- * and the diff should be recalculated (e.g. commit, update...) or when the file
- * is changed (e.g. replace with).
- *
- * Here are the file states and what this provider does for each:
- *
- * 1. File is unmanaged : reference == empty document
- * 2. Unmanaged file transitions to managed : empty reference updated with new remote revision
- * 3. A managed file has new remote (commit, refresh remote) : reference updated with new
- * remote revision
- * 4. A managed file cleaned, remote is the same (replace with, update) : refresh diff bar
- * with existing reference
- *
- * [Note: Currently an empty document must be returned for an unmanaged file. This
- * results in the entire document appearing as outgoing changes in the quickdiff bar.
- * This is required because the quickdiff support relies on IDocument change events
- * to update the quickdiff, and returning null for the reference document doesn't
- * allow the transition to later return a IDocument.]
- *
- * @since 3.0
- */
-public class RemoteRevisionQuickDiffProvider implements IQuickDiffProviderImplementation {
- // The editor showing this quickdiff and provides access to the editor input and
- // ultimatly the IFile.
- private ITextEditor fEditor = null;
-
- // The document containing the remote file. Can be null if the assigned editor doesn't have
- // a CVS remote resource associated with it.
- private IDocument fReference = null;
-
- // Will be true when the document has been read and initialized.
- private boolean fReferenceInitialized = false;
-
- // Document provider allows us to register/deregister the element state change listener.
- private IDocumentProvider fDocumentProvider = null;
-
- // Unique id for this reference provider as set via setId().
- private String fId;
-
- // A handle to the remote CVS file for this provider.
- private SyncInfo fLastSyncState;
-
- // Job that re-creates the reference document.
- private Job fUpdateJob;
-
- private boolean DEBUG = false;
-
- /**
- * Updates the document if a sync changes occurs to the associated CVS file.
- */
- private ITeamResourceChangeListener teamChangeListener = new ITeamResourceChangeListener() {
- public void teamResourceChanged(TeamDelta[] deltas) {
- if(initialized()) {
- for (int i = 0; i < deltas.length; i++) {
- TeamDelta delta = deltas[i];
- IResource resource = delta.getResource();
- if(resource.getType() == IResource.FILE &&
- fLastSyncState != null && resource.equals(fLastSyncState.getLocal())) {
- if(delta.getFlags() == TeamDelta.SYNC_CHANGED) {
- fetchContentsInJob();
- }
- }
- }
- }
- }
- };
-
- /**
- * Updates the document if the document is changed (e.g. replace with)
- */
- private IElementStateListener documentListener = new IElementStateListener() {
- public void elementDirtyStateChanged(Object element, boolean isDirty) {
- }
-
- public void elementContentAboutToBeReplaced(Object element) {
- }
-
- public void elementContentReplaced(Object element) {
- if(fEditor != null && fEditor.getEditorInput() == element) {
- fetchContentsInJob();
- }
- }
-
- public void elementDeleted(Object element) {
- }
-
- public void elementMoved(Object originalElement, Object movedElement) {
- }
- };
-
- /*
- * @see org.eclipse.test.quickdiff.DocumentLineDiffer.IQuickDiffReferenceProvider#getReference()
- */
- public IDocument getReference(IProgressMonitor monitor) {
- try {
- if (! fReferenceInitialized) {
- readDocument(monitor);
- }
- return fReference;
- } catch(CoreException e) {
- CVSUIPlugin.log(e);
- return null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.texteditor.quickdiff.IQuickDiffProviderImplementation#setActiveEditor(org.eclipse.ui.texteditor.ITextEditor)
- */
- public void setActiveEditor(ITextEditor targetEditor) {
- if (targetEditor != fEditor) {
- dispose();
- fEditor= targetEditor;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.texteditor.quickdiff.IQuickDiffProviderImplementation#isEnabled()
- */
- public boolean isEnabled() {
- if (!initialized())
- return false;
- return getManagedCVSFile() != null;
- }
-
- /*
- * @see org.eclipse.jface.text.source.diff.DocumentLineDiffer.IQuickDiffReferenceProvider#dispose()
- */
- public void dispose() {
- fReferenceInitialized = false;
- // stop update job
- if(fUpdateJob != null && fUpdateJob.getState() != Job.NONE) {
- fUpdateJob.cancel();
- try {
- fUpdateJob.join();
- } catch (InterruptedException e) {
- }
- }
- synchronized(this) {
- // remove listeners
- if(fDocumentProvider != null) {
- fDocumentProvider.removeElementStateListener(documentListener);
- }
- CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber().removeListener(teamChangeListener);
-
- fReferenceInitialized = false;
- fReference= null;
- fUpdateJob = null;
- fLastSyncState = null;
- }
- }
-
- /*
- * @see org.eclipse.quickdiff.QuickDiffTestPlugin.IQuickDiffProviderImplementation#setId(java.lang.String)
- */
- public void setId(String id) {
- fId= id;
- }
-
- /*
- * @see org.eclipse.jface.text.source.diff.DocumentLineDiffer.IQuickDiffReferenceProvider#getId()
- */
- public String getId() {
- return fId;
- }
-
- /**
- * Determine if the file represented by this quickdiff provider has changed with
- * respect to it's remote state. Return true if the remote contents should be
- * refreshed, and false if not.
- */
- private boolean computeChange(IProgressMonitor monitor) throws TeamException {
- boolean needToUpdateReferenceDocument = false;
- if(initialized()) {
- SyncInfo info = getSyncState(getFileFromEditor());
- // check if
- if(info == null && fLastSyncState != null) {
- return true;
- }
- int kind = info.getKind();
- if(fLastSyncState == null) {
- needToUpdateReferenceDocument = true;
- } else if(! fLastSyncState.equals(info)) {
- needToUpdateReferenceDocument = true;
- }
- if(DEBUG) debug(fLastSyncState, info);
- fLastSyncState = info;
- }
- return needToUpdateReferenceDocument;
- }
-
- private void debug(SyncInfo lastSyncState, SyncInfo info) {
- String last = "[none]"; //$NON-NLS-1$
- if(lastSyncState != null) {
- last = lastSyncState.toString();
- }
- System.out.println("+ CVSQuickDiff: was " + last + " is " + info.toString()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- private SyncInfo getSyncState(IResource resource) throws TeamException {
- ICVSFile cvsFile = getManagedCVSFile();
- return CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber().getSyncInfo(resource);
- }
-
- /**
- * This provider is initialized if an editor has been assigned and the input for
- * the editor is a FileEditorInput.
- * @return true if initialized and false otherwise.
- */
- private boolean initialized() {
- return fEditor != null && fEditor.getEditorInput() instanceof IFileEditorInput;
- }
-
- /**
- * Creates a document and initializes it with the contents of a CVS remote
- * resource.
- * @param monitor the progress monitor
- * @throws CoreException
- */
- private synchronized void readDocument(IProgressMonitor monitor) throws CoreException {
- if (!initialized())
- return;
-
- fReferenceInitialized= false;
- fDocumentProvider= fEditor.getDocumentProvider();
-
- if (fReference == null) {
- fReference= new Document();
- }
-
- if(computeChange(monitor)) {
- ICVSRemoteFile remoteFile = (ICVSRemoteFile)fLastSyncState.getRemote();
- if (fLastSyncState.getRemote() != null && fDocumentProvider instanceof IStorageDocumentProvider) {
- IStorageDocumentProvider provider= (IStorageDocumentProvider) fDocumentProvider;
- String encoding= provider.getEncoding(fEditor.getEditorInput());
- if (encoding == null) {
- encoding= provider.getDefaultEncoding();
- }
- InputStream stream= remoteFile.getContents(monitor);
- if (stream == null) {
- return;
- }
- if(! monitor.isCanceled()) {
- setDocumentContent(fReference, stream, encoding);
- }
- } else {
- // the remote is null, so ensure that the document is null
- fReference = new Document();
- fReference.set(""); //$NON-NLS-1$
- }
- }
-
- if(fDocumentProvider != null) {
- CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber().addListener(teamChangeListener);
- ((IDocumentProvider)fDocumentProvider).addElementStateListener(documentListener);
- }
-
- fReferenceInitialized= true;
- }
-
- /**
- * Intitializes the given document with the given stream using the given encoding.
- *
- * @param document the document to be initialized
- * @param contentStream the stream which delivers the document content
- * @param encoding the character encoding for reading the given stream
- * @exception CoreException if the given stream can not be read
- */
- private static void setDocumentContent(IDocument document, InputStream contentStream, String encoding) throws CoreException {
- Reader in= null;
- try {
- final int DEFAULT_FILE_SIZE= 15 * 1024;
-
- in= new BufferedReader(new InputStreamReader(contentStream, encoding), DEFAULT_FILE_SIZE);
- CharArrayWriter caw= new CharArrayWriter(DEFAULT_FILE_SIZE);
- char[] readBuffer= new char[2048];
- int n= in.read(readBuffer);
- while (n > 0) {
- caw.write(readBuffer, 0, n);
- n= in.read(readBuffer);
- }
- document.set(caw.toString());
- } catch (IOException x) {
- throw new CVSException(Policy.bind("RemoteRevisionQuickDiffProvider.readingFile"), x); //$NON-NLS-1$
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException x) {
- throw new CVSException(Policy.bind("RemoteRevisionQuickDiffProvider.closingFile"), x); //$NON-NLS-1$
- }
- }
- }
- }
-
- /**
- * Returns the ICVSFile associated with he active editor or <code>null</code>
- * if the provider doesn't not have access to a CVS managed file.
- * @return the handle to a CVS file
- */
- private ICVSFile getManagedCVSFile() {
- if(fEditor != null) {
- IFile file = getFileFromEditor();
- try {
- if(file != null && CVSWorkspaceRoot.isSharedWithCVS(file)) {
- return CVSWorkspaceRoot.getCVSFileFor(file);
- }
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
- return null;
- }
-
- private IFile getFileFromEditor() {
- if(fEditor != null) {
- IEditorInput input= fEditor.getEditorInput();
- if (input instanceof IFileEditorInput) {
- return ((IFileEditorInput)input).getFile();
- }
- }
- return null;
- }
-
- /**
- * Runs a job that updates the document. If a previous job is already running it
- * is stopped before the new job can start.
- */
- private void fetchContentsInJob() {
- if(fUpdateJob != null && fUpdateJob.getState() != Job.NONE) {
- fUpdateJob.cancel();
- try {
- fUpdateJob.join();
- } catch (InterruptedException e) {
- }
- }
- Job updateJob = new Job(Policy.bind("RemoteRevisionQuickDiffProvider.fetchingFile")) { //$NON-NLS-1$
- protected IStatus run(IProgressMonitor monitor) {
- try {
- readDocument(monitor);
- } catch (CoreException e) {
- return e.getStatus();
- }
- return Status.OK_STATUS;
- }
- };
- updateJob.schedule();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResizableWizardDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResizableWizardDialog.java
deleted file mode 100644
index 2025039f5..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResizableWizardDialog.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-
-public class ResizableWizardDialog extends WizardDialog {
- /**
- * Creates a new resizable wizard dialog.
- */
- public ResizableWizardDialog(Shell parent, IWizard wizard) {
- super(parent, wizard);
- setShellStyle(getShellStyle() | SWT.RESIZE);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResourceEditionNode.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResourceEditionNode.java
deleted file mode 100644
index 20cd55497..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResourceEditionNode.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareUI;
-import org.eclipse.compare.IStreamContentAccessor;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-
-/**
- * A class for comparing ICVSRemoteResource objects
- */
-public class ResourceEditionNode implements IStructureComparator, ITypedElement, IStreamContentAccessor {
- private ICVSRemoteResource resource;
- private ResourceEditionNode[] children;
-
- /**
- * Creates a new ResourceEditionNode on the given resource edition.
- */
- public ResourceEditionNode(ICVSRemoteResource resourceEdition) {
- this.resource = resourceEdition;
- }
-
- /**
- * Returns true if both resources names are identical.
- * The content is not considered.
- * @see IComparator#equals
- */
- public boolean equals(Object other) {
- if (other instanceof ITypedElement) {
- String otherName = ((ITypedElement)other).getName();
- return getName().equals(otherName);
- }
- return super.equals(other);
- }
-
- /**
- * Enumerate children of this node (if any).
- */
- public Object[] getChildren() {
- if (children == null) {
- children = new ResourceEditionNode[0];
- if (resource != null) {
- try {
- CVSUIPlugin.runWithProgress(null, true /*cancelable*/, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- IRemoteResource[] members = resource.members(monitor);
- children = new ResourceEditionNode[members.length];
- for (int i = 0; i < members.length; i++) {
- children[i] = new ResourceEditionNode((ICVSRemoteResource)members[i]);
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InterruptedException e) {
- // operation canceled
- } catch (InvocationTargetException e) {
- Throwable t = e.getTargetException();
- if (t instanceof TeamException) {
- CVSUIPlugin.log(((TeamException) t));
- }
- }
- }
- }
- return children;
- }
-
- /**
- * @see IStreamContentAccessor#getContents()
- */
- public InputStream getContents() throws CoreException {
- if (resource == null) {
- return null;
- }
- try {
- final InputStream[] holder = new InputStream[1];
- CVSUIPlugin.runWithProgress(null, true /*cancelable*/, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- holder[0] = resource.getContents(monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- return holder[0];
- } catch (InterruptedException e) {
- // operation canceled
- } catch (InvocationTargetException e) {
- Throwable t = e.getTargetException();
- if (t instanceof TeamException) {
- throw new CoreException(((TeamException) t).getStatus());
- }
- // should not get here
- }
- return new ByteArrayInputStream(new byte[0]);
- }
-
- public Image getImage() {
- return CompareUI.getImage(resource);
- }
-
- /**
- * Returns the name of this node.
- */
- public String getName() {
- return resource == null ? "" : resource.getName(); //$NON-NLS-1$
- }
-
- public ICVSRemoteResource getRemoteResource() {
- return resource;
- }
-
- /**
- * Returns the comparison type for this node.
- */
- public String getType() {
- if (resource == null) {
- return UNKNOWN_TYPE;
- }
- if (resource.isContainer()) {
- return FOLDER_TYPE;
- }
- String name = resource.getName();
- name = name.substring(name.lastIndexOf('.') + 1);
- return name.length() == 0 ? UNKNOWN_TYPE : name;
- }
-
- /**
- * @see IComparator#equals
- */
- public int hashCode() {
- return getName().hashCode();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResourcePropertiesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResourcePropertiesPage.java
deleted file mode 100644
index 35c401709..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ResourcePropertiesPage.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.internal.ccvs.ui;
-
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.Dialog;
-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.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * A property page which displays the CVS-specific properties for the
- * selected resource.
- */
-public class ResourcePropertiesPage extends PropertyPage {
- // The resource to show properties for
- IResource 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));
-
- try {
- IResource resource = getSelectedElement();
- if (resource != null) {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (!cvsResource.isManaged()) {
- createPair(composite, Policy.bind("ResourcePropertiesPage.status"), Policy.bind("ResourcePropertiesPage.notManaged")); //$NON-NLS-1$ //$NON-NLS-2$
- } else {
- boolean hasRemote = false;
- if(cvsResource.isFolder()) {
- hasRemote = ((ICVSFolder)cvsResource).isCVSFolder();
- } else {
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- if(info!=null && !info.isAdded()) {
- hasRemote = true;
- }
- }
- createPair(composite, Policy.bind("ResourcePropertiesPage.status"), hasRemote ? Policy.bind("ResourcePropertiesPage.versioned") : Policy.bind("ResourcePropertiesPage.notVersioned")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- }
- } catch (TeamException e) {
- createPair(composite, Policy.bind("ResourcePropertiesPage.error"), e.getMessage()); //$NON-NLS-1$
- }
- Dialog.applyDialogFont(parent);
- return composite;
- }
-
- /**
- * 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;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/SimpleContentProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/SimpleContentProvider.java
deleted file mode 100644
index 6fa9117f8..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/SimpleContentProvider.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.team.internal.ccvs.ui;
-
-
-import org.eclipse.jface.viewers.*;
-
-/**
- * A default content provider to prevent subclasses from
- * having to implement methods they don't need.
- */
-public class SimpleContentProvider implements IStructuredContentProvider {
-
- /**
- * SimpleContentProvider constructor.
- */
- public SimpleContentProvider() {
- super();
- }
-
- /*
- * @see SimpleContentProvider#dispose()
- */
- public void dispose() {
- }
-
- /*
- * @see SimpleContentProvider#getElements()
- */
- public Object[] getElements(Object element) {
- return new Object[0];
- }
-
- /*
- * @see SimpleContentProvider#inputChanged()
- */
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/SynchronizeProjectsDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/SynchronizeProjectsDialog.java
deleted file mode 100644
index 410f1321b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/SynchronizeProjectsDialog.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- *
- */
-public class SynchronizeProjectsDialog extends Dialog {
-
- private Button outgoingChangesButton;
-
- private static final String SYNC_OUTGOING_CHANGES = "SyncOutgoingChanges"; //$NON-NLS-1$
-
- IWorkingSet workingSet;
- boolean syncOutgoingChanges;
-
- // dialogs settings that are persistent between workbench sessions
- private IDialogSettings settings;
- private WorkingSetSelectionArea workingSetArea;
-
- /**
- * Creates a filter selection dialog.
- *
- * @param parentShell the parent shell
- * @param input the root element to populate this dialog with
- * @param contentProvider the content provider for navigating the model
- * @param labelProvider the label provider for displaying model elements
- * @param message the message to be displayed at the top of this dialog, or
- * <code>null</code> to display a default message
- */
- public SynchronizeProjectsDialog(Shell parentShell) {
- super(parentShell);
- IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings();
- this.settings = workbenchSettings.getSection("SynchronizeProjectsDialog");//$NON-NLS-1$
- if (settings == null) {
- this.settings = workbenchSettings.addNewSection("SynchronizeProjectsDialog");//$NON-NLS-1$
- }
- }
-
- /**
- * Overrides method in Dialog
- *
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(Composite)
- */
- protected Control createDialogArea(Composite parent) {
- // page group
- Composite composite = (Composite)super.createDialogArea(parent);
-
- workingSetArea = new WorkingSetSelectionArea(this, Policy.bind("SynchronizeProjectsDialog.allSharedProjects"), Policy.bind("SynchronizeProjectsDialog.sharedWorkingSetProjects"), settings); //$NON-NLS-1$ //$NON-NLS-2$
- setWorkingSet(workingSet);
- workingSetArea.addPropertyChangeListener(new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- workingSet = (IWorkingSet)event.getNewValue();
- }
- });
- workingSetArea.createArea(composite);
-
- // Create the checkbox to enable/disable working set use
- outgoingChangesButton = createCheckbox(composite, Policy.bind("SynchronizeProjectsDialog.syncOutgoingChanges")); //$NON-NLS-1$
- outgoingChangesButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- syncOutgoingChanges = outgoingChangesButton.getSelection();
- }
- });
- if (settings != null) {
- syncOutgoingChanges = settings.getBoolean(SYNC_OUTGOING_CHANGES);
- outgoingChangesButton.setSelection(syncOutgoingChanges);
- }
-
- // F1 Help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.SYNCHRONIZE_PROJECTS_DIALOG);
- Dialog.applyDialogFont(parent);
-
- return composite;
- }
-
- /* (non-Javadoc)
- * Method declared on Window.
- */
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(Policy.bind("SynchronizeProjectsDialog.title")); //$NON-NLS-1$
- }
- /**
- * Returns the selected working set or null if none is selected.
- *
- * @return the selected working set or null if none is selected.
- */
- public IWorkingSet getWorkingSet() {
- return workingSet;
- }
-
- /**
- * Overrides method in Dialog
- *
- * @see org.eclipse.jface.dialogs.Dialog#okPressed()
- */
- protected void okPressed() {
- workingSet = workingSetArea.getWorkingSet();
- if (workingSet != null) {
- workingSetArea.useSelectedWorkingSet();
- }
- if (settings != null) {
- settings.put(SYNC_OUTGOING_CHANGES, outgoingChangesButton.getSelection());
- }
- super.okPressed();
- }
- /**
- * Sets the working set that should be selected in the most recently
- * used working set list.
- *
- * @param workingSet the working set that should be selected.
- * has to exist in the list returned by
- * org.eclipse.ui.IWorkingSetManager#getRecentWorkingSets().
- * Must not be null.
- */
- public void setWorkingSet(IWorkingSet workingSet) {
- this.workingSet = workingSet;
-
- if (workingSetArea != null) {
- workingSetArea.setWorkingSet(workingSet);
- }
- }
-
- protected Button createCheckbox(Composite parent, String label) {
- Button button = new Button(parent, SWT.CHECK | SWT.LEFT);
- button.setText(label);
- GridData data = new GridData();
- button.setLayoutData(data);
- return button;
- }
-
- protected Label createLabel(Composite composite, String text) {
- Label label = new Label(composite,SWT.NONE);
- if (text != null) {
- label.setText(text);
- }
- return label;
- }
-
- /**
- * @return boolean
- */
- public boolean isSyncOutgoingChanges() {
- return syncOutgoingChanges;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagAsVersionDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagAsVersionDialog.java
deleted file mode 100644
index 778cba445..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagAsVersionDialog.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.merge.TagElement;
-import org.eclipse.team.internal.ccvs.ui.merge.TagRootElement;
-import org.eclipse.team.internal.ccvs.ui.operations.ITagOperation;
-import org.eclipse.team.internal.ui.dialogs.DetailsDialog;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class TagAsVersionDialog extends DetailsDialog {
-
- private ITagOperation operation;
-
- private ICVSFolder folder;
-
- private Text tagText;
- private Button moveTagButton;
-
- private String tagName = ""; //$NON-NLS-1$
- private boolean moveTag = false;
-
- private static final int TABLE_HEIGHT_HINT = 150;
-
- private TableViewer existingVersionTable;
-
- public TagAsVersionDialog(Shell parentShell, String title, ITagOperation operation) {
- super(parentShell, title);
- this.folder = getFirstFolder(operation.getCVSResources());
- this.operation = operation;
- }
-
- private ICVSFolder getFirstFolder(ICVSResource[] resources) {
- if (resources[0].isFolder()) {
- return (ICVSFolder)resources[0];
- } else {
- return resources[0].getParent();
- }
- }
-
- /**
- * @see DetailsDialog#createMainDialogArea(Composite)
- */
- protected void createMainDialogArea(Composite parent) {
- // create message
- Label label = new Label(parent, SWT.WRAP);
- label.setText(Policy.bind("TagAction.enterTag")); //$NON-NLS-1$
- GridData data = new GridData(
- GridData.GRAB_HORIZONTAL |
- GridData.GRAB_VERTICAL |
- GridData.HORIZONTAL_ALIGN_FILL |
- GridData.VERTICAL_ALIGN_CENTER);
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);;
- label.setLayoutData(data);
-
- tagText = new Text(parent, SWT.SINGLE | SWT.BORDER);
- tagText.setLayoutData(new GridData(
- GridData.GRAB_HORIZONTAL |
- GridData.HORIZONTAL_ALIGN_FILL));
- tagText.addModifyListener(
- new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- tagName = tagText.getText();
- updateEnablements();
- }
- }
- );
-
- moveTagButton = new Button(parent, SWT.CHECK);
- moveTagButton.setText(Policy.bind("TagAction.moveTag")); //$NON-NLS-1$
- moveTagButton.setLayoutData(new GridData(
- GridData.GRAB_HORIZONTAL |
- GridData.GRAB_VERTICAL |
- GridData.HORIZONTAL_ALIGN_FILL |
- GridData.VERTICAL_ALIGN_CENTER));
-
- moveTagButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- moveTag = moveTagButton.getSelection();
- }
- });
-
- // Add F1 help
- WorkbenchHelp.setHelp(parent, IHelpContextIds.TAG_AS_VERSION_DIALOG);
- Dialog.applyDialogFont(parent);
- }
-
- public boolean shouldMoveTag() {
- return moveTag;
- }
-
- protected TableViewer createTable(Composite parent) {
- Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = TABLE_HEIGHT_HINT;
- table.setLayoutData(data);
- TableLayout layout = new TableLayout();
- layout.addColumnData(new ColumnWeightData(100, true));
- table.setLayout(layout);
- TableColumn col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- return new TableViewer(table);
- }
-
- /**
- * @see DetailsDialog#createDropDownDialogArea(Composite)
- */
- protected Composite createDropDownDialogArea(Composite parent) {
- // create a composite with standard margins and spacing
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Label label = new Label(composite, SWT.WRAP);
- label.setText(Policy.bind("TagAction.existingVersions")); //$NON-NLS-1$
- GridData data = new GridData(
- GridData.GRAB_HORIZONTAL |
- GridData.GRAB_VERTICAL |
- GridData.HORIZONTAL_ALIGN_FILL |
- GridData.VERTICAL_ALIGN_CENTER);
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);;
- label.setLayoutData(data);
-
- existingVersionTable = createTable(composite);
- existingVersionTable.setContentProvider(new WorkbenchContentProvider());
- existingVersionTable.setLabelProvider(new WorkbenchLabelProvider());
- existingVersionTable.setSorter(new ViewerSorter() {
- public int compare(Viewer v, Object o1, Object o2) {
- int result = super.compare(v, o1, o2);
- if (o1 instanceof TagElement && o2 instanceof TagElement) {
- return -result;
- }
- return result;
- }
- });
- existingVersionTable.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection)existingVersionTable.getSelection();
- if(!selection.isEmpty()) {
- TagElement element = (TagElement)((IStructuredSelection)existingVersionTable.getSelection()).getFirstElement();
- if(element!=null) {
- tagText.setText(element.getTag().getName());
- }
- }
- }
- });
-
- Runnable afterRefresh = new Runnable() {
- public void run() {
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- existingVersionTable.refresh();
- }
- });
- }
- };
-
- Runnable afterConfigure = new Runnable() {
- public void run() {
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- existingVersionTable.setInput(new TagRootElement(folder, CVSTag.VERSION));
- }
- });
- }
- };
-
- TagConfigurationDialog.createTagDefinitionButtons(getShell(), composite, new ICVSFolder[] {folder},
- convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT),
- convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH),
- afterRefresh, afterConfigure);
-
- existingVersionTable.setInput(new TagRootElement(folder, CVSTag.VERSION));
- Dialog.applyDialogFont(parent);
- return composite;
- }
-
- /**
- * Validates tag name
- */
- protected void updateEnablements() {
- String message = null;
- boolean exists = false;
- if(tagName.length() == 0) {
- message = ""; //$NON-NLS-1$
- } else {
- IStatus status = CVSTag.validateTagName(tagName);
- if (!status.isOK()) {
- message = status.getMessage();
- }
- }
- setPageComplete(message == null);
- setErrorMessage(message);
- }
-
- /**
- * Returns the tag name entered into this dialog
- */
- public String getTagName() {
- return tagName;
- }
-
- /**
- * @return
- */
- public ITagOperation getOperation() {
- operation.setTag(new CVSTag(tagName, CVSTag.VERSION));
- if (moveTag) {
- operation.moveTag();
- }
- return operation;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagConfigurationDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagConfigurationDialog.java
deleted file mode 100644
index 4a2fd0d11..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagConfigurationDialog.java
+++ /dev/null
@@ -1,795 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.ui.merge.ProjectElement;
-import org.eclipse.team.internal.ccvs.ui.merge.TagElement;
-import org.eclipse.team.internal.ccvs.ui.merge.ProjectElement.ProjectElementSorter;
-import org.eclipse.team.internal.ccvs.ui.model.CVSFileElement;
-import org.eclipse.team.internal.ccvs.ui.model.CVSFolderElement;
-import org.eclipse.team.internal.ccvs.ui.model.CVSRootFolderElement;
-import org.eclipse.team.internal.ccvs.ui.model.RemoteContentProvider;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Allows configuration of the CVS tags that are shown within the workbench.
- */
-public class TagConfigurationDialog extends Dialog {
-
- // show the resource contained within the roots
- private TreeViewer cvsResourceTree;
-
- // shows the tags found on the selected resources
- private CheckboxTableViewer cvsTagTree;
-
- // shows the defined tags for the given root
- private TreeViewer cvsDefinedTagsTree;
-
- // remember the root element in the defined tags tree
- private ProjectElement cvsDefinedTagsRootElement;
-
- // list of auto-refresh files
- private org.eclipse.swt.widgets.List autoRefreshFileList;
-
- // folders from which their children files can be examined for tags
- private ICVSFolder[] roots;
- private ICVSFolder root;
-
- // enable selecting auto-refresh files
- private boolean allowSettingAutoRefreshFiles = true;
-
- // preference keys
- private final String ALLOWREFRESH_WIDTH_KEY = "AllowRefreshWidth"; //$NON-NLS-1$
- private final String ALLOWREFRESH_HEIGHT_KEY = "AllowRefreshHeight"; //$NON-NLS-1$
- private final String NOREFRESH_WIDTH_KEY = "NoRefreshWidth"; //$NON-NLS-1$
- private final String NOREFRESH_HEIGHT_KEY = "NoRefreshHeight"; //$NON-NLS-1$
-
- // buttons
- private Button addSelectedTagsButton;
- private Button addSelectedFilesButton;
- private Button removeFileButton;
- private Button removeTagButton;
-
- // dialogs settings that are persistent between workbench sessions
- private IDialogSettings settings;
-
- class FileSorter extends ViewerSorter {
- public int compare(Viewer viewer, Object e1, Object e2) {
- boolean oneIsFile = e1 instanceof CVSFileElement;
- boolean twoIsFile = e2 instanceof CVSFileElement;
- if (oneIsFile != twoIsFile) {
- return oneIsFile ? 1 : -1;
- }
- return super.compare(viewer, e1, e2);
- }
- }
-
- public TagConfigurationDialog(Shell shell, ICVSFolder[] roots) {
- super(shell);
- setShellStyle(SWT.CLOSE|SWT.RESIZE|SWT.APPLICATION_MODAL);
- this.roots = roots;
- this.root = roots[0];
- if(roots.length>1) {
- allowSettingAutoRefreshFiles = false;
- }
-
- IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings();
- this.settings = workbenchSettings.getSection("TagConfigurationDialog");//$NON-NLS-1$
- if (settings == null) {
- this.settings = workbenchSettings.addNewSection("TagConfigurationDialog");//$NON-NLS-1$
- }
- }
-
- /**
- * @see Window#configureShell(Shell)
- */
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- if(roots.length==1) {
- newShell.setText(Policy.bind("TagConfigurationDialog.1", roots[0].getName())); //$NON-NLS-1$
- } else {
- newShell.setText(Policy.bind("TagConfigurationDialog.2", Integer.toString(roots.length))); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /**
- * @see Dialog#createDialogArea(Composite)
- */
- protected Control createDialogArea(Composite parent) {
- Composite shell = new Composite(parent, SWT.NONE);
- GridData data = new GridData (GridData.FILL_BOTH);
- shell.setLayoutData(data);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 2;
- gridLayout.makeColumnsEqualWidth = true;
- gridLayout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- gridLayout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- shell.setLayout (gridLayout);
-
- Composite comp = new Composite(shell, SWT.NULL);
- gridLayout = new GridLayout();
- gridLayout.numColumns = 1;
- gridLayout.marginWidth = 0;
- gridLayout.marginHeight = 0;
- comp.setLayout(gridLayout);
- comp.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Label cvsResourceTreeLabel = new Label(comp, SWT.NONE);
- cvsResourceTreeLabel.setText(Policy.bind("TagConfigurationDialog.5")); //$NON-NLS-1$
- data = new GridData();
- data.horizontalSpan = 1;
- cvsResourceTreeLabel.setLayoutData(data);
-
- Tree tree = new Tree(comp, SWT.BORDER | SWT.MULTI);
- cvsResourceTree = new TreeViewer (tree);
- cvsResourceTree.setContentProvider(new RemoteContentProvider());
- cvsResourceTree.setLabelProvider(new WorkbenchLabelProvider());
- data = new GridData (GridData.FILL_BOTH);
- data.heightHint = 150;
- data.horizontalSpan = 1;
- cvsResourceTree.getTree().setLayoutData(data);
- if(roots.length==1) {
- cvsResourceTree.setInput(new CVSFolderElement(roots[0], false /*don't include unmanaged resources*/));
- } else {
- cvsResourceTree.setInput(new CVSRootFolderElement(roots));
- }
- cvsResourceTree.setSorter(new FileSorter());
- cvsResourceTree.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updateShownTags();
- updateEnablements();
- }
- });
-
-
- comp = new Composite(shell, SWT.NULL);
- gridLayout = new GridLayout();
- gridLayout.numColumns = 1;
- gridLayout.marginWidth = 0;
- gridLayout.marginHeight = 0;
- comp.setLayout(gridLayout);
- comp.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Label cvsTagTreeLabel = new Label(comp, SWT.NONE);
- cvsTagTreeLabel.setText(Policy.bind("TagConfigurationDialog.6")); //$NON-NLS-1$
- data = new GridData();
- data.horizontalSpan = 1;
- cvsTagTreeLabel.setLayoutData(data);
-
- final Table table = new Table(comp, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.CHECK);
- data = new GridData(GridData.FILL_BOTH);
- data.heightHint = 150;
- data.horizontalSpan = 1;
- table.setLayoutData(data);
- TableLayout layout = new TableLayout();
- layout.addColumnData(new ColumnWeightData(60, true));
- table.setLayout(layout);
- TableColumn col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
- cvsTagTree = new CheckboxTableViewer(table);
- cvsTagTree.setContentProvider(new WorkbenchContentProvider());
- cvsTagTree.setLabelProvider(new WorkbenchLabelProvider());
- cvsTagTree.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updateEnablements();
- }
- });
-
- Composite selectComp = new Composite(comp, SWT.NONE);
- GridLayout selectLayout = new GridLayout(2, true);
- selectLayout.marginHeight = selectLayout.marginWidth = 0;
- selectComp.setLayout(selectLayout);
- selectComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- Button selectAllButton = new Button(selectComp, SWT.PUSH);
- selectAllButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- selectAllButton.setText(Policy.bind("ReleaseCommentDialog.selectAll")); //$NON-NLS-1$
- selectAllButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int nItems = table.getItemCount();
- for (int j=0; j<nItems; j++)
- table.getItem(j).setChecked(true);
- }
- });
- Button deselectAllButton = new Button(selectComp, SWT.PUSH);
- deselectAllButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- deselectAllButton.setText(Policy.bind("ReleaseCommentDialog.deselectAll")); //$NON-NLS-1$
- deselectAllButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int nItems = table.getItemCount();
- for (int j=0; j<nItems; j++)
- table.getItem(j).setChecked(false);
- }
- });
-
- cvsTagTree.setSorter(new ViewerSorter() {
- public int compare(Viewer viewer, Object e1, Object e2) {
- if (!(e1 instanceof TagElement) || !(e2 instanceof TagElement)) return super.compare(viewer, e1, e2);
- CVSTag tag1 = ((TagElement)e1).getTag();
- CVSTag tag2 = ((TagElement)e2).getTag();
- int type1 = tag1.getType();
- int type2 = tag2.getType();
- if (type1 != type2) {
- return type1 - type2;
- }
- // Sort in reverse order so larger numbered versions are at the top
- return -tag1.compareTo(tag2);
- }
- });
-
- Composite rememberedTags = new Composite(shell, SWT.NONE);
- data = new GridData (GridData.FILL_BOTH);
- data.horizontalSpan = 2;
- rememberedTags.setLayoutData(data);
- gridLayout = new GridLayout();
- gridLayout.numColumns = 2;
- gridLayout.marginHeight = 0;
- gridLayout.marginWidth = 0;
- rememberedTags.setLayout (gridLayout);
-
- Label rememberedTagsLabel = new Label (rememberedTags, SWT.NONE);
- rememberedTagsLabel.setText (Policy.bind("TagConfigurationDialog.7")); //$NON-NLS-1$
- data = new GridData ();
- data.horizontalSpan = 2;
- rememberedTagsLabel.setLayoutData (data);
-
- tree = new Tree(rememberedTags, SWT.BORDER | SWT.MULTI);
- cvsDefinedTagsTree = new TreeViewer (tree);
- cvsDefinedTagsTree.setContentProvider(new WorkbenchContentProvider());
- cvsDefinedTagsTree.setLabelProvider(new WorkbenchLabelProvider());
- data = new GridData (GridData.FILL_BOTH);
- data.heightHint = 100;
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- cvsDefinedTagsTree.getTree().setLayoutData(data);
- cvsDefinedTagsRootElement = new ProjectElement(roots[0], ProjectElement.INCLUDE_BRANCHES | ProjectElement.INCLUDE_VERSIONS);
- cvsDefinedTagsRootElement.getBranches().add(CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(root, CVSTag.BRANCH));
- cvsDefinedTagsRootElement.getVersions().add(CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(root, CVSTag.VERSION));
- cvsDefinedTagsTree.setInput(cvsDefinedTagsRootElement);
- cvsDefinedTagsTree.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updateEnablements();
- }
- });
- cvsDefinedTagsTree.setSorter(new ProjectElementSorter());
-
- Composite buttonComposite = new Composite(rememberedTags, SWT.NONE);
- data = new GridData ();
- data.verticalAlignment = GridData.BEGINNING;
- buttonComposite.setLayoutData(data);
- gridLayout = new GridLayout();
- gridLayout.marginHeight = 0;
- gridLayout.marginWidth = 0;
- buttonComposite.setLayout (gridLayout);
-
- addSelectedTagsButton = new Button (buttonComposite, SWT.PUSH);
- addSelectedTagsButton.setText (Policy.bind("TagConfigurationDialog.8")); //$NON-NLS-1$
- data = getStandardButtonData(addSelectedTagsButton);
- data.horizontalAlignment = GridData.FILL;
- addSelectedTagsButton.setLayoutData(data);
- addSelectedTagsButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- rememberCheckedTags();
- updateShownTags();
- updateEnablements();
- }
- });
-
- removeTagButton = new Button (buttonComposite, SWT.PUSH);
- removeTagButton.setText (Policy.bind("TagConfigurationDialog.9")); //$NON-NLS-1$
- data = getStandardButtonData(removeTagButton);
- data.horizontalAlignment = GridData.FILL;
- removeTagButton.setLayoutData(data);
- removeTagButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- deleteSelected();
- updateShownTags();
- updateEnablements();
- }
- });
-
- Button removeAllTags = new Button (buttonComposite, SWT.PUSH);
- removeAllTags.setText (Policy.bind("TagConfigurationDialog.10")); //$NON-NLS-1$
- data = getStandardButtonData(removeAllTags);
- data.horizontalAlignment = GridData.FILL;
- removeAllTags.setLayoutData(data);
- removeAllTags.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- removeAllKnownTags();
- updateShownTags();
- updateEnablements();
- }
- });
-
- if(allowSettingAutoRefreshFiles) {
- Label explanation = new Label(rememberedTags, SWT.WRAP);
- explanation.setText(Policy.bind("TagConfigurationDialog.11")); //$NON-NLS-1$
- data = new GridData ();
- data.horizontalSpan = 2;
- //data.widthHint = 300;
- explanation.setLayoutData(data);
-
- autoRefreshFileList = new org.eclipse.swt.widgets.List(rememberedTags, SWT.BORDER | SWT.MULTI);
- data = new GridData ();
- data.heightHint = 45;
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- autoRefreshFileList.setLayoutData(data);
- try {
- autoRefreshFileList.setItems(CVSUIPlugin.getPlugin().getRepositoryManager().getAutoRefreshFiles(roots[0]));
- } catch (CVSException e) {
- autoRefreshFileList.setItems(new String[0]);
- CVSUIPlugin.log(e);
- }
- autoRefreshFileList.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- updateEnablements();
- }
- public void widgetDefaultSelected(SelectionEvent e) {
- updateEnablements();
- }
- });
-
- Composite buttonComposite2 = new Composite(rememberedTags, SWT.NONE);
- data = new GridData ();
- data.verticalAlignment = GridData.BEGINNING;
- buttonComposite2.setLayoutData(data);
- gridLayout = new GridLayout();
- gridLayout.marginHeight = 0;
- gridLayout.marginWidth = 0;
- buttonComposite2.setLayout (gridLayout);
-
- addSelectedFilesButton = new Button (buttonComposite2, SWT.PUSH);
- addSelectedFilesButton.setText (Policy.bind("TagConfigurationDialog.12")); //$NON-NLS-1$
- data = getStandardButtonData(addSelectedFilesButton);
- data.horizontalAlignment = GridData.FILL;
- addSelectedFilesButton.setLayoutData(data);
- addSelectedFilesButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- addSelectionToAutoRefreshList();
- }
- });
-
- removeFileButton = new Button (buttonComposite2, SWT.PUSH);
- removeFileButton.setText (Policy.bind("TagConfigurationDialog.13")); //$NON-NLS-1$
- data = getStandardButtonData(removeFileButton);
- data.horizontalAlignment = GridData.FILL;
- removeFileButton.setLayoutData(data);
- removeFileButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- String[] selected = autoRefreshFileList.getSelection();
- for (int i = 0; i < selected.length; i++) {
- autoRefreshFileList.remove(selected[i]);
- autoRefreshFileList.setFocus();
- }
- }
- });
- WorkbenchHelp.setHelp(autoRefreshFileList, IHelpContextIds.TAG_CONFIGURATION_REFRESHLIST);
- }
-
- Label seperator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
- data = new GridData (GridData.FILL_BOTH);
- data.horizontalSpan = 2;
- seperator.setLayoutData(data);
-
- WorkbenchHelp.setHelp(shell, IHelpContextIds.TAG_CONFIGURATION_OVERVIEW);
-
- updateEnablements();
- Dialog.applyDialogFont(parent);
- return shell;
- }
-
- private void updateShownTags() {
- final CVSFileElement[] filesSelection = getSelectedFiles();
- final Set tags = new HashSet();
- if(filesSelection.length!=0) {
- try {
- CVSUIPlugin.runWithProgress(getShell(), true /*cancelable*/, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- monitor.beginTask(Policy.bind("TagConfigurationDialog.22"), filesSelection.length); //$NON-NLS-1$
- try {
- for (int i = 0; i < filesSelection.length; i++) {
- ICVSFile file = filesSelection[i].getCVSFile();
- tags.addAll(Arrays.asList(getTagsFor(file, Policy.subMonitorFor(monitor, 1))));
- }
- } catch (TeamException e) {
- // ignore the exception
- } finally {
- monitor.done();
- }
- }
- });
- } catch (InterruptedException e) {
- // operation cancelled
- } catch (InvocationTargetException e) {
- // can't happen since we're ignoring all possible exceptions
- }
- cvsTagTree.getTable().removeAll();
- for (Iterator it = tags.iterator(); it.hasNext();) {
- CVSTag tag = (CVSTag) it.next();
- List knownTags = new ArrayList();
- knownTags.addAll(Arrays.asList(cvsDefinedTagsRootElement.getBranches().getTags()));
- knownTags.addAll(Arrays.asList(cvsDefinedTagsRootElement.getVersions().getTags()));
- if(!knownTags.contains(tag)) {
- TagElement tagElem = new TagElement(tag);
- cvsTagTree.add(tagElem);
- cvsTagTree.setChecked(tagElem, true);
- }
- }
- }
- }
-
- private CVSFileElement[] getSelectedFiles() {
- IStructuredSelection selection = (IStructuredSelection)cvsResourceTree.getSelection();
- if (!selection.isEmpty()) {
- final List filesSelection = new ArrayList();
- Iterator it = selection.iterator();
- while(it.hasNext()) {
- Object o = it.next();
- if(o instanceof CVSFileElement) {
- filesSelection.add(o);
- }
- }
- return (CVSFileElement[]) filesSelection.toArray(new CVSFileElement[filesSelection.size()]);
- }
- return new CVSFileElement[0];
- }
-
- private void addSelectionToAutoRefreshList() {
- IStructuredSelection selection = (IStructuredSelection)cvsResourceTree.getSelection();
- if (!selection.isEmpty()) {
- final List filesSelection = new ArrayList();
- Iterator it = selection.iterator();
- while(it.hasNext()) {
- Object o = it.next();
- if(o instanceof CVSFileElement) {
- filesSelection.add(o);
- }
- }
- if(!filesSelection.isEmpty()) {
- for (it = filesSelection.iterator(); it.hasNext();) {
- try {
- ICVSFile file = ((CVSFileElement)it.next()).getCVSFile();
- ICVSFolder fileParent = file.getParent();
- String filePath = new Path(fileParent.getFolderSyncInfo().getRepository())
- .append(file.getRelativePath(fileParent)).toString();
- if(autoRefreshFileList.indexOf(filePath)==-1) {
- autoRefreshFileList.add(filePath);
- }
- } catch(CVSException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
- }
- }
- }
- }
-
- private CVSTag[] getTagsFor(ICVSFile file, IProgressMonitor monitor) throws TeamException {
- Set tagSet = new HashSet();
- ILogEntry[] entries = file.getLogEntries(monitor);
- for (int j = 0; j < entries.length; j++) {
- CVSTag[] tags = entries[j].getTags();
- for (int k = 0; k < tags.length; k++) {
- tagSet.add(tags[k]);
- }
- }
- return (CVSTag[])tagSet.toArray(new CVSTag[tagSet.size()]);
- }
-
- private void rememberCheckedTags() {
- Object[] checked = cvsTagTree.getCheckedElements();
- for (int i = 0; i < checked.length; i++) {
- CVSTag tag = ((TagElement)checked[i]).getTag();
- if(tag.getType() == CVSTag.BRANCH) {
- cvsDefinedTagsRootElement.getBranches().add(new CVSTag[] {tag});
- } else {
- cvsDefinedTagsRootElement.getVersions().add(new CVSTag[] {tag});
- }
- }
- cvsDefinedTagsTree.refresh();
- }
-
- private void deleteSelected() {
- IStructuredSelection selection = (IStructuredSelection)cvsDefinedTagsTree.getSelection();
- if (!selection.isEmpty()) {
- Iterator it = selection.iterator();
- while(it.hasNext()) {
- Object o = it.next();
- if(o instanceof TagElement) {
- CVSTag tag = ((TagElement)o).getTag();
- if(tag.getType() == CVSTag.BRANCH) {
- cvsDefinedTagsRootElement.getBranches().remove(tag);
- } else if(tag.getType()==CVSTag.VERSION) {
- cvsDefinedTagsRootElement.getVersions().remove(tag);
- }
- }
- }
- }
- cvsDefinedTagsTree.refresh();
- cvsDefinedTagsTree.getTree().setFocus();
- }
-
- private boolean isTagSelectedInKnownTagTree() {
- IStructuredSelection selection = (IStructuredSelection)cvsDefinedTagsTree.getSelection();
- if (!selection.isEmpty()) {
- final List versions = new ArrayList();
- final List branches = new ArrayList();
- Iterator it = selection.iterator();
- while(it.hasNext()) {
- Object o = it.next();
- if(o instanceof TagElement) {
- return true;
- }
- }
- }
- return false;
- }
-
- private void removeAllKnownTags() {
- cvsDefinedTagsRootElement.getBranches().removeAll();
- cvsDefinedTagsRootElement.getVersions().removeAll();
- cvsDefinedTagsTree.refresh();
- }
-
- private void updateEnablements() {
- // add checked tags
- Object[] checked = cvsTagTree.getCheckedElements();
- addSelectedTagsButton.setEnabled(checked.length!=0?true:false);
-
- // Remove known tags
- removeTagButton.setEnabled(isTagSelectedInKnownTagTree()?true:false);
-
- if(allowSettingAutoRefreshFiles) {
- // add selected files
- addSelectedFilesButton.setEnabled(getSelectedFiles().length!=0?true:false);
-
- // remove auto refresh files
- removeFileButton.setEnabled(autoRefreshFileList.getSelection().length!=0?true:false);
- }
- }
-
- /**
- * @see Dialog#okPressed()
- */
- protected void okPressed() {
- try {
- // save auto refresh file names
- if(allowSettingAutoRefreshFiles) {
- RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- manager.setAutoRefreshFiles(root, autoRefreshFileList.getItems());
- }
-
- // save defined tags and update all project with the same version tags
- final RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- manager.run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- CVSTag[] branches = cvsDefinedTagsRootElement.getBranches().getTags();
- CVSTag[] versions = cvsDefinedTagsRootElement.getVersions().getTags();
- try {
- for(int i = 0; i < roots.length; i++) {
- CVSTag[] oldTags = manager.getKnownTags(roots[i]);
- manager.removeTags(roots[i], oldTags);
- if(branches.length > 0) {
- manager.addTags(roots[i], branches);
- }
- if(versions.length>0) {
- manager.addTags(roots[i], versions);
- }
- }
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, null);
-
- super.okPressed();
- } catch (CVSException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- } catch (InterruptedException e) {
- }
- }
-
- /*
- * Returns a button that implements the standard refresh tags operation. The runnable is run immediatly after
- * the tags are fetched from the server. A client should refresh their widgets that show tags because they
- * may of changed.
- */
- private static Button createTagRefreshButton(final Shell shell, Composite composite, String title, final ICVSFolder folder, final Runnable runnable) {
- Button refreshButton = new Button(composite, SWT.PUSH);
- refreshButton.setText (title);
- refreshButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- try {
- CVSUIPlugin.runWithProgress(shell, true /*cancelable*/, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- CVSUIPlugin.getPlugin().getRepositoryManager().refreshDefinedTags(folder, false /* replace */, true, monitor);
- runnable.run();
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InterruptedException e) {
- // operation cancelled
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(shell, Policy.bind("TagConfigurationDialog.14"), null, e); //$NON-NLS-1$
- }
- }
- });
- updateEnablementOnRefreshButton(refreshButton, folder);
- return refreshButton;
- }
-
- public static void createTagDefinitionButtons(final Shell shell, Composite composite, final ICVSFolder[] folders, int hHint, int wHint, final Runnable afterRefresh, final Runnable afterConfigure) {
- Composite buttonComp = new Composite(composite, SWT.NONE);
- GridData data = new GridData ();
- data.horizontalAlignment = GridData.END;
- buttonComp.setLayoutData(data);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- buttonComp.setLayout (layout);
-
- final Button refreshButton = TagConfigurationDialog.createTagRefreshButton(shell, buttonComp, Policy.bind("TagConfigurationDialog.20"), folders[0], afterRefresh); //$NON-NLS-1$
- data = new GridData();
- if(hHint!=0 && wHint!=0) {
- data.heightHint = hHint;
- //don't crop labels with large font
- //int widthHint = wHint;
- //data.widthHint = Math.max(widthHint, refreshButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
- }
- data.horizontalAlignment = GridData.END;
- data.horizontalSpan = 1;
- refreshButton.setLayoutData (data);
-
- Button addButton = new Button(buttonComp, SWT.PUSH);
- addButton.setText (Policy.bind("TagConfigurationDialog.21")); //$NON-NLS-1$
- data = new GridData ();
- if(hHint!=0 && wHint!=0) {
- data.heightHint = hHint;
- //don't crop labels with large font
- //int widthHint = wHint;
- //data.widthHint = Math.max(widthHint, addButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
- }
- data.horizontalAlignment = GridData.END;
- data.horizontalSpan = 1;
- addButton.setLayoutData (data);
- addButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- TagConfigurationDialog d = new TagConfigurationDialog(shell, folders);
- d.open();
- updateEnablementOnRefreshButton(refreshButton, folders[0]);
- afterConfigure.run();
- }
- });
-
- WorkbenchHelp.setHelp(refreshButton, IHelpContextIds.TAG_CONFIGURATION_REFRESHACTION);
- WorkbenchHelp.setHelp(addButton, IHelpContextIds.TAG_CONFIGURATION_OVERVIEW);
- }
-
- private static void updateEnablementOnRefreshButton(Button refreshButton, ICVSFolder project) {
- try {
- String[] files = CVSUIPlugin.getPlugin().getRepositoryManager().getAutoRefreshFiles(project);
- refreshButton.setEnabled(files.length != 0);
- } catch (CVSException e) {
- refreshButton.setEnabled(false);
- CVSUIPlugin.log(e);
- }
-
- }
-
- /**
- * @see Window#getInitialSize()
- */
- protected Point getInitialSize() {
- int width, height;
- if(allowSettingAutoRefreshFiles) {
- try {
- height = settings.getInt(ALLOWREFRESH_HEIGHT_KEY);
- width = settings.getInt(ALLOWREFRESH_WIDTH_KEY);
- } catch(NumberFormatException e) {
- return super.getInitialSize();
- }
- } else {
- try {
- height = settings.getInt(NOREFRESH_HEIGHT_KEY);
- width = settings.getInt(NOREFRESH_WIDTH_KEY);
- } catch(NumberFormatException e) {
- return super.getInitialSize();
- }
- }
- return new Point(width, height);
- }
-
- /**
- * @see Dialog#cancelPressed()
- */
- protected void cancelPressed() {
- super.cancelPressed();
- }
-
- private GridData getStandardButtonData(Button button) {
- GridData data = new GridData();
- data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
- //don't crop labels with large font
- //int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- //data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
- return data;
- }
-
- /**
- * @see Window#close()
- */
- public boolean close() {
- Rectangle bounds = getShell().getBounds();
- if(allowSettingAutoRefreshFiles) {
- settings.put(ALLOWREFRESH_HEIGHT_KEY, bounds.height);
- settings.put(ALLOWREFRESH_WIDTH_KEY, bounds.width);
- } else {
- settings.put(NOREFRESH_HEIGHT_KEY, bounds.height);
- settings.put(NOREFRESH_WIDTH_KEY, bounds.width);
- }
- return super.close();
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagSelectionDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagSelectionDialog.java
deleted file mode 100644
index 109bd5e43..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagSelectionDialog.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.merge.ProjectElement;
-import org.eclipse.team.internal.ccvs.ui.merge.TagElement;
-import org.eclipse.team.internal.ccvs.ui.merge.ProjectElement.ProjectElementSorter;
-import org.eclipse.team.internal.ccvs.ui.repo.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Dialog to prompt the user to choose a tag for a selected resource
- */
-public class TagSelectionDialog extends Dialog {
- private ICVSFolder[] folders;
- private int includeFlags;
- private CVSTag result;
- private String helpContext;
-
- public static final int INCLUDE_HEAD_TAG = ProjectElement.INCLUDE_HEAD_TAG;
- public static final int INCLUDE_BASE_TAG = ProjectElement.INCLUDE_BASE_TAG;
- public static final int INCLUDE_BRANCHES = ProjectElement.INCLUDE_BRANCHES;
- public static final int INCLUDE_VERSIONS = ProjectElement.INCLUDE_VERSIONS;
- public static final int INCLUDE_ALL_TAGS = ProjectElement.INCLUDE_ALL_TAGS;
-
- // widgets;
- private TreeViewer tagTree;
- private Button okButton;
-
- // dialog title, should indicate the action in which the tag selection
- // dialog is being shown
- private String title;
- private String message;
-
- private boolean recurse = true;
- private boolean showRecurse;
-
- // constants
- private static final int SIZING_DIALOG_WIDTH = 400;
- private static final int SIZING_DIALOG_HEIGHT = 250;
-
- public static CVSTag getTagToCompareWith(Shell shell, IProject[] projects) {
- return getTagToCompareWith(shell, getCVSFoldersFor(projects));
- }
-
- public static CVSTag getTagToCompareWith(Shell shell, ICVSFolder[] folders) {
- TagSelectionDialog dialog = new TagSelectionDialog(shell, folders,
- Policy.bind("CompareWithTagAction.message"), //$NON-NLS-1$
- Policy.bind("TagSelectionDialog.Select_a_Tag_1"), //$NON-NLS-1$
- TagSelectionDialog.INCLUDE_ALL_TAGS,
- false, /* show recurse*/
- IHelpContextIds.COMPARE_TAG_SELECTION_DIALOG);
- dialog.setBlockOnOpen(true);
- int result = dialog.open();
- if (result == Dialog.CANCEL) {
- return null;
- }
- return dialog.getResult();
- }
- /**
- * Creates a new TagSelectionDialog.
- * @param resource The resource to select a version for.
- */
- public TagSelectionDialog(Shell parentShell, IProject[] projects, String title, String message, int includeFlags, boolean showRecurse, String helpContext) {
- this(parentShell, getCVSFoldersFor(projects), title, message, includeFlags, showRecurse, helpContext); //$NON-NLS-1$
- }
-
- private static ICVSFolder[] getCVSFoldersFor(IProject[] projects) {
- ICVSFolder[] folders = new ICVSFolder[projects.length];
- for (int i = 0; i < projects.length; i++) {
- folders[i] = CVSWorkspaceRoot.getCVSFolderFor(projects[i]);
- }
- return folders;
- }
-
- /**
- * Creates a new TagSelectionDialog.
- * @param resource The resource to select a version for.
- */
- public TagSelectionDialog(Shell parentShell, ICVSFolder[] folders, String title, String message, int includeFlags, boolean showRecurse, String helpContext) {
- super(parentShell);
- this.folders = folders;
- this.title = title;
- this.message = message;
- this.includeFlags = includeFlags;
- this.showRecurse = showRecurse;
- this.helpContext = helpContext;
- setShellStyle(getShellStyle() | SWT.RESIZE);
- }
-
- /* (non-Javadoc)
- * Method declared on Window.
- */
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(title);
- }
-
- /**
- * Creates this window's widgetry.
- * <p>
- * The default implementation of this framework method
- * creates this window's shell (by calling <code>createShell</code>),
- * its control (by calling <code>createContents</code>),
- * and initializes this window's shell bounds
- * (by calling <code>initializeBounds</code>).
- * This framework method may be overridden; however,
- * <code>super.create</code> must be called.
- * </p>
- */
- public void create() {
- super.create();
- initialize();
- }
-
- /**
- * Add buttons to the dialog's button bar.
- *
- * @param parent the button bar composite
- */
- protected void createButtonsForButtonBar(Composite parent) {
- // create OK and Cancel buttons by default
- okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
- okButton.setEnabled(false);
- createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
- }
-
- /**
- * Creates and returns the contents of the upper part
- * of this dialog (above the button bar).
- * <p>
- * The default implementation of this framework method
- * creates and returns a new <code>Composite</code> with
- * standard margins and spacing.
- * Subclasses should override.
- * </p>
- *
- * @param the parent composite to contain the dialog area
- * @return the dialog area control
- */
- protected Control createDialogArea(Composite parent) {
- Composite top = (Composite)super.createDialogArea(parent);
- // Add F1 help
- if (helpContext != null) {
- WorkbenchHelp.setHelp(top, helpContext);
- }
- Composite inner = new Composite(top, SWT.NULL);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.widthHint = SIZING_DIALOG_WIDTH;
- data.heightHint = SIZING_DIALOG_HEIGHT;
- inner.setLayoutData(data);
- GridLayout layout = new GridLayout();
- inner.setLayout(layout);
-
- Label l = new Label (inner, SWT.NONE);
- l.setText(message); //$NON-NLS-1$
-
- tagTree = createTree(inner);
- tagTree.setInput(new ProjectElement(folders[0], includeFlags));
- tagTree.setSorter(new ProjectElementSorter());
- Runnable refresh = new Runnable() {
- public void run() {
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- tagTree.refresh();
- }
- });
- }
- };
-
- if(showRecurse) {
- final Button recurseCheck = new Button(top, SWT.CHECK);
- recurseCheck.setText(Policy.bind("TagSelectionDialog.recurseOption")); //$NON-NLS-1$
- recurseCheck.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- recurse = recurseCheck.getSelection();
- }
- });
- recurseCheck.setSelection(true);
- }
-
-
- TagConfigurationDialog.createTagDefinitionButtons(getShell(), top, folders,
- convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT),
- convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH),
- refresh, refresh);
-
- Label seperator = new Label(top, SWT.SEPARATOR | SWT.HORIZONTAL);
- data = new GridData (GridData.FILL_BOTH);
- data.horizontalSpan = 2;
- seperator.setLayoutData(data);
-
- updateEnablement();
- Dialog.applyDialogFont(parent);
-
- return top;
- }
-
-
- /**
- * 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;
- }
-
- protected TreeViewer createTree(Composite parent) {
- Tree tree = new Tree(parent, SWT.SINGLE | SWT.BORDER);
- tree.setLayoutData(new GridData(GridData.FILL_BOTH));
- TreeViewer result = new TreeViewer(tree);
- result.setContentProvider(new WorkbenchContentProvider());
- result.setLabelProvider(new WorkbenchLabelProvider());
- result.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updateEnablement();
- }
- });
- // select and close on double click
- // To do: use defaultselection instead of double click
- result.getTree().addMouseListener(new MouseAdapter() {
- public void mouseDoubleClick(MouseEvent e) {
- IStructuredSelection selection = (IStructuredSelection)tagTree.getSelection();
- if (!selection.isEmpty() && (selection.getFirstElement() instanceof TagElement)) {
- okPressed();
- }
- }
- });
- result.setSorter(new RepositorySorter());
- return result;
- }
-
- /**
- * Returns the selected tag.
- */
- public CVSTag getResult() {
- return result;
- }
-
- public boolean getRecursive() {
- return recurse;
- }
-
- /**
- * Initializes the dialog contents.
- */
- protected void initialize() {
- okButton.setEnabled(false);
- }
-
- /**
- * Notifies that the ok button of this dialog has been pressed.
- * <p>
- * The default implementation of this framework method sets
- * this dialog's return code to <code>Window.OK</code>
- * and closes the dialog. Subclasses may override.
- * </p>
- */
- protected void okPressed() {
- IStructuredSelection selection = (IStructuredSelection)tagTree.getSelection();
- Object o = selection.getFirstElement();
- TagElement element = (TagElement)o;
- result = element.getTag();
- super.okPressed();
- }
-
-
- /**
- * Updates the dialog enablement.
- */
- protected void updateEnablement() {
- if(okButton!=null) {
- IStructuredSelection selection = (IStructuredSelection)tagTree.getSelection();
- if (selection.isEmpty() || !(selection.getFirstElement() instanceof TagElement)) {
- okButton.setEnabled(false);
- } else {
- okButton.setEnabled(true);
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java
deleted file mode 100644
index 5e3317424..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.DirectoryDialog;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.SelectionDialog;
-
-/**
- * Select the target location that will be the parent of the selected projects.
- * The behavior of the dialog differs between 1 project and multiple projects.
- * For one project, the location specified is the location of the project and
- * the project name can be modified. For multiple projects, it is the parent
- * location which is specified.
- */
-public class TagetLocationSelectionDialog extends SelectionDialog {
-
- // widgets
- private Text projectNameField;
- private Text locationPathField;
- private Label locationLabel;
- private Label statusMessageLabel;
- private Button browseButton;
-
- // state
- private boolean useDefaults = true;
- private IProject[] targetProjects;
- private String newProjectName;
- private String targetLocation;
-
- // constants
- private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
- /**
- * Constructor.
- * @param parentShell
- */
- public TagetLocationSelectionDialog(Shell parentShell, String title, IProject targetProject) {
- this(parentShell, title, new IProject[] { targetProject });
- }
-
- /**
- * Constructor.
- * @param parentShell
- */
- public TagetLocationSelectionDialog(Shell parentShell, String title, IProject[] targetProjects) {
- super(parentShell);
- setTitle(title);
- this.targetProjects = targetProjects;
- if (targetProjects.length == 1) newProjectName = targetProjects[0].getName();
- }
-
- /* (non-Javadoc)
- * Method declared on Dialog.
- */
- protected Control createDialogArea(Composite parent) {
- // page group
- Composite composite = (Composite) super.createDialogArea(parent);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- if (isSingleCheckout())
- createProjectNameGroup(composite);
- createProjectLocationGroup(composite);
-
- //Add in a label for status messages if required
- statusMessageLabel = new Label(composite, SWT.NONE);
- statusMessageLabel.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Dialog.applyDialogFont(parent);
- return composite;
- }
-
- /**
- * Creates the project name specification controls.
- *
- * @param parent the parent composite
- */
- private void createProjectNameGroup(Composite parent) {
- // project specification group
- Composite projectGroup = new Composite(parent,SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- projectGroup.setLayout(layout);
- projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // new project label
- Label projectLabel = new Label(projectGroup,SWT.NONE);
- projectLabel.setText(Policy.bind("TargetLocationSelectionDialog.projectNameLabel")); //$NON-NLS-1$
-
- // new project name entry field
- projectNameField = new Text(projectGroup, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = SIZING_TEXT_FIELD_WIDTH;
- projectNameField.setLayoutData(data);
-
- // Set the initial value first before listener
- // to avoid handling an event during the creation.
- projectNameField.setText(getNewProjectName());
- projectNameField.selectAll();
-
- createNameListener();
-
- }
-
- /**
- * Create the listener that is used to validate the entries for the receiver
- */
- private void createNameListener() {
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- newProjectName = projectNameField.getText();
- setLocationForSelection(false);
- applyValidationResult(checkValid());
- }
- };
-
- this.projectNameField.addListener(SWT.Modify, listener);
- }
-
- /**
- * Set the location to the default location if we are set to useDefaults.
- */
- private void setLocationForSelection(boolean changed) {
- if (useDefaults) {
- IPath defaultPath = null;
- if (isSingleCheckout()) {
- try {
- defaultPath = getSingleProject().getDescription().getLocation();
- } catch (CoreException e) {
- // ignore
- }
- if (defaultPath == null) {
- defaultPath = Platform.getLocation().append(getSingleProject().getName());
- }
- } else {
- defaultPath = Platform.getLocation();
- }
- locationPathField.setText(defaultPath.toOSString());
- targetLocation = null;
- } else if (changed) {
- IPath location = null;
- try {
- location = this.targetProjects[0].getDescription().getLocation();
- } catch (CoreException e) {
- // ignore the exception
- }
- if (location == null) {
- targetLocation = null;
- locationPathField.setText(""); //$NON-NLS-1$
- } else {
- if (isSingleCheckout()) {
- targetLocation = location.toOSString();
- } else {
- targetLocation = location.removeLastSegments(1).toOSString();
- }
- locationPathField.setText(targetLocation);
- }
- }
- }
-
- /**
- * Creates the project location specification controls.
- *
- * @param parent the parent composite
- */
- private final void createProjectLocationGroup(Composite parent) {
-
- // project specification group
- Composite projectGroup = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- projectGroup.setLayout(layout);
- projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- final Button useDefaultsButton =
- new Button(projectGroup, SWT.CHECK | SWT.RIGHT);
- useDefaultsButton.setText(Policy.bind("TargetLocationSelectionDialog.useDefaultLabel")); //$NON-NLS-1$
- useDefaultsButton.setSelection(this.useDefaults);
- GridData buttonData = new GridData();
- buttonData.horizontalSpan = 3;
- useDefaultsButton.setLayoutData(buttonData);
-
- createUserSpecifiedProjectLocationGroup(projectGroup, !this.useDefaults);
-
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- useDefaults = useDefaultsButton.getSelection();
- browseButton.setEnabled(!useDefaults);
- locationPathField.setEnabled(!useDefaults);
- locationLabel.setEnabled(!useDefaults);
- setLocationForSelection(true);
- }
- };
- useDefaultsButton.addSelectionListener(listener);
- }
-
- /**
- * Creates the project location specification controls.
- *
- * @return the parent of the widgets created
- * @param projectGroup the parent composite
- * @param enabled - sets the initial enabled state of the widgets
- */
- private Composite createUserSpecifiedProjectLocationGroup(Composite projectGroup, boolean enabled) {
-
- // location label
- locationLabel = new Label(projectGroup, SWT.NONE);
- if (isSingleCheckout()) {
- locationLabel.setText(Policy.bind("TargetLocationSelectionDialog.locationLabel")); //$NON-NLS-1$
- } else {
- locationLabel.setText(Policy.bind("TargetLocationSelectionDialog.parentDirectoryLabel")); //$NON-NLS-1$
- }
- locationLabel.setEnabled(enabled);
-
- // project location entry field
- locationPathField = new Text(projectGroup, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = SIZING_TEXT_FIELD_WIDTH;
- locationPathField.setLayoutData(data);
- locationPathField.setEnabled(enabled);
-
- // browse button
- this.browseButton = new Button(projectGroup, SWT.PUSH);
- this.browseButton.setText(Policy.bind("TargetLocationSelectionDialog.browseLabel")); //$NON-NLS-1$
- this.browseButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- handleLocationBrowseButtonPressed();
- }
- });
- this.browseButton.setEnabled(enabled);
- setButtonLayoutData(this.browseButton);
-
- // Set the initial value first before listener
- // to avoid handling an event during the creation.
- setLocationForSelection(true);
- createLocationListener();
- return projectGroup;
-
- }
-
- /**
- * Open an appropriate directory browser
- */
- private void handleLocationBrowseButtonPressed() {
- DirectoryDialog dialog = new DirectoryDialog(locationPathField.getShell());
- if (isSingleCheckout()) {
- dialog.setMessage(Policy.bind("TargetLocationSelectionDialog.messageForSingle", newProjectName)); //$NON-NLS-1$
- } else {
- dialog.setMessage(Policy.bind("TargetLocationSelectionDialog.messageForMulti", new Integer(targetProjects.length).toString())); //$NON-NLS-1$
- }
-
- String dirName = locationPathField.getText();
- if (!dirName.equals("")) {//$NON-NLS-1$
- File path = new File(dirName);
- if (path.exists())
- dialog.setFilterPath(dirName);
- }
-
- String selectedDirectory = dialog.open();
- if (selectedDirectory != null) {
- if (targetProjects.length == 1) {
- locationPathField.setText(new Path(selectedDirectory).append(newProjectName).toOSString());
- } else {
- locationPathField.setText(new Path(selectedDirectory).toOSString());
- }
- }
- targetLocation = locationPathField.getText();
- }
-
- /**
- * Method isSingleCheckout.
- * @return boolean
- */
- private boolean isSingleCheckout() {
- return targetProjects.length == 1;
- }
-
- private IProject getSingleProject() {
- if (newProjectName == null || newProjectName.length() == 0 || targetProjects[0].getName().equals(newProjectName))
- return targetProjects[0];
- else
- return ResourcesPlugin.getWorkspace().getRoot().getProject(newProjectName);
- }
-
- /**
- * Create the listener that is used to validate the location entered by the iser
- */
- private void createLocationListener() {
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- applyValidationResult(checkValid());
- }
- };
-
- this.locationPathField.addListener(SWT.Modify, listener);
- }
-
- /**
- * Check the message. If it is null then continue otherwise inform the user via the
- * status value and disable the OK.
- * @param message - the error message to show if it is not null.
- */
- private void applyValidationResult(String errorMsg) {
-
- if (errorMsg == null) {
- statusMessageLabel.setText("");//$NON-NLS-1$
- getOkButton().setEnabled(true);
- } else {
- statusMessageLabel.setForeground(
- JFaceColors.getErrorText(
- statusMessageLabel.getDisplay()));
- statusMessageLabel.setText(errorMsg);
- getOkButton().setEnabled(false);
- }
- }
- /**
- * Check whether the entries are valid. If so return null. Otherwise
- * return a string that indicates the problem.
- */
- private String checkValid() {
- if (isSingleCheckout()) {
- String valid = checkValidName();
- if (valid != null)
- return valid;
- }
- return checkValidLocation();
- }
- /**
- * Check if the entry in the widget location is valid. If it is valid return null. Otherwise
- * return a string that indicates the problem.
- */
- private String checkValidLocation() {
-
- if (useDefaults) {
- targetLocation = null;
- return null;
- } else {
- targetLocation = locationPathField.getText();
- if (targetLocation.equals("")) {//$NON-NLS-1$
- return(Policy.bind("TagetLocationSelectionDialog.locationEmpty")); //$NON-NLS-1$
- }
- else{
- IPath path = new Path("");//$NON-NLS-1$
- if (!path.isValidPath(targetLocation)) {
- return Policy.bind("TagetLocationSelectionDialog.invalidLocation"); //$NON-NLS-1$
- }
- }
-
- if (isSingleCheckout()) {
- IStatus locationStatus =
- ResourcesPlugin.getWorkspace().validateProjectLocation(
- getSingleProject(),
- new Path(targetLocation));
-
- if (!locationStatus.isOK())
- return locationStatus.getMessage();
- } else {
- for (int i = 0; i < targetProjects.length; i++) {
- ResourcesPlugin.getWorkspace().validateProjectLocation(
- targetProjects[i],
- new Path(targetLocation).append(targetProjects[i].getName()));
- }
- }
-
- return null;
- }
- }
- /**
- * Check if the entries in the widget are valid. If they are return null otherwise
- * return a string that indicates the problem.
- */
- private String checkValidName() {
-
- newProjectName = this.projectNameField.getText();
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IStatus nameStatus = workspace.validateName(newProjectName, IResource.PROJECT);
- if (!nameStatus.isOK())
- return nameStatus.getMessage();
-// IProject newProject = workspace.getRoot().getProject(newProjectName);
-// if (newProject.exists()) {
-// return Policy.bind("TagetLocationSelectionDialog.alreadyExists", newProjectName); //$NON-NLS-1$
-// }
-
- return null;
- }
-
- /**
- * @return String
- */
- public String getNewProjectName() {
- return newProjectName;
- }
-
- /**
- * @return String
- */
- public String getTargetLocation() {
- return targetLocation;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TextViewerAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TextViewerAction.java
deleted file mode 100644
index f2491e590..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TextViewerAction.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.internal.ccvs.ui;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.ui.texteditor.IUpdate;
-
-public class TextViewerAction extends Action implements IUpdate {
- private int operationCode = -1;
- private ITextOperationTarget operationTarget;
-
- public TextViewerAction(ITextViewer viewer, int operationCode) {
- this.operationCode = operationCode;
- operationTarget = viewer.getTextOperationTarget();
- update();
- }
- public void update() {
- boolean wasEnabled = isEnabled();
- boolean isEnabled = (operationTarget != null && operationTarget.canDoOperation(operationCode));
- setEnabled(isEnabled);
- if (wasEnabled != isEnabled) {
- firePropertyChange(ENABLED, wasEnabled ? Boolean.TRUE : Boolean.FALSE, isEnabled ? Boolean.TRUE : Boolean.FALSE);
- }
- }
- public void run() {
- if (operationCode != -1 && operationTarget != null) {
- operationTarget.doOperation(operationCode);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TimeoutProgressMonitorDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TimeoutProgressMonitorDialog.java
deleted file mode 100644
index 42130ae0e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TimeoutProgressMonitorDialog.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.internal.ccvs.ui;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class TimeoutProgressMonitorDialog extends ProgressMonitorDialog {
- // the timeout
- private int timeout;
- // the number of currently running runnables.
- private int runningRunnables = 0;
-
- /**
- * Creates a progress monitor dialog under the given shell.
- * The dialog has a standard title and no image.
- * <code>open</code> is non-blocking.
- *
- * @param parent the parent shell
- * @param timeout the delay after which the dialog will be opened during a run()
- */
- public TimeoutProgressMonitorDialog(Shell parent, int timeout) {
- super(parent);
- this.timeout = timeout;
- }
-
- /* (non-Javadoc)
- * Method declared on IRunnableContext.
- * Runs the given <code>IRunnableWithProgress</code> with the progress monitor for this
- * progress dialog. The dialog is opened before it is run, and closed after it completes.
- */
- public void run(final boolean fork, boolean cancelable, final IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
- setCancelable(cancelable);
- create(); // create the Shell but don't open it yet
- try {
- runningRunnables++;
- final Display display = getShell().getDisplay();
- display.timerExec(timeout, new Runnable() {
- public void run() {
- Shell shell = getShell();
- if (shell != null && ! shell.isDisposed()) open();
- }
- });
-
- final Exception[] holder = new Exception[1];
- BusyIndicator.showWhile(display, new Runnable() {
- public void run() {
- try {
- ModalContext.run(runnable, fork, getProgressMonitor(), display);
- } catch (InvocationTargetException ite) {
- holder[0] = ite;
- } catch (InterruptedException ie) {
- holder[0] = ie;
- }
- }
- });
- if (holder[0] != null) {
- if (holder[0] instanceof InvocationTargetException) {
- throw (InvocationTargetException) holder[0];
- } else if (holder[0] instanceof InterruptedException) {
- throw (InterruptedException) holder[0];
- }
- }
- } finally {
- runningRunnables--;
- close();
- }
- }
-
- public boolean close() {
- if (runningRunnables <= 0) return super.close();
- return false;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/UserValidationDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/UserValidationDialog.java
deleted file mode 100644
index 1d2fad012..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/UserValidationDialog.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-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.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * A dialog for prompting for a username and password
- */
-public class UserValidationDialog extends Dialog {
- // widgets
- protected Text usernameField;
- protected Text passwordField;
-
- protected String domain;
- protected String defaultUsername;
- protected String password = null;
-
- // whether or not the username can be changed
- protected boolean isUsernameMutable = true;
- protected String username = null;
- protected String message = null;
-
- /**
- * Creates a new UserValidationDialog.
- *
- * @param parentShell the parent shell
- * @param location the location
- * @param defaultName the default user name
- * @param message a mesage to display to the user
- */
- public UserValidationDialog(Shell parentShell, String location, String defaultName, String message) {
- super(parentShell);
- this.defaultUsername = defaultName;
- this.domain = location;
- this.message = message;
- }
- /**
- * @see Window#configureShell
- */
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(Policy.bind("UserValidationDialog.required")); //$NON-NLS-1$
- // set F1 help
- WorkbenchHelp.setHelp(newShell, IHelpContextIds.USER_VALIDATION_DIALOG);
- }
- /**
- * @see Window#create
- */
- public void create() {
- super.create();
- // add some default values
- usernameField.setText(defaultUsername);
-
- if (isUsernameMutable) {
- // give focus to username field
- usernameField.selectAll();
- usernameField.setFocus();
- } else {
- usernameField.setEditable(false);
- passwordField.setFocus();
- }
- }
- /**
- * @see Dialog#createDialogArea
- */
- protected Control createDialogArea(Composite parent) {
- Composite main = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- main.setLayout(layout);
- main.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- if (message != null) {
- Label messageLabel = new Label(main, SWT.WRAP);
- messageLabel.setText(message);
- messageLabel.setForeground(messageLabel.getDisplay().getSystemColor(SWT.COLOR_RED));
- GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- data.horizontalSpan = 3;
- data.widthHint = 400;
- messageLabel.setLayoutData(data);
- }
-
- Label label = new Label(main, SWT.WRAP);
- if (isUsernameMutable) {
- label.setText(Policy.bind("UserValidationDialog.labelUser", domain)); //$NON-NLS-1$
- } else {
- label.setText(Policy.bind("UserValidationDialog.labelPassword", new Object[] {defaultUsername, domain})); //$NON-NLS-1$
- }
- GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- data.horizontalSpan = 3;
- data.widthHint = 400;
- label.setLayoutData(data);
-
- createUsernameFields(main);
- createPasswordFields(main);
-
- Dialog.applyDialogFont(parent);
-
- return main;
- }
- /**
- * Creates the three widgets that represent the password entry area.
- *
- * @param parent the parent of the widgets
- */
- protected void createPasswordFields(Composite parent) {
- new Label(parent, SWT.NONE).setText(Policy.bind("UserValidationDialog.password")); //$NON-NLS-1$
-
- passwordField = new Text(parent, SWT.BORDER | SWT.PASSWORD);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
- passwordField.setLayoutData(data);
- }
- /**
- * Creates the three widgets that represent the user name entry area.
- *
- * @param parent the parent of the widgets
- */
- protected void createUsernameFields(Composite parent) {
- new Label(parent, SWT.NONE).setText(Policy.bind("UserValidationDialog.user")); //$NON-NLS-1$
-
- usernameField = new Text(parent, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
- usernameField.setLayoutData(data);
- }
- /**
- * Returns the password entered by the user, or null
- * if the user canceled.
- *
- * @return the entered password
- */
- public String getPassword() {
- return password;
- }
- /**
- * Returns the username entered by the user, or null
- * if the user canceled.
- *
- * @return the entered username
- */
- public String getUsername() {
- return username;
- }
- /**
- * Notifies that the ok button of this dialog has been pressed.
- * <p>
- * The default implementation of this framework method sets
- * this dialog's return code to <code>Window.OK</code>
- * and closes the dialog. Subclasses may override.
- * </p>
- */
- protected void okPressed() {
- password = passwordField.getText();
- username = usernameField.getText();
-
- super.okPressed();
- }
- /**
- * Sets whether or not the username field should be mutable.
- * This method must be called before create(), otherwise it
- * will be ignored.
- *
- * @param value whether the username is mutable
- */
- public void setUsernameMutable(boolean value) {
- isUsernameMutable = value;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/VersionCollator.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/VersionCollator.java
deleted file mode 100644
index 475fa5d72..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/VersionCollator.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.internal.ccvs.ui;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Collator to compare two CVS revisions
- */
-public class VersionCollator {
- public int compare(String revision1, String revision2) {
- if (revision1 == null && revision2 == null) return 0;
- if (revision1 == null) return -1;
- if (revision2 == null) return 1;
- int[] revision1Segments = getIntSegments(revision1);
- int[] revision2Segments = getIntSegments(revision2);
- for (int i = 0; i < revision1Segments.length && i < revision2Segments.length; i++) {
- int i1 = revision1Segments[i];
- int i2 = revision2Segments[i];
- if (i1 != i2) {
- return i1 > i2 ? 1 : -1;
- }
- }
- if (revision1Segments.length != revision2Segments.length) {
- return revision1Segments.length > revision2Segments.length ? 1 : -1;
- }
- return 0;
- }
-
- int[] getIntSegments(String string) {
- int size = string.length();
- if (size == 0) return new int[0];
- StringBuffer buffer = new StringBuffer();
- List list = new ArrayList();
- for (int i = 0; i < size; i++) {
- char ch = string.charAt(i);
- if (ch == '.') {
- list.add(new Integer(buffer.toString()));
- buffer = new StringBuffer();
- } else {
- buffer.append(ch);
- }
- }
- list.add(new Integer(buffer.toString()));
- int[] result = new int[list.size()];
- Iterator it = list.iterator();
- for (int i = 0; i < result.length; i++) {
- result[i] = ((Integer)it.next()).intValue();
- }
- return result;
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WatchEditPreferencePage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WatchEditPreferencePage.java
deleted file mode 100644
index 9787524bb..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WatchEditPreferencePage.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.preference.*;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-
-/**
- * This page contains preferences related to the cvs watch/edit commands
- */
-public class WatchEditPreferencePage extends CVSFieldEditorPreferencePage {
-
- private RadioGroupFieldEditor promptEditor;
- private RadioGroupFieldEditor actionEditor;
- private IPreferenceStore source;
- private IPreferenceStore store;
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.CVSPreferencePage#getPageHelpContextId()
- */
- protected String getPageHelpContextId() {
- return IHelpContextIds.WATCH_EDIT_PREFERENCE_PAGE;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.ui.CVSFieldEditorPreferencePage#getPageDescription()
- */
- protected String getPageDescription() {
- return Policy.bind("WatchEditPreferencePage.description"); //$NON-NLS-1$;
- }
-
- /**
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
- */
- protected void createFieldEditors() {
- addField(new BooleanFieldEditor(
- ICVSUIConstants.PREF_CHECKOUT_READ_ONLY,
- Policy.bind("WatchEditPreferencePage.checkoutReadOnly"), //$NON-NLS-1$
- BooleanFieldEditor.DEFAULT,
- getFieldEditorParent()));
-
- actionEditor = new RadioGroupFieldEditor(
- ICVSUIConstants.PREF_EDIT_ACTION,
- Policy.bind("WatchEditPreferencePage.validateEditSaveAction"), //$NON-NLS-1$
- 1,
- new String[][] {{Policy.bind("WatchEditPreferencePage.edit"), ICVSUIConstants.PREF_EDIT_PROMPT_EDIT}, //$NON-NLS-1$
- {Policy.bind("WatchEditPreferencePage.highjack"), ICVSUIConstants.PREF_EDIT_PROMPT_HIGHJACK}, //$NON-NLS-1$
- }, //$NON-NLS-1$ //$NON-NLS-2$
- getFieldEditorParent(), true);
- addField(actionEditor);
-
-
- promptEditor = new RadioGroupFieldEditor(
- ICVSUIConstants.PREF_EDIT_PROMPT,
- Policy.bind("WatchEditPreferencePage.editPrompt"), //$NON-NLS-1$
- 1,
- new String[][] {{Policy.bind("WatchEditPreferencePage.alwaysPrompt"), ICVSUIConstants.PREF_EDIT_PROMPT_ALWAYS}, //$NON-NLS-1$
- {Policy.bind("WatchEditPreferencePage.onlyPrompt"), ICVSUIConstants.PREF_EDIT_PROMPT_IF_EDITORS}, //$NON-NLS-1$
- {Policy.bind("WatchEditPreferencePage.neverPrompt"), ICVSUIConstants.PREF_EDIT_PROMPT_NEVER}, //$NON-NLS-1$
- }, //$NON-NLS-1$ //$NON-NLS-2$
- getFieldEditorParent(), true);
- store = getCVSPreferenceStore();
- addField(promptEditor);
- }
-
- private boolean isEditEnabled() {
- return store.getString(ICVSUIConstants.PREF_EDIT_ACTION).equals(ICVSUIConstants.PREF_EDIT_PROMPT_EDIT);
- }
-
- /**
- * @see org.eclipse.jface.preference.IPreferencePage#performOk()
- */
- public boolean performOk() {
- if (!super.performOk()) return false;
- pushPreferences();
- return true;
- }
-
- private void pushPreferences() {
- store = getCVSPreferenceStore();
- Preferences target = CVSProviderPlugin.getPlugin().getPluginPreferences();
- target.setValue(
- CVSProviderPlugin.READ_ONLY,
- store.getBoolean(ICVSUIConstants.PREF_CHECKOUT_READ_ONLY));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getSource() == actionEditor) {
- promptEditor.setEnabled(
- event.getNewValue().equals(ICVSUIConstants.PREF_EDIT_PROMPT_EDIT),
- getFieldEditorParent());
- }
- super.propertyChange(event);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#initialize()
- */
- protected void initialize() {
- super.initialize();
- promptEditor.setEnabled(isEditEnabled(), getFieldEditorParent());
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkInProgressPreferencePage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkInProgressPreferencePage.java
deleted file mode 100644
index 6e850912e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkInProgressPreferencePage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class WorkInProgressPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
- public WorkInProgressPreferencePage() {
- super(GRID);
- setTitle(Policy.bind("WorkInProgressPreferencePage.0")); //$NON-NLS-1$
- setDescription(Policy.bind("WorkInProgressPreferencePage.1")); //$NON-NLS-1$
- setPreferenceStore(CVSUIPlugin.getPlugin().getPreferenceStore());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- super.createControl(parent);
- //WorkbenchHelp.setHelp(getControl(), IDebugHelpContextIds.CONSOLE_PREFERENCE_PAGE);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
- */
- public void createFieldEditors() {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkbenchUserAuthenticator.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkbenchUserAuthenticator.java
deleted file mode 100644
index 5f30d1538..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkbenchUserAuthenticator.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
- * Atsuhiko Yamanaka, JCraft,Inc. - implementation of promptForKeyboradInteractive
- * *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.IFileTypeInfo;
-import org.eclipse.team.core.IIgnoreInfo;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.IUserAuthenticator;
-import org.eclipse.team.internal.ccvs.core.IUserInfo;
-
-/**
- * An authenticator that prompts the user for authentication info,
- * and stores the results in the Platform's authentication keyring.
- */
-public class WorkbenchUserAuthenticator implements IUserAuthenticator {
- public static boolean USE_ALTERNATE_PROMPTER = false;
-
- /**
- * WorkbenchUserAuthenticator constructor.
- */
- public WorkbenchUserAuthenticator() {
- super();
- // Initialize USE_ALTERNATE_PROMPTER
- IIgnoreInfo[] ignores = Team.getAllIgnores();
- boolean found = false;
- for (int i = 0; i < ignores.length; i++) {
- if (ignores[i].getPattern().equals("*.notes")) { //$NON-NLS-1$
- found = true;
- }
- }
- if (!found) return;
- IFileTypeInfo[] types = Team.getAllTypes();
- for (int i = 0; i < types.length; i++) {
- if (types[i].getExtension().equals("notes")) { //$NON-NLS-1$
- USE_ALTERNATE_PROMPTER = true;
- return;
- }
- }
- USE_ALTERNATE_PROMPTER = false;
- }
- /**
- * @see IUserAuthenticator#authenticateUser
- */
- public void promptForUserInfo(final ICVSRepositoryLocation location, final IUserInfo userinfo, final String message) throws CVSException {
- if (!userinfo.isUsernameMutable() && USE_ALTERNATE_PROMPTER) {
- alternatePromptForUserInfo(userinfo);
- return;
- }
- // ask the user for a password
- final String[] result = new String[2];
- Display display = Display.getCurrent();
- if (display != null) {
- promptForPassword(location, userinfo.getUsername(), message, userinfo.isUsernameMutable(), result);
- } else {
- // sync exec in default thread
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- promptForPassword(location, userinfo.getUsername(), message, userinfo.isUsernameMutable(), result);
- }
- });
- }
-
- if (result[0] == null) {
- throw new OperationCanceledException(Policy.bind("WorkbenchUserAuthenticator.cancelled")); //$NON-NLS-1$
- }
-
- if (userinfo.isUsernameMutable())
- userinfo.setUsername(result[0]);
- userinfo.setPassword(result[1]);
- }
-
- /**
- * Asks the user to enter a password. Places the
- * results in the supplied string[]. result[0] must
- * contain the username, result[1] must contain the password.
- * If the user canceled, both values must be zero.
- *
- * @param location the location to obtain the password for
- * @param username the username
- * @param message a message to display to the user
- * @param userMutable whether the user can be changed in the dialog
- * @param result a String array of length two in which to put the result
- */
- private void promptForPassword(final ICVSRepositoryLocation location, final String username, final String message, final boolean userMutable, final String[] result) {
- Display display = Display.getCurrent();
- Shell shell = new Shell(display);
- UserValidationDialog dialog = new UserValidationDialog(shell, location.getLocation(), (username==null)?"":username, message);//$NON-NLS-1$
- dialog.setUsernameMutable(userMutable);
- dialog.open();
- shell.dispose();
-
- result[0] = dialog.getUsername();
- result[1] = dialog.getPassword();
- }
-
- /**
- * Asks the user to enter values.
- *
- * @param location the location to obtain the password for
- * @param destication the location
- * @param name the name
- * @param instruction the instruction
- * @param prompt the titles for textfields
- * @param echo '*' should be used or not
- * @param result the entered values, or null if user canceled.
- */
- public String[] promptForKeyboradInteractive(final ICVSRepositoryLocation location,
- final String destination,
- final String name,
- final String instruction,
- final String[] prompt,
- final boolean[] echo) throws CVSException {
- final String[][] result = new String[1][];
- Display display = Display.getCurrent();
- if (display != null) {
- result[0]=_promptForUserInteractive(location, destination, name, instruction, prompt, echo);
- }
- else {
- // sync exec in default thread
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- result[0]=_promptForUserInteractive(location, destination, name, instruction, prompt, echo);
- }
- });
- }
- return result[0];
- }
-
- private String[] _promptForUserInteractive(final ICVSRepositoryLocation location,
- final String destination,
- final String name,
- final String instruction,
- final String[] prompt,
- final boolean[] echo) {
- Display display = Display.getCurrent();
- Shell shell = new Shell(display);
- KeyboardInteractiveDialog dialog = new KeyboardInteractiveDialog(shell,
- location.getLocation(),
- destination,
- name,
- instruction,
- prompt,
- echo);
- dialog.open();
- shell.dispose();
- return dialog.getResult();
- }
-
- /**
- * Special alternate prompting. Returns the password. Username must be fixed.
- */
- private String alternatePromptForPassword(final String username) {
- Display display = Display.getCurrent();
- Shell shell = new Shell(display);
- AlternateUserValidationDialog dialog = new AlternateUserValidationDialog(shell, (username == null) ? "" : username); //$NON-NLS-1$
- dialog.setUsername(username);
- int result = dialog.open();
- shell.dispose();
- if (result == Dialog.CANCEL) return null;
- return dialog.getPassword();
- }
- /**
- * Special alternate prompting.
- */
- public void alternatePromptForUserInfo(final IUserInfo userinfo) throws CVSException {
- // ask the user for a password
- final String[] result = new String[1];
- Display display = Display.getCurrent();
- if (display != null) {
- result[0] = alternatePromptForPassword(userinfo.getUsername());
- } else {
- // sync exec in default thread
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- result[0] = alternatePromptForPassword(userinfo.getUsername());
- }
- });
- }
-
- if (result[0] == null) {
- throw new OperationCanceledException(Policy.bind("WorkbenchUserAuthenticator.The_operation_was_canceled_by_the_user_1")); //$NON-NLS-1$
- }
-
- userinfo.setPassword(result[0]);
- }
-
- /* (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, final int promptType, final String title, final String message, final int[] promptResponses, final int defaultResponse) {
- final Display display = CVSUIPlugin.getStandardDisplay();
- final int[] retval = new int[1];
- final String[] buttons = new String[promptResponses.length];
- for (int i = 0; i < promptResponses.length; i++) {
- int prompt = promptResponses[i];
- switch(prompt) {
- case IUserAuthenticator.OK_ID: buttons[i] = IDialogConstants.OK_LABEL; break;
- case IUserAuthenticator.CANCEL_ID: buttons[i] = IDialogConstants.CANCEL_LABEL; break;
- case IUserAuthenticator.NO_ID: buttons[i] = IDialogConstants.NO_LABEL; break;
- case IUserAuthenticator.YES_ID: buttons[i] = IDialogConstants.YES_LABEL; break;
- }
- }
-
- display.syncExec(new Runnable() {
- public void run() {
- final MessageDialog dialog = new MessageDialog(
- new Shell(display),
- title,
- null /* title image */,
- message,
- promptType,
- buttons,
- 1
- );
- retval[0] = dialog.open();
- }
- });
- return retval[0];
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkingSetSelectionArea.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkingSetSelectionArea.java
deleted file mode 100644
index 1dbfb0f8a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkingSetSelectionArea.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Control;
-import org.eclipse.team.internal.ui.dialogs.DialogArea;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class WorkingSetSelectionArea extends DialogArea {
-
- private Button noWorkingSetButton;
- private Button workingSetButton;
- private Combo mruList;
- private Button selectButton;
- private IWorkingSet workingSet, oldWorkingSet;
-
- private String noWorkingSetText;
- private String workingSetText;
-
- private static final String USE_WORKING_SET = "UseWorkingSet"; //$NON-NLS-1$
- public static final String SELECTED_WORKING_SET = "SelectedWorkingSet"; //$NON-NLS-1$
-
- /*
- * Used to update the mru list box when working sets are
- * renamed in the working set selection dialog.
- */
- private IPropertyChangeListener workingSetChangeListener = new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- String property = event.getProperty();
- Object newValue = event.getNewValue();
-
- if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE.equals(property) &&
- newValue instanceof IWorkingSet) {
- String newName = ((IWorkingSet) newValue).getName();
- int count = mruList.getItemCount();
- for (int i = 0; i < count; i++) {
- String item = mruList.getItem(i);
- IWorkingSet workingSet = (IWorkingSet) mruList.getData(item);
- if (workingSet == newValue) {
- boolean isTopItem = (mruList.getData(mruList.getText()) == workingSet);
- mruList.remove(i);
- mruList.add(newName, i);
- mruList.setData(newName, workingSet);
- if (isTopItem) {
- mruList.setText(newName);
- }
- break;
- }
- }
- }
- }
- };
-
- public WorkingSetSelectionArea(Dialog parentDialog) {
- super(parentDialog, null);
- }
-
- public WorkingSetSelectionArea(Dialog parentDialog, String noWorkingSetText, String workingSetText, IDialogSettings settings) {
- super(parentDialog, settings);
- this.noWorkingSetText = noWorkingSetText;
- this.workingSetText = workingSetText;
- }
-
- /**
- * Overrides method in Dialog
- *
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(Composite)
- */
- public Control createArea(Composite parent) {
- Dialog.applyDialogFont(parent);
- Composite composite = createComposite(parent, 2);
- initializeDialogUnits(composite);
- GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER);
- composite.setLayoutData(data);
- GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- layout.numColumns = 2;
- composite.setLayout(layout);
-
- // Create the checkbox to enable/disable working set use
- noWorkingSetButton = createRadioButton(composite, noWorkingSetText, 2);
- workingSetButton = createRadioButton(composite, workingSetText, 2);
- workingSetButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- handleWorkingSetButtonSelection();
- }
- });
-
- boolean useWorkingSet = false;
- if (settings != null) {
- useWorkingSet = settings.getBoolean(USE_WORKING_SET);
- }
- noWorkingSetButton.setSelection(!useWorkingSet);
- workingSetButton.setSelection(useWorkingSet);
-
- // Create the combo/button which allows working set selection
- mruList = new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY);
- data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER);
- data.horizontalIndent=15;
- mruList.setLayoutData(data);
-
- selectButton = createButton(composite, Policy.bind("WorkingSetSelectionArea.workingSetOther"), GridData.HORIZONTAL_ALIGN_FILL); //$NON-NLS-1$
- selectButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- handleWorkingSetSelection();
- }
- });
-
- initializeMru();
- initializeWorkingSet();
-
- mruList.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- handleMruSelection();
- }
- });
-
- return composite;
- }
-
- /**
- * Method handleMruSelection.
- */
- private void handleMruSelection() {
- String selectedWorkingSet = mruList.getText();
- oldWorkingSet = workingSet;
- workingSet = (IWorkingSet) mruList.getData(selectedWorkingSet);
- if (settings != null)
- settings.put(SELECTED_WORKING_SET, selectedWorkingSet);
- handleWorkingSetChange();
- }
-
- /**
- * Opens the working set selection dialog if the "Other..." item
- * is selected in the most recently used working set list.
- */
- private void handleWorkingSetSelection() {
- IWorkingSetSelectionDialog dialog = PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSetSelectionDialog(getShell(), false);
- IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager();
- IWorkingSet workingSet = workingSetManager.getWorkingSet(mruList.getText());
-
- if (workingSet != null) {
- dialog.setSelection(new IWorkingSet[]{workingSet});
- }
- // add a change listener to detect a working set name change
- workingSetManager.addPropertyChangeListener(workingSetChangeListener);
- if (dialog.open() == Window.OK) {
- IWorkingSet[] result = dialog.getSelection();
- if (result != null && result.length > 0) {
- workingSet = result[0];
- String workingSetName = workingSet.getName();
- if (mruList.indexOf(workingSetName) != -1) {
- mruList.remove(workingSetName);
- }
- mruList.add(workingSetName, 0);
- mruList.setText(workingSetName);
- mruList.setData(workingSetName, workingSet);
- handleMruSelection();
- }
- else {
- workingSet = null;
- }
- // remove deleted working sets from the mru list box
- String[] mruNames = mruList.getItems();
- for (int i = 0; i < mruNames.length; i++) {
- if (workingSetManager.getWorkingSet(mruNames[i]) == null) {
- mruList.remove(mruNames[i]);
- }
- }
- }
- workingSetManager.removePropertyChangeListener(workingSetChangeListener);
- }
-
- /**
- * Sets the enabled state of the most recently used working set list
- * based on the checked state of the working set check box.
- */
- private void handleWorkingSetButtonSelection() {
- boolean useWorkingSet = workingSetButton.getSelection();
- if (settings != null)
- settings.put(USE_WORKING_SET, useWorkingSet);
- mruList.setEnabled(useWorkingSet);
- selectButton.setEnabled(useWorkingSet);
- if (useWorkingSet && mruList.getSelectionIndex() >= 0) {
- handleMruSelection();
- } else if (!useWorkingSet) {
- handleDeselection();
- }
- }
-
- private void handleDeselection() {
- oldWorkingSet = workingSet;
- workingSet = null;
- handleWorkingSetChange();
- }
-
- private void handleWorkingSetChange() {
- firePropertyChangeChange(SELECTED_WORKING_SET, oldWorkingSet, workingSet);
- }
-
- /**
- * Populates the most recently used working set list with MRU items from
- * the working set manager as well as adds an item to enable selection of
- * a working set not in the MRU list.
- */
- private void initializeMru() {
- IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getRecentWorkingSets();
-
- for (int i = 0; i < workingSets.length; i++) {
- String workingSetName = workingSets[i].getName();
- mruList.add(workingSetName);
- mruList.setData(workingSetName, workingSets[i]);
- }
- if (workingSets.length > 0) {
- mruList.setText(workingSets[0].getName());
- }
- }
-
- /**
- * Initializes the state of the working set part of the dialog.
- */
- private void initializeWorkingSet() {
- if (workingSet == null && settings != null && settings.getBoolean(USE_WORKING_SET)) {
- IWorkingSet mruSet = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSet(settings.get(SELECTED_WORKING_SET));
- if (mruSet != null) {
- // the call to setWorkingSet will re-invoke the initializeWorkingSet method
- setWorkingSet(mruSet);
- return;
- }
- }
- workingSetButton.setSelection(workingSet != null);
- handleWorkingSetButtonSelection();
- if (workingSet != null && mruList.indexOf(workingSet.getName()) != -1) {
- mruList.setText(workingSet.getName());
- }
- handleWorkingSetChange();
- }
-
- /**
- * Returns the selected working set or null if none is selected.
- *
- * @return the selected working set or null if none is selected.
- */
- public IWorkingSet getWorkingSet() {
- return workingSet;
- }
-
- /**
- * Indicate that the selected working set is actually being used so it can
- * be added to the "most recently used" list.
- */
- public void useSelectedWorkingSet() {
- // Add the selected working set to the MRU list before returning it
- if (workingSet != null) {
- PlatformUI.getWorkbench().getWorkingSetManager().addRecentWorkingSet(workingSet);
- }
- }
-
- /**
- * Sets the working set that should be selected in the most recently
- * used working set list.
- *
- * @param workingSet the working set that should be selected.
- * has to exist in the list returned by
- * org.eclipse.ui.IWorkingSetManager#getRecentWorkingSets().
- * Must not be null.
- */
- public void setWorkingSet(IWorkingSet workingSet) {
- oldWorkingSet = this.workingSet;
- this.workingSet = workingSet;
-
- if (workingSetButton != null && mruList != null) {
- initializeWorkingSet();
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/XMLWriter.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/XMLWriter.java
deleted file mode 100644
index 1b2e1fbbc..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/XMLWriter.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui;
-
-import java.io.*;
-import java.util.*;
-/**
- * A simple XML writer.
- */
-public class XMLWriter extends PrintWriter {
- protected int tab;
-
- /* constants */
- protected static final String XML_VERSION = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; //$NON-NLS-1$
-
-public XMLWriter(OutputStream output) throws UnsupportedEncodingException {
- super(new OutputStreamWriter(output, "UTF8")); //$NON-NLS-1$
- tab = 0;
- println(XML_VERSION);
-}
-public void endTag(String name) {
- tab--;
- printTag('/' + name, null);
-}
-public void printSimpleTag(String name, Object value) {
- if (value != null) {
- printTag(name, null, true, false);
- print(getEscaped(String.valueOf(value)));
- printTag('/' + name, null, false, true);
- }
-}
-public void printTabulation() {
- for (int i = 0; i < tab; i++)
- super.print('\t');
-}
-private void printTag(String name, HashMap parameters) {
- printTag(name, parameters, true, true);
-}
-private void printTag(String name, HashMap parameters, boolean tab, boolean newLine) {
- printTag(name, parameters, tab, newLine, false);
-}
-private void printTag(String name, HashMap parameters, boolean tab, boolean newLine, boolean end) {
- StringBuffer sb = new StringBuffer();
- sb.append("<"); //$NON-NLS-1$
- sb.append(name);
- if (parameters != null)
- for (Enumeration enum = Collections.enumeration(parameters.keySet()); enum.hasMoreElements();) {
- sb.append(" "); //$NON-NLS-1$
- String key = (String) enum.nextElement();
- sb.append(key);
- sb.append("=\""); //$NON-NLS-1$
- sb.append(getEscaped(String.valueOf(parameters.get(key))));
- sb.append("\""); //$NON-NLS-1$
- }
- if (end)
- sb.append('/');
- sb.append(">"); //$NON-NLS-1$
- if (tab)
- printTabulation();
- if (newLine)
- println(sb.toString());
- else
- print(sb.toString());
-}
-public void startTag(String name, HashMap parameters) {
- startTag(name, parameters, true);
-}
-public void startTag(String name, HashMap parameters, boolean newLine) {
- printTag(name, parameters, true, newLine);
- tab++;
-}
-public void startAndEndTag(String name, HashMap parameters, boolean newLine) {
- printTag(name, parameters, true, true, true);
-}
-private static void appendEscapedChar(StringBuffer buffer, char c) {
- String replacement = getReplacement(c);
- if (replacement != null) {
- buffer.append('&');
- buffer.append(replacement);
- buffer.append(';');
- } else {
- buffer.append(c);
- }
-}
-public static String getEscaped(String s) {
- StringBuffer result = new StringBuffer(s.length() + 10);
- for (int i = 0; i < s.length(); ++i)
- appendEscapedChar(result, s.charAt(i));
- return result.toString();
-}
-private static String getReplacement(char c) {
- // Encode special XML characters into the equivalent character references.
- // These five are defined by default for all XML documents.
- switch (c) {
- case '<' :
- return "lt"; //$NON-NLS-1$
- case '>' :
- return "gt"; //$NON-NLS-1$
- case '"' :
- return "quot"; //$NON-NLS-1$
- case '\'' :
- return "apos"; //$NON-NLS-1$
- case '&' :
- return "amp"; //$NON-NLS-1$
- }
- return null;
-}
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/AddAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/AddAction.java
deleted file mode 100644
index 4ba874e43..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/AddAction.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * AddAction performs a 'cvs add' command on the selected resources. If a
- * container is selected, its children are recursively added.
- */
-public class AddAction extends WorkspaceAction {
-
- /*
- * @see CVSAction#execute()
- */
- public void execute(IAction action) throws InterruptedException, InvocationTargetException {
- if (!promptForAddOfIgnored()) return;
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- Hashtable table = getProviderMapping();
- Set keySet = table.keySet();
- monitor.beginTask("", keySet.size() * 1000); //$NON-NLS-1$
- monitor.setTaskName(Policy.bind("AddAction.adding")); //$NON-NLS-1$
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = Policy.subMonitorFor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- provider.add(providerResources, IResource.DEPTH_INFINITE, subMonitor);
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, true /* cancelable */, PROGRESS_DIALOG);
-
- }
-
- /**
- * Method promptForAddOfIgnored.
- */
- private boolean promptForAddOfIgnored() {
- IResource[] resources = getSelectedResources();
- boolean prompt = false;
- for (int i = 0; i < resources.length; i++) {
- ICVSResource resource = CVSWorkspaceRoot.getCVSResourceFor(resources[i]);
- try {
- if (resource.isIgnored()) {
- prompt = true;
- break;
- }
- } catch (CVSException e) {
- handle(e);
- }
- }
- if (prompt) {
- return MessageDialog.openQuestion(getShell(), Policy.bind("AddAction.addIgnoredTitle"), Policy.bind("AddAction.addIgnoredQuestion")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- return true;
- }
-
- /*
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("AddAction.addFailed"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForManagedResources()
- */
- protected boolean isEnabledForManagedResources() {
- return false;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForUnmanagedResources()
- */
- protected boolean isEnabledForUnmanagedResources() {
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForIgnoredResources()
- */
- protected boolean isEnabledForIgnoredResources() {
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- // Add to version control should never be enabled for linked resources
- IResource resource = cvsResource.getIResource();
- if (resource.isLinked()) return false;
- return super.isEnabledForCVSResource(cvsResource);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/AddToWorkspaceAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/AddToWorkspaceAction.java
deleted file mode 100644
index b4150835e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/AddToWorkspaceAction.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-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 org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.Checkout;
-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.Policy;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-import org.eclipse.team.internal.ui.dialogs.PromptingDialog;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Add some remote resources to the workspace. Current implementation:
- * -Works only for remote folders
- * -Does not prompt for project name; uses folder name instead
- */
-public class AddToWorkspaceAction extends CVSAction {
- /**
- * Returns the selected remote folders.
- * Remove any module aliases as they may cause problems on checkout this way
- */
- protected ICVSRemoteFolder[] getSelectedRemoteFolders() {
- ICVSRemoteFolder[] allFolders = super.getSelectedRemoteFolders();
- if (allFolders.length == 0) return allFolders;
- ArrayList resources = new ArrayList();
- for (int i = 0; i < allFolders.length; i++) {
- ICVSRemoteFolder folder = allFolders[i];
- if (!Checkout.ALIAS.isElementOf(folder.getLocalOptions())) {
- resources.add(folder);
- }
- }
- return (ICVSRemoteFolder[])resources.toArray(new ICVSRemoteFolder[resources.size()]);
- }
-
- /*
- * @see CVSAction#execute()
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- checkoutSelectionIntoWorkspaceDirectory();
- }
-
- protected void checkoutSelectionIntoWorkspaceDirectory() throws InvocationTargetException, InterruptedException {
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- ICVSRemoteFolder[] folders = getSelectedRemoteFolders();
-
- List targetProjects = new ArrayList();
- Map targetFolders = new HashMap();
- for (int i = 0; i < folders.length; i++) {
- String name = folders[i].getName();
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
- targetFolders.put(name, folders[i]);
- targetProjects.add(project);
- }
-
- IResource[] projects = (IResource[]) targetProjects.toArray(new IResource[targetProjects.size()]);
-
- PromptingDialog prompt = new PromptingDialog(getShell(), projects,
- getOverwriteLocalAndFileSystemPrompt(),
- Policy.bind("ReplaceWithAction.confirmOverwrite"));//$NON-NLS-1$
- projects = prompt.promptForMultiple();
-
- monitor.beginTask(null, 100);
- if (projects.length != 0) {
- IProject[] localFolders = new IProject[projects.length];
- ICVSRemoteFolder[] remoteFolders = new ICVSRemoteFolder[projects.length];
- for (int i = 0; i < projects.length; i++) {
- localFolders[i] = (IProject)projects[i];
- remoteFolders[i] = (ICVSRemoteFolder)targetFolders.get(projects[i].getName());
- }
-
- monitor.setTaskName(getTaskName(remoteFolders));
- CVSWorkspaceRoot.checkout(remoteFolders, localFolders, Policy.subMonitorFor(monitor, 100));
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, true /* cancelable */, PROGRESS_DIALOG);
- }
-
- /*
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSRemoteFolder[] resources = getSelectedRemoteFolders();
- if (resources.length == 0) return false;
- for (int i = 0; i < resources.length; i++) {
- if (resources[i] instanceof ICVSRepositoryLocation) return false;
- }
- return true;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("AddToWorkspaceAction.checkoutFailed"); //$NON-NLS-1$
- }
-
- /*
- * Prompt the user to overwrite any projects that overlap with the module expansions.
- *
- * This is an all or nothing prompt. If the user says no to one project overwrite
- * then the whole operation must be aborted. This is because there is no easy way to
- * map the module expansions back to their remote modules.
- */
- private boolean promptForOverwrite(String[] expansions) throws InterruptedException {
-
- // If the target project exists, prompt the user for overwrite
- Set targetProjects = new HashSet();
- for (int i = 0; i < expansions.length; i++) {
- String string = expansions[i];
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(new Path(string).segment(0));
- targetProjects.add(project);
- }
- IResource[] projects = (IResource[]) targetProjects.toArray(new IResource[targetProjects.size()]);
- PromptingDialog prompt = new PromptingDialog(getShell(), projects,
- getOverwriteLocalAndFileSystemPrompt(),
- Policy.bind("ReplaceWithAction.confirmOverwrite"), //$NON-NLS-1$
- true /* all or nothing*/);//$NON-NLS-1$
- return (prompt.promptForMultiple().length == projects.length);
- }
-
- protected static String getTaskName(ICVSRemoteFolder[] remoteFolders) {
- if (remoteFolders.length == 1) {
- ICVSRemoteFolder folder = remoteFolders[0];
- String label = folder.getRepositoryRelativePath();
- if (label.equals(FolderSyncInfo.VIRTUAL_DIRECTORY)) {
- label = folder.getName();
- }
- return Policy.bind("AddToWorkspace.taskName1", label); //$NON-NLS-1$
- }
- else {
- return Policy.bind("AddToWorkspace.taskNameN", new Integer(remoteFolders.length).toString()); //$NON-NLS-1$
- }
- }
-
- protected IPromptCondition getOverwriteLocalAndFileSystemPrompt() {
- return new IPromptCondition() {
- // prompt if resource in workspace exists or exists in local file system
- public boolean needsPrompt(IResource resource) {
- File localLocation = getFileLocation(resource);
- if(resource.exists() || localLocation.exists()) {
- return true;
- }
- return false;
- }
- public String promptMessage(IResource resource) {
- File localLocation = getFileLocation(resource);
- if(resource.exists()) {
- return Policy.bind("AddToWorkspaceAction.thisResourceExists", resource.getName());//$NON-NLS-1$
- } else {
- return Policy.bind("AddToWorkspaceAction.thisExternalFileExists", resource.getName());//$NON-NLS-1$
- }
- }
- private File getFileLocation(IResource resource) {
- return new File(resource.getParent().getLocation().toFile(), resource.getName());
- }
- };
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/BranchAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/BranchAction.java
deleted file mode 100644
index c79269e39..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/BranchAction.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-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.jface.dialogs.InputDialog;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-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.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.BranchPromptDialog;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * BranchAction tags the selected resources with a branch tag specified by the user,
- * and optionally updates the local resources to point to the new branch.
- */
-public class BranchAction extends WorkspaceAction {
-
- /*
- * @see CVSAction#execute()
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
-
- // Prompt for the branch tag and whether to start working in the branch
- final IResource[] resources = getSelectedResources();
- boolean allSticky = areAllResourcesSticky(resources);
- ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(resources[0].getProject());
- final BranchPromptDialog dialog = new BranchPromptDialog(getShell(),
- Policy.bind("BranchWizard.title"), //$NON-NLS-1$
- folder,
- allSticky,
- calculateInitialVersionName(resources,allSticky));
- if (dialog.open() != InputDialog.OK) return;
-
- // Capture the dialog info in local variables
- final String tagString = dialog.getBranchTagName();
- final boolean update = dialog.getUpdate();
- final String versionString = dialog.getVersionTagName();
- final CVSTag rootVersionTag = (versionString == null) ? null : new CVSTag(versionString, CVSTag.VERSION);
- final CVSTag branchTag = new CVSTag(tagString, CVSTag.BRANCH);
-
- // For non-projects determine if the tag being loaded is the same as the resource's parent
- // If it's not, warn the user that they will be mixing tags
- if (update) {
- try {
- if(!CVSAction.checkForMixingTags(getShell(), resources, branchTag)) {
- return;
- }
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- final RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
-
- // perform the branch
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-
- Hashtable table = getProviderMapping(resources);
- Set keySet = table.keySet();
- monitor.beginTask(null, keySet.size() * 1000);
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- try {
- ICVSRepositoryLocation root = provider.getCVSWorkspaceRoot().getRemoteLocation();
- if (!areAllResourcesSticky(resources)) {
- // version everything in workspace with the root version tag specified in dialog
- provider.makeBranch(providerResources, rootVersionTag, branchTag, update, subMonitor);
- } else {
- // all resources are versions, use that version as the root of the branch
- provider.makeBranch(providerResources, null, branchTag, update, subMonitor);
- }
- if (rootVersionTag != null || update) {
- for (int i = 0; i < providerResources.length; i++) {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(providerResources[i]);
- if (rootVersionTag != null) {
- manager.addTags(cvsResource, new CVSTag[] { rootVersionTag });
- }
- if (update) {
- manager.addTags(cvsResource, new CVSTag[] { branchTag });
- }
- }
- }
- } catch (TeamException e) {
- // Accumulate the status which will be displayed by CVSAction#endOperation(IAction)
- addStatus(e.getStatus());
- }
- }
- }
- }, true /* cancelable */, PROGRESS_DIALOG);
- }
-
- /**
- * Answers <code>true</code> if all resources in the array have a sticky tag
- */
- private boolean areAllResourcesSticky(IResource[] resources) {
- for (int i = 0; i < resources.length; i++) {
- if(!hasStickyTag(resources[i])) return false;
- }
- return true;
- }
-
- /**
- * Answers <code>true</code> if the resource has a sticky tag
- */
- private boolean hasStickyTag(IResource resource) {
- try {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- CVSTag tag;
- if(cvsResource.isFolder()) {
- FolderSyncInfo folderInfo = ((ICVSFolder)cvsResource).getFolderSyncInfo();
- tag = folderInfo.getTag();
- } else {
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- tag = info.getTag();
- }
- if(tag!=null) {
- int tagType = tag.getType();
- if(tagType==CVSTag.VERSION) {
- return true;
- }
- }
- } catch(CVSException e) {
- CVSUIPlugin.log(e);
- return false;
- }
- return false;
- }
-
- private String calculateInitialVersionName(IResource[] resources, boolean allSticky) {
- String versionName = ""; //$NON-NLS-1$
- try {
- if(allSticky) {
- IResource stickyResource = resources[0];
- if(stickyResource.getType()==IResource.FILE) {
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile)stickyResource);
- versionName = cvsFile.getSyncInfo().getTag().getName();
- } else {
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor((IContainer)stickyResource);
- versionName = cvsFolder.getFolderSyncInfo().getTag().getName();
- }
- }
- } catch(CVSException e) {
- CVSUIPlugin.log(e);
- versionName = ""; //$NON-NLS-1$
- }
- return versionName;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("BranchWizard.errorBranching"); //$NON-NLS-1$
- }
-
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java
deleted file mode 100644
index 04aacfd94..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java
+++ /dev/null
@@ -1,489 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-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.ui.*;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.team.internal.ui.actions.TeamAction;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-import org.eclipse.team.ui.synchronize.SyncInfoDiffNode;
-import org.eclipse.ui.*;
-
-/**
- * CVSAction is the common superclass for all CVS actions. It provides
- * facilities for enablement handling, standard error handling, selection
- * retrieval and prompting.
- */
-abstract public class CVSAction extends TeamAction implements IEditorActionDelegate {
-
- private List accumulatedStatus = new ArrayList();
-
- /**
- * Common run method for all CVS actions.
- */
- final public void run(IAction action) {
- try {
- if (!beginExecution(action)) return;
- execute(action);
- endExecution();
- } catch (InvocationTargetException e) {
- // Handle the exception and any accumulated errors
- handle(e);
- } catch (InterruptedException e) {
- // Show any problems that have occured so far
- handle(null);
- } catch (TeamException e) {
- // Handle the exception and any accumulated errors
- handle(e);
- }
- }
-
- /**
- * This method gets invoked before the <code>CVSAction#execute(IAction)</code>
- * method. It can preform any prechecking and initialization required before
- * the action is executed. Sunclasses may override but must invoke this
- * inherited method to ensure proper initialization of this superclass is performed.
- * These included prepartion to accumulate IStatus and checking for dirty editors.
- */
- protected boolean beginExecution(IAction action) throws TeamException {
- accumulatedStatus.clear();
- if(needsToSaveDirtyEditors()) {
- if(!saveAllEditors()) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Actions must override to do their work.
- */
- abstract protected void execute(IAction action) throws InvocationTargetException, InterruptedException;
-
- /**
- * This method gets invoked after <code>CVSAction#execute(IAction)</code>
- * if no exception occured. Sunclasses may override but should invoke this
- * inherited method to ensure proper handling oy any accumulated IStatus.
- */
- protected void endExecution() throws TeamException {
- if ( ! accumulatedStatus.isEmpty()) {
- handle(null);
- }
- }
-
- /**
- * Add a status to the list of accumulated status.
- * These will be provided to method handle(Exception, IStatus[])
- * when the action completes.
- */
- protected void addStatus(IStatus status) {
- accumulatedStatus.add(status);
- }
-
- /**
- * Return the list of status accumulated so far by the action. This
- * will include any OK status that were added using addStatus(IStatus)
- */
- protected IStatus[] getAccumulatedStatus() {
- return (IStatus[]) accumulatedStatus.toArray(new IStatus[accumulatedStatus.size()]);
- }
-
- /**
- * Return the title to be displayed on error dialogs.
- * Sunclasses should override to present a custon message.
- */
- protected String getErrorTitle() {
- return Policy.bind("CVSAction.errorTitle"); //$NON-NLS-1$
- }
-
- /**
- * Return the title to be displayed on error dialogs when warnigns occur.
- * Sunclasses should override to present a custon message.
- */
- protected String getWarningTitle() {
- return Policy.bind("CVSAction.warningTitle"); //$NON-NLS-1$
- }
-
- /**
- * Return the message to be used for the parent MultiStatus when
- * mulitple errors occur during an action.
- * Sunclasses should override to present a custon message.
- */
- protected String getMultiStatusMessage() {
- return Policy.bind("CVSAction.multipleProblemsMessage"); //$NON-NLS-1$
- }
-
- /**
- * Return the status to be displayed in an error dialog for the given list
- * of non-OK status.
- *
- * This method can be overridden bu subclasses. Returning an OK status will
- * prevent the error dialog from being shown.
- */
- protected IStatus getStatusToDisplay(IStatus[] problems) {
- if (problems.length == 1) {
- return problems[0];
- }
- MultiStatus combinedStatus = new MultiStatus(CVSUIPlugin.ID, 0, getMultiStatusMessage(), null); //$NON-NLS-1$
- for (int i = 0; i < problems.length; i++) {
- combinedStatus.merge(problems[i]);
- }
- return combinedStatus;
- }
-
- /**
- * Method that implements generic handling of an exception.
- *
- * Thsi method will also use any accumulated status when determining what
- * information (if any) to show the user.
- *
- * @param exception the exception that occured (or null if none occured)
- * @param status any status accumulated by the action before the end of
- * the action or the exception occured.
- */
- protected void handle(Exception exception) {
- // Get the non-OK statii
- List problems = new ArrayList();
- IStatus[] status = getAccumulatedStatus();
- if (status != null) {
- for (int i = 0; i < status.length; i++) {
- IStatus iStatus = status[i];
- if ( ! iStatus.isOK() || iStatus.getCode() == CVSStatus.SERVER_ERROR) {
- problems.add(iStatus);
- }
- }
- }
- // Handle the case where there are no problem statii
- if (problems.size() == 0) {
- if (exception == null) return;
- handle(exception, getErrorTitle(), null);
- return;
- }
-
- // For now, display both the exception and the problem status
- // Later, we can determine how to display both together
- if (exception != null) {
- handle(exception, getErrorTitle(), null);
- }
-
- String message = null;
- IStatus statusToDisplay = getStatusToDisplay((IStatus[]) problems.toArray(new IStatus[problems.size()]));
- if (statusToDisplay.isOK()) return;
- if (statusToDisplay.isMultiStatus() && statusToDisplay.getChildren().length == 1) {
- message = statusToDisplay.getMessage();
- statusToDisplay = statusToDisplay.getChildren()[0];
- }
- String title;
- if (statusToDisplay.getSeverity() == IStatus.ERROR) {
- title = getErrorTitle();
- } else {
- title = getWarningTitle();
- }
- CVSUIPlugin.openError(getShell(), title, message, new CVSException(statusToDisplay));
- }
-
- /**
- * Convenience method for running an operation with the appropriate progress.
- * Any exceptions are propogated so they can be handled by the
- * <code>CVSAction#run(IAction)</code> error handling code.
- *
- * @param runnable the runnable which executes the operation
- * @param cancelable indicate if a progress monitor should be cancelable
- * @param progressKind one of PROGRESS_BUSYCURSOR or PROGRESS_DIALOG
- */
- final protected void run(final IRunnableWithProgress runnable, boolean cancelable, int progressKind) throws InvocationTargetException, InterruptedException {
- final Exception[] exceptions = new Exception[] {null};
-
- // Ensure that no repository view refresh happens until after the action
- final IRunnableWithProgress innerRunnable = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- getRepositoryManager().run(runnable, monitor);
- }
- };
-
- switch (progressKind) {
- case PROGRESS_WORKBENCH_WINDOW :
- try {
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(true, true, runnable);
- } catch (InterruptedException e1) {
- exceptions[0] = null;
- e1.printStackTrace();
- } catch (InvocationTargetException e) {
- exceptions[0] = e;
- }
- break;
- case PROGRESS_BUSYCURSOR :
- BusyIndicator.showWhile(Display.getCurrent(), new Runnable() {
- public void run() {
- try {
- innerRunnable.run(new NullProgressMonitor());
- } catch (InvocationTargetException e) {
- exceptions[0] = e;
- } catch (InterruptedException e) {
- exceptions[0] = e;
- }
- }
- });
- break;
- case PROGRESS_DIALOG :
- default :
- new ProgressMonitorDialog(getShell()).run(cancelable, true, innerRunnable);
- break;
- }
- if (exceptions[0] != null) {
- if (exceptions[0] instanceof InvocationTargetException)
- throw (InvocationTargetException)exceptions[0];
- else
- throw (InterruptedException)exceptions[0];
- }
- }
-
- /**
- * Answers if the action would like dirty editors to saved
- * based on the CVS preference before running the action. By
- * default, CVSActions do not save dirty editors.
- */
- protected boolean needsToSaveDirtyEditors() {
- return false;
- }
-
- /**
- * Returns the selected CVS resources
- */
- protected ICVSResource[] getSelectedCVSResources() {
- ArrayList resources = null;
- if (!selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof ICVSResource) {
- resources.add(next);
- continue;
- }
- if (next instanceof IAdaptable) {
- IAdaptable a = (IAdaptable) next;
- Object adapter = a.getAdapter(ICVSResource.class);
- if (adapter instanceof ICVSResource) {
- resources.add(adapter);
- continue;
- }
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- return (ICVSResource[])resources.toArray(new ICVSResource[resources.size()]);
- }
- return new ICVSResource[0];
- }
-
- /**
- * Get selected CVS remote folders
- */
- protected ICVSRemoteFolder[] getSelectedRemoteFolders() {
- ArrayList resources = null;
- if (!selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof ICVSRemoteFolder) {
- resources.add(next);
- continue;
- }
- if (next instanceof IAdaptable) {
- IAdaptable a = (IAdaptable) next;
- Object adapter = a.getAdapter(ICVSRemoteFolder.class);
- if (adapter instanceof ICVSRemoteFolder) {
- resources.add(adapter);
- continue;
- }
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- return (ICVSRemoteFolder[])resources.toArray(new ICVSRemoteFolder[resources.size()]);
- }
- return new ICVSRemoteFolder[0];
- }
-
- /**
- * Returns the selected remote resources
- */
- protected ICVSRemoteResource[] getSelectedRemoteResources() {
- ArrayList resources = null;
- if (!selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = ((IStructuredSelection)selection).iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof ICVSRemoteResource) {
- resources.add(next);
- continue;
- }
- if (next instanceof ILogEntry) {
- resources.add(((ILogEntry)next).getRemoteFile());
- continue;
- }
- if (next instanceof IAdaptable) {
- IAdaptable a = (IAdaptable) next;
- Object adapter = a.getAdapter(ICVSRemoteResource.class);
- if (adapter instanceof ICVSRemoteResource) {
- resources.add(adapter);
- continue;
- }
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- ICVSRemoteResource[] result = new ICVSRemoteResource[resources.size()];
- resources.toArray(result);
- return result;
- }
- return new ICVSRemoteResource[0];
- }
-
- /**
- * A helper prompt condition for prompting for CVS dirty state.
- */
- public static IPromptCondition getOverwriteLocalChangesPrompt(final IResource[] dirtyResources) {
- return new IPromptCondition() {
- List resources = Arrays.asList(dirtyResources);
- public boolean needsPrompt(IResource resource) {
- return resources.contains(resource);
- }
- public String promptMessage(IResource resource) {
- return Policy.bind("ReplaceWithAction.localChanges", resource.getName());//$NON-NLS-1$
- }
- };
- }
-
- /**
- * Checks if a the resources' parent's tags are different then the given tag.
- * Prompts the user that they are adding mixed tags and returns <code>true</code> if
- * the user wants to continue or <code>false</code> otherwise.
- */
- public static boolean checkForMixingTags(final Shell shell, IResource[] resources, final CVSTag tag) throws CVSException {
- final IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- if(!store.getBoolean(ICVSUIConstants.PREF_PROMPT_ON_MIXED_TAGS)) {
- return true;
- };
-
- final boolean[] result = new boolean[] { true };
-
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (resource.getType() != IResource.PROJECT) {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- CVSTag parentTag = cvsResource.getParent().getFolderSyncInfo().getTag();
- // prompt if the tags are not equal
- // consider BASE to be equal the parent tag since we don't make BASE sticky on replace
- if (!CVSTag.equalTags(tag, parentTag) && !CVSTag.equalTags(tag, CVSTag.BASE)) {
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- AvoidableMessageDialog dialog = new AvoidableMessageDialog(
- shell,
- Policy.bind("CVSAction.mixingTagsTitle"), //$NON-NLS-1$
- null, // accept the default window icon
- Policy.bind("CVSAction.mixingTags", tag.getName()), //$NON-NLS-1$
- MessageDialog.QUESTION,
- new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL},
- 0);
-
- result[0] = dialog.open() == 0;
- if(result[0] && dialog.isDontShowAgain()) {
- store.setValue(ICVSUIConstants.PREF_PROMPT_ON_MIXED_TAGS, false);
- }
- }
- });
- // only prompt once
- break;
- }
- }
- }
- return result[0];
- }
-
- /**
- * Based on the CVS preference for saving dirty editors this method will either
- * ignore dirty editors, save them automatically, or prompt the user to save them.
- *
- * @return <code>true</code> if the command succeeded, and <code>false</code>
- * if at least one editor with unsaved changes was not saved
- */
- private boolean saveAllEditors() {
- final int option = CVSUIPlugin.getPlugin().getPreferenceStore().getInt(ICVSUIConstants.PREF_SAVE_DIRTY_EDITORS);
- final boolean[] okToContinue = new boolean[] {true};
- if (option != ICVSUIConstants.OPTION_NEVER) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- boolean confirm = option == ICVSUIConstants.OPTION_PROMPT;
- okToContinue[0] = PlatformUI.getWorkbench().saveAllEditors(confirm);
- }
- });
- }
- return okToContinue[0];
- }
- /**
- * @see org.eclipse.team.internal.ui.actions.TeamAction#handle(java.lang.Exception, java.lang.String, java.lang.String)
- */
- protected void handle(Exception exception, String title, String message) {
- CVSUIPlugin.openError(getShell(), title, message, exception, CVSUIPlugin.LOG_NONTEAM_EXCEPTIONS);
- }
-
- protected RepositoryManager getRepositoryManager() {
- return CVSUIPlugin.getPlugin().getRepositoryManager();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.actions.TeamAction#getSelectedResources()
- */
- protected IResource[] getSelectedResources() {
- if(selection.isEmpty()) return new IResource[0];
- Iterator it = selection.iterator();
- List resources = new ArrayList();
- while(it.hasNext()) {
- Object element = it.next();
- if(element instanceof SyncInfoDiffNode) {
- IResource resource = ((SyncInfoDiffNode)element).getResource();
- if (resource != null && resource.getType() != IResource.ROOT) {
- resources.add(resource);
- }
- } else {
- Object adapter = getAdapter(element, IResource.class);
- if (adapter instanceof IResource) {
- resources.add(adapter);
- }
- }
- }
- return (IResource[]) resources.toArray(new IResource[resources.size()]);
- }
-
- public void setActiveEditor(IAction action, IEditorPart targetEditor) {
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutAction.java
deleted file mode 100644
index aaa43375c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.operations.CheckoutMultipleProjectsOperation;
-
-/**
- * Checkout a remote module into the workspace ensuring that the user is prompted for
- * any overwrites that may occur.
- */
-public class CheckoutAction extends CVSAction {
-
- /**
- * @see CVSAction#execute(IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- try {
- new CheckoutMultipleProjectsOperation(getShell(), getSelectedRemoteFolders(), null)
- .run();
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- /**
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSRemoteFolder[] folders = getSelectedRemoteFolders();
- if (folders.length == 0) return false;
- // only enabled when all folders are in the same repository
- ICVSRepositoryLocation location = folders[0].getRepository();
- for (int i = 1; i < folders.length; i++) {
- ICVSRemoteFolder folder = folders[i];
- if (!folder.getRepository().equals(location)) {
- return false;
- }
- }
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutAsAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutAsAction.java
deleted file mode 100644
index 0b426ab12..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutAsAction.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.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.HasProjectMetaFileOperation;
-import org.eclipse.team.internal.ccvs.ui.wizards.CheckoutAsWizard;
-
-/**
- * Add a remote resource to the workspace. Current implementation:
- * -Works only for remote folders
- * -Does not prompt for project name; uses folder name instead
- */
-public class CheckoutAsAction extends AddToWorkspaceAction {
-
- /*
- * @see IActionDelegate#run(IAction)
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- final ICVSRemoteFolder[] folders = getSelectedRemoteFolders();
- try {
- CheckoutAsWizard wizard = new CheckoutAsWizard(folders, allowProjectConfiguration(folders));
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.open();
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- protected boolean allowProjectConfiguration(ICVSRemoteFolder[] folders) throws CVSException, InterruptedException {
- if (folders.length != 1) return false;
- return !HasProjectMetaFileOperation.hasMetaFile(getShell(), folders[0]);
- }
-
- /*
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- return getSelectedRemoteFolders().length > 0;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("CheckoutAsAction.checkoutFailed"); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java
deleted file mode 100644
index 1e7d83102..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-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.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Action for checking in files to a CVS provider.
- * Prompts the user for a release comment.
- */
-public class CommitAction extends WorkspaceAction {
-
- /*
- * @see CVSAction#execute(IAction)
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- final IResource[] resources = getSelectedResources();
- final RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- final String[] comment = new String[] {null};
- final IResource[][] resourcesToBeAdded = new IResource[][] { null };
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- // search for any non-added, non-ignored resources in the selection
- IResource[] unadded = getUnaddedResources(resources, monitor);
- resourcesToBeAdded[0] = promptForResourcesToBeAdded(manager, unadded);
- if (resourcesToBeAdded[0] == null) return;
- comment[0] = promptForComment(manager, resources);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, true /* cancelable */, PROGRESS_BUSYCURSOR); //$NON-NLS-1$
-
- if (comment[0] == null) return;
-
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- // execute the add and commit in a single CVS runnable so sync changes are batched
- CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot()).run(
- new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- try {
- int ticks=100;
- monitor.beginTask(null, ticks);
- if (resourcesToBeAdded[0].length > 0) {
- int addTicks = 20;
- manager.add(resourcesToBeAdded[0], Policy.subMonitorFor(monitor, addTicks));
- ticks-=addTicks;
- }
- IResource[] shared = getSharedResources(resources);
- if (shared.length == 0) return;
- manager.commit(shared, comment[0], Policy.subMonitorFor(monitor,ticks));
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- }
- }, monitor);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, true /* cancelable */, PROGRESS_DIALOG); //$NON-NLS-1$
- }
-
- /**
- * Method getUnaddedResources.
- * @param resources
- * @param iProgressMonitor
- * @return IResource[]
- */
- private IResource[] getUnaddedResources(IResource[] resources, IProgressMonitor iProgressMonitor) throws CVSException {
- final List unadded = new ArrayList();
- final CVSException[] exception = new CVSException[] { null };
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- // visit each resource deeply
- try {
- resource.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- // skip ignored resources and their children
- try {
- if (cvsResource.isIgnored())
- return false;
- // visit the children of shared resources
- if (cvsResource.isManaged())
- return true;
- if (cvsResource.isFolder() && ((ICVSFolder)cvsResource).isCVSFolder())
- return true;
- } catch (CVSException e) {
- exception[0] = e;
- }
- // don't add folders to avoid comitting empty folders
- if (resource.getType() == IResource.FOLDER)
- return true;
- // file is unshared so record it
- unadded.add(resource);
- // no need to go into children because add is deep
- return false;
- }
- });
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- if (exception[0] != null) throw exception[0];
- }
- return (IResource[]) unadded.toArray(new IResource[unadded.size()]);
- }
-
-
- /*
- * Return all resources in the provided collection that are shared with a repo
- * @param resources
- * @return IResource[]
- */
- private IResource[] getSharedResources(IResource[] resources) throws CVSException {
- List shared = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (cvsResource.isManaged()
- || (cvsResource.isFolder() && ((ICVSFolder)cvsResource).isCVSFolder())) {
- shared.add(resource);
- }
- }
- return (IResource[]) shared.toArray(new IResource[shared.size()]);
- }
-
- /**
- * Prompts the user for a release comment.
- * @return the comment, or null to cancel
- */
- protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
- return manager.promptForComment(getShell(), resourcesToCommit);
- }
-
- private IResource[] promptForResourcesToBeAdded(RepositoryManager manager, IResource[] unadded) {
- return manager.promptForResourcesToBeAdded(getShell(), unadded);
- }
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("CommitAction.commitFailed"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForUnmanagedResources()
- */
- protected boolean isEnabledForUnmanagedResources() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareRemoteResourcesAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareRemoteResourcesAction.java
deleted file mode 100644
index 0414ca887..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareRemoteResourcesAction.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareUI;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.team.internal.ccvs.ui.operations.RemoteCompareOperation;
-
-/**
- * This action is used for comparing two arbitrary remote resources. This is
- * enabled in the repository explorer.
- */
-public class CompareRemoteResourcesAction extends CVSAction {
-
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- ICVSRemoteResource[] editions = getSelectedRemoteResources();
- if (editions == null || editions.length != 2) {
- MessageDialog.openError(getShell(), Policy.bind("CompareRemoteResourcesAction.unableToCompare"), Policy.bind("CompareRemoteResourcesAction.selectTwoResources")); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
- if (isSameFolder(editions)) {
- // Run the compare operation in the background
- try {
- new RemoteCompareOperation(null, editions[0], RemoteCompareOperation.getTag(editions[1]))
- .run();
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- } catch (InterruptedException e) {
- // Ignored
- }
- } else {
- ResourceEditionNode left = new ResourceEditionNode(editions[0]);
- ResourceEditionNode right = new ResourceEditionNode(editions[1]);
- CompareUI.openCompareEditorOnPage(
- new CVSCompareEditorInput(left, right),
- getTargetPage());
- }
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- }
-
- protected boolean isSameFolder(ICVSRemoteResource[] editions) {
- return editions[0].getRepository().equals(editions[1].getRepository())
- && editions[0].getRepositoryRelativePath().equals(editions[1].getRepositoryRelativePath());
- }
-
- /*
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSRemoteResource[] resources = getSelectedRemoteResources();
- if (resources.length != 2) return false;
- if (resources[0].isContainer() != resources[1].isContainer()) return false;
- // Don't allow comparisons of two unrelated remote projects
- return !resources[0].isContainer() || isSameFolder(resources);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareRemoteWithTagAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareRemoteWithTagAction.java
deleted file mode 100644
index 75132bde9..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareRemoteWithTagAction.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.ui.TagSelectionDialog;
-import org.eclipse.team.internal.ccvs.ui.operations.RemoteCompareOperation;
-
-/**
- * Compare to versions of a remote resource.
- */
-public class CompareRemoteWithTagAction extends CVSAction {
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
-
- ICVSRemoteResource[] resources = getSelectedRemoteResources();
- if (resources.length == 0) return;
-
- // Obtain the tag to compare against
- final ICVSRemoteResource resource = resources[0];
- final CVSTag[] tag = new CVSTag[] { null};
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) {
- ICVSFolder folder;
- if (resource instanceof ICVSRemoteFolder) {
- folder = (ICVSFolder)resource;
- } else {
- folder = resource.getParent();
- }
- tag[0] = TagSelectionDialog.getTagToCompareWith(getShell(), new ICVSFolder[] {folder});
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- if (tag[0] == null) return;
-
- // Run the compare operation in the background
- try {
- new RemoteCompareOperation(null, resource, tag[0])
- .run();
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- protected boolean isEnabled() {
- ICVSRemoteResource[] resources = getSelectedRemoteResources();
- // Only support single select for now.
- // Need to avoid overlap if multi-select is supported
- return resources.length == 1;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java
deleted file mode 100644
index 4563ab09b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareUI;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.CVSLocalCompareEditorInput;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-public class CompareWithRemoteAction extends WorkspaceAction {
-
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- final IResource[] resources = getSelectedResources();
- final CVSTag[] tags = new CVSTag[resources.length];
- try {
- for (int i = 0; i < resources.length; i++) {
- tags[i] = getTag(resources[i]);
- }
- } catch(CVSException e) {
- throw new InvocationTargetException(e);
- }
-
- // Show the compare viewer
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- CompareUI.openCompareEditorOnPage(
- new CVSLocalCompareEditorInput(resources, tags),
- getTargetPage());
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- }
-
- protected CVSTag getTag(IResource resource) throws CVSException {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- return getTag(cvsResource);
- }
-
- protected CVSTag getTag(ICVSResource cvsResource) throws CVSException {
- CVSTag tag = null;
- if (cvsResource.isFolder()) {
- FolderSyncInfo folderInfo = ((ICVSFolder)cvsResource).getFolderSyncInfo();
- if (folderInfo!=null) {
- tag = folderInfo.getTag();
- if(tag == null) {
- tag = CVSTag.DEFAULT;
- }
- }
- } else {
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- if (info != null) {
- tag = info.getTag();
- }
- }
- if (tag==null) {
- if (cvsResource.getParent().isCVSFolder()) {
- tag = cvsResource.getParent().getFolderSyncInfo().getTag();
- if(tag == null) {
- tag = CVSTag.DEFAULT;
- }
- }
- }
- return tag;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("CompareWithRemoteAction.compare"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- if (super.isEnabledForCVSResource(cvsResource)) {
- // Don't enable if there are sticky file revisions in the lineup
- if (!cvsResource.isFolder()) {
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- if (info != null && info.getTag() != null) {
- String revision = info.getRevision();
- String tag = info.getTag().getName();
- if (revision.equals(tag)) return false;
- }
- }
- return true;
- } else {
- return getTag(cvsResource) != null;
- }
- }
-
- /*
- * Update the text label for the action based on the tags in the
- * selection.
- * @see TeamAction#setActionEnablement(org.eclipse.jface.action.IAction)
- */
- protected void setActionEnablement(IAction action) {
- super.setActionEnablement(action);
- action.setText(calculateActionTagValue());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRevisionAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRevisionAction.java
deleted file mode 100644
index b41b7886f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRevisionAction.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareUI;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.CVSCompareRevisionsInput;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-public class CompareWithRevisionAction extends WorkspaceAction {
-
- /**
- * Returns the selected remote file
- */
- protected ICVSRemoteFile getSelectedRemoteFile() {
- IResource[] resources = getSelectedResources();
- if (resources.length != 1) return null;
- if (!(resources[0] instanceof IFile)) return null;
- IFile file = (IFile)resources[0];
- try {
- return (ICVSRemoteFile)CVSWorkspaceRoot.getRemoteResourceFor(file);
- } catch (TeamException e) {
- handle(e, null, null);
- return null;
- }
- }
-
- /*
- * @see CVSAction#execute(IAction)
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
-
- // Setup holders
- final ICVSRemoteFile[] file = new ICVSRemoteFile[] { null };
- final ILogEntry[][] entries = new ILogEntry[][] { null };
-
- // Get the selected file
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- file[0] = getSelectedRemoteFile();
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
-
- if (file[0] == null) {
- // No revisions for selected file
- MessageDialog.openWarning(getShell(), Policy.bind("CompareWithRevisionAction.noRevisions"), Policy.bind("CompareWithRevisionAction.noRevisionsLong")); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
-
- // Fetch the log entries
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- try {
- monitor.beginTask(Policy.bind("CompareWithRevisionAction.fetching"), 100); //$NON-NLS-1$
- entries[0] = file[0].getLogEntries(Policy.subMonitorFor(monitor, 100));
- monitor.done();
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, true /* cancelable */, PROGRESS_DIALOG);
-
- if (entries[0] == null) return;
-
- // Show the compare viewer
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- CompareUI.openCompareEditorOnPage(
- new CVSCompareRevisionsInput((IFile)getSelectedResources()[0], entries[0]),
- getTargetPage());
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("CompareWithRevisionAction.compare"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- return (!cvsResource.isFolder() && super.isEnabledForCVSResource(cvsResource));
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForMultipleResources()
- */
- protected boolean isEnabledForMultipleResources() {
- return false;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java
deleted file mode 100644
index 550827c65..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareUI;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.TagSelectionDialog;
-import org.eclipse.team.internal.ccvs.ui.subscriber.CVSLocalCompareConfiguration;
-import org.eclipse.team.ui.synchronize.SyncInfoSetCompareInput;
-
-public class CompareWithTagAction extends WorkspaceAction {
-
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- IResource[] resources = getSelectedResources();
- CVSTag tag = promptForTag(resources);
- if (tag == null) return;
- final SyncInfoSetCompareInput input = createCompareInput(resources, tag);
-
- // Show the compare viewer
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- CompareUI.openCompareEditorOnPage(input, getTargetPage());
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- }
-
- private SyncInfoSetCompareInput createCompareInput(IResource[] resources, CVSTag tag) {
- final CVSLocalCompareConfiguration viewerConfig = CVSLocalCompareConfiguration.create(resources, tag);
- final SyncInfoSetCompareInput input = new SyncInfoSetCompareInput(new CompareConfiguration(), viewerConfig) {
- protected Object prepareInput(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- return viewerConfig.prepareInput(monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- public void contributeToToolBar(ToolBarManager tbm) {
- viewerConfig.contributeToToolBar(tbm);
- super.contributeToToolBar(tbm);
- }
- };
- return input;
- }
-
- private CVSTag promptForTag(IResource[] resources) {
- IProject[] projects = new IProject[resources.length];
- for (int i = 0; i < resources.length; i++) {
- projects[i] = resources[i].getProject();
- }
- CVSTag tag = TagSelectionDialog.getTagToCompareWith(getShell(), projects);
- return tag;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ConfigureTagsFromRepoViewOnFolder.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ConfigureTagsFromRepoViewOnFolder.java
deleted file mode 100644
index b8bce4213..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ConfigureTagsFromRepoViewOnFolder.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-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.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.TagConfigurationDialog;
-import org.eclipse.team.internal.ccvs.ui.model.RemoteModule;
-;
-
-/**
- * DefineTagAction remembers a tag by name
- */
-public class ConfigureTagsFromRepoViewOnFolder extends CVSAction {
-
- /**
- * Returns the selected remote folders
- */
- protected ICVSRemoteFolder[] getSelectedRemoteFolders() {
- ArrayList resources = null;
- if (!selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof RemoteModule) {
- next = ((RemoteModule)next).getCVSResource();
- }
- if (next instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder)next;
- if (folder.isDefinedModule()) {
- resources.add(next);
- } else if(new Path(((ICVSRemoteFolder)next).getRepositoryRelativePath()).segmentCount()==1) {
- resources.add(next);
- }
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- return (ICVSRemoteFolder[])resources.toArray(new ICVSRemoteFolder[resources.size()]);
- }
- return new ICVSRemoteFolder[0];
- }
-
- /*
- * @see CVSAction@execute(IAction)
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- final ICVSRemoteFolder[] roots = getSelectedRemoteFolders();
- final Shell shell = getShell();
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- ICVSFolder[] cvsFolders = new ICVSFolder[roots.length];
- for (int i = 0; i < roots.length; i++) {
- cvsFolders[i] = (ICVSFolder)roots[i];
- }
- TagConfigurationDialog d = new TagConfigurationDialog(shell, cvsFolders);
- d.open();
- }
- });
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- }
-
- /*
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSRemoteFolder[] roots = getSelectedRemoteFolders();
- if (roots.length != 1) return false;
- return true;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("ConfigureTagsFromRepoViewConfigure_Tag_Error_1"); //$NON-NLS-1$
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ContentAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ContentAction.java
deleted file mode 100644
index b9be21b63..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ContentAction.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.internal.ccvs.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.sync.ILocalSyncElement;
-import org.eclipse.team.internal.ccvs.ui.AvoidableMessageDialog;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.sync.CVSSyncCompareInput;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.actions.ActionDelegate;
-
-public class ContentAction extends ActionDelegate implements IEditorActionDelegate {
-
- /**
- * Is <code>null</code> if the current active editor is not a compare editor
- * with a CVS editor input. Or else this input refer to the input in the active
- * CVS compare editor.
- */
- private CVSSyncCompareInput syncInput;
-
- /**
- * Should only be called if action is enabled and the current active editor is a
- * CVS compare editor.
- *
- * @see IActionDelegate#run(IAction)
- */
- public void run(IAction action) {
- final IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- if (store.getBoolean(ICVSUIConstants.PREF_PROMPT_ON_CHANGE_GRANULARITY)) {
- Shell shell = syncInput.getViewer().getControl().getShell();
- AvoidableMessageDialog dialog = new AvoidableMessageDialog(
- shell,
- Policy.bind("ContentAction.Confirm_Long_Operation_1"), //$NON-NLS-1$
- null, // accept the default window icon
- Policy.bind("ContentAction.Changing_this_setting_will_involve_contacting_the_server_and_may_be_long-running_2"), //$NON-NLS-1$
- MessageDialog.QUESTION,
- new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL},
- 0);
-
- boolean result = dialog.open() == 0;
- if (result && dialog.isDontShowAgain()) {
- store.setValue(ICVSUIConstants.PREF_PROMPT_ON_CHANGE_GRANULARITY, false);
- }
- if (!result) {
- action.setChecked(! action.isChecked());
- return;
- }
- }
- syncInput.setSyncGranularity(action.isChecked() ? ILocalSyncElement.GRANULARITY_CONTENTS : ILocalSyncElement.GRANULARITY_TIMESTAMP);
- }
-
- /**
- * Called when the active editor changes. Enablement of this action depends
- * on the editor type and editr input of the active editor.
- *
- * @see IEditorActionDelegate#setActiveEditor(IAction, IEditorPart)
- */
- public void setActiveEditor(IAction action, IEditorPart targetEditor) {
- if (targetEditor != null) {
- IEditorInput input = targetEditor.getEditorInput();
- if (input instanceof CVSSyncCompareInput) {
- this.syncInput = (CVSSyncCompareInput)input;
- action.setEnabled(true);
- action.setChecked(syncInput.getSyncGranularity() != ILocalSyncElement.GRANULARITY_TIMESTAMP);
- return;
- }
- }
- syncInput = null;
- action.setEnabled(false);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/EditAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/EditAction.java
deleted file mode 100644
index db65ff609..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/EditAction.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.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class EditAction extends WorkspaceAction {
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- // Get the editors
- final EditorsAction editors = new EditorsAction();
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- executeProviderAction(editors,monitor);
- }
- },true /* cancelable */, PROGRESS_DIALOG);
-
- // If there are editors show them
- // and prompt the user to
- // execute the edit command
- if (!editors.promptToEdit(shell)) {
- return;
- }
-
-
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- executeProviderAction(new IProviderAction() {
- public IStatus execute(CVSTeamProvider provider, IResource[] resources, IProgressMonitor monitor) throws CVSException {
- provider.edit(resources, false /* recurse */, true /* notify server */, ICVSFile.NO_NOTIFICATION, monitor);
- return Team.OK_STATUS;
- }
- }, monitor);
- }
- }, true /* cancelable */, PROGRESS_DIALOG);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- if (cvsResource.isFolder()) return false;
- if (super.isEnabledForCVSResource(cvsResource)) {
- return ((ICVSFile)cvsResource).isReadOnly();
- } else {
- return false;
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/EditorsAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/EditorsAction.java
deleted file mode 100644
index f1c3c5d85..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/EditorsAction.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 CSC SoftwareConsult GmbH & Co. OHG, Germany and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * CSC - Intial implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction.IProviderAction;
-
-/**
- * This Action gets the <code>EditorsInfo[]</code>
- * It is used by the <code>ShowEditorAction</code>
- * and <code>ShowEditorAction</code>.
- *
- * @author <a href="mailto:gregor.kohlwes@csc.com,kohlwes@gmx.net">Gregor
- * Kohlwes</a>
- *
- */
-public class EditorsAction implements IProviderAction, IRunnableWithProgress {
- EditorsInfo[] f_editorsInfo = new EditorsInfo[0];
- CVSTeamProvider f_provider;
- IResource[] f_resources;
-
- public EditorsAction() {
- }
-
- public EditorsAction(CVSTeamProvider provider, IResource[] resources) {
- f_provider = provider;
- f_resources = resources;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction.IProviderAction#execute(org.eclipse.team.internal.ccvs.core.CVSTeamProvider, org.eclipse.core.resources.IResource, org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus execute(CVSTeamProvider provider, IResource[] resources, IProgressMonitor monitor)
- throws CVSException {
- f_editorsInfo = provider.editors(resources, monitor);
- return Team.OK_STATUS;
- }
-
- public boolean promptToEdit(Shell shell) {
- if (!isEmpty()) {
- final EditorsDialog view = new EditorsDialog(shell, f_editorsInfo);
- // Open the dialog using a sync exec (there are no guarentees that we
- // were called from the UI thread
- CVSUIPlugin.openDialog(shell, new CVSUIPlugin.IOpenableInShell() {
- public void open(Shell shell) {
- view.open();
- }
- }, CVSUIPlugin.PERFORM_SYNC_EXEC);
- return (view.getReturnCode() == EditorsDialog.OK);
- }
- return true;
- }
-
- /**
- * Contact the server to determine if there are any editors on the associatd files.
- *
- * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void run(IProgressMonitor monitor)
- throws InvocationTargetException, InterruptedException {
- if (f_provider == null || f_resources == null) {
- throw new InvocationTargetException(new RuntimeException(Policy.bind("EditorsAction.classNotInitialized", this.getClass().getName()))); //$NON-NLS-1$
- }
- try {
- execute(f_provider,f_resources,monitor);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- /**
- * Returns the f_editorsInfo.
- * @return EditorsInfo[]
- */
- public EditorsInfo[] getEditorsInfo() {
- return f_editorsInfo;
- }
-
- /**
- * Indicates whether there are editors of any of the associated files.
- * The <code>run(IProgressMonitor)</code> must be invoked first to
- * fetch any editors from the server.
- * @return boolean
- */
- public boolean isEmpty() {
- return f_editorsInfo.length == 0;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java
deleted file mode 100644
index 304dc1f7b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.wizards.GenerateDiffFileWizard;
-
-/**
- * Action to generate a patch file using the CVS diff command.
- *
- * NOTE: This is a temporary action and should eventually be replaced
- * by a create patch command in the compare viewer.
- */
-public class GenerateDiffFileAction extends WorkspaceAction {
-
- /** (Non-javadoc)
- * Method declared on IActionDelegate.
- */
- public void execute(IAction action) {
- final String title = Policy.bind("GenerateCVSDiff.title"); //$NON-NLS-1$
- final IResource[] resources = getSelectedResources();
- GenerateDiffFileWizard wizard = new GenerateDiffFileWizard(new StructuredSelection(resources), resources[0]);
- wizard.setWindowTitle(title);
- WizardDialog dialog = new WizardDialog(getShell(), wizard);
- dialog.setMinimumPageSize(350, 250);
- dialog.open();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForMultipleResources()
- */
- protected boolean isEnabledForMultipleResources() {
- return false;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForUnmanagedResources()
- */
- protected boolean isEnabledForUnmanagedResources() {
- return true;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/IgnoreAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/IgnoreAction.java
deleted file mode 100644
index e76d644f4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/IgnoreAction.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.IgnoreResourcesDialog;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class IgnoreAction extends WorkspaceAction {
-
- protected void execute(final IAction action) throws InvocationTargetException, InterruptedException {
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- IResource[] resources = getSelectedResources();
- IgnoreResourcesDialog dialog = new IgnoreResourcesDialog(getShell(), resources);
- if (dialog.open() != IgnoreResourcesDialog.OK) return;
-
- try {
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- String pattern = dialog.getIgnorePatternFor(resource);
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- cvsResource.setIgnoredAs(pattern);
- }
- // fix the action enablement
- if (action != null) action.setEnabled(isEnabled());
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- }
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("IgnoreAction.ignore"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForManagedResources()
- */
- protected boolean isEnabledForManagedResources() {
- return false;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForUnmanagedResources()
- */
- protected boolean isEnabledForUnmanagedResources() {
- return true;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/MergeAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/MergeAction.java
deleted file mode 100644
index 28024f6e0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/MergeAction.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.internal.ccvs.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.ui.merge.MergeWizard;
-
-public class MergeAction extends WorkspaceAction {
-
- /*
- * @see CVSAction#execute()
- */
- public void execute(IAction action) {
- final Shell shell = getShell();
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- MergeWizard wizard = new MergeWizard();
- wizard.setResources(getSelectedResources());
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.open();
- }
- });
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/MoveRemoteTagAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/MoveRemoteTagAction.java
deleted file mode 100644
index 5a0463d72..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/MoveRemoteTagAction.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.internal.ccvs.ui.actions;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.TagSelectionDialog;
-import org.eclipse.team.internal.ccvs.ui.operations.ITagOperation;
-
-public class MoveRemoteTagAction extends TagInRepositoryAction {
-
- /**
- * @see TagRemoteAction#promptForTag(ICVSFolder[])
- */
- protected ITagOperation configureOperation() {
- // Allow the user to select a tag
- ITagOperation operation = createTagOperation();
- TagSelectionDialog dialog = new TagSelectionDialog(getShell(), getCVSFolders(operation.getCVSResources()),
- Policy.bind("MoveTagAction.title"), //$NON-NLS-1$
- Policy.bind("MoveTagAction.message"), //$NON-NLS-1$
- TagSelectionDialog.INCLUDE_BRANCHES | TagSelectionDialog.INCLUDE_VERSIONS,
- true, /* show recurse */
- IHelpContextIds.TAG_REMOTE_WITH_EXISTING_DIALOG);
- dialog.setBlockOnOpen(true);
- if (dialog.open() == Dialog.CANCEL) {
- return null;
- }
- CVSTag tag = dialog.getResult();
- if (tag == null) return null;
- operation.setTag(tag);
- operation.moveTag();
- boolean recursive = dialog.getRecursive();
- if (!recursive) {
- operation.recurse();
- }
- return operation;
- }
-
- private ICVSFolder[] getCVSFolders(ICVSResource[] resources) {
- ICVSFolder[] folders = new ICVSFolder[resources.length];
- for (int i = 0; i < resources.length; i++) {
- if (resources[i].isFolder()) {
- folders[i] = (ICVSFolder)resources[i];
- } else {
- folders[i] = resources[i].getParent();
- }
- }
- return folders;
-
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/NewRepositoryAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/NewRepositoryAction.java
deleted file mode 100644
index 18877b9b9..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/NewRepositoryAction.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.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.ui.wizards.NewLocationWizard;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-public class NewRepositoryAction implements IWorkbenchWindowActionDelegate {
- Shell shell;
-
- /**
- * @see IWorkbenchWindowActionDelegate#dispose()
- */
- public void dispose() {
- }
-
- /**
- * @see IWorkbenchWindowActionDelegate#init(IWorkbenchWindow)
- */
- public void init(IWorkbenchWindow window) {
- this.shell = window.getShell();
- }
-
- /**
- * @see IActionDelegate#run(IAction)
- */
- public void run(IAction action) {
- NewLocationWizard wizard = new NewLocationWizard();
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.open();
- }
-
- /**
- * @see IActionDelegate#selectionChanged(IAction, ISelection)
- */
- public void selectionChanged(IAction action, ISelection selection) {
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java
deleted file mode 100644
index 4e20c96e0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.RemoteFileEditorInput;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-public class OpenLogEntryAction extends CVSAction {
- /**
- * Returns the selected remote files
- */
- protected ILogEntry[] getSelectedLogEntries() {
- ArrayList entries = null;
- if (!selection.isEmpty()) {
- entries = new ArrayList();
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof ILogEntry) {
- entries.add((ILogEntry)next);
- continue;
- }
- if (next instanceof IAdaptable) {
- IAdaptable a = (IAdaptable) next;
- Object adapter = a.getAdapter(ILogEntry.class);
- if (adapter instanceof ILogEntry) {
- entries.add(adapter);
- continue;
- }
- }
- }
- }
- if (entries != null && !entries.isEmpty()) {
- ILogEntry[] result = new ILogEntry[entries.size()];
- entries.toArray(result);
- return result;
- }
- return new ILogEntry[0];
- }
- /*
- * @see CVSAction#execute(IAction)
- */
- public void execute(IAction action) throws InterruptedException, InvocationTargetException {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- IWorkbench workbench = CVSUIPlugin.getPlugin().getWorkbench();
- IEditorRegistry registry = workbench.getEditorRegistry();
- IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
- final ILogEntry[] entries = getSelectedLogEntries();
- for (int i = 0; i < entries.length; i++) {
- if (entries[i].isDeletion()) {
- MessageDialog.openError(getShell(), Policy.bind("OpenLogEntryAction.deletedTitle"), Policy.bind("OpenLogEntryAction.deleted")); //$NON-NLS-1$ //$NON-NLS-2$
- } else {
- ICVSRemoteFile file = entries[i].getRemoteFile();
- String filename = file.getName();
- IEditorDescriptor descriptor = registry.getDefaultEditor(filename);
- String id;
- if (descriptor == null) {
- id = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$
- } else {
- id = descriptor.getId();
- }
- try {
- try {
- page.openEditor(new RemoteFileEditorInput(file), id);
- } catch (PartInitException e) {
- if (id.equals("org.eclipse.ui.DefaultTextEditor")) { //$NON-NLS-1$
- throw e;
- } else {
- page.openEditor(new RemoteFileEditorInput(file), "org.eclipse.ui.DefaultTextEditor"); //$NON-NLS-1$
- }
- }
- } catch (PartInitException e) {
- throw new InvocationTargetException(e);
- }
- }
- }
- }
- }, false, PROGRESS_BUSYCURSOR); //$NON-NLS-1$
- }
- /*
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ILogEntry[] entries = getSelectedLogEntries();
- if (entries.length == 0) return false;
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenRemoteFileAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenRemoteFileAction.java
deleted file mode 100644
index 1e1562467..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenRemoteFileAction.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.RemoteFileEditorInput;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-public class OpenRemoteFileAction extends CVSAction {
- /**
- * Returns the selected remote files
- */
- protected ICVSRemoteFile[] getSelectedRemoteFiles() {
- ArrayList resources = null;
- if (!selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof ICVSRemoteFile) {
- resources.add(next);
- continue;
- }
- if (next instanceof ILogEntry) {
- resources.add(((ILogEntry)next).getRemoteFile());
- continue;
- }
- if (next instanceof IAdaptable) {
- IAdaptable a = (IAdaptable) next;
- Object adapter = a.getAdapter(ICVSRemoteFile.class);
- if (adapter instanceof ICVSRemoteFile) {
- resources.add(adapter);
- continue;
- }
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- ICVSRemoteFile[] result = new ICVSRemoteFile[resources.size()];
- resources.toArray(result);
- return result;
- }
- return new ICVSRemoteFile[0];
- }
- /*
- * @see CVSAction#execute(IAction)
- */
- public void execute(IAction action) throws InterruptedException, InvocationTargetException {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
-/* IWorkbenchPage page = CVSUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow().getActivePage();
- ICVSRemoteFile[] files = getSelectedRemoteFiles();
- for (int i = 0; i < files.length; i++) {
- try {
- page.openEditor(new RemoteFileEditorInput(files[i]), "org.eclipse.ui.DefaultTextEditor"); //$NON-NLS-1$
- } catch (PartInitException e) {
- throw new InvocationTargetException(e);
- }
- }*/
-
- IWorkbench workbench = CVSUIPlugin.getPlugin().getWorkbench();
- IEditorRegistry registry = workbench.getEditorRegistry();
- IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
- ICVSRemoteFile[] files = getSelectedRemoteFiles();
- for (int i = 0; i < files.length; i++) {
- ICVSRemoteFile file = files[i];
- String filename = file.getName();
- IEditorDescriptor descriptor = registry.getDefaultEditor(filename);
- String id;
- if (descriptor == null) {
- id = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$
- } else {
- id = descriptor.getId();
- }
- try {
- try {
- page.openEditor(new RemoteFileEditorInput(files[i]), id);
- } catch (PartInitException e) {
- if (id.equals("org.eclipse.ui.DefaultTextEditor")) { //$NON-NLS-1$
- throw e;
- } else {
- page.openEditor(new RemoteFileEditorInput(files[i]), "org.eclipse.ui.DefaultTextEditor"); //$NON-NLS-1$
- }
- }
- } catch (PartInitException e) {
- throw new InvocationTargetException(e);
- }
- }
- }
- }, false, PROGRESS_BUSYCURSOR); //$NON-NLS-1$
- }
- /*
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSRemoteFile[] resources = getSelectedRemoteFiles();
- if (resources.length == 0) return false;
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ReplaceWithRemoteAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ReplaceWithRemoteAction.java
deleted file mode 100644
index 30f3fd451..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ReplaceWithRemoteAction.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.ReplaceOperation;
-import org.eclipse.team.internal.core.InfiniteSubProgressMonitor;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-
-public class ReplaceWithRemoteAction extends WorkspaceAction {
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
-
- final IResource[][] resources = new IResource[][] {null};
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- resources[0] = checkOverwriteOfDirtyResources(getSelectedResources(), new InfiniteSubProgressMonitor(monitor, 100));
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
-
- if (resources[0] == null || resources[0].length == 0) return;
-
- try {
- // Peform the replace in the background
- new ReplaceOperation(getShell(), resources[0], null, true).run();
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- protected IPromptCondition getPromptCondition(IResource[] dirtyResources) {
- return getOverwriteLocalChangesPrompt(dirtyResources);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("ReplaceWithRemoteAction.problemMessage"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- if (super.isEnabledForCVSResource(cvsResource)) {
- // Don't enable if there are sticky file revisions in the lineup
- if (!cvsResource.isFolder()) {
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- if (info != null && info.getTag() != null) {
- String revision = info.getRevision();
- String tag = info.getTag().getName();
- if (revision.equals(tag)) return false;
- }
- }
- return true;
- } else {
- return false;
- }
- }
-
- /*
- * Update the text label for the action based on the tags in the
- * selection.
- *
- * @see TeamAction#setActionEnablement(org.eclipse.jface.action.IAction)
- */
- protected void setActionEnablement(IAction action) {
- super.setActionEnablement(action);
-
- action.setText(calculateActionTagValue());
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ReplaceWithTagAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ReplaceWithTagAction.java
deleted file mode 100644
index 4d74d80e0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ReplaceWithTagAction.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.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.team.internal.ccvs.ui.operations.ReplaceOperation;
-
-/**
- * Action for replace with tag.
- */
-public class ReplaceWithTagAction extends WorkspaceAction {
- /*
- * Method declared on IActionDelegate.
- */
- public void execute(IAction action) throws InterruptedException, InvocationTargetException {
-
- // Setup the holders
- final IResource[][] resources = new IResource[][] {null};
- final CVSTag[] tag = new CVSTag[] {null};
- final boolean[] recurse = new boolean[] {true};
-
- // Show a busy cursor while display the tag selection dialog
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-
- try {
- resources[0] =
- checkOverwriteOfDirtyResources(
- getSelectedResources(),
- null /* no progress just a busy cursor for now */);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- if(resources[0].length == 0) {
- // nothing to do
- return;
- }
- // show the tags for the projects of the selected resources
- IProject[] projects = new IProject[resources[0].length];
- for (int i = 0; i < resources[0].length; i++) {
- projects[i] = resources[0][i].getProject();
- }
- TagSelectionDialog dialog = new TagSelectionDialog(getShell(), projects,
- Policy.bind("ReplaceWithTagAction.message"), //$NON-NLS-1$
- Policy.bind("TagSelectionDialog.Select_a_Tag_1"), //$NON-NLS-1$
- TagSelectionDialog.INCLUDE_ALL_TAGS,
- true, /*show recurse*/
- IHelpContextIds.REPLACE_TAG_SELECTION_DIALOG); //$NON-NLS-1$
- dialog.setBlockOnOpen(true);
- if (dialog.open() == Dialog.CANCEL) {
- return;
- }
- tag[0] = dialog.getResult();
- recurse[0] = dialog.getRecursive();
-
- // For non-projects determine if the tag being loaded is the same as the resource's parent
- // If it's not, warn the user that they will have strange sync behavior
- try {
- if(!CVSAction.checkForMixingTags(getShell(), resources[0], tag[0])) {
- tag[0] = null;
- return;
- }
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR); //$NON-NLS-1$
-
- if (resources[0] == null || resources[0].length == 0 || tag[0] == null) return;
-
- try {
- // Peform the replace in the background
- new ReplaceOperation(getShell(), resources[0], tag[0], recurse[0]).run();
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("ReplaceWithTagAction.replace"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/RestoreFromRepositoryAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/RestoreFromRepositoryAction.java
deleted file mode 100644
index 95c1224a0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/RestoreFromRepositoryAction.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.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.WizardDialog;
-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.CVSStatus;
-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.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.client.Log;
-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.client.Command.QuietOption;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.ResizableWizardDialog;
-import org.eclipse.team.internal.ccvs.ui.wizards.RestoreFromRepositoryWizard;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class RestoreFromRepositoryAction extends CVSAction {
-
- /*
- * This class handles the output from "cvs log -R ..." where -R
- * indicates that only the RCS file name is to be returned. Files
- * that have been deleted will be in the Attic. The Attic may also
- * contains files that exist on a branch but not in HEAD
- */
- class AtticLogListener extends CommandOutputListener {
- private static final String ATTIC = "Attic"; //$NON-NLS-1$
- private static final String RCS_FILE_POSTFIX = ",v"; //$NON-NLS-1$
- private static final String LOGGING_PREFIX = "Logging "; //$NON-NLS-1$
- ICVSFolder currentFolder;
- List atticFiles = new ArrayList();
-
- public IStatus messageLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- // Find all RCS file names that contain "Attic"
- int index = line.indexOf(ATTIC);
- if (index == -1) return OK;
- // Extract the file name and path from the RCS path
- String filePath = line.substring(index);
- int start = line.indexOf(Session.SERVER_SEPARATOR, index);
- String fileName = line.substring(start + 1);
- if (fileName.endsWith(RCS_FILE_POSTFIX)) {
- fileName = fileName.substring(0, fileName.length() - RCS_FILE_POSTFIX.length());
- }
- try {
- atticFiles.add(currentFolder.getFile(fileName));
- } catch (CVSException e) {
- return e.getStatus();
- }
- return OK;
- }
-
- public IStatus errorLine(
- String line,
- ICVSRepositoryLocation location,
- ICVSFolder commandRoot,
- IProgressMonitor monitor) {
-
- CVSRepositoryLocation repo = (CVSRepositoryLocation)location;
- String folderPath = repo.getServerMessageWithoutPrefix(line, SERVER_PREFIX);
- if (folderPath != null) {
- if (folderPath.startsWith(LOGGING_PREFIX)) {
- folderPath = folderPath.substring(LOGGING_PREFIX.length());
- try {
- currentFolder = commandRoot.getFolder(folderPath);
- } catch (CVSException e) {
- return e.getStatus();
- }
- return OK;
- }
- }
- return super.errorLine(line, location, commandRoot, monitor);
- }
-
- public ICVSFile[] getAtticFilePaths() {
- return (ICVSFile[]) atticFiles.toArray(new ICVSFile[atticFiles.size()]);
- }
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- IContainer resource = (IContainer)getSelectedResources()[0];
- ICVSFile[] files = fetchDeletedFiles(resource);
- if (files == null) return;
- if (files.length == 0) {
- MessageDialog.openInformation(getShell(), Policy.bind("RestoreFromRepositoryAction.noFilesTitle"), Policy.bind("RestoreFromRepositoryAction.noFilesMessage", resource.getName())); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
- RestoreFromRepositoryWizard wizard = new RestoreFromRepositoryWizard(resource, files);
- WizardDialog dialog = new ResizableWizardDialog(shell, wizard);
- dialog.setMinimumPageSize(350, 250);
- dialog.open();
- }
-
- /**
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- IResource[] resources = getSelectedResources();
- if (resources.length != 1) return false;
- if (resources[0].getType() == IResource.FILE) return false;
- ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor((IContainer)resources[0]);
- if (!folder.isCVSFolder()) return false;
- return true;
- }
-
- private ICVSFile[] fetchDeletedFiles(final IContainer parent) {
- final ICVSFile[][] files = new ICVSFile[1][0];
- files[0] = null;
- try {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(parent);
- FolderSyncInfo info = folder.getFolderSyncInfo();
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(info.getRoot());
- files[0] = fetchFilesInAttic(location, folder, monitor);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, true, PROGRESS_DIALOG);
- } catch (InvocationTargetException e) {
- handle(e);
- } catch (InterruptedException e) {
- return null;
- }
- return files[0];
- }
-
- /*
- * Fetch the RCS paths (minus the Attic segment) of all files in the Attic.
- * This path includes the repository root path.
- */
- private ICVSFile[] fetchFilesInAttic(ICVSRepositoryLocation location, ICVSFolder parent, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- AtticLogListener listener = new AtticLogListener();
- Session session = new Session(location, parent, true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- QuietOption quietness = CVSProviderPlugin.getPlugin().getQuietness();
- try {
- CVSProviderPlugin.getPlugin().setQuietness(Command.VERBOSE);
- IStatus status = Command.LOG.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- new LocalOption[] { Log.RCS_FILE_NAMES_ONLY },
- new ICVSResource[] { parent }, listener,
- Policy.subMonitorFor(monitor, 90));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- } finally {
- CVSProviderPlugin.getPlugin().setQuietness(quietness);
- monitor.done();
- }
- } finally {
- session.close();
- }
- return listener.getAtticFilePaths();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.java
deleted file mode 100644
index dffb82f44..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.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.internal.ccvs.ui.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.ui.ResizableWizardDialog;
-import org.eclipse.team.internal.ccvs.ui.wizards.KSubstWizard;
-
-/**
- * TagAction tags the selected resources with a version tag specified by the user.
- */
-public class SetKeywordSubstitutionAction extends WorkspaceAction {
- private KSubstOption previousOption = null; // automatic
-
- /*
- * @see IActionDelegate#run(IAction)
- */
- public void execute(IAction action) {
- final IResource[] resources = getSelectedResources();
- KSubstWizard wizard = new KSubstWizard(resources, IResource.DEPTH_INFINITE, previousOption);
- WizardDialog dialog = new ResizableWizardDialog(getShell(), wizard);
- wizard.setParentDialog(dialog);
- dialog.setMinimumPageSize(350, 250);
- dialog.open();
- previousOption = wizard.getKSubstOption();
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowAnnotationAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowAnnotationAction.java
deleted file mode 100644
index 7bfff8afe..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowAnnotationAction.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.*;
-import org.eclipse.team.internal.ccvs.core.client.listeners.AnnotateListener;
-import org.eclipse.team.internal.ccvs.core.client.listeners.LogEntry;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.AnnotateView;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.*;
-
-public class ShowAnnotationAction extends WorkspaceAction {
-
- /**
- * Action to open a CVS Annotate View
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- // Get the selected resource.
- final ICVSResource cvsResource = getSingleSelectedCVSResource();
- execute(cvsResource);
- }
-
- public void execute(final ICVSResource cvsResource) throws InvocationTargetException, InterruptedException {
-
- final AnnotateListener listener = new AnnotateListener();
- if (cvsResource == null) {
- return;
- }
- // Get the selected revision
- final String revision;
- try {
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- if (info == null) {
- handle(new CVSException(Policy.bind("ShowAnnotationAction.noSyncInfo", cvsResource.getName()))); //$NON-NLS-1$
- return;
- }
- revision = cvsResource.getSyncInfo().getRevision();
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
-
- // Run the CVS Annotate action with a progress monitor
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- fetchAnnotation(listener, cvsResource, revision, monitor);
- }
- }, true, PROGRESS_DIALOG);
-
- if (listener.hasError()) {
- throw new InvocationTargetException(new CVSException(Policy.bind("ShowAnnotationAction.1", listener.getError()))); //$NON-NLS-1$
- }
-
- // Open the view
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- try {
- PlatformUI.getWorkbench().showPerspective("org.eclipse.team.cvs.ui.cvsPerspective", window); //$NON-NLS-1$
- } catch (WorkbenchException e1) {
- // If this does not work we will just open the view in the
- // curren perspective.
- }
- }
-
- try {
- AnnotateView view = AnnotateView.openInActivePerspective();
- view.showAnnotations(cvsResource, listener.getCvsAnnotateBlocks(), listener.getContents());
- } catch (PartInitException e1) {
- handle(e1);
- }
- }
-
- /**
- * Send the CVS annotate command
- *
- * @param listener
- * @param cvsResource
- * @param revision
- * @param monitor
- * @throws InvocationTargetException
- */
- private void fetchAnnotation(final AnnotateListener listener, final ICVSResource cvsResource, final String revision, IProgressMonitor monitor) throws InvocationTargetException {
-
- try {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, 100);
- ICVSFolder folder = cvsResource.getParent();
- final FolderSyncInfo info = folder.getFolderSyncInfo();
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(info.getRoot());
- Session session = new Session(location, folder, true /*
- * output to
- * console
- */);
- session.open(Policy.subMonitorFor(monitor, 10), false /* read-only */);
- try {
- Command.QuietOption quietness = CVSProviderPlugin.getPlugin().getQuietness();
- try {
- CVSProviderPlugin.getPlugin().setQuietness(Command.VERBOSE);
- final Command.LocalOption[] localOption;
- if (revision == null) {
- localOption = Command.NO_LOCAL_OPTIONS;
- } else {
- localOption = new Command.LocalOption[1];
- localOption[0] = Annotate.makeRevisionOption(revision);
- }
- IStatus status = Command.ANNOTATE.execute(session, Command.NO_GLOBAL_OPTIONS, localOption, new ICVSResource[]{cvsResource}, listener, Policy.subMonitorFor(monitor, 90));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- throw new CVSServerException(status);
- }
- } finally {
- CVSProviderPlugin.getPlugin().setQuietness(quietness);
- monitor.done();
- }
- } finally {
- session.close();
- }
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- /**
- * Ony enabled for single resource selection
- */
- protected boolean isEnabled() throws TeamException {
- ICVSResource resource = getSingleSelectedCVSResource();
- return (resource != null && ! resource.isFolder() && resource.isManaged());
- }
-
- /**
- * This action is called from one of a Resource Navigator a CVS Resource
- * Navigator or a History Log Viewer. Return the selected resource as an
- * ICVSResource
- *
- * @return ICVSResource
- */
- protected ICVSResource getSingleSelectedCVSResource() {
- // Selected from a CVS Resource Navigator
- ICVSResource[] cvsResources = getSelectedCVSResources();
- if (cvsResources.length == 1) {
- return cvsResources[0];
- }
-
- // Selected from a History Viewer
- Object[] logEntries = getSelectedResources(LogEntry.class);
- if (logEntries.length == 1) {
- LogEntry aLogEntry = (LogEntry) logEntries[0];
- ICVSRemoteFile cvsRemoteFile = aLogEntry.getRemoteFile();
- return cvsRemoteFile;
- }
-
- // Selected from a Resource Navigator
- IResource[] resources = getSelectedResources();
- if (resources.length == 1) {
- return CVSWorkspaceRoot.getCVSResourceFor(resources[0]);
- }
- return null;
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowCVSPerspectiveAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowCVSPerspectiveAction.java
deleted file mode 100644
index 53e039ab4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowCVSPerspectiveAction.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.internal.ccvs.ui.actions;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-public class ShowCVSPerspectiveAction extends Action {
- public void run() {
- IWorkbench workbench = PlatformUI.getWorkbench();
- IWorkbenchWindow activeWindow = workbench.getActiveWorkbenchWindow();
- if (activeWindow == null) {
- return;
- }
- IWorkbenchPage activePage = activeWindow.getActivePage();
- if (activePage == null) {
- return;
- }
- IPerspectiveDescriptor cvsPerspective = workbench.getPerspectiveRegistry().findPerspectiveWithId("org.eclipse.team.cvs.ui.cvsPerspective"); //$NON-NLS-1$
- if(cvsPerspective!=null) {
- activePage.setPerspective(cvsPerspective);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowEditorsAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowEditorsAction.java
deleted file mode 100644
index 0d0038e12..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowEditorsAction.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 CSC SoftwareConsult GmbH & Co. OHG, Germany and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * CSC - Intial implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.internal.ccvs.core.EditorsInfo;
-import org.eclipse.team.internal.ccvs.ui.EditorsView;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-/**
- *
- *
- * Action for Show Editors in popup menus
- *
- * @author <a href="mailto:kohlwes@gmx.net">Gregor Kohlwes</a>
- *
- */
-public class ShowEditorsAction extends WorkspaceAction {
-
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- final EditorsAction editorsAction = new EditorsAction();
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor)
- throws InvocationTargetException, InterruptedException {
- executeProviderAction(editorsAction, monitor);
- }
- }, true /* cancelable */ , PROGRESS_DIALOG);
- EditorsInfo[] infos = editorsAction.getEditorsInfo();
- EditorsView view = (EditorsView)showView(EditorsView.VIEW_ID);
- if (view != null) {
- view.setInput(infos);
- }
-
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForMultipleResources()
- */
- protected boolean isEnabledForMultipleResources() {
- // We support one selected Resource,
- // because the editors command will
- // show the editors of all children too.
- return false;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowHistoryAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowHistoryAction.java
deleted file mode 100644
index 6567fd029..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowHistoryAction.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.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.ui.HistoryView;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-public class ShowHistoryAction extends CVSAction {
- /**
- * Returns the selected remote files
- */
- protected ICVSRemoteFile[] getSelectedRemoteFiles() {
- ArrayList resources = null;
- if (!selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof ICVSRemoteFile) {
- resources.add(next);
- continue;
- }
- if (next instanceof IAdaptable) {
- IAdaptable a = (IAdaptable)next;
- Object adapter = a.getAdapter(ICVSRemoteFile.class);
- if (adapter instanceof ICVSRemoteFile) {
- resources.add(adapter);
- continue;
- }
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- ICVSRemoteFile[] result = new ICVSRemoteFile[resources.size()];
- resources.toArray(result);
- return result;
- }
- return new ICVSRemoteFile[0];
- }
- /*
- * @see CVSAction#executeIAction)
- */
- public void execute(IAction action) throws InterruptedException, InvocationTargetException {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- ICVSRemoteFile[] files = getSelectedRemoteFiles();
- HistoryView view = (HistoryView)showView(HistoryView.VIEW_ID);
- if (view != null) {
- view.showHistory(files[0]);
- }
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- }
- /*
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSRemoteFile[] resources = getSelectedRemoteFiles();
- return resources.length == 1;
- }
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("ShowHistoryAction.showHistory"); //$NON-NLS-1$
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowResourceInHistoryAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowResourceInHistoryAction.java
deleted file mode 100644
index 231b5baeb..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/ShowResourceInHistoryAction.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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.HistoryView;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-public class ShowResourceInHistoryAction extends WorkspaceAction {
- /*
- * @see IActionDelegate#run(IAction)
- */
- public void execute(IAction action) throws InterruptedException, InvocationTargetException {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- IResource[] resources = getSelectedResources();
- if (resources.length != 1) return;
- HistoryView view = (HistoryView)showView(HistoryView.VIEW_ID);
- if (view != null) {
- view.showHistory(resources[0]);
- }
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("ShowHistoryAction.showHistory"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForMultipleResources()
- */
- protected boolean isEnabledForMultipleResources() {
- return false;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- return (!cvsResource.isFolder() && super.isEnabledForCVSResource(cvsResource));
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java
deleted file mode 100644
index f5e0e082c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.sync.CVSSyncCompareInput;
-import org.eclipse.team.internal.ui.sync.SyncCompareInput;
-
-/**
- * Action for catchup/release in popup menus.
- */
-public class SyncAction extends WorkspaceAction {
-
- public void execute(IAction action) throws InvocationTargetException {
- IResource[] resources = getResourcesToSync();
- if (resources == null || resources.length == 0) return;
-
- CVSUIPlugin.showInSyncView(getShell(), resources, 0 /* no mode in particular */);
- }
-
- protected SyncCompareInput getCompareInput(IResource[] resources) throws CVSException {
- return new CVSSyncCompareInput(resources);
- }
-
- protected IResource[] getResourcesToSync() {
- return getSelectedResources();
- }
-
- /**
- * Enable for resources that are managed (using super) or whose parent is a
- * CVS folder.
- *
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- return super.isEnabledForCVSResource(cvsResource) || cvsResource.getParent().isCVSFolder();
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagAction.java
deleted file mode 100644
index a45f61090..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagAction.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.window.Window;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.MessageDialogWithToggle;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.TagAsVersionDialog;
-import org.eclipse.team.internal.ccvs.ui.operations.ITagOperation;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-
-/**
- * TagAction tags the selected resources with a version tag specified by the user.
- */
-public abstract class TagAction extends WorkspaceAction {
-
- // remember if the execute action was cancelled
- private boolean wasCancelled = false;
-
- /**
- * @see CVSAction#execute(IAction)
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- setWasCancelled(false);
- if (!performPrompting()) {
- setWasCancelled(true);
- return;
- }
-
- // Prompt for the tag name
- final ITagOperation[] result = new ITagOperation[1];
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- result[0] = configureOperation();
- if (result[0] == null) {
- return;
- }
- }});
-
- if (result[0] == null) {
- setWasCancelled(true);
- return;
- }
-
- try {
- result[0].run();
- } catch (CVSException e1) {
- throw new InvocationTargetException(e1);
- }
- }
-
- protected boolean performPrompting() {
- return true;
- }
-
- /**
- * Prompts the user for a tag name.
- * Note: This method is designed to be overridden by test cases.
- * @return the operation, or null to cancel
- */
- protected ITagOperation configureOperation() {
- IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- ITagOperation operation = createTagOperation();
- TagAsVersionDialog dialog = new TagAsVersionDialog(getShell(),
- Policy.bind("TagAction.tagResources"), //$NON-NLS-1$
- operation);
- if (dialog.open() != Window.OK) return null;
-
- // The user has indicated they want to force a move. Make sure they really do.
- if (dialog.shouldMoveTag() && store.getBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG)) {
- MessageDialogWithToggle confirmDialog = MessageDialogWithToggle.openQuestion(getShell(),
- Policy.bind("TagAction.moveTagConfirmTitle"), //$NON-NLS-1$
- Policy.bind("TagAction.moveTagConfirmMessage", dialog.getTagName()), //$NON-NLS-1$
- null,
- false);
-
- if (confirmDialog.getReturnCode() == IDialogConstants.OK_ID) {
- store.setValue(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG, !confirmDialog.getToggleState());
- } else {
- return null;
- }
- }
-
- // The user is a cowboy and wants to do it.
- return dialog.getOperation();
- }
-
- protected abstract ITagOperation createTagOperation();
-
- protected String getErrorTitle() {
- return Policy.bind("TagAction.tagErrorTitle"); //$NON-NLS-1$
- }
-
- protected String getWarningTitle() {
- return Policy.bind("TagAction.tagWarningTitle"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
-
- public boolean wasCancelled() {
- return wasCancelled;
- }
-
- public void setWasCancelled(boolean b) {
- wasCancelled = b;
- }
-
- public static void broadcastTagChange(final ICVSResource[] resources, final CVSTag tag) throws InvocationTargetException, InterruptedException {
- final RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- manager.run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) {
- try {
- for (int i = 0; i < resources.length; i++) {
- ICVSResource resource = resources[i];
- // Cache the new tag creation even if the tag may have had warnings.
- manager.addTags(getRootParent(resource), new CVSTag[] {tag});
- }
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
- private ICVSResource getRootParent(ICVSResource resource) throws CVSException {
- if (!resource.isManaged()) return resource;
- ICVSFolder parent = resource.getParent();
- if (parent == null) return resource;
- // Special check for a parent which is the repository itself
- if (parent.getName().length() == 0) return resource;
- return getRootParent(parent);
- }
- }, new NullProgressMonitor());
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagInRepositoryAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagInRepositoryAction.java
deleted file mode 100644
index 55323cfb4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagInRepositoryAction.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.operations.ITagOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.TagInRepositoryOperation;
-
-public class TagInRepositoryAction extends TagAction {
-
- /**
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSResource[] resources = getSelectedCVSResources();
- if (resources.length == 0) return false;
- for (int i = 0; i < resources.length; i++) {
- if (resources[i] instanceof ICVSRepositoryLocation) return false;
- }
- return true;
- }
-
- /**
- * @see CVSAction#needsToSaveDirtyEditors()
- */
- protected boolean needsToSaveDirtyEditors() {
- return false;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#requiresLocalSyncInfo()
- */
- protected boolean requiresLocalSyncInfo() {
- return false;
- }
-
- protected ITagOperation createTagOperation() {
- return new TagInRepositoryOperation(getShell(), getSelectedRemoteResources());
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagLocalAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagLocalAction.java
deleted file mode 100644
index afacd14d1..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/TagLocalAction.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.ITagOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.TagOperation;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-import org.eclipse.team.internal.ui.dialogs.PromptingDialog;
-
-public class TagLocalAction extends TagAction {
-
- IResource[] resources;
-
- protected boolean performPrompting() {
- // Prompt for any uncommitted changes
- PromptingDialog prompt = new PromptingDialog(getShell(), getSelectedResources(),
- getPromptCondition(), Policy.bind("TagAction.uncommittedChangesTitle"));//$NON-NLS-1$
- try {
- resources = prompt.promptForMultiple();
- } catch(InterruptedException e) {
- return false;
- }
- if(resources.length == 0) {
- // nothing to do
- return false;
- }
-
- return true;
- }
-
- protected ITagOperation createTagOperation() {
- return new TagOperation(getShell(), resources);
- }
-
- /**
- * Note: This method is designed to be overridden by test cases.
- */
- protected IPromptCondition getPromptCondition() {
- return new IPromptCondition() {
- public boolean needsPrompt(IResource resource) {
- return CVSLightweightDecorator.isDirty(resource);
- }
- public String promptMessage(IResource resource) {
- return Policy.bind("TagAction.uncommittedChanges", resource.getName());//$NON-NLS-1$
- }
- };
- }
-
- /**
- * Return the resources that have been selected by the user. The user has been given
- * a chance to remove any resources with outgoing changes so all provided resources
- * are to be tagged.
- * @return Returns the resources.
- */
- protected IResource[] getResources() {
- return resources;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UneditAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UneditAction.java
deleted file mode 100644
index 26d05dfaf..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UneditAction.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.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class UneditAction extends WorkspaceAction {
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
-
- if(! MessageDialog.openConfirm(getShell(), Policy.bind("Uneditaction.confirmTitle"), Policy.bind("Uneditaction.confirmMessage"))) { //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
-
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- executeProviderAction(new IProviderAction() {
- public IStatus execute(CVSTeamProvider provider, IResource[] resources, IProgressMonitor monitor) throws CVSException {
- provider.unedit(resources, false /* recurse */, true /* notify server */, monitor);
- return Team.OK_STATUS;
- }
- }, monitor);
- }
- }, true /* cancelable */, PROGRESS_DIALOG);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- if (cvsResource.isFolder()) return false;
- if (super.isEnabledForCVSResource(cvsResource)) {
- return !((ICVSFile)cvsResource).isReadOnly() && ((ICVSFile)cvsResource).isEdited();
- } else {
- return false;
- }
- }
-
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java
deleted file mode 100644
index 1dfee653a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.DisconnectOperation;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Unmanage action removes the cvs feature from a project and optionally
- * deletes the CVS meta information that is stored on disk.
- */
-public class UnmanageAction extends WorkspaceAction {
-
- static class DeleteProjectDialog extends MessageDialog {
-
- boolean deleteContent = false;
- Button radio1;
- Button radio2;
-
- DeleteProjectDialog(Shell parentShell, IProject[] projects) {
- super(
- parentShell,
- getTitle(projects),
- null, // accept the default window icon
- getMessage(projects),
- MessageDialog.QUESTION,
- new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL},
- 0); // yes is the default
- }
-
- static String getTitle(IProject[] projects) {
- if (projects.length == 1)
- return Policy.bind("Unmanage.title"); //$NON-NLS-1$
- else
- return Policy.bind("Unmanage.titleN"); //$NON-NLS-1$
- }
-
- static String getMessage(IProject[] projects) {
- if (projects.length == 1) {
- IProject project = projects[0];
- return Policy.bind("Unmanage.message", project.getName()); //$NON-NLS-1$
- }
- else {
- return Policy.bind("Unmanage.messageN", new Integer(projects.length).toString()); //$NON-NLS-1$
- }
- }
-
- protected Control createCustomArea(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- radio1 = new Button(composite, SWT.RADIO);
- radio1.addSelectionListener(selectionListener);
-
- radio1.setText(Policy.bind("Unmanage.option2")); //$NON-NLS-1$
-
- radio2 = new Button(composite, SWT.RADIO);
- radio2.addSelectionListener(selectionListener);
-
- radio2.setText(Policy.bind("Unmanage.option1")); //$NON-NLS-1$
-
- // set initial state
- radio1.setSelection(deleteContent);
- radio2.setSelection(!deleteContent);
-
- WorkbenchHelp.setHelp(composite, IHelpContextIds.DISCONNECT_ACTION);
-
- return composite;
- }
-
- private SelectionListener selectionListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button button = (Button) e.widget;
- if (button.getSelection()) {
- deleteContent = (button == radio1);
- }
- }
- };
-
- public boolean getDeleteContent() {
- return deleteContent;
- }
- }
-
- private boolean deleteContent = false;
-
- /*
- * @see IActionDelegate#run(IAction)
- */
- public void execute(IAction action) throws InterruptedException, InvocationTargetException {
- if(confirmDeleteProjects()) {
- try {
- new DisconnectOperation(getShell(), getSelectedProjects(), deleteContent)
- .run();
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
- }
-
- boolean confirmDeleteProjects() {
- final int[] result = new int[] { MessageDialog.OK };
- IProject[] projects = getSelectedProjects();
- final DeleteProjectDialog dialog = new DeleteProjectDialog(shell, projects);
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- result[0] = dialog.open();
- }
- });
- deleteContent = dialog.getDeleteContent();
- return result[0] == 0; // YES
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("Unmanage.unmanagingError");//$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- IResource resource = cvsResource.getIResource();
- return resource != null && resource.getType() == IResource.PROJECT;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UpdateAction.java
deleted file mode 100644
index 8b875af3f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UpdateAction.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.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-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.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * UpdateAction performs a 'cvs update' command on the selected resources.
- * If conflicts are present (file has been changed both remotely and locally),
- * the changes will be merged into the local file such that the user must
- * resolve the conflicts. This action is temporary code; it will be removed
- * when a functional synchronize view has been implemented.
- */
-public class UpdateAction extends WorkspaceAction {
- /*
- * @see IActionDelegate#run(IAction)
- */
- public void execute(IAction action) throws InterruptedException, InvocationTargetException {
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- Hashtable table = getProviderMapping();
- Set keySet = table.keySet();
- monitor.beginTask("", keySet.size() * 1000); //$NON-NLS-1$
- monitor.setTaskName(Policy.bind("UpdateAction.updating")); //$NON-NLS-1$
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- provider.update(providerResources, Command.NO_LOCAL_OPTIONS, null, true /*createBackups*/, subMonitor);
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, true /* cancelable */, PROGRESS_DIALOG);
-
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("UpdateAction.update"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceAction.java
deleted file mode 100644
index 008e56447..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceAction.java
+++ /dev/null
@@ -1,616 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-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.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-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.Util;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-import org.eclipse.team.internal.ui.dialogs.PromptingDialog;
-
-/**
- * This class represents an action performed on a local CVS workspace
- */
-public abstract class WorkspaceAction extends CVSAction {
-
- public interface IProviderAction {
- public IStatus execute(CVSTeamProvider provider, IResource[] resources, IProgressMonitor monitor) throws CVSException;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#beginExecution(IAction)
- */
- protected boolean beginExecution(IAction action) throws TeamException {
- if (super.beginExecution(action)) {
- // Ensure that the required sync info is loaded
- if (requiresLocalSyncInfo()) {
- // There is a possibility of the selection containing an orphaned subtree.
- // If it does, they will be purged and enablement rechecked before the
- // operation is performed.
- handleOrphanedSubtrees();
- // Check enablement just in case the sync info wasn't loaded
- if (!isEnabled()) {
- MessageDialog.openInformation(getShell(), Policy.bind("CVSAction.disabledTitle"), Policy.bind("CVSAction.disabledMessage")); //$NON-NLS-1$ //$NON-NLS-2$
- return false;
- }
- }
- return true;
- } else {
- return false;
- }
- }
-
- /*
- * Determine if any of the selected resources are deascendants of
- * an orphaned CVS subtree and if they are, purge the CVS folders.
- */
- private boolean handleOrphanedSubtrees() {
- // invoke the inherited method so that overlaps are maintained
- IResource[] resources = getSelectedResources();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- handleOrphanedSubtree(resource);
- }
- return false;
- }
-
- /*
- * Determine if the resource is a descendant of an orphaned subtree.
- * If it is, purge the CVS folders of the subtree.
- */
- private void handleOrphanedSubtree(IResource resource) {
- try {
- if (!CVSWorkspaceRoot.isSharedWithCVS(resource)) return ;
- ICVSFolder folder;
- if (resource.getType() == IResource.FILE) {
- folder = CVSWorkspaceRoot.getCVSFolderFor(resource.getParent());
- } else {
- folder = CVSWorkspaceRoot.getCVSFolderFor((IContainer)resource);
- }
- handleOrphanedSubtree(folder);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- }
-
- /*
- * Recursively check for and handle orphaned CVS folders
- */
- private void handleOrphanedSubtree(final ICVSFolder folder) throws CVSException {
- if (folder.getIResource().getType() == IResource.PROJECT) return;
- if (CVSWorkspaceRoot.isOrphanedSubtree((IContainer)folder.getIResource())) {
- try {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- folder.unmanage(null);
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
- }
- }, true, PROGRESS_WORKBENCH_WINDOW);
- } catch (InvocationTargetException e) {
- // Ignore this since we logged the one we care about above
- } catch (InterruptedException e) {
- throw new OperationCanceledException();
- }
- }
- handleOrphanedSubtree(folder.getParent());
- }
-
- /**
- * Return true if the sync info is loaded for all selected resources.
- * The purpose of this method is to allow enablement code to be as fast
- * as possible. If the sync info is not loaded, the menu should be enabled
- * and, if choosen, the action will verify that it is indeed enabled before
- * performing the associated operation
- */
- protected boolean isSyncInfoLoaded(IResource[] resources) throws CVSException {
- return EclipseSynchronizer.getInstance().isSyncInfoLoaded(resources, getEnablementDepth());
- }
-
- /**
- * Returns the resource depth of the action for use in determining if the required
- * sync info is loaded. The default is IResource.DEPTH_INFINITE. Sunclasses can override
- * as required.
- */
- protected int getActionDepth() {
- return IResource.DEPTH_INFINITE;
- }
-
- /**
- * Returns the resource depth of the action enablement for use in determining if the required
- * sync info is loaded. The default is IResource.DEPTH_ZERO. Sunclasses can override
- * as required.
- */
- protected int getEnablementDepth() {
- return IResource.DEPTH_ZERO;
- }
-
- /**
- * Ensure that the sync info for all the provided resources has been loaded.
- * If an out-of-sync resource is found, prompt to refresh all the projects involved.
- */
- protected boolean ensureSyncInfoLoaded(IResource[] resources) throws CVSException {
- boolean keepTrying = true;
- while (keepTrying) {
- try {
- EclipseSynchronizer.getInstance().ensureSyncInfoLoaded(resources, getActionDepth());
- keepTrying = false;
- } catch (CVSException e) {
- if (e.getStatus().getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
- // determine the projects of the resources involved
- Set projects = new HashSet();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- projects.add(resource.getProject());
- }
- // prompt to refresh
- if (promptToRefresh(getShell(), (IResource[]) projects.toArray(new IResource[projects.size()]), e.getStatus())) {
- for (Iterator iter = projects.iterator();iter.hasNext();) {
- IProject project = (IProject) iter.next();
- try {
- project.refreshLocal(IResource.DEPTH_INFINITE, null);
- } catch (CoreException coreException) {
- throw CVSException.wrapException(coreException);
- }
- }
- } else {
- return false;
- }
- } else {
- throw e;
- }
- }
- }
- return true;
- }
-
- /**
- * Override to ensure that the sync info is available before performing the
- * real <code>isEnabled()</code> test.
- *
- * @see org.eclipse.team.internal.ui.actions.TeamAction#setActionEnablement(IAction)
- */
- protected void setActionEnablement(IAction action) {
- try {
- boolean requires = requiresLocalSyncInfo();
- if (!requires || (requires && isSyncInfoLoaded(getSelectedResources()))) {
- super.setActionEnablement(action);
- } else {
- // If the sync info is not loaded, enable the menu item
- // Performing the action will ensure that the action should really
- // be enabled before anything else is done
- action.setEnabled(true);
- }
- } catch (CVSException e) {
- // We couldn't determine if the sync info was loaded.
- // Enable the action so that performing the action will
- // reveal the error to the user.
- action.setEnabled(true);
- }
- }
-
- /**
- * Return true if the action requires the sync info for the selected resources.
- * If the sync info is required, the real enablement code will only be run if
- * the sync info is loaded from disc. Otherwise, the action is enabled and
- * performing the action will load the sync info and verify that the action is truely
- * enabled before doing anything else.
- *
- * This implementation returns <code>true</code>. Subclasses must override if they do
- * not require the sync info of the selected resources.
- *
- * @return boolean
- */
- protected boolean requiresLocalSyncInfo() {
- return true;
- }
-
- protected boolean promptToRefresh(final Shell shell, final IResource[] resources, final IStatus status) {
- final boolean[] result = new boolean[] { false};
- Runnable runnable = new Runnable() {
- public void run() {
- Shell shellToUse = shell;
- if (shell == null) {
- shellToUse = new Shell(Display.getCurrent());
- }
- String question;
- if (resources.length == 1) {
- question = Policy.bind("CVSAction.refreshQuestion", status.getMessage(), resources[0].getFullPath().toString()); //$NON-NLS-1$
- } else {
- question = Policy.bind("CVSAction.refreshMultipleQuestion", status.getMessage()); //$NON-NLS-1$
- }
- result[0] = MessageDialog.openQuestion(shellToUse, Policy.bind("CVSAction.refreshTitle"), question); //$NON-NLS-1$
- }
- };
- Display.getDefault().syncExec(runnable);
- return result[0];
- }
-
- /**
- * Most CVS workspace actions modify the workspace and thus should
- * save dirty editors.
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#needsToSaveDirtyEditors()
- */
- protected boolean needsToSaveDirtyEditors() {
- return true;
- }
-
- /**
- * The action is enabled for the appropriate resources. This method checks
- * that:
- * <ol>
- * <li>there is no overlap between a selected file and folder (overlapping
- * folders is allowed because of logical vs. physical mapping problem in
- * views)
- * <li>the state of the resources match the conditions provided by:
- * <ul>
- * <li>isEnabledForIgnoredResources()
- * <li>isEnabledForManagedResources()
- * <li>isEnabledForUnManagedResources() (i.e. not ignored and not managed)
- * </ul>
- * </ol>
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
-
- // invoke the inherited method so that overlaps are maintained
- IResource[] resources = super.getSelectedResources();
-
- // disable if no resources are selected
- if(resources.length==0) return false;
-
- // disable properly for single resource enablement
- if (!isEnabledForMultipleResources() && resources.length != 1) return false;
-
- // validate enabled for each resource in the selection
- List folderPaths = new ArrayList();
- List filePaths = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
-
- // only enable for accessible resources
- if(resource.getType() == IResource.PROJECT) {
- if (! resource.isAccessible()) return false;
- }
-
- // no CVS actions are enabled if the selection contains a linked resource
- if (CVSWorkspaceRoot.isLinkedResource(resource)) return false;
-
- // only enable for resources in a project shared with CVS
- if(RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()) == null) {
- return false;
- }
-
- // collect files and folders separately to check for overlap later
- IPath resourceFullPath = resource.getFullPath();
- if(resource.getType() == IResource.FILE) {
- filePaths.add(resourceFullPath);
- } else {
- folderPaths.add(resourceFullPath);
- }
-
- // ensure that resource management state matches what the action requires
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (!isEnabledForCVSResource(cvsResource)) {
- return false;
- }
- }
- // Ensure that there is no overlap between files and folders
- // NOTE: folder overlap must be allowed because of logical vs. physical
- if(!folderPaths.isEmpty()) {
- for (Iterator fileIter = filePaths.iterator(); fileIter.hasNext();) {
- IPath resourcePath = (IPath) fileIter.next();
- for (Iterator it = folderPaths.iterator(); it.hasNext();) {
- IPath folderPath = (IPath) it.next();
- if (folderPath.isPrefixOf(resourcePath)) {
- return false;
- }
- }
- }
- }
- return true;
- }
-
- /**
- * Method isEnabledForCVSResource.
- * @param cvsResource
- * @return boolean
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- boolean managed = false;
- boolean ignored = false;
- boolean added = false;
- if (cvsResource.isIgnored()) {
- ignored = true;
- } else if (cvsResource.isFolder()) {
- managed = ((ICVSFolder)cvsResource).isCVSFolder();
- } else {
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- managed = info != null;
- if (managed) added = info.isAdded();
- }
- if (managed && ! isEnabledForManagedResources()) return false;
- if ( ! managed && ! isEnabledForUnmanagedResources()) return false;
- if ( ignored && ! isEnabledForIgnoredResources()) return false;
- if (added && ! isEnabledForAddedResources()) return false;
- if ( ! cvsResource.exists() && ! isEnabledForNonExistantResources()) return false;
- return true;
- }
-
- /**
- * Method isEnabledForIgnoredResources.
- * @return boolean
- */
- protected boolean isEnabledForIgnoredResources() {
- return false;
- }
-
- /**
- * Method isEnabledForUnmanagedResources.
- * @return boolean
- */
- protected boolean isEnabledForUnmanagedResources() {
- return false;
- }
-
- /**
- * Method isEnabledForManagedResources.
- * @return boolean
- */
- protected boolean isEnabledForManagedResources() {
- return true;
- }
-
- /**
- * Method isEnabledForAddedResources.
- * @return boolean
- */
- protected boolean isEnabledForAddedResources() {
- return true;
- }
-
- /**
- * Method isEnabledForAddedResources.
- * @return boolean
- */
- protected boolean isEnabledForMultipleResources() {
- return true;
- }
-
- /**
- * Method isEnabledForNonExistantResources.
- * @return boolean
- */
- protected boolean isEnabledForNonExistantResources() {
- return false;
- }
-
- /**
- * Method getNonOverlapping ensures that a resource is not covered more than once.
- * @param resources
- * @return IResource[]
- */
- public static IResource[] getNonOverlapping(IResource[] resources) {
- // Sort the resources so the shortest paths are first
- List sorted = new ArrayList();
- sorted.addAll(Arrays.asList(resources));
- Collections.sort(sorted, new Comparator() {
- public int compare(Object arg0, Object arg1) {
- IResource resource0 = (IResource) arg0;
- IResource resource1 = (IResource) arg1;
- return resource0.getFullPath().segmentCount() - resource1.getFullPath().segmentCount();
- }
- public boolean equals(Object arg0) {
- return false;
- }
- });
- // Collect all non-overlapping resources
- List coveredPaths = new ArrayList();
- for (Iterator iter = sorted.iterator(); iter.hasNext();) {
- IResource resource = (IResource) iter.next();
- IPath resourceFullPath = resource.getFullPath();
- boolean covered = false;
- for (Iterator it = coveredPaths.iterator(); it.hasNext();) {
- IPath path = (IPath) it.next();
- if(path.isPrefixOf(resourceFullPath)) {
- covered = true;
- }
- }
- if (covered) {
- // if the resource is covered by a parent, remove it
- iter.remove();
- } else {
- // if the resource is a non-covered folder, add it to the covered paths
- if (resource.getType() == IResource.FOLDER) {
- coveredPaths.add(resource.getFullPath());
- }
- }
- }
- return (IResource[]) sorted.toArray(new IResource[sorted.size()]);
- }
-
- /**
- * Override to ensure that the selected resources so not overlap.
- * This method assumes that all actions are deep.
- *
- * @see org.eclipse.team.internal.ui.actions.TeamAction#getSelectedResources()
- */
- protected IResource[] getSelectedResources() {
- return getNonOverlapping(super.getSelectedResources());
- }
-
- protected void executeProviderAction(IProviderAction action, IResource[] resources, IProgressMonitor monitor) throws InvocationTargetException {
- Hashtable table = getProviderMapping(resources);
- Set keySet = table.keySet();
- monitor.beginTask(null, keySet.size() * 1000);
- Iterator iterator = keySet.iterator();
-
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- try {
- addStatus(action.execute(provider, providerResources, subMonitor));
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
-
- }
- }
-
- protected void executeProviderAction(IProviderAction action, IProgressMonitor monitor) throws InvocationTargetException {
- executeProviderAction(action, getSelectedResources(), monitor);
- }
-
- /**
- * Given the current selection this method returns a text label that can
- * be shown to the user that reflects the tags in the current selection.
- * These can be used in the <b>Compare With</b> and <b>Replace With</b> actions.
- */
- protected String calculateActionTagValue() {
- try {
- IResource[] resources = getSelectedResources();
- CVSTag commonTag = null;
- boolean sameTagType = true;
- boolean multipleSameNames = true;
-
- for (int i = 0; i < resources.length; i++) {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resources[i]);
- CVSTag tag = null;
- if(cvsResource.isFolder()) {
- FolderSyncInfo info = ((ICVSFolder)cvsResource).getFolderSyncInfo();
- if(info != null) {
- tag = info.getTag();
- }
- if (tag != null && tag.getType() == CVSTag.BRANCH) {
- tag = Util.getAccurateFolderTag(resources[i], tag);
- }
- } else {
- tag = Util.getAccurateFileTag(cvsResource);
- }
- if(tag == null) {
- tag = new CVSTag();
- }
- if(commonTag == null) {
- commonTag = tag;
- } else if(!commonTag.equals(tag)) {
- if(commonTag.getType() != tag.getType()) {
- sameTagType = false;
- }
- if(!commonTag.getName().equals(tag.getName())) {
- multipleSameNames = false;
- }
- }
- }
-
- // set text to default
- String actionText = Policy.bind("ReplaceWithLatestAction.multipleTags"); //$NON-NLS-1$
- if(commonTag != null) {
- int tagType = commonTag.getType();
- String tagName = commonTag.getName();
- // multiple tag names but of the same type
- if(sameTagType && !multipleSameNames) {
- if(tagType == CVSTag.BRANCH) {
- actionText = Policy.bind("ReplaceWithLatestAction.multipleBranches"); //$NON-NLS-1$
- } else {
- actionText = Policy.bind("ReplaceWithLatestAction.multipleVersions"); //$NON-NLS-1$
- }
- // same tag names and types
- } else if(sameTagType && multipleSameNames) {
- if(tagType == CVSTag.BRANCH) {
- actionText = Policy.bind("ReplaceWithLatestAction.singleBranch", tagName); //$NON-NLS-1$
- } else if(tagType == CVSTag.VERSION){
- actionText = Policy.bind("ReplaceWithLatestAction.singleVersion", tagName); //$NON-NLS-1$
- } else if(tagType == CVSTag.HEAD) {
- actionText = Policy.bind("ReplaceWithLatestAction.singleHEAD", tagName); //$NON-NLS-1$
- }
- }
- }
-
- return actionText;
- } catch (CVSException e) {
- // silently ignore
- return Policy.bind("ReplaceWithLatestAction.multipleTags"); //$NON-NLS-1$
- }
- }
-
- protected IResource[] checkOverwriteOfDirtyResources(IResource[] resources, IProgressMonitor monitor) throws CVSException, InterruptedException {
- List dirtyResources = new ArrayList();
- IResource[] selectedResources = getSelectedResources();
-
- try {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(null, selectedResources.length * 100);
- monitor.setTaskName(Policy.bind("ReplaceWithAction.calculatingDirtyResources")); //$NON-NLS-1$
- for (int i = 0; i < selectedResources.length; i++) {
- IResource resource = selectedResources[i];
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if(cvsResource.isModified(Policy.subMonitorFor(monitor, 100))) {
- dirtyResources.add(resource);
- }
- }
- } finally {
- monitor.done();
- }
-
- PromptingDialog dialog = new PromptingDialog(getShell(), selectedResources,
- getPromptCondition((IResource[]) dirtyResources.toArray(new IResource[dirtyResources.size()])), Policy.bind("ReplaceWithAction.confirmOverwrite"));//$NON-NLS-1$
- return dialog.promptForMultiple();
- }
-
- /**
- * This is a helper for the CVS UI automated tests. It allows the tests to ignore prompting dialogs.
- * @param resources
- */
- protected IPromptCondition getPromptCondition(IResource[] resources) {
- return getOverwriteLocalChangesPrompt(resources);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java
deleted file mode 100644
index c2ba522c0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java
+++ /dev/null
@@ -1,175 +0,0 @@
-package org.eclipse.team.internal.ccvs.ui.console;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.ui.console.MessageConsole;
-import org.eclipse.ui.console.MessageConsoleStream;
-
-public class CVSOutputConsole extends MessageConsole implements IConsoleListener, IPropertyChangeListener {
-
- private Color commandColor;
- private Color messageColor;
- private Color errorColor;
-
- private long commandStarted = 0;
-
- MessageConsoleStream commandStream;
- MessageConsoleStream messageStream;
- MessageConsoleStream errorStream;
-
- private static final DateFormat TIME_FORMAT = new SimpleDateFormat(Policy.bind("Console.resultTimeFormat")); //$NON-NLS-1$
-
- public CVSOutputConsole() {
- super("CVS", CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_CVS_CONSOLE)); //$NON-NLS-1$
- commandStream = newMessageStream();
- errorStream = newMessageStream();
- messageStream = newMessageStream();
-
- // install colors
- commandColor = createColor(CVSUIPlugin.getStandardDisplay(), ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR);
- commandStream.setColor(commandColor);
-
- messageColor = createColor(CVSUIPlugin.getStandardDisplay(), ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR);
- messageStream.setColor(messageColor);
-
- errorColor = createColor(CVSUIPlugin.getStandardDisplay(), ICVSUIConstants.PREF_CONSOLE_ERROR_COLOR);
- errorStream.setColor(errorColor);
-
- // install font
- setFont(JFaceResources.getFont(getPreferenceStore().getString(ICVSUIConstants.PREF_CONSOLE_FONT)));
-
- CVSProviderPlugin.getPlugin().setConsoleListener(this);
- CVSUIPlugin.getPlugin().getPreferenceStore().addPropertyChangeListener(this);
- }
-
- public void shutdown() {
- commandColor.dispose();
- messageColor.dispose();
- errorColor.dispose();
- }
-
- public void commandInvoked(String line) {
- commandStarted = System.currentTimeMillis();
- commandStream.println(Policy.bind("Console.preExecutionDelimiter")); //$NON-NLS-1$
- commandStream.println(line);
- }
-
- public void messageLineReceived(String line) {
- messageStream.println(" " + line); //$NON-NLS-1$
- }
-
- public void errorLineReceived(String line) {
- errorStream.println(" " + line); //$NON-NLS-1$
- }
-
- public void commandCompleted(IStatus status, Exception exception) {
- long commandRuntime = System.currentTimeMillis() - commandStarted;
- String time;
- try {
- time = TIME_FORMAT.format(new Date(commandRuntime));
- } catch (RuntimeException e) {
- CVSUIPlugin.log(IStatus.ERROR, Policy.bind("Console.couldNotFormatTime"), e); //$NON-NLS-1$
- time = ""; //$NON-NLS-1$
- }
- String statusText;
- if (status != null) {
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- statusText = Policy.bind("Console.resultServerError", status.getMessage(), time); //$NON-NLS-1$
- } else {
- statusText = Policy.bind("Console.resultOk", time); //$NON-NLS-1$
- }
- commandStream.println(statusText);
- IStatus[] children = status.getChildren();
- if (children.length == 0) {
- if (!status.isOK())
- commandStream.println(messageLineForStatus(status));
- } else {
- for (int i = 0; i < children.length; i++) {
- if (!children[i].isOK())
- commandStream.println(messageLineForStatus(children[i]));
- }
- }
- } else if (exception != null) {
- if (exception instanceof OperationCanceledException) {
- statusText = Policy.bind("Console.resultAborted", time); //$NON-NLS-1$
- } else {
- statusText = Policy.bind("Console.resultException", time); //$NON-NLS-1$
- }
- commandStream.println(statusText);
- } else {
- statusText = Policy.bind("Console.resultOk", time); //$NON-NLS-1$
- }
- commandStream.println(Policy.bind("Console.postExecutionDelimiter")); //$NON-NLS-1$
- commandStream.println(""); //$NON-NLS-1$
- }
-
- /**
- * Method messageLineForStatus.
- * @param status
- */
- private String messageLineForStatus(IStatus status) {
- if (status.getSeverity() == IStatus.ERROR) {
- return Policy.bind("Console.error", status.getMessage()); //$NON-NLS-1$
- } else if (status.getSeverity() == IStatus.WARNING) {
- return Policy.bind("Console.warning", status.getMessage()); //$NON-NLS-1$
- } else if (status.getSeverity() == IStatus.INFO) {
- return Policy.bind("Console.info", status.getMessage()); //$NON-NLS-1$
- }
- return status.getMessage();
- }
-
- /**
- * Returns a color instance based on data from a preference field.
- */
- private Color createColor(Display display, String preference) {
- RGB rgb = PreferenceConverter.getColor(getPreferenceStore(), preference);
- return new Color(display, rgb);
- }
-
- private IPreferenceStore getPreferenceStore() {
- return CVSUIPlugin.getPlugin().getPreferenceStore();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- String property = event.getProperty();
- // colors
- if(property.equals(ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR)) {
- Color newColor = createColor(CVSUIPlugin.getStandardDisplay(), ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR);
- commandStream.setColor(newColor);
- commandColor.dispose();
- commandColor = newColor;
- } else if(property.equals(ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR)) {
- Color newColor = createColor(CVSUIPlugin.getStandardDisplay(), ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR);
- messageStream.setColor(newColor);
- messageColor.dispose();
- messageColor = newColor;
- } else if(property.equals(ICVSUIConstants.PREF_CONSOLE_ERROR_COLOR)) {
- Color newColor = createColor(CVSUIPlugin.getStandardDisplay(), ICVSUIConstants.PREF_CONSOLE_ERROR_COLOR);
- errorStream.setColor(newColor);
- errorColor.dispose();
- errorColor = newColor;
- // font
- } else if(property.equals(ICVSUIConstants.PREF_CONSOLE_FONT)) {
- setFont(JFaceResources.getFont(getPreferenceStore().getString(ICVSUIConstants.PREF_CONSOLE_FONT)));
- }
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java
deleted file mode 100644
index 44f6b4e9f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.merge;
-
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.team.internal.ccvs.core.CVSMergeSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.subscriber.MergeSynchronizeParticipant;
-import org.eclipse.team.ui.TeamUI;
-import org.eclipse.team.ui.synchronize.ISynchronizeManager;
-import org.eclipse.team.ui.synchronize.ISynchronizeParticipant;
-import org.eclipse.team.ui.synchronize.ISynchronizeView;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-public class MergeWizard extends Wizard {
- MergeWizardStartPage startPage;
- MergeWizardEndPage endPage;
- IResource[] resources;
-
- public void addPages() {
- // when merging multiple resources, use the tags found on the first selected
- // resource. This makes sense because you would typically merge resources that
- // have a common context and are versioned and branched together.
- IProject projectForTagRetrieval = resources[0].getProject();
-
- setWindowTitle(Policy.bind("MergeWizard.title")); //$NON-NLS-1$
- ImageDescriptor mergeImage = CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_MERGE);
- startPage = new MergeWizardStartPage("startPage", Policy.bind("MergeWizard.start"), mergeImage); //$NON-NLS-1$ //$NON-NLS-2$
- startPage.setProject(projectForTagRetrieval);
- addPage(startPage);
- endPage = new MergeWizardEndPage("endPage", Policy.bind("MergeWizard.end"), mergeImage, startPage); //$NON-NLS-1$ //$NON-NLS-2$
- endPage.setProject(projectForTagRetrieval);
- addPage(endPage);
- }
-
- /*
- * @see IWizard#performFinish()
- */
- public boolean performFinish() {
-
- IWorkbenchWindow wWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- IWorkbenchPage activePage = null;
- if(wWindow != null) {
- activePage = wWindow.getActivePage();
- }
-
- CVSTag startTag = startPage.getTag();
- CVSTag endTag = endPage.getTag();
-
- CVSMergeSubscriber s = new CVSMergeSubscriber(resources, startTag, endTag);
- MergeSynchronizeParticipant participant = new MergeSynchronizeParticipant(s);
- ISynchronizeManager manager = TeamUI.getSynchronizeManager();
- manager.addSynchronizeParticipants(new ISynchronizeParticipant[] {participant});
-
- ISynchronizeView view = manager.showSynchronizeViewInActivePage(null);
- if(view != null) {
- view.display(participant);
- participant.refreshWithRemote(s.roots());
- } else {
- CVSUIPlugin.openError(getShell(), Policy.bind("error"), Policy.bind("Error.unableToShowSyncView"), null); //$NON-NLS-1$ //$NON-NLS-2$
- return false;
- }
- return true;
- }
-
- /*
- * Set the resources that should be merged.
- */
- public void setResources(IResource[] resources) {
- this.resources = resources;
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizardEndPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizardEndPage.java
deleted file mode 100644
index e2580a745..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizardEndPage.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.internal.ccvs.ui.merge;
-
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class MergeWizardEndPage extends CVSWizardPage {
- IProject project;
- TreeViewer tree;
- CVSTag result;
- ICVSRemoteFolder remote;
- // for accessing the start tag
- MergeWizardStartPage startPage;
-
- /**
- * MergeWizardEndPage constructor.
- *
- * @param pageName the name of the page
- * @param title the title of the page
- * @param titleImage the image for the page
- */
- public MergeWizardEndPage(String pageName, String title, ImageDescriptor titleImage, MergeWizardStartPage startPage) {
- super(pageName, title, titleImage);
- setDescription(Policy.bind("MergeWizardEndPage.description")); //$NON-NLS-1$
- this.startPage = startPage;
- }
- /*
- * @see IDialogPage#createControl(Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 2);
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.MERGE_END_PAGE);
-
- tree = createTree(composite);
- tree.setContentProvider(new WorkbenchContentProvider());
- tree.setLabelProvider(new WorkbenchLabelProvider());
- tree.setSorter(new ViewerSorter() {
- public int compare(Viewer v, Object o1, Object o2) {
- int result = super.compare(v, o1, o2);
- if (o1 instanceof TagElement && o2 instanceof TagElement) {
- return -result;
- }
- return result;
- }
- });
- tree.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- Object selected = ((IStructuredSelection)tree.getSelection()).getFirstElement();
- if (selected instanceof TagElement) {
- result = ((TagElement)selected).getTag();
- if(!result.equals(startPage.getTag())) {
- setPageComplete(true);
- setMessage(null);
- } else {
- setMessage(Policy.bind("MergeWizardEndPage.duplicateTagSelected", result.getName()), WARNING); //$NON-NLS-1$
- setPageComplete(false);
- }
- } else {
- setMessage(null);
- result = null;
- setPageComplete(false);
- }
- }
- });
- setControl(composite);
- tree.setInput(new ProjectElement(CVSWorkspaceRoot.getCVSFolderFor(project), ProjectElement.INCLUDE_ALL_TAGS));
- setPageComplete(false);
- }
- protected TreeViewer createTree(Composite parent) {
- Tree tree = new Tree(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE);
- tree.setLayoutData(new GridData(GridData.FILL_BOTH));
- return new TreeViewer(tree);
- }
- public void setProject(IProject project) {
- this.project = project;
- try {
- this.remote = (ICVSRemoteFolder) CVSWorkspaceRoot.getRemoteResourceFor(project);
- } catch (TeamException e) {
- // To do
- }
- }
- public CVSTag getTag() {
- return result;
- }
- /**
- * @see IDialogPage#setVisible(boolean)
- */
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- // refresh the tree because tags may have been added in the previous page
- tree.refresh();
- if (visible) {
- tree.getControl().setFocus();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizardStartPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizardStartPage.java
deleted file mode 100644
index f0d4c430d..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizardStartPage.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.merge;
-
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.TagConfigurationDialog;
-import org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class MergeWizardStartPage extends CVSWizardPage {
- TableViewer table;
- CVSTag result;
- IProject project;
-
- private static final int TABLE_HEIGHT_HINT = 350;
- private static final int TABLE_WIDTH_HINT = 100;
-
- /**
- * MergeWizardStartPage constructor.
- *
- * @param pageName the name of the page
- * @param title the title of the page
- * @param titleImage the image for the page
- */
- public MergeWizardStartPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- setDescription(Policy.bind("MergeWizardStartPage.description")); //$NON-NLS-1$
- }
- protected TableViewer createTable(Composite parent) {
- Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = TABLE_HEIGHT_HINT;
- data.widthHint = TABLE_WIDTH_HINT;
- table.setLayoutData(data);
- TableLayout layout = new TableLayout();
- layout.addColumnData(new ColumnWeightData(100, true));
- table.setLayout(layout);
- TableColumn col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
-
- return new TableViewer(table);
- }
- /*
- * @see IDialogPage#createControl(Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 1);
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.MERGE_START_PAGE);
-
- table = createTable(composite);
- table.setContentProvider(new WorkbenchContentProvider());
- table.setLabelProvider(new WorkbenchLabelProvider());
- table.setSorter(new ViewerSorter() {
- public int compare(Viewer v, Object o1, Object o2) {
- int result = super.compare(v, o1, o2);
- if (o1 instanceof TagElement && o2 instanceof TagElement) {
- return -result;
- }
- return result;
- }
- });
- table.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection)table.getSelection();
- if(!selection.isEmpty()) {
- TagElement element = (TagElement)((IStructuredSelection)table.getSelection()).getFirstElement();
- if(element!=null) {
- result = element.getTag();
- setPageComplete(true);
- }
- }
- }
- });
- table.addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- getContainer().showPage(getNextPage());
- }
- });
-
- Runnable afterRefresh = new Runnable() {
- public void run() {
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- table.refresh();
- setPageComplete(! table.getSelection().isEmpty());
- }
- });
- }
- };
-
- Runnable afterConfigure = new Runnable() {
- public void run() {
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- initialize();
- }
- });
- }
- };
-
- setControl(composite);
- TagConfigurationDialog.createTagDefinitionButtons(getShell(), composite, new ICVSFolder[] {CVSWorkspaceRoot.getCVSFolderFor(project)},
- convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT),
- convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH),
- afterRefresh, afterConfigure);
- initialize();
- setPageComplete(false);
- }
- private void initialize() {
- ICVSFolder cvsProject = CVSWorkspaceRoot.getCVSFolderFor(project);
- table.setInput(new TagRootElement(cvsProject, CVSTag.VERSION));
- }
- public void setProject(IProject project) {
- this.project = project;
- }
- public CVSTag getTag() {
- return result;
- }
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- table.getControl().setFocus();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/ProjectElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/ProjectElement.java
deleted file mode 100644
index 7f25dbc83..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/ProjectElement.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.merge;
-
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-public class ProjectElement implements IAdaptable, IWorkbenchAdapter {
- ICVSFolder project;
- TagRootElement branches;
- TagRootElement versions;
- int includeFlags;
-
- public static final int INCLUDE_HEAD_TAG = 1;
- public static final int INCLUDE_BASE_TAG = 2;
- public static final int INCLUDE_BRANCHES = 4;
- public static final int INCLUDE_VERSIONS = 8;
- public static final int INCLUDE_ALL_TAGS = INCLUDE_HEAD_TAG | INCLUDE_BASE_TAG | INCLUDE_BRANCHES | INCLUDE_VERSIONS;
-
- public static class ProjectElementSorter extends ViewerSorter {
- /*
- * The order in the diaog should be HEAD, Branches, Versions, BASE
- */
- public int category(Object element) {
- if (element instanceof TagElement) {
- CVSTag tag = ((TagElement)element).getTag();
- if (tag == CVSTag.DEFAULT) return 1;
- if (tag == CVSTag.BASE) return 4;
- if (tag.getType() == CVSTag.BRANCH) return 2;
- if (tag.getType() == CVSTag.VERSION) return 3;
- } else if (element instanceof TagRootElement) {
- return ((TagRootElement)element).getTypeOfTagRoot() == CVSTag.BRANCH ? 2 : 3;
- }
- return 0;
- }
- public int compare(Viewer viewer, Object e1, Object e2) {
- int cat1 = category(e1);
- int cat2 = category(e2);
- if (cat1 != cat2) return cat1 - cat2;
- // Sort version tags in reverse order
- if (e1 instanceof TagElement && ((TagElement)e1).getTag().getType() == CVSTag.VERSION) {
- return -1 * super.compare(viewer, e1, e2);
- }
- return super.compare(viewer, e1, e2);
- }
- }
-
- public ProjectElement(ICVSFolder project, int includeFlags) {
- this.project = project;
- this.includeFlags = includeFlags;
- if (this.includeFlags == 0) this.includeFlags = INCLUDE_ALL_TAGS;
- if ((includeFlags & INCLUDE_BRANCHES) > 0) {
- branches = new TagRootElement(project, CVSTag.BRANCH);
- }
- if ((includeFlags & INCLUDE_VERSIONS) > 0) {
- versions = new TagRootElement(project, CVSTag.VERSION);
- }
- }
-
- public Object[] getChildren(Object o) {
- ArrayList children = new ArrayList(4);
- if ((includeFlags & INCLUDE_HEAD_TAG) > 0) {
- children.add(new TagElement(CVSTag.DEFAULT));
- }
- if ((includeFlags & INCLUDE_BASE_TAG) > 0) {
- children.add(new TagElement(CVSTag.BASE));
- }
- if ((includeFlags & INCLUDE_BRANCHES) > 0) {
- children.add(branches);
- }
- if ((includeFlags & INCLUDE_VERSIONS) > 0) {
- children.add(versions);
- }
- return (Object[]) children.toArray(new Object[children.size()]);
- }
- public int getIncludeFlags() {
- return includeFlags;
- }
- public TagRootElement getBranches() {
- return branches;
- }
- public TagRootElement getVersions() {
- return versions;
- }
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
- public ImageDescriptor getImageDescriptor(Object object) {
- return null;
- }
- public String getLabel(Object o) {
- return null;
- }
- public Object getParent(Object o) {
- return null;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/TagElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/TagElement.java
deleted file mode 100644
index e6a652e2c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/TagElement.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.merge;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-public class TagElement implements IWorkbenchAdapter, IAdaptable {
- CVSTag tag;
- public TagElement(CVSTag tag) {
- this.tag = tag;
- }
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
- public ImageDescriptor getImageDescriptor(Object object) {
- if (tag.getType() == CVSTag.BRANCH || tag == CVSTag.DEFAULT) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_TAG);
- } else {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_PROJECT_VERSION);
- }
- }
- public String getLabel(Object o) {
- return tag.getName();
- }
- public Object getParent(Object o) {
- return null;
- }
- public CVSTag getTag() {
- return tag;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/TagRootElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/TagRootElement.java
deleted file mode 100644
index 64b321c46..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/TagRootElement.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.internal.ccvs.ui.merge;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-public class TagRootElement implements IWorkbenchAdapter, IAdaptable {
- private ICVSFolder project;
- private List cachedTags;
- private int typeOfTagRoot;
-
- public TagRootElement(ICVSFolder project, int typeOfTagRoot) {
- this.typeOfTagRoot = typeOfTagRoot;
- this.project = project;
- }
-
- public TagRootElement(ICVSFolder project, int typeOfTagRoot, CVSTag[] tags) {
- this(project, typeOfTagRoot);
- add(tags);
- }
-
- public Object[] getChildren(Object o) {
- CVSTag[] childTags = new CVSTag[0];
- if(cachedTags==null) {
- if(typeOfTagRoot==CVSTag.BRANCH) {
- childTags = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(project, CVSTag.BRANCH);
- } else if(typeOfTagRoot==CVSTag.VERSION) {
- childTags = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(project, CVSTag.VERSION);
- }
- } else {
- childTags = getTags();
- }
- TagElement[] result = new TagElement[childTags.length];
- for (int i = 0; i < childTags.length; i++) {
- result[i] = new TagElement(childTags[i]);
- }
- return result;
- }
- public void removeAll() {
- if(cachedTags!=null) {
- cachedTags.clear();
- }
- }
- public void add(CVSTag[] tags) {
- if(cachedTags==null) {
- cachedTags = new ArrayList(tags.length);
- }
- cachedTags.addAll(Arrays.asList(tags));
- }
- public void remove(CVSTag tag) {
- if(cachedTags!=null) {
- cachedTags.remove(tag);
- }
- }
- public CVSTag[] getTags() {
- if(cachedTags!=null) {
- return (CVSTag[]) cachedTags.toArray(new CVSTag[cachedTags.size()]);
- } else {
- return new CVSTag[0];
- }
- }
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
- public ImageDescriptor getImageDescriptor(Object object) {
- if(typeOfTagRoot==CVSTag.BRANCH) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_BRANCHES_CATEGORY);
- } else {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_VERSIONS_CATEGORY);
- }
- }
- public String getLabel(Object o) {
- if(typeOfTagRoot==CVSTag.BRANCH) {
- return Policy.bind("MergeWizardEndPage.branches"); //$NON-NLS-1$
- } else {
- return Policy.bind("VersionsElement.versions"); //$NON-NLS-1$
- }
- }
- public Object getParent(Object o) {
- return null;
- }
- /**
- * Gets the typeOfTagRoot.
- * @return Returns a int
- */
- public int getTypeOfTagRoot() {
- return typeOfTagRoot;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
deleted file mode 100644
index 858e51b1f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
+++ /dev/null
@@ -1,1072 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-details=Press the details button for more information.
-simpleInternal=Internal error
-internal=An internal error has occurred, consult the error log for details.
-yes=Yes
-no=No
-information=Server Information
-exception=Server Exception
-confirmOverwriteTitle=Confirm Overwrite Project
-confirmOverwrite=The project already exists in the workspace. Its contents will be overwritten.
-question=Question
-localChanges=You have local changes which you are about to overwrite. Do you wish to continue?
-error=Error
-cvs=CVS
-notAvailable=Not Available
-buildError=A build error occurred after the CVS operation completed.
-ok=OK
-separator=/
-
-nameAndRevision={0} {1}
-currentRevision=*{0}
-
-AddAction.addFailed=Error occurred during Add
-AddAction.adding=Adding...
-AddAction.addIgnoredTitle=Add Ignored Resource?
-AddAction.addIgnoredQuestion=You have explicitly asked to version control one or more resources that otherwise would have been ignored. Continue?
-
-AddToVersionControlDialog.title=Add to CVS Version Control
-AddToVersionControlDialog.thereIsAnUnaddedResource=There is {0} resource that is not under CVS version control. Do you want to add it?
-AddToVersionControlDialog.thereAreUnaddedResources=There are {0} resources that are not under CVS version control. Do you want to add them?
-
-AddToWorkspaceAction.checkoutFailed=Problems encountered performing checkout
-AddToWorkspaceAction.thisResourceExists=The resource ''{0}'' already exists in the workspace and will be deleted. Proceed?
-AddToWorkspaceAction.thisExternalFileExists=The folder ''{0}'' exists in the local file system and will be deleted. Proceed?
-AddToWorkspaceAction.confirmOverwrite=Confirm Overwrite
-CheckoutAction.overlappingModuleExpansions=You have attempted to check out multiple remote modules that expand to the same local resource ''{0}''.
-
-AutoDefineTagsAction.defineTags = Auto-discover tags
-
-AvoidableMessageDialog.dontShowAgain=Don't show this again
-
-BranchWizard.title=Create a new CVS Branch
-BranchWizard.errorBranching=Error Branching Resources
-BranchWizardPage.pageDescription=Creates a new branch and a starting point version.
-BranchWizardPage.pageDescriptionVersion=Creates a new branch based on the version in the workspace.
-BranchWizardPage.specifyVersion=The version will provide a starting point for merging the branch back to the source branch.
-BranchWizardPage.branchName=Branch Name:
-BranchWizardPage.versionName=Version Name:
-BranchWizardPage.startWorking=Start working in the branch
-BranchWizardPage.versionPrefix=Root_
-BranchWizard.versionNameWarning=Version name: {0}
-BranchWizard.branchNameWarning=Branch name: {0}
-BranchWizard.branchAndVersionMustBeDifferent=The branch name and version name must be different.
-BranchWizard.branchNameAlreadyExists=Branch name already exists.
-BranchWizard.versionNameAlreadyExists=Version name already exists.
-BranchWizardPage.existingVersionsAndBranches=Existing Versions and Branches:
-
-ConsolePreferencePage.consoleColorSettings=Console text color settings.
-ConsolePreferencePage.commandColor=Command &Line:
-ConsolePreferencePage.messageColor=&Message:
-ConsolePreferencePage.errorColor=E&rror:
-ConsolePreferencePage.font=Console font setting:
-
-CVSAction.errorTitle=Errors occurred
-CVSAction.warningTitle=Warnings occurred
-CVSAction.multipleProblemsMessage=Multiple problems occurred:
-CVSAction.mixingTagsTitle=Confirm Mixing Tags
-CVSAction.mixingTags=You are mixing tags within a project. Beware that synchronization uses the tag information associated with each resource to determine the remote resource with which the local resource is compared. \n\nThis means that the part(s) of your project that you are replacing with another tag will be synchronized with the tag ''{0}'' while other resources in the project will be synchronized with another tag. \n\nDo you wish to continue?
-
-CVSAnnotateView.showFileAnnotation=CVS Annotate - {0}
-CVSAnnotateView.viewInstructions=This view shows annotations for a file in CVS. Select a file and then choose \"Team->Show Annotation\" from the context menu.
-ShowAnnotationAction.noSyncInfo=Cannot display annotation for {0} because it doesn't have a remote revision.
-
-CVSCatchupReleaseViewer.commit=&Commit...
-CVSCatchupReleaseViewer.update=&Update from Repository
-CVSCatchupReleaseViewer.forceCommit=Override and Co&mmit...
-CVSCatchupReleaseViewer.forceUpdate=Override and U&pdate
-CVSCatchupReleaseViewer.ignore=A&dd to .cvsignore
-CVSCatchupReleaseViewer.mergeUpdate=&Merge Changes into Local Copy
-CVSCatchupReleaseViewer.commonFile=Common file: {0}
-CVSCatchupReleaseViewer.commonFileRevision=Common file: {0} {1}
-CVSCatchupReleaseViewer.noCommonFile=No common file
-CVSCatchupReleaseViewer.noRepositoryFile=No repository file
-CVSCatchupReleaseViewer.repositoryFile=Repository file: {0}
-CVSCatchupReleaseViewer.repositoryFileRevision=Repository file: {0} {1} [{2}]
-CVSCatchupReleaseViewer.workspaceFile=Workspace file: {0}
-CVSCatchupReleaseViewer.showInHistory=Show in &Resource History
-CVSCatchupReleaseViewer.fileDecoration={0} ({1})
-CVSCatchupReleaseViewer.folderDecoration={0} {1}
-CVSCatchupReleaseViewer.confirmMerge=Mark as Mer&ged
-CVSCatchupReleaseViewer.addAction=&Add to Version Control
-CVSCatchupReleaseViewer.labelWithSyncKind={0} {1}
-
-CVSCompareEditorInput.branchLabel=<branch-{0}>
-CVSCompareEditorInput.headLabel=<HEAD>
-CVSCompareEditorInput.comparing=Comparing...
-CVSCompareEditorInput.different=Cannot compare resources of different kind.
-CVSCompareEditorInput.inBranch={0} in {1}
-CVSCompareEditorInput.inHead={0} in HEAD
-CVSCompareEditorInput.repository=Repository: {0} {1}
-CVSCompareEditorInput.titleAncestor=Compare {0} {1}-{2} and {3}
-CVSCompareEditorInput.titleNoAncestor=Compare {0} {1} and {2}
-CVSCompareEditorInput.titleNoAncestorDifferent=Compare {0} {1} and {2} {3}
-CVSCompareEditorInput.workspace=Workspace: {0}
-CVSCompareEditorInput.workspaceLabel=<workspace>
-CVSCompareEditorInput.noWorkspaceFile=No workspace file
-CVSCompareEditorInput.noRepositoryFile=No repository file
-
-CVSCompareRevisionsInput.addToWorkspace=Get
-CVSCompareRevisionsInput.compareResourceAndVersions=Compare {0} <workspace> and versions
-CVSCompareRevisionsInput.errorReplacingTitle=Unable to Replace
-CVSCompareRevisionsInput.errorReplacingMessage=Resource(s) could not be loaded. A communication error may have occurred, or \
- the resource(s) may not exist on the server, or you may \
- not have permission to access them.
-CVSCompareRevisionsInput.repository=Repository file: {0}
-CVSCompareRevisionsInput.structureCompare=Structure Compare
-CVSCompareRevisionsInput.workspace=Workspace file: {0}
-CVSCompareRevisionsInput.truncate={0}[...]
-
-CVSDecorator.projectDecoration={0} [{1}]
-CVSDecorator.projectDecorationWithTag={0} [{1} {2}]
-CVSDecorator.fileDecorationWithTag={0} [{1}:{2}]
-CVSDecorator.fileDecorationNoTag={0} [{1}]
-CVSDecorator.folderDecoration={0} [{1}]
-
-CVSDecoratorPreferencesPage.description=CVS Decorator settings:
-CVSDecoratorPreferencesPage.iconDescription=Choose which CVS resource states should be indicated using an icon decorator:
-CVSDecoratorPreferencesPage.generalDescription=Set general properties of CVS decorators:
-CVSDecoratorPreferencesPage.generalTabFolder=&General
-CVSDecoratorPreferencesPage.newResources=Indicate is &new resource
-CVSDecoratorPreferencesPage.synchronizeTabFolder=S&ynchronize View
-CVSDecoratorPreferencesPage.synchronizeDescription=Set the properties of CVS decorators for the Synchronize view:
-CVSDecoratorPreferencesPage.showSyncInfoInLabel=Show all synchronization information in a resource's text label
-
-CVSFilePropertiesPage.ignored=The file is ignored by CVS.
-CVSFilePropertiesPage.notManaged=The file is not managed by CVS.
-CVSFilePropertiesPage.isAdded=This file has been added to CVS control but has not been committed
-CVSFilePropertiesPage.baseRevision=Base revision:
-CVSFilePropertiesPage.baseTimestamp=Base timestamp:
-CVSFilePropertiesPage.dirty=Dirty:
-CVSFilePropertiesPage.modified=Modified:
-CVSFilePropertiesPage.keywordMode=Keyword mode:
-CVSFilePropertiesPage.tag=Tag:
-CVSFilePropertiesPage.none=HEAD
-CVSFilePropertiesPage.version={0} (Version)
-CVSFilePropertiesPage.branch={0} (Branch)
-CVSFilePropertiesPage.date={0} (Date)
-CVSFilePropertiesPage.error=An error occurred while creating this page.
-CVSFilePropertiesPage.permissions=Permissions:
-CVSFilePropertiesPage.notAvailable=Not Available
-
-CVSFolderPropertiesPage.ignored=The folder is ignored by CVS.
-CVSFolderPropertiesPage.notManaged=The folder is not managed by CVS.
-CVSFolderPropertiesPage.notCVSFolder=This folder has lost its CVS sharing information.
-CVSFolderPropertiesPage.root=Repository root:
-CVSFolderPropertiesPage.repository=Repository path:
-CVSFolderPropertiesPage.static=Static:
-CVSFolderPropertiesPage.disconnect=&Disconnect...
-CVSFolderPropertiesPage.disconnectTitle=Disconnect folder?
-CVSFolderPropertiesPage.disconnectQuestion=Disconnecting the folder from CVS control will delete the CVS synchronization information for the folder. Are you sure you want to disconnect?
-
-CVSLocalCompareEditorInput.title=CVS Compare [{0}]
-
-CVSOperationCancelledException.operationCancelled=Operation Cancelled
-
-CVSPropertiesPage.connectionType=&Connection type:
-CVSPropertiesPage.user=&User:
-CVSPropertiesPage.password=&Password:
-CVSPropertiesPage.host=Host:
-CVSPropertiesPage.port=Port:
-CVSPropertiesPage.path=Repository path:
-CVSPropertiesPage.module=Module:
-CVSPropertiesPage.defaultPort=Default
-CVSPropertiesPage.tag=Tag:
-CVSPropertiesPage.update=Change &Tag...
-CVSPropertiesPage.virtualModule=<no corresponding remote folder>
-
-CVSPreferencePage.description=General CVS settings:
-CVSPreferencePage.debugProtocol=&Display detailed protocol output to stdout (for debugging purposes)
-CVSPreferencePage.pruneEmptyDirectories=&Prune empty directories
-CVSPreferencePage.timeoutValue=&Communication timeout (in seconds):
-CVSPreferencePage.quietness=&Quietness level:
-CVSPreferencePage.notquiet=Verbose
-CVSPreferencePage.somewhatquiet=Somewhat quiet
-CVSPreferencePage.reallyquiet=Very quiet
-CVSPreferencePage.silentWarningTitle="Very Quiet" mode is dangerous
-CVSPreferencePage.silentWarningMessage= In "Very Quiet" mode, some cvs servers may not communicate important information about errors that have occurred. You may want to consider using "Somewhat quiet" mode instead.
-CVSPreferencePage.considerContentsInCompare=Con&sider file contents in comparisons
-CVSPreferencePage.showAddRemoveMarkers=Show deleted file &markers
-CVSPreferencePage.replaceUnmanaged=&Delete unmanaged resources on replace
-CVSPreferencePage.defaultTextKSubst=Default &keyword substitution:
-CVSPreferencePage.compressionLevel=Compression &level:
-CVSPreferencePage.level0=0 (disabled)
-CVSPreferencePage.level1=1 (lowest compression)
-CVSPreferencePage.level2=2
-CVSPreferencePage.level3=3
-CVSPreferencePage.level4=4
-CVSPreferencePage.level5=5
-CVSPreferencePage.level6=6
-CVSPreferencePage.level7=7
-CVSPreferencePage.level8=8
-CVSPreferencePage.level9=9 (highest compression)
-CVSPreferencePage.Save_dirty_editors_before_CVS_operations_1=Save dirty editors before CVS operations
-CVSPreferencePage.&Never_2=&Never
-CVSPreferencePage.&Prompt_3=P&rompt
-CVSPreferencePage.Auto-&save_4=&Auto-save
-CVSPreferencePage.repositoriesAreBinary=&Treat all new files as binary
-CVSPreferencePage.determineVersionEnabled=&Validate server version compatibility on first connection
-CVSPreferencePage.confirmMoveTag=Confirm &move tag on tag operation
-
-CVSRemoteFilePropertySource.name=Name
-CVSRemoteFilePropertySource.revision=Revision
-CVSRemoteFilePropertySource.date=Date
-CVSRemoteFilePropertySource.author=Author
-CVSRemoteFilePropertySource.comment=Comment
-CVSRemoteFilePropertySource.tag=Tag
-
-CVSRemoteFolderPropertySource.name=Name
-CVSRemoteFolderPropertySource.tag=Tag
-CVSRemoteFolderPropertySource.none=(none)
-
-CVSRepositoryLocationPropertySource.default=Default
-CVSRepositoryLocationPropertySource.host=Host
-CVSRepositoryLocationPropertySource.user=User
-CVSRepositoryLocationPropertySource.port=Port
-CVSRepositoryLocationPropertySource.root=Root
-CVSRepositoryLocationPropertySource.method=Connection Method
-
-CVSSyncCompareInput.confirmMergeMessageTitle=Information
-CVSSyncCompareInput.confirmMergeMessage=Your changes have been saved. When you are finished, \
- select 'Mark as Merged' to make this file an outgoing change.
-CVSSyncCompareInput.projectDeleted=Project ''{0}'' has been deleted locally and cannot be synchronized.
-CVSSyncCompareInput.filteringOutgoingChanges=Accumulating resources with outgoing changes
-
-CVSSyncSet.conflicts={0} conflicts,
-CVSSyncSet.incomings={0} incoming change(s),
-CVSSyncSet.noConflicts=No conflicts,
-CVSSyncSet.noIncomings=no incoming changes,
-CVSSyncSet.noOutgoings=no outgoing changes,
-CVSSyncSet.outgoings={0} outgoing change(s),
-CVSSyncSet.noNew=no new resources.
-CVSSyncSet.new={0} new resource(s).
-
-CVSUIPlugin.refreshTitle=Refresh Resource?
-CVSUIPlugin.refreshQuestion={0} Would you like to refresh resource ''{1}''?
-CVSUIPlugin.refreshMultipleQuestion={0} Would you like to refresh the selected resources?
-
-CVSAction.disabledTitle=Information
-CVSAction.disabledMessage=The chosen operation is not enabled.
-CVSAction.refreshTitle=Refresh Project?
-CVSAction.refreshQuestion={0} Would you like to refresh project ''{1}''?
-CVSAction.refreshMultipleQuestion={0} Would you like to refresh the projects of the selected resources?
-
-CommitAction.commitFailed=Problems encountered performing commit
-
-CommitSyncAction.questionRelease=You have changes that conflict with the server. Release those changes?
-CommitSyncAction.titleRelease=Confirm Overwrite
-CommitSyncAction.releaseAll=Release all changes, overriding any conflicting changes on the server.
-CommitSyncAction.releasePart=Only release the changes that don't conflict with changes on the server.
-CommitSyncAction.cancelRelease=Cancel the release operation.
-CommitSyncAction.errorCommitting=An error occurred while committing changes.
-
-CompareWithRemoteAction.compare=Error Comparing with Latest
-CompareWithRemoteAction.noRemote=No Remote Resource
-CompareWithRemoteAction.noRemoteLong=The selected resource has no remote resource to compare with.
-CompareWithRemoteAction.fetching=Comparing with latest from repository...
-
-CompareWithRevisionAction.compare=Error Comparing with Revision
-CompareWithRevisionAction.noRevisions=No Revisions
-CompareWithRevisionAction.noRevisionsLong=The selected resource has no revisions to compare with.
-CompareWithRevisionAction.fetching=Fetching revisions from repository...
-
-CompareWithTagAction.message=Compare With Branch or Version
-CompareWithTagAction.replace=Error Comparing With Branch or Version
-CompareWithTagAction.noRemote=No Remote Resource
-CompareWithTagAction.noRemoteLong=The selected tag has no remote resource to compare with.
-CompareWithTagAction.fetching=Fetching resources with tag {0}...
-
-CompareEditorInput.fileProgress=Comparing CVS file: {0}
-
-ConfigurationWizardAutoconnectPage.description=Your project already has CVS/ directories. It was probably previously shared, or checked out using another tool. It will be automatically shared using the following information.
-ConfigurationWizardAutoconnectPage.user=User:
-ConfigurationWizardAutoconnectPage.host=Host:
-ConfigurationWizardAutoconnectPage.port=Port:
-ConfigurationWizardAutoconnectPage.default=Default
-ConfigurationWizardAutoconnectPage.connectionType=Connection type:
-ConfigurationWizardAutoconnectPage.repositoryPath=Repository path:
-ConfigurationWizardAutoconnectPage.module=Module:
-ConfigurationWizardAutoconnectPage.validate=&Validate Connection on Finish
-ConfigurationWizardAutoconnectPage.noSyncInfo=Could not get folder information
-ConfigurationWizardAutoconnectPage.noCVSDirectory=Could not find CVS/ directory
-
-RepositorySelectionPage.description=This wizard will help you to share your files with the CVS repository for the first time. Your project will automatically be imported into the CVS repository, and the Synchronize view will open to allow you to commit your resources.
-RepositorySelectionPage.useExisting=&Use existing repository location:
-RepositorySelectionPage.useNew=&Create a new repository location
-
-ConfigurationWizardMainPage.connection=&Connection type:
-ConfigurationWizardMainPage.userName=&User:
-ConfigurationWizardMainPage.password=&Password:
-ConfigurationWizardMainPage.host=&Host:
-ConfigurationWizardMainPage.useDefaultPort=Use &Default Port
-ConfigurationWizardMainPage.usePort=Use Por&t:
-ConfigurationWizardMainPage.repositoryPath=&Repository path:
-ConfigurationWizardMainPage.invalidUserName=Invalid User Name
-ConfigurationWizardMainPage.invalidHostName=Invalid Host Name
-ConfigurationWizardMainPage.invalidPort=Invalid Port
-ConfigurationWizardMainPage.invalidPathWithSpaces=The repository path cannot have segments with leading or trailing spaces
-ConfigurationWizardMainPage.invalidPathWithSlashes=The repository path cannot contain a double slash (//)
-ConfigurationWizardMainPage.useNTFormat=Use NT path names for specifying CVSNT repository paths (e.g. C:\\cvs\\root)
-
-Console.copy=Copy
-Console.selectAll=Select All
-Console.clearOutput=Clear Output
-Console.resultServerError={0} {1}
-Console.resultWarnings={0} {1}
-Console.resultException=failed due to an internal error {0}
-Console.resultAborted=operation canceled {0}
-Console.resultOk=ok {0}
-Console.resultTimeFormat='(took 'm:ss.SSS')'
-Console.couldNotFormatTime=An error occurred formatting the output time for the CVS console.
-Console.preExecutionDelimiter=***
-Console.postExecutionDelimiter=***
-Console.info=Info: {0}
-Console.warning=Warning: {0}
-Console.error=Error: {0}
-
-AddToBranchAction.enterTag=Enter Branch Tag
-AddToBranchAction.enterTagLong=Enter the name of the branch:
-
-DiffAction.diff=Diff
-
-FixTypeAction.fix=Fix Types
-
-GenerateCVSDiff.title=Create Patch
-GenerateCVSDiff.pageTitle=Run and save CVS diff results in a file
-GenerateCVSDiff.pageDescription=The results of the CVS diff command can be used as an input file for the Apply Patch wizard.
-GenerateCVSDiff.overwriteTitle=Confirm Overwrite
-GenerateCVSDiff.overwriteMsg=A file with that name already exists. Overwrite?
-GenerateCVSDiff.error=Error running the CVS diff command
-GenerateCVSDiff.working=Running CVS diff...
-GenerateCVSDiff.noDiffsFoundMsg=No differences found.
-GenerateCVSDiff.noDiffsFoundTitle=CVS diff
-
-GetSyncAction.questionCatchup=You have local changes which you are about to overwrite. Should the conflicting changes be added?
-GetSyncAction.titleCatchup=Catch up Over Conflicts?
-GetSyncAction.catchupAll=Catch up to all incoming changes, overriding any conflicting local changes.
-GetSyncAction.catchupPart=Only catch up to the changes that don't conflict with local changes.
-GetSyncAction.cancelCatchup=Cancel the catch up operation.
-UpdateSyncAction.errorUpdating=An error occurred while updating changes.
-
-HistoryFilterDialog.title = Filter Resource History
-HistoryFilterDialog.showMatching = Show entries matching:
-HistoryFilterDialog.matchingAny = a&ny of the provided criteria
-HistoryFilterDialog.matchingAll = a&ll of the provided criteria
-HistoryFilterDialog.author = &Author:
-HistoryFilterDialog.comment = &Comment containing:
-HistoryFilterDialog.fromDate = &From date (M/D/Y) :
-HistoryFilterDialog.toDate = &To date (M/D/Y) :
-
-HistoryView.getAnnotateAction=Show &Annotation
-HistoryView.getContentsAction=&Get Contents
-HistoryView.getRevisionAction=Get Sticky &Revision
-HistoryView.tagWithExistingAction=&Tag with Existing...
-HistoryView.copy=&Copy
-HistoryView.revision=Revision
-HistoryView.tags=Tags
-HistoryView.date=Date
-HistoryView.author=Author
-HistoryView.comment=Comment
-HistoryView.refreshLabel=&Refresh View
-HistoryView.refresh=Refresh View
-HistoryView.linkWithLabel=Link with &Editor
-HistoryView.selectAll=Select &All
-HistoryView.showComment=Show Comment Viewer
-HistoryView.showTags=Show Tag Viewer
-HistoryView.title=CVS Resource History
-HistoryView.titleWithArgument=CVS Resource History - {0}
-HistoryView.overwriteTitle=Overwrite local changes?
-HistoryView.overwriteMsg=You have local changes. Do you want to overwrite them?
-HistoryView.fetchHistoryJob=Fetching CVS revision history
-HistoryView.fetchHistoryJobFile=Fetching CVS revision history for: {0}
-HistoryView.errorFetchingEntries=Error fetching entries for {0}
-
-IgnoreAction.ignore=Error Ignoring Resource
-
-MergeAction.saveChangesTitle=Save Changes
-MergeAction.saveChanges=You have unsaved changes that will be saved before the action is performed.
-
-MergeEditorInput.title=Merge {0} with {1}
-
-MergeWizardEndPage.branches=Branches
-MergeWizardEndPage.description=This is the version or branch that contains the work you would like to merge.
-MergeWizardEndPage.duplicateTagSelected=Cannot select {0} because it has already been selected as the start tag.
-
-MergeWizardStartPage.description=This is the version you created when you branched.
-
-MergeWizard.title=Merge
-MergeWizard.start=Select the merge start point
-MergeWizard.end=Select where you want to merge the changes from
-MergeWizard.preparing=Preparing merge wizard
-MergeWizard.preparingStart=Fetching tags for start page
-MergeWizard.preparingEnd=Fetching tags for end page
-
-ModuleSelectionPage.moduleIsProject=Use project name as module name
-ModuleSelectionPage.specifyModule=Use specified module name:
-
-MoveTagAction.errorMessage=Error Tagging
-MoveTagAction.title=Tag with Existing Tag
-MoveTagAction.message=&Select the tag to be moved:
-
-NewLocationWizard.title=Add CVS Repository
-NewLocationWizard.heading=Add a new CVS Repository
-NewLocationWizard.description=Add a new CVS Repository to the CVS Repositories view
-NewLocationWizard.validationFailedText=Error validating location: "{0}"\n\nKeep location anyway?
-NewLocationWizard.validationFailedTitle=Unable to Validate
-NewLocationWizard.exception=Unable to create repository location
-
-OpenLogEntryAction.deletedTitle=Resource is Deleted
-OpenLogEntryAction.deleted=The selected revision represents a deletion. It cannot be opened.
-
-ReleaseCommentDialog.title=Commit
-ReleaseCommentDialog.choosePrevious=Choose a &previously entered comment:
-ReleaseCommentDialog.enterComment=Edit the commit &comment:
-ReleaseCommentDialog.unaddedResources=Checked resources will be &added to CVS version control.
-ReleaseCommentDialog.selectAll=&Select All
-ReleaseCommentDialog.deselectAll=D&eselect All
-ReleaseCommentDialog.clearTextArea=&Reset Comment
-
-RemoteFolderElement.nameAndTag={0} {1}
-RemoteFolderElement.fetchingRemoteChildren=Fetching remote CVS children for ''{0}''...
-
-RemoveRootAction.removeRoot=Error Discarding Location
-
-ReplaceWithTagAction.message=Replace with Branch or Version
-ReplaceWithTagAction.replace=Error Replacing With Tag
-ReplaceWithTagAction.replacing=Replacing with tag {0}
-ReplaceWithTagAction.mixingTags=You are mixing tags within a project. This may cause confusion \
- when synchronizing with the repository. Synchronize uses the tag information associated with \
- each resource to determine the remote resource with which the local resource is compared. \
- For example, with version tags, the state of the tagged resources never change so you will \
- not see changes made to the resources in HEAD (or other branches). Do you wish to continue?
-
-ReplaceWithRemoteAction.replacing=Replacing
-ReplaceWithRemoteAction.problemMessage=Error Replacing With Latest From Repository
-
-ReplaceWithAction.confirmOverwrite=Confirm Overwrite
-ReplaceWithAction.localChanges={0} has local changes which you are about to overwrite. Do you wish to overwrite?
-ReplaceWithAction.calculatingDirtyResources=Finding outgoing changes...
-
-ReplaceWithLatestAction.multipleTags=&Latest from Repository
-ReplaceWithLatestAction.multipleVersions=&Versions from Repository
-ReplaceWithLatestAction.multipleBranches=&Latest from Branches
-ReplaceWithLatestAction.singleVersion=&Version {0}
-ReplaceWithLatestAction.singleBranch=&Latest from Branch {0}
-ReplaceWithLatestAction.singleHEAD=&Latest from {0}
-
-RepositoryDialog.getRepository=Select a repository
-RepositoryDialog.description=Select a repository to connect your project to
-
-RepositoryManager.getting=Getting
-RepositoryManager.committing=Committing
-RepositoryManager.updating=Updating
-RepositoryManager.deleting=Deleting
-RepositoryManager.adding=Adding
-RepositoryManager.rename=An IO Exception occurred while renaming the state file
-RepositoryManager.save=An IO Exception occurred while saving the state file
-RepositoryManager.ioException=An IO Exception occurred while reading the state file
-RepositoryManager.parsingProblem=An error occurred parsing file ''{0}''.
-RepositoryManager.fetchingRemoteFolders=Fetching remote CVS folders for ''{0}''...
-
-RepositoriesView.refresh=&Refresh View
-RepositoriesView.refreshTooltip=Refresh View
-RepositoriesView.new=&Repository Location...
-RepositoriesView.newSubmenu=&New
-RepositoriesView.newAnonCVS=&Anonymous Repository Location to dev.eclipse.org...
-RepositoriesView.newWorkingSet=Select Working Set...
-RepositoriesView.deselectWorkingSet=Deselect Working Set
-RepositoriesView.editWorkingSet=Edit Active Working Set...
-RepositoriesView.workingSetMenuItem={0} {1}
-RepositoriesView.collapseAll=Collapse All
-RepositoriesView.collapseAllTooltip=Collapse All
-RepositoriesView.NItemsSelected={0} items selected
-RepositoriesView.OneItemSelected=1 item selected
-RepositoriesView.ResourceInRepository={0} in {1}
-RepositoriesView.CannotGetRevision=Cannot get revision
-RemoteViewPart.workingSetToolTip=Working Set: {0}
-
-ResourcePropertiesPage.status=Status
-ResourcePropertiesPage.notManaged=Not managed by CVS
-ResourcePropertiesPage.versioned=versioned
-ResourcePropertiesPage.notVersioned=not versioned
-ResourcePropertiesPage.state=State
-ResourcePropertiesPage.checkedOut=Checked Out
-ResourcePropertiesPage.checkedIn=Checked In
-#ResourcePropertiesPage.baseRevision=Base Revision
-#ResourcePropertiesPage.none=none
-ResourcePropertiesPage.error=Error
-
-KSubstWizard.title=Set Keyword Substitution
-KSubstWizard.working=Setting keyword substitution mode...
-KSubstWizard.problemsMessage=Problems encountered setting keyword substitution
-KSubstWizard.errorTitle=Errors Occurred
-KSubstWizard.warningTitle=Warnings occurred
-
-KSubstWizardSharedFilesPage.pageTitle=Include versioned files
-KSubstWizardSharedFilesPage.pageDescription=\
- Choose to include or exclude files that are already in the repository
-KSubstWizardSharedFilesPage.contents=\
- Since the keyword substitution mode attribute is not version controlled, the \
- change will be reflected immediately on all branches and in all revisions of \
- any affected files that are already shared in the repository. You should inform \
- all developers that they must delete and check out fresh copies of the affected \
- files before committing new changes to the repository. You may also experience \
- side-effects working with earlier revisions of these files.
-KSubstWizardSharedFilesPage.includeSharedFiles=&Include files that are already shared in the repository.
-KSubstWizardSharedFilesPage.sharedFilesViewer.title=&The following files were selected and are already shared in the repository:
-
-KSubstWizardDirtyFilesPage.pageTitle=Include files with outgoing changes
-KSubstWizardDirtyFilesPage.pageDescription=\
- Choose to include or exclude files with outgoing changes
-KSubstWizardDirtyFilesPage.contents=\
- This operation may commit changes to files without first providing a chance to resolve \
- conflicts.
-KSubstWizardDirtyFilesPage.includeDirtyFiles=&Include files that have outgoing changes.
-KSubstWizardDirtyFilesPage.dirtyFilesViewer.title=&The following files were selected and have outgoing changes.
-
-KSubstWizardSelectionPage.pageTitle=Select Keyword Substitution Mode
-KSubstWizardSelectionPage.pageDescription=\
- Choose the desired keyword substitution mode for the selected files.
-KSubstWizardSelectionPage.automaticButton=&Automatic
-KSubstWizardSelectionPage.automaticLabel=\
- Automatically chooses ''{0}'' or ''{1}'' \
- for each file according to the Team file extension preferences.
-KSubstWizardSelectionPage.binaryButton=&Binary (-kb)
-KSubstWizardSelectionPage.binaryLabel=\
- Binary files are stored in the repository without alteration.\n\
- CVS does not directly support conflict resolution for binary files.
-KSubstWizardSelectionPage.textButton=A&SCII without keyword substitution (-ko)
-KSubstWizardSelectionPage.textLabel=\
- End of lines are replaced with the appropriate convention for the client system.\n\
- CVS supports conflict resolution and differencing of ASCII files with single line granularity.
-KSubstWizardSelectionPage.textWithSubstitutionsButton=ASCII with &keyword substitution
-KSubstWizardSelectionPage.textWithSubstitutionsLabel=\
- End of lines are replaced with the appropriate convention for the client system.\n\
- ASCII files may contain keywords that are expanded by the CVS server during file transfers.\n\
- Please consult the CVS documentation for a description of the various supported keywords and modes.
-
-KSubstWizardCommitCommentPage.pageTitle=Enter Commit Comment
-KSubstWizardCommitCommentPage.pageDescription=\
- Enter the commit comment to be used for the selected files when they are committed.
-
-KSubstWizardSummaryPage.pageTitle=Summary
-KSubstWizardSummaryPage.pageDescription=\
- Summary of keyword substitution changes to be performed.
-KSubstWizardSummaryPage.contents=\
- Click on \'Finish\' to change the keyword substitution mode of the checked files indicated below.\n\
- You can change the mode on a per file basis by clicking in the corresponding cell.\n\
- Note: Files that are not checked, or that already have the indicated mode will not be affected in any way.
-KSubstWizardSummaryPage.showUnaffectedFiles=&Show files that already have the requested keyword substitution mode.
-KSubstWizardSummaryPage.summaryViewer.title=&The following checked files will have their keyword substitution mode changed to the indicated value.
-KSubstWizardSummaryPage.summaryViewer.fileHeader=File Location
-KSubstWizardSummaryPage.summaryViewer.ksubstHeader=Keyword Substitution Mode
-
-SharingWizard.autoConnectTitle=Connect Project to Repository
-SharingWizard.autoConnectOneOTitle=Connect Project from Eclipse 1.0 to Repository
-SharingWizard.autoConnectTitleDescription=Project is already configured with CVS repository information.
-SharingWizard.couldNotImport=Remote Project Exists
-SharingWizard.couldNotImportLong=Module ''{0}'' already exists remotely. Would you like to synchronize your local project with the existing remote module?
-SharingWizard.selectTagTitle=Select Tag
-SharingWizard.selectTag=&Select the tag to synchronize with:
-SharingWizard.description=Configure a Project to Use CVS
-SharingWizard.importTitle=Share Project with CVS Repository
-SharingWizard.importTitleDescription=Select an existing repository location or create a new location.
-SharingWizard.title=Share Project
-SharingWizard.heading=Configure a Project to Use CVS
-SharingWizard.enterInformation=Enter Repository Location Information
-SharingWizard.enterInformationDescription=Define the location and protocol required to connect with an existing CVS repository.
-SharingWizard.enterModuleName=Enter Module Name
-SharingWizard.enterModuleNameDescription=Select the name of the module in the CVS repository.
-SharingWizard.readyToFinish=Ready to Share Project
-SharingWizard.readyToFinishDescription=Select Finish to import the project into the CVS repository.
-SharingWizard.validationFailedText={0}. Set project sharing anyway?
-SharingWizard.validationFailedTitle=Unable to Validate
-
-SharingWizardFinishPage.message=The wizard has all the information necessary to share your project with the CVS repository. When you click \"Finish\", the wizard will import your project into the repository and open the Synchronize view to allow you to commit your resources.
-
-ShowHistoryAction.showHistory=Error occurred performing Show History
-ShowHistoryAction.noHistory=No History Available
-ShowHistoryAction.noHistoryLong=No resource history available for selected resources.
-
-SyncAction.sync=Synchronize
-SyncAction.workingSetName=Latest CVS Synchronize
-
-TagAction.tagErrorTitle=Tagging Error
-TagAction.tagWarningTitle=Tagging Warning
-TagAction.tagProblemsMessage=Problems reported tagging the resource.
-TagAction.tagProblemsMessageMultiple=Problems tagging the resources. {0} project(s) successfully tagged and {1} project(s) with errors.
-TagAction.tagResources=Tag Resources
-TagAction.enterTag=Please enter a version tag:
-TagAction.moveTag=&Move tag if it already exists
-TagAction.moveTagConfirmTitle=Confirm Move Existing Tag
-TagAction.moveTagConfirmMessage=If the tag {0} is already used in this project, it will be moved to the selected revisions. Are you sure you want to perform the tag operation?
-TagAction.uncommittedChangesTitle=Confirm Uncommitted Changes
-TagAction.uncommittedChanges=You are tagging ''{0}'' that has uncommitted changes. These changes are not in the repository and will not be included in the version you are creating. Do you still want to tag this resource?
-TagAction.tagAlreadyExists=Version tag already exists.
-TagAction.existingVersions=Existing Versions:
-
-TagInRepositoryAction.tagProblemsMessage=Problems reported tagging the resource.
-TagInRepositoryAction.tagProblemsMessageMultiple=Problems tagging the resources. {0} resource(s) successfully tagged and {1} resource(s) with errors.
-
-UpdateAction.update=Problems encountered performing update
-UpdateAction.updating=Updating...
-UpdateAction.promptForUpdateSeveral=Are you sure you want to update {0} resources?
-UpdateAction.promptForUpdateOne=Are you sure you want to update {0} resource?
-UpdateAction.promptForUpdateTitle=Confirm Update
-
-UpdateWizard.title=Update
-UpdateWizard.updatePage=Update
-
-UpdateWizardPage.description=&Select a tag to update the project sharing to:
-UpdateWizardPage.overwrite=&Overwrite local changes
-
-UserValidationDialog.required=Password Required
-UserValidationDialog.labelUser=Enter a user name and password for the following repository: {0}
-UserValidationDialog.labelPassword=Enter a password for {0} in the following repository: {1}
-UserValidationDialog.password=Password:
-UserValidationDialog.user=User name:
-
-KeyboradInteractiveDialog.message=Keyboard Interactive authentication for {0}
-KeyboardInteractiveDialog.labelRepository=Enter values for the following repository: {0}
-
-VersionsElement.versions=Versions
-
-WorkbenchUserAuthenticator.cancelled=Operation cancelled because login cancelled
-WorkbenchUserAuthenticator.errorFlushing=Error occurred while flushing password for {0}
-WorkbenchUserAuthenticator.errorSaving=Error occurred while saving password for {0}
-
-Unmanage.unmanaging=Disconnecting from CVS...
-Unmanage.unmanage=Disconnect from CVS
-Unmanage.title=Confirm Disconnect from CVS
-Unmanage.titleN=Confirm Multiple Project Disconnect from CVS
-Unmanage.message=Are you sure you want to disconnect CVS from ''{0}''?
-Unmanage.messageN=Are you sure you want to disconnect CVS from these {0} projects?
-Unmanage.option1=Do not delete the CVS meta information (e.g. CVS sub-directories).
-Unmanage.option2=Also delete the CVS meta information from the file system.
-Unmanage.unmanagingError=Errors occurred while disconnecting
-
-Unmanage.message=Are you sure you want to disconnect CVS from ''{0}''?
-Unmanage.messageN=Are you sure you want to disconnect CVS from these {0} projects?
-
-Enter_a_valid_file_name_or_select_the_clipboard_option_1=Enter a valid file name or select the clipboard option
-Save_To_Clipboard_2=&Save To Clipboard
-Save_In_File_System_3=Sa&ve In File System
-Browse..._4=Br&owse...
-Save_Patch_As_5=Save Patch As
-patch.txt_6=patch.txt
-Save_In_Workspace_7=Save In &Workspace
-Select_a_folder_then_type_in_the_file_name__8=Select a fol&der then type in the file name:
-Fi&le_name__9=Fi&le name:
-Do_not_recurse_into_sub-folders_10=&Recurse into sub-folders
-Do_not_include_new_files_in_patch_11=&Include new files in patch
-Diff_output_format_12=Diff output format
-Unified_(format_required_by_Compare_With_Patch_feature)_13=&Unified (format required by the Apply Patch wizard)
-Context_14=&Context
-Standard_15=&Standard
-Advanced_options_19=Advanced options
-Configure_the_options_used_for_the_CVS_diff_command_20=Configure the options used for the CVS diff command
-
-After_configuring_the_project__1=After configuring the project:
-Open_the_Synchronize_view_on_the_project_2=Open the Synchronize view on the project
-Automatically_import_the_local_resources_into_the_repository_3=Automatically import the local resources into the repository
-Run_update_4=Run update
-Do_nothing_5=Do nothing
-Validate_Connection_on_Finish_7=Validate Location on Finish
-
-TagSelectionDialog.Select_a_Tag_1=&Select a branch or version:
-TagSelectionDialog.recurseOption=Recurse into sub-&folders
-
-UpdateSyncAction.Conflicting_changes_found_1=Conflicting changes found
-UpdateSyncAction.You_have_local_changes_you_are_about_to_overwrite_2=You have local changes you are about to overwrite
-UpdateSyncAction.Only_update_resources_that_can_be_automatically_merged_3=Only update resources that can be automatically merged
-UpdateSyncAction.Update_all_resources,_overwriting_local_changes_with_remote_contents_4=Update all resources, overwriting local changes with remote contents
-UpdateSyncAction.Overwrite_local_changes__5=Overwrite local changes?
-UpdateSyncAction.You_have_local_changes_you_are_about_to_overwrite._Do_you_wish_to_continue__6=You have local changes you are about to overwrite. Do you wish to continue?
-
-Example__1=Example:
-Text_Labels_12=T&ext
-Select_the_format_for_file,_folders,_and_project_text_labels__13=Select the format for file, folders, and project text labels:
-&File_Format__14=&File Format:
-Add_&Variables_15=Add &Variables...
-F&older_Format__16=F&older Format:
-Add_Varia&bles_17=Add Varia&bles...
-&Project_Format__18=&Project Format:
-Add_Variable&s_19=Add Variable&s...
-&Label_decoration_for_outgoing__20=Di&rty flag:
-Label_decorat&ion_for_added__22=Added f&lag:
-Icon_Overlays_24=&Icons
-Sho&w_outgoing_25=Indicate is out&going
-Show_has_&remote_26=Indicate &has remote
-S&how_is_added_27=Indi&cate is added
-&Compute_deep_outgoing_state_for_folders_(disabling_this_will_improve_decorator_performance)_28=&Compute deep outgoing state for folders (disabling this will improve decorator performance)
-Select_the_&variables_to_add_to_the_decoration_format__30=Select the &variables to add to the decoration format:
-Add_Variables_31=Add Variables
-name_of_the_resource_being_decorated_34=name of the resource being decorated
-the_tag_applied_to_the_resource_(version,_branch,_or_date)_35=the tag applied to the resource (version, branch, or date)
-the_repository_location__s_hostname_36=the repository location\'s hostname
-the_connection_method_(e.g._pserver,_ssh)_37=the connection method (e.g. pserver, ssh)
-user_name_for_the_connection_38=user name for the connection
-repository_home_directory_on_server_39=repository home directory on server
-root_relative_directory_40=root relative directory
-flag_indicating_that_the_folder_has_a_child_resource_with_outgoing_changes_41=flag indicating that the folder has a child resource with outgoing changes
-name_of_the_resource_being_decorated_42=name of the resource being decorated
-the_tag_applied_to_the_resource_43=the tag applied to the resource
-keyword_substitution_rule_for_the_resource_44=keyword subsitution rule for the resource
-last_revision_loaded_into_workspace_45=last revision loaded into workspace
-flag_indicating_that_the_file_has_outgoing_changes_46=flag indicating that the file has outgoing changes
-flag_indicating_that_the_file_has_been_added_to_the_server_47=flag indicating that the file has been added to the server
-
-ExtMethodPreferencePage_message=These variables define the external connection program to use with the \'ext\' connection method. These values should be the same as the \'ext\' CVS command-line environment variable settings.
-ExtMethodPreferencePage_CVS_RSH=CVS_&RSH:
-ExtMethodPreferencePage_Browse=&Browse...
-ExtMethodPreferencePage_Details=Select a program or script
-ExtMethodPreferencePage_CVS_RSH_Parameters=&Parameters:
-ExtMethodPreferencePage_Add_Variable=&Add Variable...
-ExtMethodPreferencePage_CVS_SERVER__7=CVS_&SERVER:
-UpdateMergeActionProblems_merging_remote_resources_into_workspace_1=Problems merging remote resources into workspace
-UpdateMergeActionProblems_merging_remote_resources_into_workspace_2=Problems merging remote resources into workspace
-
-TagConfigurationDialog.1=Configure Branches and Versions for {0}
-TagConfigurationDialog.2=Configure Branches and Versions for {0} projects
-TagConfigurationDialog.4=Configure tags you will see in the workbench.
-TagConfigurationDialog.5=&Browse files for tags:
-TagConfigurationDialog.6=&New tags found in the selected files:
-TagConfigurationDialog.7=Remembered &tags for these projects:
-TagConfigurationDialog.8=&Add Checked Tags
-TagConfigurationDialog.9=&Remove
-TagConfigurationDialog.10=Re&move All
-TagConfigurationDialog.11=&List of files to be automatically examined when refreshing tags:
-TagConfigurationDialog.12=A&dd Selected Files
-TagConfigurationDialog.13=Rem&ove
-TagConfigurationDialog.14=Error fetching tags from remote CVS files
-TagConfigurationDialog.20=&Refresh from Repository
-TagConfigurationDialog.21=&Configure Tags...
-TagConfigurationDialog.22=Updating Tags
-
-ChangeListener.Deleting_CVS_folders_1=Deleting CVS folders
-ChangeListener.Folders_cannot_be_deleted_from_a_CVS_server_from_the_client._To_delete_the_folder_2=Folders cannot be deleted from a CVS server from the client. To delete the folder
-ChangeListener.Do_not_ask_me_about_this_again_3=Do not ask me about this again
-ConfigureTagsFromRepoViewConfigure_Tag_Error_1=Configure Tag Error
-RemoteRootAction.label=Discard location
-RemoteRootAction.Unable_to_Discard_Location_1=Unable to Discard Location
-RemoteRootAction.Projects_in_the_local_workspace_are_shared_with__2=Projects in the local workspace are shared with {0}. This location cannot be discarded until all local projects are disconnected from it.
-RemoveRootAction.removeRoot_3=RemoveRootAction.removeRoot
-RemoteRootAction.The_projects_that_are_shared_with_the_above_repository_are__4=The projects that are shared with the above repository are:
-
-BranchCategory.Branches_1=Branches
-GroupedByVersionCategory.Versions_1=Versions
-VersionCategory.Versions_1=Versions
-ModulesCategory.label=Modules
-HistoryView.[...]_4=[...]
-
-CVSProjectPropertiesPage.connectionType=Connection type:
-CVSProjectPropertiesPage.user=User:
-CVSProjectPropertiesPage.Select_a_Repository_1=Select a Repository
-CVSProjectPropertiesPage.Select_a_CVS_repository_location_to_share_the_project_with__2=Select a compatible CVS repository location to share the project with:
-CVSProjectPropertiesPage.Change_Sharing_5=&Change Sharing...
-CVSProjectPropertiesPage.fetchAbsentDirectoriesOnUpdate=&Fetch absent or new directories when updating
-CVSProjectPropertiesPage.configureForWatchEdit=Enable watch/edit for this project
-CVSProjectPropertiesPage.progressTaskName=Updating project's CVS properties
-CVSProjectPropertiesPage.setReadOnly=Setting all files read-only
-CVSProjectPropertiesPage.clearReadOnly=Setting all files writable
-CVSRepositoryPropertiesPage.Confirm_Project_Sharing_Changes_1=Confirm Project Sharing Changes
-CVSRepositoryPropertiesPage.There_are_projects_in_the_workspace_shared_with_this_repository_2=There are projects in the workspace shared with this repository. The projects will be updated with the new information that you have entered
-CVSRepositoryPropertiesPage.sharedProject=The projects that are shared with {0} are:
-CVSRepositoryPropertiesPage.useDefaultProgramName=Expect the &default program name "cvs" in text message prefixes from this server
-CVSRepositoryPropertiesPage.useProgramName=Expect a custom &program name:
-CVSRepositoryPropertiesPage.useLocationAsLabel=Use the &repository identification string as the label
-CVSRepositoryPropertiesPage.useCustomLabel=Use a custom &label:
-
-CVSProjectSetSerializer.Confirm_Overwrite_Project_8=Confirm Overwrite Project
-CVSProjectSetSerializer.The_project_{0}_already_exists._Do_you_wish_to_overwrite_it__9=The project {0} already exists. Do you wish to overwrite it?
-
-IgnoreResourcesDialog.titleSingle=Add {0} to .cvsignore
-IgnoreResourcesDialog.titleMany=Add {0} resources to .cvsignore
-IgnoreResourcesDialog.prompt=Select what to add to the .cvsignore file(s):
-IgnoreResourcesDialog.addNameEntryButton=Resource(s) by name
-IgnoreResourcesDialog.addNameEntryExample=Examples: file1.so, file2.so, .rcfile, bin
-IgnoreResourcesDialog.addExtensionEntryButton=Wildcard extension
-IgnoreResourcesDialog.addExtensionEntryExample=Examples: *.so, *.rcfile, bin
-IgnoreResourcesDialog.addCustomEntryButton=Custom pattern
-IgnoreResourcesDialog.addCustomEntryExample=The wildcard characters ''*'' and ''?'' are permitted.
-IgnoreResourcesDialog.patternMustNotBeEmpty=Pattern must not be empty.
-IgnoreResourcesDialog.patternDoesNotMatchFile=Pattern does not match all selected resources: e.g. {0}
-
-ContentAction.Confirm_Long_Operation_1=Confirm Long Operation
-ContentAction.Changing_this_setting_will_involve_contacting_the_server_and_may_be_long-running_2=Changing this setting will involve contacting the server and may be long-running
-
-CVSProjectPropertiesPage.You_can_change_the_sharing_of_this_project_to_another_repository_location._However,_this_is_only_possible_if_the_new_location_is___compatible___(on_the_same_host_with_the_same_repository_path)._1=You can change the sharing of this project to another repository location. However, this is only possible if the new location is \"compatible\" (on the same host with the same repository path).
-
-ConfigurationWizardMainPage.Location_1=Location
-ConfigurationWizardMainPage.Authentication_2=Authentication
-ConfigurationWizardMainPage.Connection_3=Connection
-AlternateUserValidationDialog.Enter_Password_2=Enter Password
-AlternateUserValidationDialog.OK_6=OK
-AlternateUserValidationDialog.Cancel_7=Cancel
-AlternateUserValidationDialog.message=Enter the password for {0}:
-WorkbenchUserAuthenticator.The_operation_was_canceled_by_the_user_1=The operation was canceled by the user
-CVSCatchupReleaseViewer.No_workspace_file_1=No workspace file
-CVSPreferencesPage.Timeout_must_not_be_negative_1=Timeout must not be negative
-CVSPreferencesPage.Timeout_must_be_a_number_2=Timeout must be a number
-CVSCatchupReleaseViewer.Select_&Outgoing_Additions_1=Select New Reso&urces
-ForceCommitSyncAction.Outgoing_Changes_Not_Added_1=Outgoing Changes Not Added
-ForceCommitSyncAction.You_have_chosen_to_commit_new_resources_which_have_not_been_added_to_version_control._Do_you_wish_to_add_them_to_version_control_now__2=You have chosen to commit new resources which have not been added to version control. Do you wish to add them to version control now?
-
-WorkingSetSelectionArea.workingSetOther=&Other...
-ListSelectionArea.selectAll=&Select All
-ListSelectionArea.deselectAll=&Deselect All
-
-RestoreFromRepositoryWizard.fileSelectionPageTitle=Restore from Repository
-RestoreFromRepositoryWizard.fileSelectionPageDescription=Select the revision of each file that should be restored.
-RestoreFromRepositoryFileSelectionPage.fileSelectionPaneTitle={0} - Select file to be restored:
-RestoreFromRepositoryFileSelectionPage.revisionSelectionPaneTitle={0} - Check revision to be restored:
-RestoreFromRepositoryFileSelectionPage.fileToRestore={0} ({1} to be restored)
-RestoreFromRepositoryFileSelectionPage.fileContentPaneTitle={0} {1} in ''{2}''
-RestoreFromRepositoryFileSelectionPage.emptyRevisionPane=Remote revisions of selected file:
-RestoreFromRepositoryFileSelectionPage.fileExists=File ''{0}'' already exists locally.
-RestoreFromRepositoryFileSelectionPage.revisionIsDeletion=Revision {0} of {1} is the deletion and can not be restored. Select another revision of this file.
-RestoreFromRepositoryAction.noFilesTitle=No Deleted Files Found
-RestoreFromRepositoryAction.noFilesMessage=There were no deleted files found on the repository in folder ''{0}''.
-
-RepositoryRoot.folderInfoMissing=Local folder ''{0}'' is not properly mapped to a remote folder.
-
-RepositoriesViewContentHandler.unmatchedTag=No matching end tag found for tag ''{0}'' while reading repositories View configuration file.
-RepositoriesViewContentHandler.missingAttribute=Required attribute ''{1}'' missing from tag ''{0}'' while reading repositories View configuration file.
-RepositoriesViewContentHandler.errorCreatingRoot=An error occurred trying to create repository ''{0}''.
-
-CVSWorkingSetFolderSelectionPage.projectSelectionPageTitle=CVS Working Set
-CVSWorkingSetFolderSelectionPage.projectSelectionPageDescription=Enter a working set name and select the working set folders.
-CVSWorkingSetFolderSelectionPage.name=&Working set name:
-CVSWorkingSetFolderSelectionPage.treeLabel=Working &set contents:
-CVSWorkingSetFolderSelectionPage.refresh=&Refresh Contents
-CVSWorkingSetFolderSelectionPage.invalidWorkingSetName=The name must contain only letters and digits.
-CVSWorkingSetFolderSelectionPage.duplicateWorkingSetName=A working set of the specific name already exists.
-CVSWorkingSetFolderSelectionPage.mustSelectFolder=At least one folder must be checked.
-
-WorkingSetSelectionDialog.title= Select CVS Working Set
-WorkingSetSelectionDialog.title.multiSelect= Select CVS Working Sets
-WorkingSetSelectionDialog.message= &Select a CVS working set:
-WorkingSetSelectionDialog.message.multiSelect= &Select CVS working sets:
-WorkingSetSelectionDialog.detailsButton.label= &Edit...
-WorkingSetSelectionDialog.newButton.label= &New...
-WorkingSetSelectionDialog.removeButton.label= &Remove
-
-RefreshTagsAction.title=Refresh Branch and Version Tags?
-RefreshTagsAction.message=Repository ''{0}'' has {1} projects to refresh. Continue?
-
-WatchEditPreferencePage.description=Settings for CVS Watch/Edit.
-WatchEditPreferencePage.checkoutReadOnly=&Configure projects to use Watch/Edit on checkout
-WatchEditPreferencePage.validateEditSaveAction=When read-only files are modified in an editor
-WatchEditPreferencePage.edit=Send a CVS &edit notification to the server
-WatchEditPreferencePage.highjack=Edit the file &without informing the server
-WatchEditPreferencePage.editPrompt=Before a CVS edit notification is sent to the server
-WatchEditPreferencePage.neverPrompt=&Never prompt
-WatchEditPreferencePage.alwaysPrompt=Always &prompt
-WatchEditPreferencePage.onlyPrompt=&Only prompt if there are other editors
-
-Uneditaction.confirmMessage=Overwrite local changes to edited files?
-Uneditaction.confirmTitle=Confirm Unedit
-
-FileModificationValidator.promptTitle=CVS Edit Files?
-FileModificationValidator.promptMessage=There are read-only files being modified. Should a 'cvs edit' be performed?
-FileModificationValidator.vetoMessage=User vetoed file modification
-
-RefreshRemoteProjectWizard.title=Refresh Branches
-RefreshRemoteProjectSelectionPage.pageTitle=Select Projects
-RefreshRemoteProjectSelectionPage.pageDescription=Select the remote projects whose tags should be refreshed.
-RefreshRemoteProjectSelectionPage.selectRemoteProjects=This wizard helps discover the tags associated with one or more remote projects. &Check the projects whose tags you wish to refresh.
-RefreshRemoteProjectSelectionPage.noWorkingSet=Do not &use a working set
-RefreshRemoteProjectSelectionPage.workingSet=Select a &working set (matching projects will be checked):
-
-EditorsView.file=File name
-EditorsView.user=User name
-EditorsView.date=Date
-EditorsView.computer=Computer name
-
-EditorsDialog.title=Editors
-EditorsDialog.question=The resource already has editors. Do you still want to edit the resource and send a CVS edit notification to server?
-EditorsAction.classNotInitialized={0} not initialized
-
-TargetLocationSelectionDialog.projectNameLabel=&Project Name:
-TargetLocationSelectionDialog.useDefaultLabel=Use default &workspace location
-TargetLocationSelectionDialog.locationLabel=&Location:
-TargetLocationSelectionDialog.parentDirectoryLabel=&Directory:
-TargetLocationSelectionDialog.browseLabel=&Browse...
-TargetLocationSelectionDialog.messageForSingle=Select the parent directory for project {0}.
-TargetLocationSelectionDialog.messageForMulti=Select the parent directory for the {0} projects.
-TagetLocationSelectionDialog.locationEmpty=Project contents directory must be specified.
-TagetLocationSelectionDialog.invalidLocation=Invalid location path.
-TagetLocationSelectionDialog.alreadyExists=Project {0} already exists.
-
-SynchronizeProjectsDialog.title=Synchronize CVS Projects
-SynchronizeProjectsDialog.selectProjects=Projects to be synchronized
-SynchronizeProjectsDialog.syncOutgoingChanges=Only synchronize projects with outgoing &changes
-SynchronizeProjectsDialog.allSharedProjects=Include &all projects shared with CVS
-SynchronizeProjectsDialog.sharedWorkingSetProjects=Include &working set resources shared with CVS:
-
-RemoteFileEditorInput.fullPathAndRevision={0} {1}
-
-CheckoutOperation.thisResourceExists=The resource ''{0}'' already exists in the workspace and will be deleted. Proceed with the check out of ''{1}''?
-CheckoutOperation.thisExternalFileExists=The folder ''{0}'' exists in the local file system and will be deleted. Proceed with the check out of ''{1}''?
-CheckoutOperation.confirmOverwrite=Confirm Overwrite
-CheckoutOperation.scrubbingProject=Scrubbing project ''{0}''.
-CheckoutOperation.refreshingProject=Configuring project ''{0}''.
-
-CheckoutSingleProjectOperation.taskname=Checking out ''{0}'' from CVS
-CheckoutMultipleProjectsOperation.taskName=Checking out {0} folders from CVS
-
-CheckoutIntoOperation.taskname=Checking out {0} folders from CVS into ''{1}''
-CheckoutIntoOperation.targetIsFile=Folder ''{0}'' cannot be checked out because file ''{1}'' is in the way.
-CheckoutIntoOperation.targetIsFolder=Folder ''{0}'' cannot be checked out because folder ''{1}'' is in the way.
-CheckoutIntoOperation.targetIsPrunedFolder=Folder ''{0}'' cannot be checked out because it conflicts with the pruned folder ''{1}''.
-CheckoutIntoOperation.mappingAlreadyExists=Cannot checkout remote folder ''{0}'' into ''{1}'' because local folder ''{2}'' is already mapped to remote folder ''{0}''.
-CheckoutIntoOperation.cancelled=Checkout of ''{1}'' cancelled by user.
-CheckoutIntoOperation.overwriteMessage=Folder ''{0}'' already exists and will be deleted. Continue?
-
-AddToWorkspace.taskName1=Checking out ''{0}'' from CVS
-AddToWorkspace.taskNameN=Checking out {0} folders from CVS
-
-CheckoutAsAction.checkoutFailed=Problems encountered performing checkout
-
-CheckoutAsAction.enterProjectTitle=Check Out {0} As...
-CheckoutAsAction.enterLocationTitle=Check Out {0} Projects As...
-CheckoutAsAction.taskname=Checking out "{0}" from CVS as "{1}"
-CheckoutAsAction.multiCheckout=Checking out {0} projects from CVS
-
-CheckoutAsWizard.title=Check Out As
-CheckoutAsWizard.error=Problems encountered performing checkout
-CheckoutAsMainPage.title=Check Out As
-CheckoutAsMainPage.description=Select the method of check out
-CheckoutAsMainPage.singleFolder=Choose how to check out folder ''{0}''
-CheckoutAsMainPage.asConfiguredProject=Check out as a project &configured using the New Project Wizard
-CheckoutAsMainPage.asSimpleProject=Check out as a &project in the &workspace
-CheckoutAsMainPage.projectNameLabel=&Project Name:
-CheckoutAsMainPage.multipleFolders=Choose how to check out the {0} folders
-CheckoutAsMainPage.asProjects=Check out into the &workspace as projects
-CheckoutAsMainPage.intoProject=Check out &into an existing project
-
-CheckoutAsLocationSelectionPage.title=Check Out As
-CheckoutAsLocationSelectionPage.description=Select the project location
-CheckoutAsLocationSelectionPage.useDefaultLabel=Use default &workspace location
-CheckoutAsLocationSelectionPage.locationLabel=&Location:
-CheckoutAsLocationSelectionPage.parentDirectoryLabel=&Directory:
-CheckoutAsLocationSelectionPage.browseLabel=&Browse...
-CheckoutAsLocationSelectionPage.locationEmpty=Project contents directory must be specified.
-CheckoutAsLocationSelectionPage.invalidLocation=Invalid location path.
-CheckoutAsLocationSelectionPage.messageForSingle=Select the parent directory for project {0}.
-CheckoutAsLocationSelectionPage.messageForMulti=Select the parent directory for the {0} projects.
-
-CheckoutAsProjectSelectionPage.title=Check Out Into
-CheckoutAsProjectSelectionPage.description=Select the local folder that is the target of the checkout operation.
-CheckoutAsProjectSelectionPage.name=Target folder &name:
-CheckoutAsProjectSelectionPage.treeLabel=&Parent of target folder:
-CheckoutAsProjectSelectionPage.showLabel=&Filter project list:
-CheckoutAsProjectSelectionPage.recurse=&Checkout subfolders
-CheckoutAsProjectSelectionPage.showAll=Show all valid target projects
-CheckoutAsProjectSelectionPage.showUnshared=Show unshared projects
-CheckoutAsProjectSelectionPage.showSameRepo=Show projects shared with the same repository
-CheckoutAsProjectSelectionPage.invalidFolderName=''{0}'' is not a valid folder name
-
-TargetLocationSelectionDialog.projectNameLabel=&Project Name:
-TargetLocationSelectionDialog.useDefaultLabel=Use default &workspace location
-TargetLocationSelectionDialog.locationLabel=&Location:
-TargetLocationSelectionDialog.parentDirectoryLabel=&Directory:
-TargetLocationSelectionDialog.browseLabel=&Browse...
-TargetLocationSelectionDialog.messageForSingle=Select the parent directory for project {0}.
-TargetLocationSelectionDialog.messageForMulti=Select the parent directory for the {0} projects.
-TagetLocationSelectionDialog.locationEmpty=Project contents directory must be specified.
-TagetLocationSelectionDialog.invalidLocation=Invalid location path.
-TagetLocationSelectionDialog.alreadyExists=Project {0} already exists.
-CheckoutIntoWizard.title=Checkout Into
-CheckoutIntoWizard.projectSelectionPageTitle=Select local folder
-CheckoutIntoWizard.projectSelectionPageDescription=Select the local folder that is the target of the checkout operation.
-CheckoutIntoWizard.error=Checkout Error
-CheckoutIntoWizard.thisResourceExists=The resource ''{0}'' already exists in the workspace. Overwrite?
-CheckoutIntoWizard.confirmOverwrite=Confirm Overwrite
-CheckoutIntoWizard.mappingAlreadyExists=Cannot add remote folder ''{0}'' to project ''{1}'' as ''{2}'' because local folder ''{3}'' is already mapped to that folder.
-CheckoutIntoProjectSelectionPage.description=Choose the name and parent folder where ''{0}'' should be checked out to.
-CheckoutIntoProjectSelectionPage.name=Target folder &name:
-CheckoutIntoProjectSelectionPage.treeLabel=&Parent of target folder:
-CheckoutIntoProjectSelectionPage.showLabel=&Filter project list:
-CheckoutIntoProjectSelectionPage.showAll=Show all valid target projects
-CheckoutIntoProjectSelectionPage.showUnshared=Show unshared projects
-CheckoutIntoProjectSelectionPage.showSameRepo=Show projects shared with the same repository
-CheckoutIntoProjectSelectionPage.recurse=&Checkout subfolders
-CheckoutIntoProjectSelectionPage.invalidFolderName=''{0}'' is not a valid folder name
-
-HasProjectMetaFile.taskName=Looking for a remote meta file
-TagFromWorkspace.taskName=Tagging from workspace
-TagFromRepository.taskName=Tagging from repository
-UpdateOnlyMergeable.taskName=Updating mergeable changes
-UpdateDialog.overwriteTitle=Overwrite Local Changes?
-UpdateDialog.overwriteMessage=Some conflicting files cannot be merged automatically with the update action. Should these resources be updated, overwriting any local changes?
-ReplaceOperation.taskName=Performing a CVS Replace operation
-UpdateOperation.taskName=Performing a CVS Update operation
-
-SafeUpdateAction.warnFilesWithConflictsTitle=Non-mergeable files
-SafeUpdateAction.warnFilesWithConflictsDescription=Some conflicting files cannot be merged automatically with the update action. They contain conflicting changes that will have to be merged manually. Use the Synchronize View to find the conflicts then merge the changes in a compare editor.
-
-SafeUpdateAction.warnFilesWithConflictsTitle=Non-mergeable files
-SafeUpdateAction.warnFilesWithConflictsDescription=Some conflicting files cannot be merged automatically with the update action. They contain conflicting changes that will have to be merged manually. Use the Synchronize View to find the conflicts then merge the changes in a compare editor.
-
-Error.unableToShowSyncView=Error opening Synchronize View. Please ensure that the Team plugin is installed correctly.
-ShowAnnotationAction.1=Unexpected response from CVS Server: {0}
-
-UpdateAction.jobName=Performing a CVS Update on {0} resources
-MergeUpdateAction.jobName=Performing a CVS Merge on {0} resources
-MergeUpdateAction.invalidSubscriber=Invalid subscriber: {0}
-CommitAction.jobName=Performing a CVS Commit on {0} resources
-OverrideAndUpdateAction.jobName=Performing CVS Override and Update on {0} resources
-WorkInProgressPreferencePage.0=CVS Work In Progress
-WorkInProgressPreferencePage.1=Preferences for enabling features that are not complete:
-WorkInProgressPreferencePage.2=Enable background fetching of resources in the CVS Repositories view
-WorkInProgressPreferencePage.3=Enable operations to be run in the background (e.g. checkout, update, commit)
-WorkInProgressPreferencePage.4=Enable the CVS sync actions to open the new sync view
-CheckoutProjectOperation.8=Checking out ''{0}'' into project ''{1}''
-CheckoutProjectOperation.9=Checking out ''{0}'' into {1} projects
-CVSOperation.0=Errors occured in {0} of {1} operations.
-CVSDecorator.exceptionMessage=Errors occured while applying CVS decorations to resources.
-FetchMembersOperation.0=Fetching members of {0}
-
-RemoteRevisionQuickDiffProvider.readingFile=Error reading remote file
-RemoteRevisionQuickDiffProvider.closingFile=Error closing remote file
-RemoteRevisionQuickDiffProvider.fetchingFile=CVS QuickDiff: fetching remote contents for ''{0}''
-RemoteCompareOperation.0=Comparing tags {0} and {1} of {2}
-action.SynchronizeViewCommit.label=Commit
-action.SynchronizeViewCommit.tooltip=Commit All Outgoing Changes
-action.SynchronizeViewCommit.description=Commit All Outgoing Changes
-action.SynchronizeViewCommit.image=checkin_action.gif
-
-action.SynchronizeViewUpdate.label=Update
-action.SynchronizeViewUpdate.tooltip=Update All Incoming Changes
-action.SynchronizeViewUpdate.description=Update All Incoming Changes
-action.SynchronizeViewUpdate.image=checkout_action.gif
-
-MergeSynchronizeParticipant.8=Missing id initializing cvs merge participant
-MergeSynchronizeParticipant.9=Unable to initialize cvs merge subscriber
-MergeSynchronizeParticipant.10=Missing root nodes in cvs merge subscriber memento: {0}
-MergeSynchronizeParticipant.11=Root resource in cvs merge subscriber is no longer in workspace, ignoring: {0}
-MergeSynchronizeParticipant.12=Missing root resources for cvs merge subscriber: {0}
-DisconnectOperation.0=Disconnecting
-SubscriberConfirmMergedAction.0=Synchronization information is missing for resource {0}
-SubscriberConfirmMergedAction.jobName=Performing a CVS Mark as Merged operation on {0} resources.
-CVSSubscriberAction.0=Invalid attemp to make unsupervised resource {0} in-sync.
-ReleaseCommentDialog.6=Review resources that will be committed:
-ReconcileProjectOperation.0=Reconciling project {0} with remote folder {1}
-CheckoutToRemoteFolderOperation.0=Downloading folder {0}
-CVSRepositoryPropertiesPage.21=Use this location's connection information for all connections
-CVSRepositoryPropertiesPage.22=Use the following locations for read and write access
-CVSRepositoryPropertiesPage.23=Read:
-CVSRepositoryPropertiesPage.24=Write:
-CompareRevertAction.0=Reverting {0} resources
-FileModificationValidator.3=Perform Edit?
-FileModificationValidator.4=A CVS edit notification is required to be sent to the server in order to allow editing of one or more selected files. Continue?
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/AllRootsElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/AllRootsElement.java
deleted file mode 100644
index 20226e3de..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/AllRootsElement.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.internal.ccvs.ui.model;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * AllRootsElement is the model element for the repositories view.
- * Its children are the array of all known repository roots.
- */
-public class AllRootsElement extends CVSModelElement implements IAdaptable {
- public ImageDescriptor getImageDescriptor(Object object) {
- return null;
- }
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) {
- return CVSUIPlugin.getPlugin().getRepositoryManager().getKnownRepositoryRoots();
- }
- public String getLabel(Object o) {
- return null;
- }
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
- public Object getParent(Object o) {
- return null;
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/BranchCategory.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/BranchCategory.java
deleted file mode 100644
index b954d75d4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/BranchCategory.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.internal.ccvs.ui.model;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-/**
- * BranchCategory is the model element for the branches category
- * for a particular repsitory in the repositories view. Its children
- * are the array of all known branch tags, other than HEAD, for the
- * given repository.
- */
-public class BranchCategory extends CVSModelElement implements IAdaptable {
- private ICVSRepositoryLocation repository;
-
- /**
- * TeamStreamsCategory constructor.
- */
- public BranchCategory(ICVSRepositoryLocation repository) {
- super();
- this.repository = repository;
- }
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found.
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
-
- /**
- * Returns the children of this object. When this object
- * is displayed in a tree, the returned objects will be this
- * element's children. Returns an empty enumeration if this
- * object has no children.
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) throws CVSException {
- CVSTag[] tags = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(repository, getWorkingSet(), CVSTag.BRANCH, monitor);
- CVSTagElement[] branchElements = new CVSTagElement[tags.length];
- for (int i = 0; i < tags.length; i++) {
- branchElements[i] = new CVSTagElement(tags[i], repository);
- }
- return branchElements;
- }
-
- /**
- * Returns an image descriptor to be used for displaying an object in the workbench.
- * Returns null if there is no appropriate image.
- *
- * @param object The object to get an image descriptor for.
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_BRANCHES_CATEGORY);
- }
-
- /**
- * Returns the name of this element. This will typically
- * be used to assign a label to this object when displayed
- * in the UI. Returns an empty string if there is no appropriate
- * name for this object.
- *
- * @param object The object to get a label for.
- */
- public String getLabel(Object o) {
- return Policy.bind("BranchCategory.Branches_1"); //$NON-NLS-1$
- }
-
- /**
- * Returns the logical parent of the given object in its tree.
- * Returns null if there is no parent, or if this object doesn't
- * belong to a tree.
- *
- * @param object The object to get the parent for.
- */
- public Object getParent(Object o) {
- return repository;
- }
-
- /**
- * Return the repository the given element belongs to.
- */
- public ICVSRepositoryLocation getRepository(Object o) {
- return repository;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSAdapterFactory.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSAdapterFactory.java
deleted file mode 100644
index 03745ed11..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSAdapterFactory.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryRoot;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-import org.eclipse.ui.views.properties.IPropertySource;
-
-public class CVSAdapterFactory implements IAdapterFactory {
- private Object fileAdapter = new RemoteFileElement();
- private Object folderAdapter = new RemoteFolderElement();
- private Object rootAdapter = new CVSRepositoryRootElement();
-
- // Property cache
- private Object cachedPropertyObject = null;
- private Object cachedPropertyValue = null;
-
- /** (Non-javadoc)
- * Method declared on IAdapterFactory.
- */
- public Object getAdapter(Object adaptableObject, Class adapterType) {
- if (IWorkbenchAdapter.class == adapterType) {
- return getWorkbenchAdapter(adaptableObject);
- }
-
- if(IDeferredWorkbenchAdapter.class == adapterType) {
- Object o = getWorkbenchAdapter(adaptableObject);
- if(o != null && o instanceof IDeferredWorkbenchAdapter) {
- return o;
- }
- return null;
- }
-
- if (IPropertySource.class == adapterType) {
- return getPropertySource(adaptableObject);
- }
- return null;
- }
-
- protected Object getWorkbenchAdapter(Object o) {
- if (o instanceof ICVSRemoteFile) {
- return fileAdapter;
- } else if (o instanceof ICVSRepositoryLocation) {
- return rootAdapter;
- } else if (o instanceof RepositoryRoot) {
- return rootAdapter;
- } else if (o instanceof ICVSRemoteFolder) {
- return folderAdapter;
- }
- return null;
- }
-
- /** (Non-javadoc)
- * Method declared on IAdapterFactory.
- */
- public Class[] getAdapterList() {
- return new Class[] {IWorkbenchAdapter.class, IPropertySource.class, IDeferredWorkbenchAdapter.class};
- }
- /**
- * Returns the property source for the given object. Caches
- * the result because the property sheet is extremely inefficient,
- * it asks for the source seven times in a row.
- */
- public Object getPropertySource(Object adaptableObject) {
- if (adaptableObject == cachedPropertyObject) {
- return cachedPropertyValue;
- }
- cachedPropertyObject = adaptableObject;
- if (adaptableObject instanceof ICVSRemoteFile) {
- cachedPropertyValue = new CVSRemoteFilePropertySource((ICVSRemoteFile)adaptableObject);
- } else if (adaptableObject instanceof ICVSRemoteFolder) {
- cachedPropertyValue = new CVSRemoteFolderPropertySource((ICVSRemoteFolder)adaptableObject);
- } else if (adaptableObject instanceof ICVSRepositoryLocation) {
- cachedPropertyValue = new CVSRepositoryLocationPropertySource((ICVSRepositoryLocation)adaptableObject);
- } else if (adaptableObject instanceof RepositoryRoot) {
- cachedPropertyValue = new CVSRepositoryLocationPropertySource(((RepositoryRoot)adaptableObject).getRoot());
- } else {
- cachedPropertyValue = null;
- }
- return cachedPropertyValue;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSFileElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSFileElement.java
deleted file mode 100644
index 76a80ad47..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSFileElement.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.ui.PlatformUI;
-
-public class CVSFileElement extends CVSResourceElement {
-
- private ICVSFile file;
-
- public CVSFileElement(ICVSFile file) {
- this.file = file;
- }
-
- /**
- * Initial implementation: return null;
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) {
- return new Object[0];
- }
- /**
- * Initial implementation: return null.
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return PlatformUI.getWorkbench().getEditorRegistry().getImageDescriptor(file.getName());
- }
- /**
- * Initial implementation: return the file's name and version
- */
- public String getLabel(Object o) {
- try {
- ResourceSyncInfo info = file.getSyncInfo();
- if(info!=null) {
- return file.getName() + " " + info.getRevision(); //$NON-NLS-1$
- } else {
- return file.getName();
- }
- } catch (TeamException e) {
- handle(e);
- return null;
- }
- }
- /**
- * @see IWorkbenchAdapter#getParent(Object)
- */
- public Object getParent(Object o) {
- return null;
- }
-
- public ICVSFile getCVSFile() {
- return file;
- }
- /**
- * @see CVSResourceElement#getCVSResource()
- */
- public ICVSResource getCVSResource() {
- return file;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSFolderElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSFolderElement.java
deleted file mode 100644
index cd530db47..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSFolderElement.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.internal.ccvs.ui.model;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-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.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-public class CVSFolderElement extends CVSResourceElement {
-
- private ICVSFolder folder;
- private boolean includeUnmanaged;
-
- public CVSFolderElement(ICVSFolder folder, boolean includeUnmanaged) {
- this.folder = folder;
- this.includeUnmanaged = includeUnmanaged;
- }
-
- /**
- * Returns CVSResourceElement instances
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) throws TeamException {
- ICVSResource[] children = folder.fetchChildren(monitor);
- CVSResourceElement[] elements = new CVSResourceElement[children.length];
- for (int i = 0; i < children.length; i++) {
- ICVSResource resource = children[i];
- if(resource.isFolder()) {
- elements[i] = new CVSFolderElement((ICVSFolder)resource, includeUnmanaged);
- } else {
- elements[i] = new CVSFileElement((ICVSFile)resource);
- }
- }
- return elements;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.model.CVSModelElement#isRemoteElement()
- */
- public boolean isRemoteElement() {
- return true;
- }
-
- /**
- * Overridden to append the version name to remote folders which
- * have version tags and are top-level folders.
- */
- public String getLabel(Object o) {
- return folder.getName();
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER);
- }
-
- /**
- * @see IWorkbenchAdapter#getParent(Object)
- */
- public Object getParent(Object o) {
- return new CVSFolderElement(folder.getParent(), includeUnmanaged);
- }
-
- /**
- * @see CVSResourceElement#getCVSResource()
- */
- public ICVSResource getCVSResource() {
- return folder ;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSModelElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSModelElement.java
deleted file mode 100644
index 5fb8cfb18..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSModelElement.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.model;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-
-public abstract class CVSModelElement implements IWorkbenchAdapter, IAdaptable {
-
- private IRunnableContext runnableContext;
- private IWorkingSet workingSet;
-
- public IWorkingSet getWorkingSet() {
- return workingSet;
- }
-
- public void setWorkingSet(IWorkingSet workingSet) {
- this.workingSet = workingSet;
- }
-
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class)
- return this;
- if ((adapter == IDeferredWorkbenchAdapter.class) && this instanceof IDeferredWorkbenchAdapter)
- return this;
- return null;
- }
-
- /**
- * Returns the runnableContext.
- * @return IRunnableContext
- */
- public IRunnableContext getRunnableContext() {
- if (runnableContext == null) {
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- }
- return runnableContext;
- }
-
- /**
- * Sets the runnableContext.
- * @param runnableContext The runnableContext to set
- */
- public void setRunnableContext(IRunnableContext runnableContext) {
- this.runnableContext = runnableContext;
- }
-
- public Object[] getChildren(Object o) {
- return getChildren(o, true);
- }
-
- /**
- * Gets the children of the receiver by invoking the <code>internalGetChildren</code>.
- * A appropriate progress indicator will be used if requested.
- */
- protected Object[] getChildren(final Object o, boolean needsProgress) {
- try {
- if (needsProgress) {
- final Object[][] result = new Object[1][];
- IRunnableWithProgress runnable = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- result[0] = CVSModelElement.this.fetchChildren(o, monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- };
- getRunnableContext().run(true /*fork*/, true /*cancelable*/, runnable);
- return result[0];
- } else {
- return fetchChildren(o, null);
- }
- } catch (InterruptedException e) {
- } catch (InvocationTargetException e) {
- handle(e);
- } catch (TeamException e) {
- handle(e);
- }
- return new Object[0];
- }
-
- abstract protected Object[] fetchChildren(Object o, IProgressMonitor monitor) throws TeamException;
-
- /**
- * Handles exceptions that occur in CVS model elements.
- */
- protected void handle(Throwable t) {
- CVSUIPlugin.openError(null, null, null, t, CVSUIPlugin.LOG_NONTEAM_EXCEPTIONS);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRemoteFilePropertySource.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRemoteFilePropertySource.java
deleted file mode 100644
index 4067cea15..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRemoteFilePropertySource.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-public class CVSRemoteFilePropertySource implements IPropertySource {
- ICVSRemoteFile file;
- ILogEntry entry;
- boolean initialized;
-
- // Property Descriptors
- static protected IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[5];
- {
- PropertyDescriptor descriptor;
- String category = Policy.bind("cvs"); //$NON-NLS-1$
-
- // resource name
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_NAME, Policy.bind("CVSRemoteFilePropertySource.name")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[0] = descriptor;
- // revision
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_REVISION, Policy.bind("CVSRemoteFilePropertySource.revision")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[1] = descriptor;
- // date
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_DATE, Policy.bind("CVSRemoteFilePropertySource.date")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[2] = descriptor;
- // author
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_AUTHOR, Policy.bind("CVSRemoteFilePropertySource.author")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[3] = descriptor;
- // comment
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_COMMENT, Policy.bind("CVSRemoteFilePropertySource.comment")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[4] = descriptor;
- }
-
- /**
- * Create a PropertySource and store its file
- */
- public CVSRemoteFilePropertySource(ICVSRemoteFile file) {
- this.file = file;
- }
-
- /**
- * Do nothing because properties are read only.
- */
- public Object getEditableValue() {
- return this;
- }
-
- /**
- * Return the Property Descriptors for the receiver.
- */
- public IPropertyDescriptor[] getPropertyDescriptors() {
- return propertyDescriptors;
- }
-
- /*
- * @see IPropertySource#getPropertyValue(Object)
- */
- public Object getPropertyValue(Object id) {
- if (!initialized) {
- initialize();
- initialized = true;
- }
- if (id.equals(ICVSUIConstants.PROP_NAME)) {
- return file.getName();
- }
- if (entry != null) {
- if (id.equals(ICVSUIConstants.PROP_REVISION)) {
- return entry.getRevision();
- }
- if (id.equals(ICVSUIConstants.PROP_DATE)) {
- return entry.getDate();
- }
- if (id.equals(ICVSUIConstants.PROP_AUTHOR)) {
- return entry.getAuthor();
- }
- if (id.equals(ICVSUIConstants.PROP_COMMENT)) {
- return entry.getComment();
- }
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Answer true if the value of the specified property
- * for this object has been changed from the default.
- */
- public boolean isPropertySet(Object property) {
- return false;
- }
- /**
- * Reset the specified property's value to its default value.
- * Do nothing because properties are read only.
- *
- * @param property The property to reset.
- */
- public void resetPropertyValue(Object property) {
- }
- /**
- * Do nothing because properties are read only.
- */
- public void setPropertyValue(Object name, Object value) {
- }
-
- private void initialize() {
- try {
- CVSUIPlugin.runWithProgress(null, true /*cancelable*/, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- ILogEntry[] entries = file.getLogEntries(monitor);
- String revision = file.getRevision();
- for (int i = 0; i < entries.length; i++) {
- if (entries[i].getRevision().equals(revision)) {
- entry = entries[i];
- return;
- }
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InterruptedException e) { // ignore cancellation
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(null, null, null, e);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRemoteFolderPropertySource.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRemoteFolderPropertySource.java
deleted file mode 100644
index 618d69ec3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRemoteFolderPropertySource.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-public class CVSRemoteFolderPropertySource implements IPropertySource {
- ICVSRemoteFolder folder;
-
- // Property Descriptors
- static protected IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[2];
- {
- PropertyDescriptor descriptor;
- String category = Policy.bind("cvs"); //$NON-NLS-1$
-
- // resource name
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_NAME, Policy.bind("CVSRemoteFolderPropertySource.name")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[0] = descriptor;
- // tag
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_TAG, Policy.bind("CVSRemoteFolderPropertySource.tag")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[1] = descriptor;
- }
-
- /**
- * Create a PropertySource and store its file
- */
- public CVSRemoteFolderPropertySource(ICVSRemoteFolder folder) {
- this.folder = folder;
- }
-
- /**
- * Do nothing because properties are read only.
- */
- public Object getEditableValue() {
- return this;
- }
-
- /**
- * Return the Property Descriptors for the receiver.
- */
- public IPropertyDescriptor[] getPropertyDescriptors() {
- return propertyDescriptors;
- }
-
- /*
- * @see IPropertySource#getPropertyValue(Object)
- */
- public Object getPropertyValue(Object id) {
- if (id.equals(ICVSUIConstants.PROP_NAME)) {
- return folder.getName();
- }
- if (id.equals(ICVSUIConstants.PROP_TAG)) {
- CVSTag tag = folder.getTag();
- if (tag == null) {
- return Policy.bind("CVSRemoteFolderPropertySource.none"); //$NON-NLS-1$
- }
- return tag.getName();
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Answer true if the value of the specified property
- * for this object has been changed from the default.
- */
- public boolean isPropertySet(Object property) {
- return false;
- }
- /**
- * Reset the specified property's value to its default value.
- * Do nothing because properties are read only.
- *
- * @param property The property to reset.
- */
- public void resetPropertyValue(Object property) {
- }
- /**
- * Do nothing because properties are read only.
- */
- public void setPropertyValue(Object name, Object value) {
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRepositoryLocationPropertySource.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRepositoryLocationPropertySource.java
deleted file mode 100644
index e4c45de8a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRepositoryLocationPropertySource.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.model;
-
-
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-public class CVSRepositoryLocationPropertySource implements IPropertySource {
- ICVSRepositoryLocation location;
-
- // Property Descriptors
- static protected IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[5];
- {
- PropertyDescriptor descriptor;
- String category = Policy.bind("cvs"); //$NON-NLS-1$
-
- // host
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_HOST, Policy.bind("CVSRepositoryLocationPropertySource.host")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[0] = descriptor;
- // user
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_USER, Policy.bind("CVSRepositoryLocationPropertySource.user")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[1] = descriptor;
- // port
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_PORT, Policy.bind("CVSRepositoryLocationPropertySource.port")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[2] = descriptor;
- // root
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_ROOT, Policy.bind("CVSRepositoryLocationPropertySource.root")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[3] = descriptor;
- // method
- descriptor = new PropertyDescriptor(ICVSUIConstants.PROP_METHOD, Policy.bind("CVSRepositoryLocationPropertySource.method")); //$NON-NLS-1$
- descriptor.setAlwaysIncompatible(true);
- descriptor.setCategory(category);
- propertyDescriptors[4] = descriptor;
- }
-
- /**
- * Create a PropertySource and store its file
- */
- public CVSRepositoryLocationPropertySource(ICVSRepositoryLocation location) {
- this.location = location;
- }
-
- /**
- * Do nothing because properties are read only.
- */
- public Object getEditableValue() {
- return this;
- }
-
- /**
- * Return the Property Descriptors for the receiver.
- */
- public IPropertyDescriptor[] getPropertyDescriptors() {
- return propertyDescriptors;
- }
-
- /*
- * @see IPropertySource#getPropertyValue(Object)
- */
- public Object getPropertyValue(Object id) {
- if (id.equals(ICVSUIConstants.PROP_HOST)) {
- return location.getHost();
- }
- if (id.equals(ICVSUIConstants.PROP_USER)) {
- return location.getUsername();
- }
- if (id.equals(ICVSUIConstants.PROP_METHOD)) {
- return location.getMethod().getName();
- }
- if (id.equals(ICVSUIConstants.PROP_ROOT)) {
- return location.getRootDirectory();
- }
- if (id.equals(ICVSUIConstants.PROP_PORT)) {
- int port = location.getPort();
- if (port == ICVSRepositoryLocation.USE_DEFAULT_PORT) {
- return Policy.bind("CVSRepositoryLocationPropertySource.default"); //$NON-NLS-1$
- }
- return "" + port; //$NON-NLS-1$
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Answer true if the value of the specified property
- * for this object has been changed from the default.
- */
- public boolean isPropertySet(Object property) {
- return false;
- }
- /**
- * Reset the specified property's value to its default value.
- * Do nothing because properties are read only.
- *
- * @param property The property to reset.
- */
- public void resetPropertyValue(Object property) {
- }
- /**
- * Do nothing because properties are read only.
- */
- public void setPropertyValue(Object name, Object value) {
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRepositoryRootElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRepositoryRootElement.java
deleted file mode 100644
index 79b839fc4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRepositoryRootElement.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryRoot;
-
-/**
- * RemoteRootElement is the model element for a repository that
- * appears in the repositories view. Its children are:
- * a) HEAD
- * b) Branch tags category
- * c) Version tags category
- */
-public class CVSRepositoryRootElement extends CVSModelElement {
- public ImageDescriptor getImageDescriptor(Object object) {
- if (object instanceof ICVSRepositoryLocation || object instanceof RepositoryRoot) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_REPOSITORY);
- }
- return null;
- }
- public String getLabel(Object o) {
- if (o instanceof ICVSRepositoryLocation) {
- ICVSRepositoryLocation root = (ICVSRepositoryLocation)o;
- o = CVSUIPlugin.getPlugin().getRepositoryManager().getRepositoryRootFor(root);
- if (o == null) {
- return root.getLocation();
- }
- }
- if (o instanceof RepositoryRoot) {
- RepositoryRoot root = (RepositoryRoot)o;
- String name = root.getName();
- if (name == null)
- return root.getRoot().getLocation();
- else
- return name;
- }
- return null;
- }
- public Object getParent(Object o) {
- return null;
- }
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) {
- ICVSRepositoryLocation location = null;
- if (o instanceof ICVSRepositoryLocation) {
- location = (ICVSRepositoryLocation)o;
- }
- if (o instanceof RepositoryRoot) {
- RepositoryRoot root = (RepositoryRoot)o;
- location = root.getRoot();
- }
- if (location == null) return null;
- return new Object[] {
- new CVSTagElement(CVSTag.DEFAULT, location),
- new BranchCategory(location),
- new VersionCategory(location)
- };
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSResourceElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSResourceElement.java
deleted file mode 100644
index 6bf857197..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSResourceElement.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.internal.ccvs.ui.model;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-public abstract class CVSResourceElement extends CVSModelElement implements IAdaptable {
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
- /**
- * Initial implementation: return the resource's name
- */
- public String getLabel(Object o) {
- if (!(o instanceof ICVSResource)) return null;
- return ((ICVSResource)o).getName();
- }
- /**
- * Return null.
- */
- public Object getParent(Object o) {
- if (!(o instanceof ICVSResource)) return null;
- return null;
- }
-
- abstract public ICVSResource getCVSResource();
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRootFolderElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRootFolderElement.java
deleted file mode 100644
index 285823da8..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSRootFolderElement.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.internal.ccvs.ui.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-public class CVSRootFolderElement extends CVSResourceElement {
-
- ICVSFolder[] roots;
-
- public CVSRootFolderElement(ICVSFolder[] roots) {
- this.roots = roots;
- }
-
- /**
- * @see IWorkbenchAdapter#getChildren(Object)
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) {
- CVSFolderElement[] folders = new CVSFolderElement[roots.length];
- for (int i = 0; i < roots.length; i++) {
- folders[i] = new CVSFolderElement(roots[i], false);
- }
- return folders;
- }
-
- /**
- * @see IWorkbenchAdapter#getImageDescriptor(Object)
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return null;
- }
-
- /**
- * @see CVSResourceElement#getCVSResource()
- */
- public ICVSResource getCVSResource() {
- return null;
- }
- /**
- * Returns the roots.
- * @return ICVSFolder[]
- */
- public ICVSFolder[] getRoots() {
- return roots;
- }
-
- /**
- * Sets the roots.
- * @param roots The roots to set
- */
- public void setRoots(ICVSFolder[] roots) {
- this.roots = roots;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java
deleted file mode 100644
index 61cfffadf..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.FetchMembersOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.FetchMembersOperation.RemoteFolderFilter;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-
-public class CVSTagElement extends CVSModelElement implements IDeferredWorkbenchAdapter {
- CVSTag tag;
- ICVSRepositoryLocation root;
-
- public CVSTagElement(CVSTag tag, ICVSRepositoryLocation root) {
- this.tag = tag;
- this.root = root;
- }
-
- public ICVSRepositoryLocation getRoot() {
- return root;
- }
-
- public CVSTag getTag() {
- return tag;
- }
-
- public boolean equals(Object o) {
- if (!(o instanceof CVSTagElement))
- return false;
- CVSTagElement t = (CVSTagElement) o;
- if (!tag.equals(t.tag))
- return false;
- return root.equals(t.root);
- }
-
- public int hashCode() {
- return root.hashCode() ^ tag.hashCode();
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- if (!(object instanceof CVSTagElement))
- return null;
- if (tag.getType() == CVSTag.BRANCH || tag.getType() == CVSTag.HEAD) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(
- ICVSUIConstants.IMG_TAG);
- } else if (tag.getType() == CVSTag.VERSION) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(
- ICVSUIConstants.IMG_PROJECT_VERSION);
- } else {
- // This could be a Date tag
- return null;
- }
- }
- public String getLabel(Object o) {
- if (!(o instanceof CVSTagElement))
- return null;
- return ((CVSTagElement) o).tag.getName();
- }
-
- public String toString() {
- return tag.getName();
- }
-
- public Object getParent(Object o) {
- if (!(o instanceof CVSTagElement))
- return null;
- return ((CVSTagElement) o).root;
- }
-
- protected Object[] fetchChildren(Object o, IProgressMonitor monitor) throws TeamException {
- ICVSRemoteResource[] children = CVSUIPlugin.getPlugin().getRepositoryManager().getFoldersForTag(root, tag, monitor);
- if (getWorkingSet() != null)
- children = CVSUIPlugin.getPlugin().getRepositoryManager().filterResources(getWorkingSet(), children);
- return children;
- }
-
- public void fetchDeferredChildren(Object o, IElementCollector collector, IProgressMonitor monitor) {
- if (tag.getType() == CVSTag.HEAD) {
- try {
- monitor = Policy.monitorFor(monitor);
- RemoteFolder folder = new RemoteFolder(null, root, ICVSRemoteFolder.REPOSITORY_ROOT_FOLDER_NAME, tag);
- monitor.beginTask(Policy.bind("RemoteFolderElement.fetchingRemoteChildren", root.toString()), 100); //$NON-NLS-1$
- FetchMembersOperation operation = new FetchMembersOperation(null, folder, collector);
- operation.setFilter(new RemoteFolderFilter() {
- public ICVSRemoteResource[] filter(ICVSRemoteResource[] folders) {
- return CVSUIPlugin.getPlugin().getRepositoryManager().filterResources(getWorkingSet(), folders);
- }
- });
- operation.run(Policy.subMonitorFor(monitor, 100));
- } catch (InvocationTargetException e) {
- CVSUIPlugin.log(CVSException.wrapException(e));
- } catch (InterruptedException e) {
- // Cancelled by the user;
- } finally {
- monitor.done();
- }
- } else {
- try {
- collector.add(fetchChildren(o, monitor), monitor);
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- }
- }
- }
-
- public ISchedulingRule getRule(Object element) {
- return new RepositoryLocationSchedulingRule(root); //$NON-NLS-1$
- }
-
- public boolean isContainer() {
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/GroupedByVersionCategory.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/GroupedByVersionCategory.java
deleted file mode 100644
index b44805524..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/GroupedByVersionCategory.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.model;
-
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-public class GroupedByVersionCategory extends CVSModelElement implements IAdaptable {
- private ICVSRepositoryLocation repository;
-
- /**
- * ProjectVersionsCategory constructor.
- */
- public GroupedByVersionCategory(ICVSRepositoryLocation repo) {
- super();
- this.repository = repo;
- }
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found.
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
-
- /**
- * Returns the children of this object. When this object
- * is displayed in a tree, the returned objects will be this
- * element's children. Returns an empty enumeration if this
- * object has no children.
- *
- * XXX This method looks wrong to me somehow
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) {
- //String -> CTags[]
- Map mappings = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownProjectsAndVersions(repository);
- Map remoteVersionModules = new HashMap();
- for (Iterator it = mappings.keySet().iterator(); it.hasNext();) {
- String project = (String) it.next();
- CVSTag[] versions = (CVSTag[])((HashSet)mappings.get(project)).toArray(new CVSTag[0]);
- for (int i = 0; i < versions.length; i++) {
- CVSTag tag = versions[i];
- RemoteVersionModule module = (RemoteVersionModule)remoteVersionModules.get(tag);
- if(module==null) {
- module = new RemoteVersionModule(tag, this);
- remoteVersionModules.put(tag, module);
- }
- module.addProject(new RemoteFolder(null, repository, project, tag));
- }
- }
- return (RemoteVersionModule[])remoteVersionModules.values().toArray(new RemoteVersionModule[0]);
- }
-
- /**
- * Returns an image descriptor to be used for displaying an object in the workbench.
- * Returns null if there is no appropriate image.
- *
- * @param object The object to get an image descriptor for.
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_VERSIONS_CATEGORY);
- }
-
- /**
- * Returns the name of this element. This will typically
- * be used to assign a label to this object when displayed
- * in the UI. Returns an empty string if there is no appropriate
- * name for this object.
- *
- * @param object The object to get a label for.
- */
- public String getLabel(Object o) {
- return Policy.bind("GroupedByVersionCategory.Versions_1"); //$NON-NLS-1$
- }
-
- /**
- * Returns the logical parent of the given object in its tree.
- * Returns null if there is no parent, or if this object doesn't
- * belong to a tree.
- *
- * @param object The object to get the parent for.
- */
- public Object getParent(Object o) {
- return repository;
- }
-
- /**
- * Return the repository the given element belongs to.
- */
- public ICVSRepositoryLocation getRepository(Object o) {
- return repository;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/ModulesCategory.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/ModulesCategory.java
deleted file mode 100644
index b50274e0b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/ModulesCategory.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.internal.ccvs.ui.model;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * ModulesCategory is the model element for the mdoules category
- * for a particular repository. Its children are the array of all
- * modules defined in the CVSROOT/Modules file
- */
-public class ModulesCategory extends CVSModelElement implements IAdaptable {
- private ICVSRepositoryLocation repository;
-
- public ModulesCategory(ICVSRepositoryLocation repository) {
- super();
- this.repository = repository;
- }
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found.
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
-
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) throws TeamException {
- return repository.members(CVSTag.DEFAULT, true /* module definitions */, monitor);
- }
-
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_PROJECT_VERSION);
- }
-
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
- */
- public String getLabel(Object o) {
- return Policy.bind("ModulesCategory.label"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
- */
- public Object getParent(Object o) {
- return repository;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.model.CVSModelElement#isRemoteElement()
- */
- public boolean isRemoteElement() {
- return true;
- }
-
- /**
- * Returns the repository.
- * @return ICVSRepositoryLocation
- */
- public ICVSRepositoryLocation getRepository() {
- return repository;
- }
-
- public String toString() {
- return getRepository().toString() + " (modules)"; //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java
deleted file mode 100644
index ed617d0b7..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteResource;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryRoot;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.progress.DeferredTreeContentManager;
-
-/**
- * Extension to the generic workbench content provider mechanism
- * to lazily determine whether an element has children. That is,
- * children for an element aren't fetched until the user clicks
- * on the tree expansion box.
- */
-public class RemoteContentProvider extends WorkbenchContentProvider {
-
- IWorkingSet workingSet;
- DeferredTreeContentManager manager;
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- if (viewer instanceof AbstractTreeViewer) {
- manager = new DeferredTreeContentManager(this, (AbstractTreeViewer) viewer);
- }
- super.inputChanged(viewer, oldInput, newInput);
- }
-
- public boolean hasChildren(Object element) {
- // the + box will always appear, but then disappear
- // if not needed after you first click on it.
- if (element instanceof ICVSRemoteResource) {
- if (element instanceof ICVSRemoteFolder) {
- return ((ICVSRemoteFolder) element).isExpandable();
- }
- return ((ICVSRemoteResource) element).isContainer();
- } else if (element instanceof CVSResourceElement) {
- ICVSResource r = ((CVSResourceElement) element).getCVSResource();
- if (r instanceof RemoteResource) {
- return r.isFolder();
- }
- } else if (element instanceof VersionCategory) {
- return true;
- } else if (element instanceof BranchCategory) {
- return true;
- } else if (element instanceof ModulesCategory) {
- return true;
- } else if (element instanceof CVSTagElement) {
- return true;
- } else if (element instanceof RemoteModule) {
- return true;
- }
- if (manager != null) {
- if (manager.isDeferredAdapter(element))
- return manager.mayHaveChildren(element);
- }
-
- return super.hasChildren(element);
- }
-
- /**
- * Sets the workingSet.
- * @param workingSet The workingSet to set
- */
- public void setWorkingSet(IWorkingSet workingSet) {
- this.workingSet = workingSet;
- }
-
- /**
- * Returns the workingSet.
- * @return IWorkingSet
- */
- public IWorkingSet getWorkingSet() {
- return workingSet;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.model.WorkbenchContentProvider#getChildren(java.lang.Object)
- */
- public Object[] getChildren(Object element) {
- if (manager != null) {
- Object[] children = manager.getChildren(element);
- if (children != null) {
- // This will be a placeholder to indicate
- // that the real children are being fetched
- return children;
- }
- }
- Object[] children = super.getChildren(element);
- for (int i = 0; i < children.length; i++) {
- Object object = children[i];
- if (object instanceof CVSModelElement)
- ((CVSModelElement)object).setWorkingSet(getWorkingSet());
- }
- return children;
- }
-
- public void cancelJobs(RepositoryRoot[] roots) {
- if (manager != null) {
- for (int i = 0; i < roots.length; i++) {
- RepositoryRoot root = roots[i];
- cancelJobs(root.getRoot());
- }
- }
- }
-
- /**
- * Cancel any jobs that are fetching content from the given location.
- * @param location
- */
- public void cancelJobs(ICVSRepositoryLocation location) {
- if (manager != null) {
- manager.cancel(location);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFileElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFileElement.java
deleted file mode 100644
index 1d77094f5..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFileElement.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.model;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.PlatformUI;
-
-public class RemoteFileElement extends RemoteResourceElement {
- /**
- * Initial implementation: return null;
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) {
- return new Object[0];
- }
- /**
- * Initial implementation: return null.
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- if (!(object instanceof ICVSRemoteFile)) return null;
- return PlatformUI.getWorkbench().getEditorRegistry().getImageDescriptor(((ICVSRemoteFile)object).getName());
- }
- /**
- * Initial implementation: return the file's name and version
- */
- public String getLabel(Object o) {
- if (!(o instanceof ICVSRemoteFile)) return null;
- ICVSRemoteFile file = (ICVSRemoteFile)o;
- try {
- return Policy.bind("nameAndRevision", file.getName(), file.getRevision()); //$NON-NLS-1$
- } catch (TeamException e) {
- handle(e);
- return null;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java
deleted file mode 100644
index 18f5520d0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.team.internal.ccvs.ui.model;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.FetchMembersOperation;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-
-public class RemoteFolderElement extends RemoteResourceElement implements IDeferredWorkbenchAdapter {
-
- /**
- * Overridden to append the version name to remote folders which
- * have version tags and are top-level folders.
- */
- public String getLabel(Object o) {
- if (!(o instanceof ICVSRemoteFolder))
- return null;
- ICVSRemoteFolder folder = (ICVSRemoteFolder) o;
- CVSTag tag = folder.getTag();
- if (tag != null && tag.getType() != CVSTag.HEAD) {
- if (folder.getRemoteParent() == null) {
- return Policy.bind("RemoteFolderElement.nameAndTag", folder.getName(), tag.getName()); //$NON-NLS-1$
- }
- }
- return folder.getName();
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- if (!(object instanceof ICVSRemoteFolder))
- return null;
- ICVSRemoteFolder folder = (ICVSRemoteFolder) object;
- if (folder.isDefinedModule()) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_MODULE);
- }
- return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER);
- }
-
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) throws TeamException {
- if (!(o instanceof ICVSRemoteFolder))
- return new Object[0];
- return ((ICVSRemoteFolder) o).members(monitor);
- }
-
- public void fetchDeferredChildren(Object o, IElementCollector collector, IProgressMonitor monitor) {
- // If it's not a folder, return an empty array
- if (!(o instanceof ICVSRemoteFolder)) {
- collector.add(new Object[0], monitor);
- }
- try {
- monitor = Policy.monitorFor(monitor);
- monitor.beginTask(Policy.bind("RemoteFolderElement.fetchingRemoteChildren", getLabel(o)), 100); //$NON-NLS-1$
- FetchMembersOperation operation = new FetchMembersOperation(null, (ICVSRemoteFolder)o, collector);
- operation.run(Policy.subMonitorFor(monitor, 100));
- } catch (InvocationTargetException e) {
- CVSUIPlugin.log(CVSException.wrapException(e));
- } catch (InterruptedException e) {
- // Cancelled by the user;
- } finally {
- monitor.done();
- }
- }
-
- public ISchedulingRule getRule(Object element) {
- ICVSRepositoryLocation location = getRepositoryLocation(element);
- return new RepositoryLocationSchedulingRule(location); //$NON-NLS-1$
- }
-
- private ICVSRepositoryLocation getRepositoryLocation(Object o) {
- if (!(o instanceof ICVSRemoteFolder))
- return null;
- return ((ICVSRemoteFolder)o).getRepository();
- }
-
- public boolean isContainer() {
- return true;
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java
deleted file mode 100644
index db9a1e698..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-
-/**
- * This class represents an IProject resource in a repository. The
- * children of a RemoteModule are its versions. A RemoteModule is
- * a child of the VersionsCategory.
- */
-public class RemoteModule
- extends CVSModelElement
- implements IAdaptable, IDeferredWorkbenchAdapter {
- ICVSRemoteFolder folder;
- VersionCategory parent;
-
- /**
- * RemoteProject constructor.
- */
- public RemoteModule(ICVSRemoteFolder folder, VersionCategory parent) {
- this.folder = folder;
- this.parent = parent;
- }
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found.
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class)
- return this;
- if (adapter == IDeferredWorkbenchAdapter.class)
- return this;
- return null;
- }
-
- /**
- * Returns an image to be used for displaying an object in the desktop.
- * @param object The object to get an image for.
- * @param owner The viewer that the image will be used in. The image will
- * be disposed when this viewer is closed. If the owner is null, a new
- * image is returned, and the caller is responsible for disposing it.
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(
- ICVSUIConstants.IMG_PROJECT_VERSION);
- }
-
- /**
- * Returns the name of this element. This will typically
- * be used to assign a label to this object when displayed
- * in the UI.
- */
- public String getLabel(Object o) {
- return folder.getName();
- }
-
- /**
- * Returns the logical parent of the given object in its tree.
- */
- public Object getParent(Object o) {
- return parent;
- }
-
- /**
- * Return the repository the given element belongs to.
- */
- public ICVSRepositoryLocation getRepository(Object o) {
- return folder.getRepository();
- }
-
- /** (Non-javadoc)
- * For debugging purposes only.
- */
- public String toString() {
- return "RemoteModule(" + folder.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public ICVSRemoteResource getCVSResource() {
- return folder;
- }
-
- /**
- * Returns the children of this object. When this object
- * is displayed in a tree, the returned objects will be this
- * element's children. Returns an empty enumeration if this
- * object has no children. The children of the RemoteModule
- * are the versions for that module.
- *
- * @see org.eclipse.team.internal.ccvs.ui.model.CVSModelElement#internalGetChildren(java.lang.Object, org.eclipse.core.runtime.IProgressMonitor)
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor)
- throws TeamException {
- RepositoryManager manager =
- CVSUIPlugin.getPlugin().getRepositoryManager();
- try {
- manager.refreshDefinedTags(folder, false /* replace */
- , false, monitor);
- } catch (TeamException e) {
- // continue
- }
- CVSTag[] tags =
- CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(
- folder,
- CVSTag.VERSION);
- Object[] versions = new Object[tags.length];
- for (int i = 0; i < versions.length; i++) {
- versions[i] = folder.forTag(tags[i]);
- }
- return versions;
- }
-
- public void fetchDeferredChildren(
- Object o,
- IElementCollector collector,
- IProgressMonitor monitor) {
- try {
- collector.add(fetchChildren(o, monitor), monitor);
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- public boolean isContainer() {
- return true;
- }
-
- public ISchedulingRule getRule(Object element) {
- return new RepositoryLocationSchedulingRule(folder.getRepository()); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteProjectsElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteProjectsElement.java
deleted file mode 100644
index 3f75d89c0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteProjectsElement.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.internal.ccvs.ui.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-
-/**
- * This model element provides the remote projects for a given repository and
- * tag.
- */
-public class RemoteProjectsElement extends CVSTagElement {
-
- /**
- * Constructor for RemoteProjectsElement.
- */
- public RemoteProjectsElement() {
- super(CVSTag.DEFAULT, null);
- }
-
- /**
- * Constructor for RemoteProjectsElement.
- */
- public RemoteProjectsElement(ICVSRepositoryLocation root) {
- super(CVSTag.DEFAULT, root);
- }
-
- /**
- * Sets the root.
- * @param root The root to set
- */
- public void setRoot(ICVSRepositoryLocation root) {
- this.root = root;
- }
-
- /**
- * Sets the tag.
- * @param tag The tag to set
- */
- public void setTag(CVSTag tag) {
- this.tag = tag;
- }
- /**
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object o) {
- if (!(o instanceof RemoteProjectsElement)) return false;
- RemoteProjectsElement element = (RemoteProjectsElement)o;
- if (root == null) {
- return element.root == null && tag.equals(element.tag);
- }
- return super.equals(o);
- }
-
- /**
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
- */
- public Object getParent(Object o) {
- return null;
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- if (root == null) return tag.hashCode();
- return super.hashCode();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.model.CVSModelElement#internalGetChildren(java.lang.Object, org.eclipse.core.runtime.IProgressMonitor)
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) throws TeamException {
- if (root == null) return new Object[0];
- return super.fetchChildren(o, monitor);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteResourceElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteResourceElement.java
deleted file mode 100644
index c70214163..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteResourceElement.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.model;
-
-
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-
-public abstract class RemoteResourceElement extends CVSModelElement {
- /**
- * Initial implementation: return the resource's name
- */
- public String getLabel(Object o) {
- if (!(o instanceof ICVSRemoteResource)) return null;
- return ((ICVSRemoteResource)o).getName();
- }
- /**
- * Return null.
- */
- public Object getParent(Object o) {
- if (!(o instanceof ICVSRemoteResource)) return null;
- ICVSRemoteResource rr = (ICVSRemoteResource)o;
- return rr.getParent();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteVersionModule.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteVersionModule.java
deleted file mode 100644
index d81650861..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteVersionModule.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * This class represents an IProject resource in a repository. The
- * children of a RemoteModule are its versions. A RemoteModule is
- * a child of the VersionsCategory.
- */
-public class RemoteVersionModule extends CVSModelElement implements IAdaptable {
- CVSTag tag;
- List projects = new ArrayList();
- GroupedByVersionCategory parent;
-
- /**
- * RemoteProject constructor.
- */
- public RemoteVersionModule(CVSTag tag, GroupedByVersionCategory parent) {
- this.tag = tag;
- this.parent = parent;
- }
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found.
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
-
- public void addProject(ICVSRemoteFolder project) {
- projects.add(project);
- }
-
- /**
- * Returns the children of this object. When this object
- * is displayed in a tree, the returned objects will be this
- * element's children. Returns an empty enumeration if this
- * object has no children. The children of the RemoteModule
- * are the versions for that module.
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) {
- return (ICVSRemoteFolder[]) projects.toArray(new ICVSRemoteFolder[projects.size()]);
- }
-
- /**
- * Returns an image to be used for displaying an object in the desktop.
- * @param object The object to get an image for.
- * @param owner The viewer that the image will be used in. The image will
- * be disposed when this viewer is closed. If the owner is null, a new
- * image is returned, and the caller is responsible for disposing it.
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_PROJECT_VERSION);
- }
-
- /**
- * Returns the name of this element. This will typically
- * be used to assign a label to this object when displayed
- * in the UI.
- */
- public String getLabel(Object o) {
- return tag.getName();
- }
-
- /**
- * Returns the logical parent of the given object in its tree.
- */
- public Object getParent(Object o) {
- return parent;
- }
-
-
- /** (Non-javadoc)
- * For debugging purposes only.
- */
- public String toString() {
- return "RemoteVersionModule(" + tag.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RepositoryLocationSchedulingRule.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RepositoryLocationSchedulingRule.java
deleted file mode 100644
index 94228114f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RepositoryLocationSchedulingRule.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.internal.ccvs.ui.model;
-
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-
-/**
- * A simple job scheduling rule for serializing jobs for an ICVSRepositoryLocation
- */
-public class RepositoryLocationSchedulingRule implements ISchedulingRule {
- ICVSRepositoryLocation location;
- public RepositoryLocationSchedulingRule(ICVSRepositoryLocation location) {
- this.location = location;
- }
- public boolean isConflicting(ISchedulingRule rule) {
- if(rule instanceof RepositoryLocationSchedulingRule) {
- return ((RepositoryLocationSchedulingRule)rule).location.equals(location);
- }
- return false;
- }
- public boolean contains(ISchedulingRule rule) {
- return isConflicting(rule);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java
deleted file mode 100644
index f18977a7d..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.model;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-
-public class VersionCategory
- extends CVSModelElement
- implements IAdaptable, IDeferredWorkbenchAdapter {
- private ICVSRepositoryLocation repository;
-
- /**
- * ProjectVersionsCategory constructor.
- */
- public VersionCategory(ICVSRepositoryLocation repo) {
- super();
- this.repository = repo;
- }
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found.
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class)
- return this;
- if (adapter == IDeferredWorkbenchAdapter.class)
- return this;
- return null;
- }
-
- /**
- * Returns the children of this object. When this object
- * is displayed in a tree, the returned objects will be this
- * element's children. Returns an empty enumeration if this
- * object has no children.
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor)
- throws TeamException {
- if (CVSUIPlugin
- .getPlugin()
- .getRepositoryManager()
- .isDisplayingProjectVersions(repository)) {
- return getProjectVersionChildren(o, monitor);
- } else {
- return getVersionTagChildren(o, monitor);
- }
- }
-
- /*
- * Return the children as a list of versions whose children are projects
- */
- private Object[] getVersionTagChildren(Object o, IProgressMonitor monitor)
- throws CVSException {
- CVSTag[] tags =
- CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(
- repository,
- getWorkingSet(),
- CVSTag.VERSION,
- monitor);
- CVSTagElement[] versionElements = new CVSTagElement[tags.length];
- for (int i = 0; i < tags.length; i++) {
- versionElements[i] = new CVSTagElement(tags[i], repository);
- }
- return versionElements;
- }
-
- /*
- * Return the children as a list of projects whose children ar project versions
- */
- private Object[] getProjectVersionChildren(
- Object o,
- IProgressMonitor monitor)
- throws TeamException {
- IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- ICVSRemoteResource[] resources =
- CVSUIPlugin.getPlugin().getRepositoryManager().getFoldersForTag(
- repository,
- CVSTag.DEFAULT,
- monitor);
- if (getWorkingSet() != null)
- resources =
- CVSUIPlugin.getPlugin().getRepositoryManager().filterResources(
- getWorkingSet(),
- resources);
- Object[] modules = new Object[resources.length];
- for (int i = 0; i < resources.length; i++) {
- modules[i] =
- new RemoteModule(
- (ICVSRemoteFolder) resources[i],
- VersionCategory.this);
- }
- return modules;
- }
-
- /**
- * Returns an image descriptor to be used for displaying an object in the workbench.
- * Returns null if there is no appropriate image.
- *
- * @param object The object to get an image descriptor for.
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(
- ICVSUIConstants.IMG_VERSIONS_CATEGORY);
- }
-
- /**
- * Returns the name of this element. This will typically
- * be used to assign a label to this object when displayed
- * in the UI. Returns an empty string if there is no appropriate
- * name for this object.
- *
- * @param object The object to get a label for.
- */
- public String getLabel(Object o) {
- return Policy.bind("VersionCategory.Versions_1"); //$NON-NLS-1$
- }
-
- /**
- * Returns the logical parent of the given object in its tree.
- * Returns null if there is no parent, or if this object doesn't
- * belong to a tree.
- *
- * @param object The object to get the parent for.
- */
- public Object getParent(Object o) {
- return repository;
- }
-
- /**
- * Return the repository the given element belongs to.
- */
- public ICVSRepositoryLocation getRepository(Object o) {
- return repository;
- }
-
- public void fetchDeferredChildren(
- Object o,
- IElementCollector collector,
- IProgressMonitor monitor) {
- try {
- collector.add(fetchChildren(o, monitor), monitor);
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- public boolean isContainer() {
- return true;
- }
-
- public ISchedulingRule getRule(Object element) {
- return new RepositoryLocationSchedulingRule(repository); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSBlockingRunnableContext.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSBlockingRunnableContext.java
deleted file mode 100644
index a36b164df..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSBlockingRunnableContext.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * This CVS runnable context blocks the UI and can therfore have a shell assigned to
- * it (since the shell won't be closed by the user before the runnable completes.
- */
-public class CVSBlockingRunnableContext implements ICVSRunnableContext {
-
- private Shell shell;
- private IRunnableContext runnableContext;
-
- public CVSBlockingRunnableContext(Shell shell) {
- this.shell = shell;
- }
-
- /**
- * Run the given runnable in the context of the receiver. By default, the
- * progress is provided by the active workbench windows but subclasses may
- * override this to provide progress in some other way (Progress Monitor or
- * job).
- */
- public void run(String title, ISchedulingRule schedulingRule, boolean postponeBuild, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
- getRunnableContext().run(true /* fork */, true /* cancelable */, wrapRunnable(title, schedulingRule, postponeBuild, runnable));
- }
-
- protected IRunnableContext getRunnableContext() {
- if (runnableContext == null) {
- return new IRunnableContext() {
- public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable)
- throws InvocationTargetException, InterruptedException {
- IProgressService manager = PlatformUI.getWorkbench().getProgressService();
- manager.busyCursorWhile(runnable);
- }
- };
- }
- return runnableContext;
- }
-
- /*
- * Return an IRunnableWithProgress that sets the task name for the progress monitor
- * and runs in a workspace modify operation if requested.
- */
- private IRunnableWithProgress wrapRunnable(final String title, final ISchedulingRule schedulingRule, final boolean postponeBuild, final IRunnableWithProgress runnable) {
- return new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- monitor.beginTask(title, 100);
- try {
- if (schedulingRule == null && !postponeBuild) {
- runnable.run(Policy.subMonitorFor(monitor, 100));
- } else {
- final Exception[] exception = new Exception[] { null };
- ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
- public void run(IProgressMonitor pm) throws CoreException {
- try {
- runnable.run(pm);
- } catch (InvocationTargetException e) {
- exception[0] = e;
- } catch (InterruptedException e) {
- exception[0] = e;
- }
- }
- }, schedulingRule, 0 /* allow updates */, Policy.subMonitorFor(monitor, 100));
- if (exception[0] != null) {
- if (exception[0] instanceof InvocationTargetException) {
- throw (InvocationTargetException)exception[0];
- } else if (exception[0] instanceof InterruptedException) {
- throw (InterruptedException)exception[0];
- }
- }
- }
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- };
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSRunnableContext#getShell()
- */
- public Shell getShell() {
- return shell;
- }
-
- /**
- * Set the shell to be used by the owner of this context to prompt the user.
- * @param shell
- */
- public void setShell(Shell shell) {
- this.shell = shell;
- }
-
- /**
- * @param runnableContext
- */
- public void setRunnableContext(IRunnableContext runnableContext) {
- this.runnableContext = runnableContext;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSNonblockingRunnableContext.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSNonblockingRunnableContext.java
deleted file mode 100644
index dc8ee0e79..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSNonblockingRunnableContext.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This runnable context executes it's operation in the context of a background job.
- */
-public class CVSNonblockingRunnableContext implements ICVSRunnableContext {
-
- private IJobChangeListener listener;
-
- public CVSNonblockingRunnableContext() {
- this(null);
- }
-
- public CVSNonblockingRunnableContext(IJobChangeListener listener) {
- this.listener = listener;
- }
-
- protected IStatus run(IRunnableWithProgress runnable, IProgressMonitor monitor) {
- try {
- runnable.run(monitor);
- } catch (InvocationTargetException e) {
- return CVSException.wrapException(e).getStatus();
- } catch (InterruptedException e) {
- return Status.OK_STATUS;
- }
- return Status.OK_STATUS;
- }
-
- protected Job getBasicJob(String title, final IRunnableWithProgress runnable) {
- return new Job(title) {
- public IStatus run(IProgressMonitor monitor) {
- return CVSNonblockingRunnableContext.this.run(runnable, monitor);
- }
- };
- }
-
- protected Job getWorkspaceJob(String title, final IRunnableWithProgress runnable) {
- return new WorkspaceJob(title) {
- public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
- return CVSNonblockingRunnableContext.this.run(runnable, monitor);
- }
- };
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ICVSRunnableContext#run(java.lang.String, boolean, org.eclipse.jface.operation.IRunnableWithProgress)
- */
- public void run(String title, ISchedulingRule schedulingRule, boolean postponeBuild, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
- Job job;
- if (schedulingRule == null && !postponeBuild) {
- job = getBasicJob(title, runnable);
- } else {
- job = getWorkspaceJob(title, runnable);
- if (schedulingRule != null) {
- job.setRule(schedulingRule);
- }
- }
- if (listener != null) {
- job.addJobChangeListener(listener);
- }
- schedule(job);
- }
-
- protected void schedule(Job job) {
- job.schedule();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ICVSRunnableContext#getShell()
- */
- public Shell getShell() {
- final Shell[] newShell = new Shell[] { null };
- Display.getDefault().syncExec(
- new Runnable() {
- public void run() {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window == null) {
- Display display = Display.getDefault();
- newShell[0] = new Shell(display);
- } else {
- newShell[0] = window.getShell();
- }
- }
- });
- return newShell[0];
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java
deleted file mode 100644
index 476b4afab..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-
-/**
- * This class is the abstract superclass for CVS operations. It provides
- * error handling, prompting and other UI.
- */
-public abstract class CVSOperation implements IRunnableWithProgress {
-
- private int statusCount;
-
- private boolean involvesMultipleResources = false;
-
- private List errors = new ArrayList(); // of IStatus
-
- protected static final IStatus OK = Status.OK_STATUS; //$NON-NLS-1$
-
- // shell to be used if the runnabl context is a blocking context
- private Shell shell;
-
- // instance variable used to indicate behavior while prompting for overwrite
- private boolean confirmOverwrite = true;
-
- ICVSRunnableContext cvsRunnableContext;
-
- public CVSOperation(Shell shell) {
- this.shell = shell;
- }
-
- /**
- * Run the operation. Progress feedback will be provided by one of the following mechanisms
- * (in priotiry order):
- * <ol>
- * <li>the runnable context assigned to the operation
- * <li>a background job (if supported by the operation and enabled through the preferences)
- * <li>the workbench active page
- * </ol>
- * @throws CVSException
- * @throws InterruptedException
- */
- public synchronized void run() throws CVSException, InterruptedException {
- try {
- getCVSRunnableContext().run(getTaskName(), getSchedulingRule(), getPostponeBuild(), this);
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- } catch (OperationCanceledException e) {
- throw new InterruptedException();
- }
- }
-
- protected boolean areJobsEnabled() {
- return true;
- }
-
- /**
- * Returns true if the operation can be run as a background job.
- * The default is to support running as a job. Subclass should override
- * to prevent background execution of the operation.
- * @return whether operation can be run as a job
- */
- public boolean canRunAsJob() {
- return true;
- }
-
- /**
- * Return the scheduling rule that defines the scope of the whole operation.
- * This method must either return <code>null</code> (in which case, code executed
- * by the operation can attempt to obtain any scheduling rules they like but may be
- * blocked by other jobs at that point) or a rule (e.g. IResource) that encompasses
- * all scheduling rules used by code nested in the operation (in which case the
- * operation wil not start until the encompassing rule is free but once the
- * operation starts, nested rules will not block on any subsequent contained
- * scheduling rules). By default, <code>null</code> is returned.
- * @return
- */
- protected ISchedulingRule getSchedulingRule() {
- return null;
- }
-
- /**
- * Return whether the auto-build should be postponed whil ethe operation is running.
- * The default is to postone a build.
- * @return
- */
- protected boolean getPostponeBuild() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- public final void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- startOperation();
- try {
- execute(monitor);
- endOperation();
- } catch (CVSException e) {
- // TODO: errors may not be empty (i.e. endOperation has not been executed)
- throw new InvocationTargetException(e);
- }
- }
-
- protected void startOperation() {
- statusCount = 0;
- resetErrors();
- confirmOverwrite = true;
- }
-
- protected void endOperation() throws CVSException {
- handleErrors((IStatus[]) errors.toArray(new IStatus[errors.size()]));
- }
-
- /**
- * Subclasses must override this method to perform the operation.
- * Clients should never call this method directly.
- *
- * @param monitor
- * @throws CVSException
- * @throws InterruptedException
- */
- protected abstract void execute(IProgressMonitor monitor) throws CVSException, InterruptedException;
-
- /*
- * Return the ICVSRunnableContext which will be used to run the operation.
- */
- private ICVSRunnableContext getCVSRunnableContext() {
- if (cvsRunnableContext == null) {
- if (canRunAsJob() && areJobsEnabled()) {
- return new CVSNonblockingRunnableContext();
- } else {
- return new CVSBlockingRunnableContext(shell);
- }
- }
- return cvsRunnableContext;
- }
-
- /**
- * Set the CVS runnable context to be used by the operation.
- * Although this method can be used by clients, it's main
- * purpose is to support the running of headless operations
- * for testing purposes.
- * @param cvsRunnableContext
- */
- public void setCVSRunnableContext(ICVSRunnableContext cvsRunnableContext) {
- this.cvsRunnableContext = cvsRunnableContext;
- }
-
- public Shell getShell() {
- return getCVSRunnableContext().getShell();
- }
-
- protected void addError(IStatus status) {
- if (status.isOK()) return;
- if (isLastError(status)) return;
- errors.add(status);
- }
-
- protected void collectStatus(IStatus status) {
- if (isLastError(status)) return;
- statusCount++;
- if (!status.isOK()) addError(status);
- }
-
- protected void resetErrors() {
- errors.clear();
- statusCount = 0;
- }
-
- /**
- * Get the last error taht occured. This can be useful when a method
- * has a return type but wants to signal an error. The method in question
- * can add the error using <code>addError(IStatus)</code> and return null.
- * The caller can then query the error using this method. Also, <code>addError(IStatus)</code>
- * will not add the error if it is already on the end of the list (using identity comparison)
- * which allows the caller to still perform a <code>collectStatus(IStatus)</code>
- * to get a valid operation count.
- * @return
- */
- protected IStatus getLastError() {
- Assert.isTrue(errors.size() > 0);
- IStatus status = (IStatus)errors.get(errors.size() - 1);
- return status;
- }
-
- private boolean isLastError(IStatus status) {
- return (errors.size() > 0 && getLastError() == status);
- }
-
- protected void handleErrors(IStatus[] errors) throws CVSException {
- if (errors.length == 0) return;
- if (errors.length == 1 && statusCount == 1) {
- throw new CVSException(errors[0]);
- }
- MultiStatus result = new MultiStatus(CVSUIPlugin.ID, 0, getErrorMessage(errors, statusCount), null);
- for (int i = 0; i < errors.length; i++) {
- IStatus s = errors[i];
- if (s.isMultiStatus()) {
- result.add(new CVSStatus(s.getSeverity(), s.getMessage(), s.getException()));
- result.addAll(s);
- } else {
- result.add(s);
- }
- }
- throw new CVSException(result);
- }
-
- protected String getErrorMessage(IStatus[] failures, int totalOperations) {
- return Policy.bind("CVSOperation.0", String.valueOf(failures.length), String.valueOf(totalOperations)); //$NON-NLS-1$
- }
-
- /**
- * This method prompts the user to overwrite an existing resource. It uses the
- * <code>involvesMultipleResources</code> to determine what buttons to show.
- * @param project
- * @return
- */
- protected boolean promptToOverwrite(String title, String msg) {
- if (!confirmOverwrite) {
- return true;
- }
- String buttons[];
- if (involvesMultipleResources()) {
- buttons = new String[] {
- IDialogConstants.YES_LABEL,
- IDialogConstants.YES_TO_ALL_LABEL,
- IDialogConstants.NO_LABEL,
- IDialogConstants.CANCEL_LABEL};
- } else {
- buttons = new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL};
- }
- Shell displayShell = getShell();
- final MessageDialog dialog =
- new MessageDialog(displayShell, title, null, msg, MessageDialog.QUESTION, buttons, 0);
-
- // run in syncExec because callback is from an operation,
- // which is probably not running in the UI thread.
- displayShell.getDisplay().syncExec(
- new Runnable() {
- public void run() {
- dialog.open();
- }
- });
- if (involvesMultipleResources()) {
- switch (dialog.getReturnCode()) {
- case 0://Yes
- return true;
- case 1://Yes to all
- confirmOverwrite = false;
- return true;
- case 2://No
- return false;
- case 3://Cancel
- default:
- throw new OperationCanceledException();
- }
- } else {
- return dialog.getReturnCode() == 0;
- }
- }
-
- /**
- * This method is used by <code>promptToOverwrite</code> to determine which
- * buttons to show in the prompter.
- *
- * @return
- */
- protected boolean involvesMultipleResources() {
- return involvesMultipleResources;
- }
-
- public void setInvolvesMultipleResources(boolean b) {
- involvesMultipleResources = b;
- }
-
- /**
- * Return the string that is to be used as the task name for the operation
- *
- * @param remoteFolders
- * @return
- */
- protected abstract String getTaskName();
-
- /**
- * Return true if any of the accumulated status have a severity of ERROR
- * @return
- */
- protected boolean errorsOccurred() {
- for (Iterator iter = errors.iterator(); iter.hasNext();) {
- IStatus status = (IStatus) iter.next();
- if (status.getSeverity() == IStatus.ERROR) return true;
- }
- return false;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSSubscriberNonblockingContext.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSSubscriberNonblockingContext.java
deleted file mode 100644
index 11a743a25..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSSubscriberNonblockingContext.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.internal.ccvs.ui.operations;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.team.core.subscribers.JobStatusHandler;
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-
-/**
- * This context uses the JobStatusHandler from SubscriberAction to ensure
- * proper busy indication in the sync view.
- */
-public class CVSSubscriberNonblockingContext extends CVSNonblockingRunnableContext {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSNonblockingRunnableContext#schedule(org.eclipse.core.runtime.jobs.Job)
- */
- protected void schedule(Job job) {
- JobStatusHandler.schedule(job, TeamSubscriber.SUBSCRIBER_JOB_TYPE);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutIntoOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutIntoOperation.java
deleted file mode 100644
index afd87919d..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutIntoOperation.java
+++ /dev/null
@@ -1,458 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.swt.widgets.Shell;
-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.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.client.Checkout;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Request;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * This method checks out one or more remote folders from the same repository
- * into an existing project or folder in the workspace. The target project
- * must either be shared with the same repository or it must not be shared
- * with any repository
- */
-public class CheckoutIntoOperation extends CheckoutOperation {
-
- private boolean recursive;
- private ICVSFolder localFolder;
- private String localFolderName;
-
- /**
- * Constructor which takes a set of remote folders and the local folder into which the folders should be
- * loaded.
- */
- public CheckoutIntoOperation(Shell shell, ICVSRemoteFolder[] remoteFolders, IContainer localFolder, boolean recursive) {
- super(shell, remoteFolders);
- this.recursive = recursive;
- this.localFolder = CVSWorkspaceRoot.getCVSFolderFor(localFolder);
- }
-
- /**
- * Constructor which takes a single remote folder and the target local folder.
- */
- public CheckoutIntoOperation(Shell shell, ICVSRemoteFolder remoteFolder, IContainer localFolder, boolean recursive) {
- this(shell, new ICVSRemoteFolder[] { remoteFolder }, localFolder.getParent(), recursive);
- this.localFolderName = localFolder.getName();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#getTaskName()
- */
- protected String getTaskName() {
- ICVSRemoteFolder[] remoteFolders = getRemoteFolders();
- String localFolderName = ""; //$NON-NLS-1$
- try {
- localFolderName = getLocalFolder().getIResource().getFullPath().toString();
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- return Policy.bind("CheckoutIntoOperation.taskname", new Integer(remoteFolders.length).toString(), localFolderName); //$NON-NLS-1$
- }
-
- /**
- * @return
- */
- public ICVSFolder getLocalFolder() {
- return localFolder;
- }
-
- /**
- * @return
- */
- public boolean isRecursive() {
- return recursive;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#checkout(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus checkout(final ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException {
- final IStatus[] result = new IStatus[] { null };
- try {
- // Wrap in a workspace runnable to avoid auto-build.
- // This is necessary because CVS has a POST_BUILD
- // listener that will clear the sync info from
- // orphaned (i.e. unmanaged) subtrees and we will
- // purposely create some which we subsequently manage
- // from their parent (see manageFolders())
- ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- result[0] = checkout(folder, getLocalFolder(), isRecursive(), monitor);
- }
- }, getSchedulingRule(), monitor);
- } catch (CoreException e) {
- result[0] = CVSException.wrapException(e).getStatus();
- }
- return result[0];
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#checkout(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void checkout(final ICVSRemoteFolder[] folders, IProgressMonitor monitor) throws CVSException {
- // Batch sync info changes with the CVS synchronizer to optimize cache writing
- EclipseSynchronizer.getInstance().run(getSchedulingRule(), new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, 100);
- try {
- // Obtain a scheduling rule on the projects were about to overwrite
- CheckoutIntoOperation.super.checkout(folders, Policy.subMonitorFor(monitor, 90));
- refreshRoot(getLocalRoot(getLocalFolder()), Policy.subMonitorFor(monitor, 10));
- } finally {
- monitor.done();
- }
- }
- }, Policy.monitorFor(monitor));
- }
-
- /*
- * Prepare the local folders to receive the remote folders. If localFolderName is not null, then
- * if will be the only target folder of the checkout. Otherwise, the remote folder
- * could expand to multiple local folders witinb the given parent folder.
- */
- private ICVSFolder[] prepareLocalFolders(Session session, ICVSRemoteFolder remoteFolder, ICVSFolder parentFolder, String localFolderName, IProgressMonitor monitor) throws CVSException {
- Set targetFolderSet = new HashSet();
- monitor.beginTask(null, 30);
- if (localFolderName == null) {
-
- // Determine which local folders will be afected
- IStatus status = Request.EXPAND_MODULES.execute(session, new String[] { remoteFolder.getRepositoryRelativePath()}, Policy.subMonitorFor(monitor, 10));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- addError(status);
- return null;
- }
-
- // Convert the module expansions to target folders
- String[] expansions = session.getModuleExpansions();
- for (int j = 0; j < expansions.length; j++) {
- String childPath = new Path(expansions[j]).segment(0);
- ICVSResource resource = parentFolder.getChild(childPath);
- if (resource != null && !resource.isFolder()) {
- // The target folder conflicts with an existing file
- addError(new CVSStatus(IStatus.ERROR, Policy.bind("CheckoutIntoOperation.targetIsFile", remoteFolder.getName(), resource.getIResource().getFullPath().toString()))); //$NON-NLS-1$
- return null;
- }
- targetFolderSet.add(parentFolder.getFolder(childPath));
- }
-
- } else {
- targetFolderSet.add(parentFolder.getFolder(localFolderName));
- }
-
- final ICVSFolder[] targetFolders = (ICVSFolder[]) targetFolderSet.toArray(new ICVSFolder[targetFolderSet.size()]);
-
- // Ensure that the checkout will not conflict with existing resources
- IStatus status = validateTargetFolders(remoteFolder, targetFolders, Policy.subMonitorFor(monitor, 10));
- if (!status.isOK()) {
- addError(status);
- return null;
- }
-
- // Prepare the target projects to receive resources
- status = scrubFolders(remoteFolder, targetFolders, Policy.subMonitorFor(monitor, 10));
- // return the target projects if the scrub succeeded
- if (status.isOK()) {
- return targetFolders;
- } else {
- addError(status);
- return null;
- }
- }
-
- /*
- * Ensure that the new folders will not conflict with existing folders (even those that are pruned).
- */
- private IStatus validateTargetFolders(ICVSRemoteFolder remoteFolder, ICVSFolder[] targetFolders, IProgressMonitor monitor) throws CVSException {
- for (int i = 0; i < targetFolders.length; i++) {
- ICVSFolder targetFolder = targetFolders[i];
- FolderSyncInfo localInfo = targetFolder.getFolderSyncInfo();
- FolderSyncInfo remoteInfo = remoteFolder.getFolderSyncInfo();
-
- if (!remoteInfo.isSameMapping(localInfo)) {
- if (localInfo != null ) {
- if (isRemoteChildOfParent(targetFolder)) {
- // if the local folder is child of it's parent remotely (i.e. path of child is parent/child)
- // then the remote cannot be loaded.
- String message;
- if (targetFolder.exists()) {
- message = Policy.bind("CheckoutIntoOperation.targetIsFolder", remoteFolder.getName(), targetFolder.getIResource().getFullPath().toString()); //$NON-NLS-1$
- } else {
- message = Policy.bind("CheckoutIntoOperation.targetIsPrunedFolder", remoteFolder.getName(), targetFolder.getFolderSyncInfo().getRepository()); //$NON-NLS-1$
- }
- return new CVSStatus(IStatus.ERROR, message);
- }
- }
- // Verify that no other folders in the local workspace are mapped to the remote folder
- IStatus status = validateUniqueMapping(remoteFolder, targetFolder, Policy.subMonitorFor(monitor, 10));
- if (!status.isOK()) return status;
- }
- }
- return OK;
- }
-
- /*
- * Return true if the given local folder is a direct descendant of it's local parent in
- * the repository as well
- */
- private boolean isRemoteChildOfParent(ICVSFolder targetFolder) throws CVSException {
- FolderSyncInfo localInfo = targetFolder.getFolderSyncInfo();
- if (localInfo == null) return false;
- FolderSyncInfo parentInfo = targetFolder.getParent().getFolderSyncInfo();
- if (parentInfo == null) return false;
- IPath childPath = new Path(localInfo.getRepository());
- IPath parentPath = new Path(parentInfo.getRepository());
- return parentPath.isPrefixOf(childPath);
- }
-
- /**
- * @param targetFolder
- * @return
- */
- private IContainer getLocalRoot(ICVSFolder targetFolder) throws CVSException {
- return targetFolder.getIResource().getProject();
- }
-
- /*
- * Ensure that there is no equivalent mapping alreay in the local workspace
- */
- private IStatus validateUniqueMapping(final ICVSRemoteFolder remoteFolder, final ICVSFolder targetFolder, IProgressMonitor iProgressMonitor) throws CVSException {
-
- final IContainer root = getLocalRoot(targetFolder);
- final FolderSyncInfo remoteInfo = remoteFolder.getFolderSyncInfo();
- if (remoteInfo.equals(FolderSyncInfo.VIRTUAL_DIRECTORY)) {
- // We can't really check the mapping ahead of time
- // so we'll let the operation continue
- return OK;
- }
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(root);
- try {
- cvsFolder.accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- // do nothing
- }
- public void visitFolder(ICVSFolder folder) throws CVSException {
- if (!folder.isCVSFolder()) return;
- IResource resource = folder.getIResource();
- if (resource == null) return;
- FolderSyncInfo info = folder.getFolderSyncInfo();
- if (info.isSameMapping(remoteInfo)) {
- throw new CVSException(Policy.bind("CheckoutIntoOperation.mappingAlreadyExists", //$NON-NLS-1$
- new Object[] {
- remoteFolder.getName(),
- targetFolder.getIResource().getFullPath().toString(),
- resource.getFullPath().toString()
- }));
- }
- folder.acceptChildren(this);
- }
- });
- } catch (CVSException e) {
- return e.getStatus();
- }
- return OK;
- }
-
- /*
- * Purge the local contents of the given folders
- */
- private IStatus scrubFolders(ICVSRemoteFolder remoteFolder, ICVSFolder[] targetFolders, IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, 100 * targetFolders.length);
-
- // Prompt first before any work is done
- if (targetFolders.length > 1) {
- setInvolvesMultipleResources(true);
- }
- for (int i=0;i<targetFolders.length;i++) {
- ICVSFolder targetFolder = targetFolders[i];
- if (needsPromptForOverwrite(targetFolder, Policy.subMonitorFor(monitor, 50)) && !promptToOverwrite(targetFolder)) {
- return new CVSStatus(IStatus.INFO, Policy.bind("CheckoutIntoOperation.cancelled", remoteFolder.getName())); //$NON-NLS-1$
- }
- }
-
- for (int i = 0; i < targetFolders.length; i++) {
- IStatus status = scrubFolder(targetFolders[i], Policy.subMonitorFor(monitor, 50));
- if (!status.isOK()) return status;
- }
- monitor.done();
- return OK;
- }
-
- private boolean needsPromptForOverwrite(ICVSFolder targetFolder, IProgressMonitor monitor) throws CVSException {
- return targetFolder.isModified(monitor);
- }
-
- private boolean promptToOverwrite(ICVSFolder folder) {
- return promptToOverwrite(
- Policy.bind("CheckoutOperation.confirmOverwrite"), //$NON-NLS-1$
- Policy.bind("CheckoutIntoOperation.overwriteMessage", folder.getName())); //$NON-NLS-1$
- }
-
- private IStatus scrubFolder(ICVSFolder folder, IProgressMonitor monitor) throws CVSException {
- if (folder.exists() || folder.isCVSFolder()) {
- // Unmanage first so we don't get outgoing deletions
- folder.unmanage(Policy.subMonitorFor(monitor, 50));
- if (folder.exists()) folder.delete();
- }
- return OK;
- }
-
- /* private */ IStatus checkout(final ICVSRemoteFolder remoteFolder, ICVSFolder parentFolder, boolean recurse, IProgressMonitor monitor) throws CVSException {
- // Open a connection session to the repository
- monitor.beginTask(null, 100);
- ICVSRepositoryLocation repository = remoteFolder.getRepository();
- Session session = new Session(repository, parentFolder);
- try {
- session.open(Policy.subMonitorFor(monitor, 5), false /* read-only */);
-
- // Determine which local folders will be affected
- ICVSFolder[] targetFolders = prepareLocalFolders(session, remoteFolder, parentFolder, localFolderName, Policy.subMonitorFor(monitor, 5));
- if (targetFolders == null) {
- // an error occured and has been added to the operation's error list
- return getLastError();
- }
-
- // Add recurse option
- List localOptions = new ArrayList();
- if (!recurse)
- localOptions.add(Update.DO_NOT_RECURSE);
- if (localFolderName != null) {
- localOptions.add(Checkout.makeDirectoryNameOption(localFolderName));
- }
-
- // Prune empty directories if pruning enabled
- if (CVSProviderPlugin.getPlugin().getPruneEmptyDirectories())
- localOptions.add(Checkout.PRUNE_EMPTY_DIRECTORIES);
- // Add the options related to the CVSTag
- CVSTag tag = remoteFolder.getTag();
- if (tag == null) {
- // A null tag in a remote resource indicates HEAD
- tag = CVSTag.DEFAULT;
- }
- localOptions.add(Update.makeTagOption(tag));
-
- // Perform the checkout
- IStatus status = Command.CHECKOUT.execute(session,
- Command.NO_GLOBAL_OPTIONS,
- (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]),
- new String[] { remoteFolder.getRepositoryRelativePath() },
- null,
- Policy.subMonitorFor(monitor, 80));
- if (!status.isOK()) {
- return status;
- }
-
- manageFolders(targetFolders, repository.getLocation());
-
- return OK;
-
- } finally {
- session.close();
- }
- }
-
- private void manageFolders(ICVSFolder[] targetFolders, String root) throws CVSException {
- for (int i = 0; i < targetFolders.length; i++) {
- manageFolder(targetFolders[i], root);
- }
- }
-
- private static void manageFolder(ICVSFolder folder, String root) throws CVSException {
- // Ensure that the parent is a CVS folder
- ICVSFolder parent = folder.getParent();
- if (!parent.isCVSFolder()) {
- parent.setFolderSyncInfo(new FolderSyncInfo(FolderSyncInfo.VIRTUAL_DIRECTORY, root, CVSTag.DEFAULT, true));
- IResource resource = parent.getIResource();
- if (resource.getType() != IResource.PROJECT) {
- manageFolder(parent, root);
- }
- }
- // reset the folder sync info so it will be managed by it's parent
- folder.setFolderSyncInfo(folder.getFolderSyncInfo());
- }
-
- /*
- * Bring the provided projects into the workspace
- */
- private static void refreshRoot(IContainer root, IProgressMonitor monitor) throws CVSException {
- try {
- IProject project = root.getProject();
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId());
- if (provider == null) {
- // Register the project with Team
- RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
-
- // TODO: This should be somewhere else
- provider = (CVSTeamProvider)RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId());
- provider.setWatchEditEnabled(CVSProviderPlugin.getPlugin().isWatchEditEnabled());
- }
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- public String getName() {
- return getTaskName();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getSchedulingRule()
- */
- protected ISchedulingRule getSchedulingRule() {
- try {
- // Use the project of the target folder as the scheduling rule
- return getLocalFolder().getIResource().getProject();
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- return null;
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutMultipleProjectsOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutMultipleProjectsOperation.java
deleted file mode 100644
index b840b1017..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutMultipleProjectsOperation.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.operations;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-
-/**
- * This operation checks out a multiple remote folders into the workspace.
- * Each one will become a new project (overwritting any exsiting projects
- * with the same name).
- */
-public class CheckoutMultipleProjectsOperation extends CheckoutProjectOperation {
-
- boolean hasTargetLocation;
-
- public CheckoutMultipleProjectsOperation(Shell shell, ICVSRemoteFolder[] remoteFolders, String targetLocation) {
- super(shell, remoteFolders, targetLocation);
- hasTargetLocation = targetLocation != null;
- setInvolvesMultipleResources(remoteFolders.length > 1);
- }
-
- /**
- * Return the target location where the given project should be located or
- * null if the default location should be used.
- *
- * @param project
- */
- protected IPath getTargetLocationFor(IProject project) {
- IPath targetLocation = super.getTargetLocationFor(project);
- if (targetLocation == null) return null;
- return targetLocation.append(project.getName());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#checkout(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus checkout(ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException {
- return checkout(folder, null, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java
deleted file mode 100644
index 3b19f2c25..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-public abstract class CheckoutOperation extends RemoteOperation {
-
- public CheckoutOperation(Shell shell, ICVSRemoteFolder[] remoteFolders) {
- super(shell, remoteFolders);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- ICVSRemoteFolder[] folders = getRemoteFolders();
- checkout(folders, monitor);
- }
-
- /**
- * This method invokes <code>checkout(ICVSRemoteFolder, IProgressMonitor)</code>
- * for each remote folder of the operation.
- * @param folders the remote folders for the operation
- * @param monitor the progress monitor
- * @throws CVSException if an error occured that should prevent the remaining
- * folders from being checked out
- */
- protected void checkout(ICVSRemoteFolder[] folders, IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, folders.length * 100);
- for (int i = 0; i < folders.length; i++) {
- ICVSRemoteFolder folder = folders[i];
- IStatus result = checkout(folder, Policy.subMonitorFor(monitor, 100));
- collectStatus(result);
- Policy.checkCanceled(monitor);
- }
- monitor.done();
- }
-
- protected ICVSRemoteFolder[] getRemoteFolders() {
- return (ICVSRemoteFolder[])getRemoteResources();
- }
-
- /**
- * Checkout the selected remote folders in a form appropriate for the operation subclass.
- * @param folders
- * @param monitor
- */
- protected abstract IStatus checkout(ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#canRunAsJob()
- */
- public boolean canRunAsJob() {
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutProjectOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutProjectOperation.java
deleted file mode 100644
index 64c04a48a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutProjectOperation.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.swt.widgets.Shell;
-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.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.client.Checkout;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Request;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-/**
- * This class acts as an abstract class for checkout operations.
- * It provides a few common methods.
- */
-public abstract class CheckoutProjectOperation extends CheckoutOperation {
-
- private String targetLocation;
-
- /**
- * @param shell
- * @param targetLocation
- */
- public CheckoutProjectOperation(Shell shell, ICVSRemoteFolder[] remoteFolders, String targetLocation) {
- super(shell, remoteFolders);
- this.targetLocation = targetLocation;
- }
-
- /**
- * Create and open the project, using a custom location if there is one.
- *
- * @param project
- * @param monitor
- * @throws CVSException
- */
- protected void createAndOpenProject(IProject project, IProgressMonitor monitor) throws CVSException {
- try {
- monitor.beginTask(null, 5);
- IProjectDescription desc = getDescriptionFor(project);
- if (project.exists()) {
- if (desc != null) {
- project.move(desc, true, Policy.subMonitorFor(monitor, 3));
- }
- } else {
- if (desc == null) {
- // create in default location
- project.create(Policy.subMonitorFor(monitor, 3));
- } else {
- // create in some other location
- project.create(desc, Policy.subMonitorFor(monitor, 3));
- }
- }
- if (!project.isOpen()) {
- project.open(Policy.subMonitorFor(monitor, 2));
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- }
-
- protected IProjectDescription getDescriptionFor(IProject project) {
- if (targetLocation == null) return null;
- String projectName = project.getName();
- IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(projectName);
- description.setLocation(getTargetLocationFor(project));
- return description;
- }
-
- /**
- * Return the target location where the given project should be located or
- * null if the default location should be used.
- *
- * @param project
- */
- protected IPath getTargetLocationFor(IProject project) {
- if (targetLocation == null) return null;
- return new Path(targetLocation);
- }
-
- protected String getRemoteModuleName(ICVSRemoteFolder resource) {
- String moduleName;
- if (resource.isDefinedModule()) {
- moduleName = resource.getName();
- } else {
- moduleName = resource.getRepositoryRelativePath();
- }
- return moduleName;
- }
-
- protected IStatus checkout(final ICVSRemoteFolder resource, final IProject project, IProgressMonitor pm) throws CVSException {
- // Get the location and the workspace root
- ICVSFolder root = CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot());
- ICVSRepositoryLocation repository = resource.getRepository();
- // Open a connection session to the repository
- final Session session = new Session(repository, root);
- pm.beginTask(null, 100);
- Policy.checkCanceled(pm);
- session.open(Policy.subMonitorFor(pm, 5), false /* read-only */);
- try {
-
- // Determine the local target projects (either the project provider or the module expansions)
- // Note: Module expansions can be run over the same connection as a checkout
- final IProject[] targetProjects = determineProjects(session, resource, project, Policy.subMonitorFor(pm, 5));
- if (targetProjects == null) {
- // An error occurred and was recorded so return it
- return getLastError();
- } else if (targetProjects.length == 0) {
- return OK;
- }
-
- final IStatus[] result = new IStatus[] { null };
- EclipseSynchronizer.getInstance().run(getSchedulingRule(targetProjects), new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- result[0] = performCheckout(session, resource, targetProjects, project != null, Policy.subMonitorFor(monitor, 90));
- }
- }, Policy.subMonitorFor(pm, 90));
- return result[0];
- } catch (CVSException e) {
- // An exception occurred either during the module-expansion or checkout
- // Since we were able to make a connection, return the status so the
- // checkout of any other modules can proceed
- return e.getStatus();
- } finally {
- session.close();
- pm.done();
- }
- }
-
- private ISchedulingRule getSchedulingRule(IProject[] projects) {
- if (projects.length == 1) {
- return projects[0];
- } else {
- return new MultiRule(projects);
- }
- }
-
- /* private */ IStatus performCheckout(Session session, ICVSRemoteFolder resource, IProject[] targetProjects, boolean sendModuleName, IProgressMonitor pm) throws CVSException {
- // Set the task name of the progress monitor to let the user know
- // which project we're on. Don't use subTask since that will be
- // changed when the checkout command is run.
- String taskName;
- if (targetProjects.length == 1) {
- taskName = Policy.bind("CheckoutProjectOperation.8", resource.getName(), targetProjects[0].getName()); //$NON-NLS-1$
- } else {
- taskName = Policy.bind("CheckoutProjectOperation.9", resource.getName(), String.valueOf(targetProjects.length)); //$NON-NLS-1$
- }
- pm.beginTask(taskName, 100);
- pm.setTaskName(taskName);
- Policy.checkCanceled(pm);
- try {
- // Scrub the local contents if requested
- if (performScrubProjects()) {
- IStatus result = scrubProjects(resource, targetProjects, Policy.subMonitorFor(pm, 9));
- if (!result.isOK()) {
- return result;
- }
- }
-
- // Determine if the target project is the same name as the remote folder
- // in which case we'll use -d to flatten the directory structure
- IProject project;
- if (targetProjects.length == 1 && (sendModuleName || targetProjects[0].getName().equals(resource.getName()))) {
- project = targetProjects[0];
- } else {
- project = null;
- }
-
- // Build the local options
- List localOptions = new ArrayList();
- // Add the option to load into the target project if one was supplied
- if (project != null) {
- localOptions.add(Checkout.makeDirectoryNameOption(project.getName()));
- }
- // Prune empty directories if pruning enabled
- if (CVSProviderPlugin.getPlugin().getPruneEmptyDirectories())
- localOptions.add(Checkout.PRUNE_EMPTY_DIRECTORIES);
- // Add the options related to the CVSTag
- CVSTag tag = resource.getTag();
- if (tag == null) {
- // A null tag in a remote resource indicates HEAD
- tag = CVSTag.DEFAULT;
- }
- localOptions.add(Update.makeTagOption(tag));
-
- // Perform the checkout
- IStatus status = Command.CHECKOUT.execute(session,
- Command.NO_GLOBAL_OPTIONS,
- (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]),
- new String[]{getRemoteModuleName(resource)},
- null,
- Policy.subMonitorFor(pm, 90));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- // Any created projects will exist but will not be mapped to CVS
- return status;
- }
-
- // Bring the project into the workspace
- refreshProjects(targetProjects, Policy.subMonitorFor(pm, 1));
-
- return OK;
- } finally {
- pm.done();
- }
- }
-
- /*
- * Determine the workspace project(s) that will be affected by the checkout.
- * If project is not null, then it will be the only target project of the checkout.
- * Otherwise, the remote folder could expand to multiple projects.
- *
- * If the remote resource is a folder which is not a root folder (i.e. a/b/c),
- * then the target project will be the last segment (i.e. c).
- */
- private IProject[] determineProjects(Session session, final ICVSRemoteFolder remoteFolder, IProject project, IProgressMonitor pm) throws CVSException {
-
- Set targetProjectSet = new HashSet();
- String moduleName = getRemoteModuleName(remoteFolder);
- if (project == null) {
-
- // Fetch the module expansions
- Policy.checkCanceled(pm);
- IStatus status = Request.EXPAND_MODULES.execute(session, new String[] {moduleName}, pm);
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- collectStatus(status);
- return null;
- }
-
- // Convert the module expansions to local projects
- String[] expansions = session.getModuleExpansions();
- if (expansions.length == 1 && expansions[0].equals(moduleName)) {
- // For a remote folder, use the last segment as the project to be created
- String lastSegment = new Path(expansions[0]).lastSegment();
- targetProjectSet.add(ResourcesPlugin.getWorkspace().getRoot().getProject(lastSegment));
- } else {
- for (int j = 0; j < expansions.length; j++) {
- targetProjectSet.add(ResourcesPlugin.getWorkspace().getRoot().getProject(new Path(expansions[j]).segment(0)));
- }
- }
-
- } else {
- targetProjectSet.add(project);
- }
-
- // Return the local projects affected by the checkout
- IProject[] targetProjects = (IProject[]) targetProjectSet.toArray(new IProject[targetProjectSet.size()]);
- return targetProjects;
- }
-
- /**
- * Return true if the target projects should be scrubbed before the checkout occurs.
- * Default is to scrub the projects. Can be overridden by subclasses.
- */
- protected boolean performScrubProjects() {
- return true;
- }
-
- /*
- * This method is invoked to scrub the local projects that are the check out target of
- * a single remote module.
- */
- private IStatus scrubProjects(ICVSRemoteFolder remoteFolder, IProject[] projects, IProgressMonitor monitor) throws CVSException {
- if (projects == null) {
- monitor.done();
- return OK;
- }
- // Prompt first before any work is done
- if (projects.length > 1) {
- setInvolvesMultipleResources(true);
- }
- for (int i=0;i<projects.length;i++) {
- IProject project = projects[i];
- Policy.checkCanceled(monitor);
- if (needsPromptForOverwrite(project) && !promptToOverwrite(remoteFolder, project)) {
- Policy.cancelOperation();
- }
- }
- // Create the projects and remove any previous content
- monitor.beginTask(null, projects.length * 100); //$NON-NLS-1$
- for (int i=0;i<projects.length;i++) {
- IProject project = projects[i];
- createAndOpenProject(project, Policy.subMonitorFor(monitor, 10));
- scrubProject(project, Policy.subMonitorFor(monitor, 90));
- }
- monitor.done();
- return OK;
- }
-
- private void scrubProject(IProject project, IProgressMonitor monitor) throws CVSException {
- try {
- // unmap the project from any previous repository provider
- if (RepositoryProvider.getProvider(project) != null)
- RepositoryProvider.unmap(project);
- // We do not want to delete the project to avoid a project deletion delta
- // We do not want to delete the .project to avoid core exceptions
- IResource[] children = project.members(IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS);
- Policy.checkCanceled(monitor);
- monitor.beginTask(null, 100 + children.length * 100);
- monitor.subTask(Policy.bind("CheckoutOperation.scrubbingProject", project.getName())); //$NON-NLS-1$
- try {
- for (int j = 0; j < children.length; j++) {
- if ( ! children[j].getName().equals(".project")) {//$NON-NLS-1$
- children[j].delete(true /*force*/, Policy.subMonitorFor(monitor, 100));
- }
- }
- // Make sure there is no sync info cached for the project since
- // a reader thread may have caused it to be loaded since the unmap.
- EclipseSynchronizer.getInstance().flush(project, true, Policy.subMonitorFor(monitor, 100));
- } finally {
- monitor.done();
- }
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- protected boolean needsPromptForOverwrite(IProject project) {
-
- // First, check the description location
- IProjectDescription desc = getDescriptionFor(project);
- if (desc != null) {
- File localLocation = desc.getLocation().toFile();
- if (localLocation.exists()) return true;
- }
-
- // Next, check if the resource itself exists
- if (project.exists()) return true;
-
- // Finally, check if the location in the workspace exists;
- File localLocation = getFileLocation(project);
- if (localLocation.exists()) return true;
-
- // The target doesn't exist
- return false;
- }
-
- protected File getFileLocation(IProject project) {
- return new File(project.getParent().getLocation().toFile(), project.getName());
- }
-
- /**
- * @param project
- * @return
- */
- private boolean promptToOverwrite(ICVSRemoteFolder remoteFolder, IProject project) {
- return promptToOverwrite(Policy.bind("CheckoutOperation.confirmOverwrite"), getOverwritePromptMessage(remoteFolder, project)); //$NON-NLS-1$
- }
-
- protected String getOverwritePromptMessage(ICVSRemoteFolder remoteFolder, IProject project) {
- if(project.exists()) {
- return Policy.bind("CheckoutOperation.thisResourceExists", project.getName(), getRemoteModuleName(remoteFolder));//$NON-NLS-1$
- } else {
- return Policy.bind("CheckoutOperation.thisExternalFileExists", project.getName(), getRemoteModuleName(remoteFolder));//$NON-NLS-1$
- }
- }
-
- /*
- * Bring the provied projects into the workspace
- */
- private void refreshProjects(IProject[] projects, IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, projects.length * 100);
- try {
- for (int i = 0; i < projects.length; i++) {
- IProject project = projects[i];
- // Register the project with Team
- try {
- monitor.subTask(Policy.bind("CheckoutOperation.refreshingProject", project.getName())); //$NON-NLS-1$
- RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId());
- provider.setWatchEditEnabled(CVSProviderPlugin.getPlugin().isWatchEditEnabled());
- }
- } finally {
- monitor.done();
- }
- }
-
- protected String getTaskName() {
- ICVSRemoteFolder[] remoteFolders = getRemoteFolders();
- if (remoteFolders.length == 1) {
- return Policy.bind("CheckoutSingleProjectOperation.taskname", remoteFolders[0].getName()); //$NON-NLS-1$
- } else {
- return Policy.bind("CheckoutMultipleProjectsOperation.taskName", new Integer(remoteFolders.length).toString()); //$NON-NLS-1$
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutSingleProjectOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutSingleProjectOperation.java
deleted file mode 100644
index 50ff9023a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutSingleProjectOperation.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.internal.ccvs.ui.operations;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-
-/**
- * This operation checks out a single remote folder into the workspace as
- * a project.
- */
-public class CheckoutSingleProjectOperation extends CheckoutProjectOperation {
-
- private boolean preconfigured;
- private IProject targetProject;
-
- public CheckoutSingleProjectOperation(Shell shell, ICVSRemoteFolder remoteFolder, IProject targetProject, String targetLocation, boolean preconfigured) {
- super(shell, new ICVSRemoteFolder[] { remoteFolder }, targetLocation);
- this.targetProject = targetProject;
- this.preconfigured = preconfigured;
- }
-
- private boolean isPreconfigured() {
- return preconfigured;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#needsPromptForOverwrite(org.eclipse.core.resources.IProject)
- */
- public boolean needsPromptForOverwrite(IProject project) {
- // No need to prompt if the project was preconfigured
- if (isPreconfigured()) return false;
- return super.needsPromptForOverwrite(project);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation#performScrubProjects()
- */
- protected boolean performScrubProjects() {
- // Do not scrub the projects if they were preconfigured.
- return !isPreconfigured();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#checkout(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus checkout(ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException {
- return checkout(folder, targetProject, monitor);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutToRemoteFolderOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutToRemoteFolderOperation.java
deleted file mode 100644
index 342ef48d0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutToRemoteFolderOperation.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Checkout;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.ResponseHandler;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.client.UpdatedHandler;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFile;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolderSandbox;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Checkout a remote folder into a sandbox that is contained within remote folder handles and
- * the file contents cache.
- */
-public class CheckoutToRemoteFolderOperation extends CheckoutOperation {
-
- RemoteFolderSandbox sandbox;
-
- /**
- * This class overrides the "Created" handler in order to configure the remote file
- * to recieve and cache the contents
- */
- public class CreatedResponseHandler extends UpdatedHandler {
- public CreatedResponseHandler() {
- super(UpdatedHandler.HANDLE_CREATED);
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.UpdatedHandler#receiveTargetFile(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.ICVSFile, java.lang.String, java.util.Date, boolean, boolean, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void receiveTargetFile(
- Session session,
- ICVSFile mFile,
- String entryLine,
- Date modTime,
- boolean binary,
- boolean readOnly,
- IProgressMonitor monitor)
- throws CVSException {
-
- if (mFile instanceof RemoteFile) {
- ((RemoteFile)mFile).aboutToReceiveContents(entryLine.getBytes());
- super.receiveTargetFile(
- session,
- mFile,
- entryLine,
- modTime,
- binary,
- readOnly,
- monitor);
- ((RemoteFile)mFile).doneReceivingContents();
- } else {
- super.receiveTargetFile(
- session,
- mFile,
- entryLine,
- modTime,
- binary,
- readOnly,
- monitor);
- }
- }
- }
-
- public class SandboxCheckout extends Checkout {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.Command#commandFinished(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption[], org.eclipse.team.internal.ccvs.core.client.Command.LocalOption[], org.eclipse.team.internal.ccvs.core.ICVSResource[], org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IStatus)
- */
- protected IStatus commandFinished(
- Session session,
- GlobalOption[] globalOptions,
- LocalOption[] localOptions,
- ICVSResource[] resources,
- IProgressMonitor monitor,
- IStatus status)
- throws CVSException {
-
- // Don't do anything (i.e. don't prune)
- return status;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.Command#doExecute(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption[], org.eclipse.team.internal.ccvs.core.client.Command.LocalOption[], java.lang.String[], org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus doExecute(
- Session session,
- GlobalOption[] globalOptions,
- LocalOption[] localOptions,
- String[] arguments,
- ICommandOutputListener listener,
- IProgressMonitor monitor)
- throws CVSException {
-
- ResponseHandler newCreated = new CreatedResponseHandler();
- ResponseHandler oldCreated = session.getResponseHandler(newCreated.getResponseID());
- session.registerResponseHandler(newCreated);
- try {
- return super.doExecute(
- session,
- globalOptions,
- localOptions,
- arguments,
- listener,
- monitor);
- } finally {
- session.registerResponseHandler(oldCreated);
- }
- }
-
-}
- public static ICVSRemoteFolder checkoutRemoteFolder(Shell shell, ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException, InvocationTargetException, InterruptedException {
- CheckoutToRemoteFolderOperation op = new CheckoutToRemoteFolderOperation(shell, folder);
- op.run(monitor);
- return op.getResultingFolder();
- }
- public CheckoutToRemoteFolderOperation(Shell shell, ICVSRemoteFolder remoteFolder) {
- super(shell, new ICVSRemoteFolder[] { remoteFolder });
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation#checkout(org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus checkout(
- ICVSRemoteFolder folder,
- IProgressMonitor monitor)
- throws CVSException {
-
- IPath sandboxPath = new Path(folder.getRepositoryRelativePath()).removeLastSegments(1);
- String pathString;
- if (sandboxPath.isEmpty()) {
- pathString = ICVSRemoteFolder.REPOSITORY_ROOT_FOLDER_NAME;
- } else {
- pathString = sandboxPath.toString();
- }
- sandbox = new RemoteFolderSandbox(null, folder.getRepository(), pathString, folder.getTag());
- return checkout(folder, sandbox, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getTaskName()
- */
- protected String getTaskName() {
- return Policy.bind("CheckoutToRemoteFolderOperation.0", getRemoteFolders()[0].getName()); //$NON-NLS-1$
- }
-
- protected IStatus checkout(final ICVSRemoteFolder resource, final ICVSFolder sandbox, IProgressMonitor pm) throws CVSException {
- // Get the location and the workspace root
- ICVSRepositoryLocation repository = resource.getRepository();
- // Open a connection session to the repository
- final Session session = new Session(repository, sandbox);
- pm.beginTask(null, 100);
- Policy.checkCanceled(pm);
- session.open(Policy.subMonitorFor(pm, 5), false /* read-only */);
- try {
- // Build the local options
- List localOptions = new ArrayList();
- // Add the options related to the CVSTag
- CVSTag tag = resource.getTag();
- if (tag == null) {
- // A null tag in a remote resource indicates HEAD
- tag = CVSTag.DEFAULT;
- }
- localOptions.add(Update.makeTagOption(tag));
-
- // Perform the checkout
- IStatus status = new SandboxCheckout().execute(session,
- Command.NO_GLOBAL_OPTIONS,
- (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]),
- new String[]{resource.getName()},
- null,
- Policy.subMonitorFor(pm, 90));
- if (status.getCode() == CVSStatus.SERVER_ERROR) {
- // Any created projects will exist but will not be mapped to CVS
- return status;
- }
- return OK;
- } catch (CVSException e) {
- // An exception occurred either during the module-expansion or checkout
- // Since we were able to make a connection, return the status so the
- // checkout of any other modules can proceed
- return e.getStatus();
- } finally {
- session.close();
- pm.done();
- }
- }
-
- public ICVSRemoteFolder getResultingFolder() throws CVSException {
- return (ICVSRemoteFolder)sandbox.getFolder(getRemoteFolders()[0].getName());
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/DisconnectOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/DisconnectOperation.java
deleted file mode 100644
index 6225d311c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/DisconnectOperation.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Disconnect the given projects from CVS control
- */
-public class DisconnectOperation extends RepositoryProviderOperation {
-
- private boolean unmanage;
-
- public DisconnectOperation(Shell shell, IProject[] projects, boolean unmanage) {
- super(shell, projects);
- this.unmanage = unmanage;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#execute(org.eclipse.team.internal.ccvs.core.CVSTeamProvider, org.eclipse.core.resources.IResource[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void execute(
- CVSTeamProvider provider,
- IResource[] resources,
- IProgressMonitor monitor)
- throws CVSException, InterruptedException {
-
- // This method will be invoked for each provider being disconnected
- IProject project = provider.getProject();
- try {
- RepositoryProvider.unmap(project);
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- if (unmanage) {
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(project);
- cvsFolder.unmanage(monitor);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getTaskName()
- */
- protected String getTaskName() {
- return Policy.bind("DisconnectOperation.0"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#canRunAsJob()
- */
- public boolean canRunAsJob() {
- // Do not run in the background
- return false;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.java
deleted file mode 100644
index 8f3de3dac..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolderMemberFetcher;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Fetch the members of a remote folder in the background, passing incremental
- * results through an IElementCollector.
- */
-public class FetchMembersOperation extends RemoteOperation {
-
- /* internal uzse only */ IElementCollector collector;
- /* internal uzse only */ RemoteFolderFilter filter = new RemoteFolderFilter();
-
- public static class RemoteFolderFilter {
- public ICVSRemoteResource[] filter(ICVSRemoteResource[] resource) {
- return resource;
- }
- }
-
- public class InternalRemoteFolderMemberFetcher extends RemoteFolderMemberFetcher {
- long sendIncrement = 100;
- List unsent = new ArrayList();
- long intervalStart;
- protected InternalRemoteFolderMemberFetcher(RemoteFolder parentFolder, CVSTag tag) {
- super(parentFolder, tag);
- }
- protected void parentDoesNotExist() {
- super.parentDoesNotExist();
- // Indicate that there are no children
- collector.add(new Object[0], getProgressMonitor());
- }
- protected RemoteFolder recordFolder(String name) {
- RemoteFolder folder = super.recordFolder(name);
- unsent.add(folder);
- if (isTimeToSend()) {
- sendFolders();
- }
- return folder;
- }
- private boolean isTimeToSend() {
- long currentTime = System.currentTimeMillis();
- return (currentTime - intervalStart) > sendIncrement;
- }
- protected IStatus performUpdate(IProgressMonitor progress, CVSTag tag) throws CVSException {
- intervalStart = System.currentTimeMillis();
- IStatus status = super.performUpdate(progress, tag);
- sendFolders();
- return status;
- }
- protected void updateFileRevisions(ICVSFile[] files, IProgressMonitor monitor) throws CVSException {
- super.updateFileRevisions(files, monitor);
- sendFiles();
- }
- private void sendFolders() {
- updateParentFolderChildren();
- collector.add(filter.filter((ICVSRemoteFolder[]) unsent.toArray(new ICVSRemoteFolder[unsent.size()])), getProgressMonitor());
- unsent.clear();
- intervalStart = System.currentTimeMillis();
- }
- private void sendFiles() {
- collector.add(getFiles(), getProgressMonitor());
- unsent.clear();
- }
- private IProgressMonitor getProgressMonitor() {
- return null;
- }
- }
-
- public FetchMembersOperation(Shell shell, ICVSRemoteFolder folder, IElementCollector collector) {
- super(shell, new ICVSRemoteResource[] { folder });
- this.collector = collector;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- ICVSRemoteFolder remote = getRemoteFolder();
- if (remote.getClass().equals(RemoteFolder.class)) {
- monitor = Policy.monitorFor(monitor);
- boolean isRoot = remote.getName().equals(ICVSRemoteFolder.REPOSITORY_ROOT_FOLDER_NAME);
- monitor.beginTask(null, 100 + (isRoot ? 30 : 0));
- RemoteFolderMemberFetcher fetcher = new InternalRemoteFolderMemberFetcher((RemoteFolder)remote, remote.getTag());
- fetcher.fetchMembers(Policy.subMonitorFor(monitor, 100));
- if (isRoot) {
- ICVSRemoteResource[] modules = CVSUIPlugin.getPlugin()
- .getRepositoryManager()
- .getRepositoryRootFor(remote.getRepository())
- .getDefinedModules(remote.getTag(), Policy.subMonitorFor(monitor, 25));
- collector.add(filter.filter(modules), Policy.subMonitorFor(monitor, 5));
- }
- } else {
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask(null, 100);
- IRemoteResource[] children = remote.members(Policy.subMonitorFor(monitor, 95));
- collector.add(children, Policy.subMonitorFor(monitor, 5));
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getTaskName()
- */
- protected String getTaskName() {
- return Policy.bind("FetchMembersOperation.0", getRemoteFolder().getName()); //$NON-NLS-1$
- }
-
- private ICVSRemoteFolder getRemoteFolder() {
- return (ICVSRemoteFolder)getRemoteResources()[0];
- }
-
- public RemoteFolderFilter getFilter() {
- return filter;
- }
-
- public void setFilter(RemoteFolderFilter filter) {
- this.filter = filter;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/HasProjectMetaFileOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/HasProjectMetaFileOperation.java
deleted file mode 100644
index 58461b07f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/HasProjectMetaFileOperation.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.internal.ccvs.ui.operations;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Operation which checks for the existance of the .project file
- * in a remote folder. The operation can be run using the <code>hasMetaFile</code>
- * static method of by executing the operation and then checking <code>metaFileExists</code>
- */
-public class HasProjectMetaFileOperation extends CVSOperation {
-
- private ICVSRemoteFolder remoteFolder;
- private boolean metaFileExists;
-
- public static boolean hasMetaFile(Shell shell, ICVSRemoteFolder remoteFolder) throws CVSException, InterruptedException {
- HasProjectMetaFileOperation op = new HasProjectMetaFileOperation(shell, remoteFolder);
- op.run();
- return op.metaFileExists();
- }
-
- public HasProjectMetaFileOperation(Shell shell, ICVSRemoteFolder remoteFolder) {
- super(shell);
- this.remoteFolder = remoteFolder;
- }
-
- /*
- * Return true if the provided remote folder contains a valid meta-file
- * (i.e. .project file).
- */
- private boolean hasMetaFile(ICVSRemoteFolder folder, IProgressMonitor monitor) throws CVSException {
-
- // make a copy of the folder so that we will not effect the original folder when we refetch the members
- // TODO: this is a strange thing to need to do. We shold fix this.
- folder = (ICVSRemoteFolder)folder.forTag(remoteFolder.getTag());
-
- try {
- folder.members(monitor);
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- // Check for the existance of the .project file
- try {
- folder.getFile(".project"); //$NON-NLS-1$
- return true;
- } catch (TeamException e) {
- // We couldn't retrieve the meta file so assume it doesn't exist
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- metaFileExists = hasMetaFile(remoteFolder, monitor);
- }
-
- /**
- * Return true if the meta file exists remotely. This method should only be invoked
- * after the operation has been executed;
- * @return
- */
- public boolean metaFileExists() {
- return metaFileExists;
- }
-
- protected String getTaskName() {
- return Policy.bind("HasProjectMetaFile.taskName"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#canRunAsJob()
- */
- public boolean canRunAsJob() {
- // This operation should never be run in the background.
- return false;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ICVSRunnableContext.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ICVSRunnableContext.java
deleted file mode 100644
index 7e72aa83c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ICVSRunnableContext.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.internal.ccvs.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * An ITeamRunnableContext is used to provide the context for a Team operation.
- * The hierarchy of contexts is used to configure the following:
- * 1) whether the operation is run in the background as a job
- * 2) whether the operation modifies the workspace
- * 3) what shell the operation should use to display info to the user
- */
-public interface ICVSRunnableContext {
-
- /**
- * Run the given runnable in the context of the receiver. By default, the
- * progress is provided by the active workbench windows but subclasses may
- * override this to provide progress in some other way (Progress Monitor or
- * job).
- */
- public abstract void run(
- String title,
- ISchedulingRule schedulingRule,
- boolean postponeBuild,
- IRunnableWithProgress runnable)
- throws InvocationTargetException, InterruptedException;
-
- /**
- * Get a shell that can be used to prompt the user.
- * @return a shell
- */
- public abstract Shell getShell();
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ITagOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ITagOperation.java
deleted file mode 100644
index 2e1bd46df..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ITagOperation.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.operations;
-
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-public interface ITagOperation {
- public abstract CVSTag getTag();
- public abstract void setTag(CVSTag tag);
- public abstract void run() throws CVSException, InterruptedException;
- public abstract ICVSResource[] getCVSResources();
- public abstract void moveTag();
- public abstract void recurse();
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/OverrideAndUpdateOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/OverrideAndUpdateOperation.java
deleted file mode 100644
index 2db8d08a8..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/OverrideAndUpdateOperation.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.internal.ccvs.ui.operations;
-
-import java.util.*;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.*;
-
-/**
- * A specialized Replace operation that will update managed resources and
- * unmanaged resources that are conflicting additions (so that the remote is fetched)
- */
-public class OverrideAndUpdateOperation extends ReplaceOperation {
-
- private IResource[] conflictingAdditions;
-
- public OverrideAndUpdateOperation(Shell shell, IResource[] allResources, IResource[] conflictingAdditions, CVSTag tag, boolean recurse) {
- super(shell, allResources, tag, recurse);
- this.conflictingAdditions = conflictingAdditions;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ReplaceOperation#getResourcesToUpdate(org.eclipse.team.internal.ccvs.core.ICVSResource[])
- */
- protected ICVSResource[] getResourcesToUpdate(ICVSResource[] resources) throws CVSException {
- // Add the conflicting additions to the list of resources to update
- Set update = new HashSet();
- ICVSResource[] conflicts = getCVSArguments(conflictingAdditions);
- update.addAll(Arrays.asList(conflicts));
- update.addAll(Arrays.asList(super.getResourcesToUpdate(resources)));
- return (ICVSResource[]) update.toArray(new ICVSResource[update.size()]);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.java
deleted file mode 100644
index b8eff2c1e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.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.internal.ccvs.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.CVSRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Reconcile an existing unshared local project with an existing remote folder.
- */
-public class ReconcileProjectOperation extends CVSOperation {
-
- private IProject project;
- private ICVSRemoteFolder folder;
-
- public ReconcileProjectOperation(Shell shell, IProject project, ICVSRemoteFolder folder) {
- super(shell);
- this.folder = folder;
- this.project = project;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- try {
- monitor.beginTask(null, 300);
- ICVSRemoteFolder remote = CheckoutToRemoteFolderOperation.checkoutRemoteFolder(getShell(), folder, Policy.subMonitorFor(monitor, 100));
- // TODO: make -in-sync should also be done by the subscriber
- makeFoldersInSync(project, remote, Policy.subMonitorFor(monitor, 100));
- CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber().setRemote(project, (ISubscriberResource)remote, Policy.subMonitorFor(monitor, 100));
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- CVSUIPlugin.showInSyncView(getShell(), null, 0 /* no mode in particular */);
- }
- });
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
-
- }
-
- /**
- * Sync the given unshared project with the given repository and module.
- */
- public IRemoteSyncElement makeFoldersInSync(final IProject project, ICVSRemoteFolder remote, IProgressMonitor progress) throws TeamException {
- final CVSRemoteSyncElement tree = new CVSRemoteSyncElement(true /*three way*/, project, null, remote);
- CVSWorkspaceRoot.getCVSFolderFor(project).run(new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- monitor.beginTask(null, 100);
- try {
- tree.makeFoldersInSync(Policy.subMonitorFor(monitor, 100));
- RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- monitor.done();
- }
- }, progress);
- return tree;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getTaskName()
- */
- protected String getTaskName() {
- return Policy.bind("ReconcileProjectOperation.0", project.getName(), folder.getRepositoryRelativePath()); //$NON-NLS-1$
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteCompareOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteCompareOperation.java
deleted file mode 100644
index f1cdba5f0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteCompareOperation.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.util.*;
-
-import org.eclipse.compare.CompareUI;
-import org.eclipse.core.runtime.*;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-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.client.listeners.RDiffSummaryListener;
-import org.eclipse.team.internal.ccvs.core.resources.*;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.Assert;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.ui.IWorkbenchPage;
-
-/**
- * Compare the two versions of given remote folders obtained from the two tags specified.
- */
-public class RemoteCompareOperation extends RemoteOperation implements RDiffSummaryListener.IFileDiffListener {
-
- private CVSTag left;
- private CVSTag right;
-
- private RemoteFolderTree leftTree, rightTree;
-
- public static CVSTag getTag(ICVSRemoteResource resource) throws CVSException {
- CVSTag tag = null;
- try {
- if (resource.isContainer()) {
- tag = ((ICVSRemoteFolder)resource).getTag();
- } else {
- ICVSRemoteFile file = (ICVSRemoteFile)resource;
- String revision = file.getRevision();
- if (revision.equals(ResourceSyncInfo.ADDED_REVISION)) {
- ResourceSyncInfo info =file.getSyncInfo();
- if (info != null) tag = info.getTag();
- } else {
- tag = new CVSTag(revision, CVSTag.VERSION);
- }
- }
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- if (tag == null) tag = CVSTag.DEFAULT;
- return tag;
- }
-
- /**
- * Compare two versions of the given remote resource.
- * @param shell
- * @param remoteResource the resource whose tags are being compared
- * @param left the earlier tag (not null)
- * @param right the later tag (not null)
- */
- public RemoteCompareOperation(Shell shell, ICVSRemoteResource remoteResource, CVSTag tag) {
- super(shell, new ICVSRemoteResource[] {remoteResource});
- Assert.isNotNull(tag);
- this.right = tag;
- try {
- this.left = getTag(remoteResource);
- } catch (CVSException e) {
- // This shouldn't happen but log it just in case
- CVSProviderPlugin.log(e);
- }
- if (this.left == null) {
- this.left = CVSTag.DEFAULT;
- }
- }
-
- /*
- * This command only supports the use of a single resource
- */
- private ICVSRemoteResource getRemoteResource() {
- return getRemoteResources()[0];
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void execute(IProgressMonitor monitor) throws CVSException {
- leftTree = rightTree = null;
- boolean fetchContents = CVSUIPlugin.getPlugin().getPluginPreferences().getBoolean(ICVSUIConstants.PREF_CONSIDER_CONTENTS);
- monitor.beginTask(getTaskName(), 50 + (fetchContents ? 100 : 0));
- try {
- ICVSRemoteResource resource = getRemoteResource();
- IStatus status = buildTrees(resource, Policy.subMonitorFor(monitor, 50));
- if (status.isOK() && fetchContents) {
- String[] overlappingFilePaths = getOverlappingFilePaths();
- if (overlappingFilePaths.length > 0) {
- fetchFileContents(leftTree, overlappingFilePaths, Policy.subMonitorFor(monitor, 50));
- fetchFileContents(rightTree, overlappingFilePaths, Policy.subMonitorFor(monitor, 50));
- }
- }
- collectStatus(status);
- openCompareEditor(leftTree, rightTree);
- } finally {
- monitor.done();
- }
- }
-
- private String[] getOverlappingFilePaths() {
- String[] leftFiles = getFilePaths(leftTree);
- String[] rightFiles = getFilePaths(rightTree);
- Set set = new HashSet();
- for (int i = 0; i < rightFiles.length; i++) {
- String rightFile = rightFiles[i];
- for (int j = 0; j < leftFiles.length; j++) {
- String leftFile = leftFiles[j];
- if (leftFile.equals(rightFile)) {
- set.add(leftFile);
- }
- }
- }
- return (String[]) set.toArray(new String[set.size()]);
- }
-
- private void fetchFileContents(RemoteFolderTree tree, String[] overlappingFilePaths, IProgressMonitor monitor) throws CVSException {
- FileContentCachingService.fetchFileContents(tree, overlappingFilePaths, monitor);
- }
-
- private String[] getFilePaths(RemoteFolderTree tree) {
- ICVSRemoteResource[] children = tree.getChildren();
- List result = new ArrayList();
- for (int i = 0; i < children.length; i++) {
- ICVSRemoteResource resource = children[i];
- if (resource.isContainer()) {
- result.addAll(Arrays.asList(getFilePaths((RemoteFolderTree)resource)));
- } else {
- result.add(resource.getRepositoryRelativePath());
- }
- }
- return (String[]) result.toArray(new String[result.size()]);
- }
-
- /*
- * Build the two trees uses the reponses from "cvs rdiff -s ...".
- */
- private IStatus buildTrees(ICVSRemoteResource resource, IProgressMonitor monitor) throws CVSException {
- // Initialize the resulting trees
- leftTree = new RemoteFolderTree(null, resource.getRepository(), ICVSRemoteFolder.REPOSITORY_ROOT_FOLDER_NAME, left);
- leftTree.setChildren(new ICVSRemoteResource[0]);
- rightTree = new RemoteFolderTree(null, resource.getRepository(), ICVSRemoteFolder.REPOSITORY_ROOT_FOLDER_NAME, right);
- rightTree.setChildren(new ICVSRemoteResource[0]);
- Command.QuietOption oldOption= CVSProviderPlugin.getPlugin().getQuietness();
- Session session = new Session(resource.getRepository(), leftTree, false);
- try {
- monitor.beginTask(getTaskName(), 100);
- CVSProviderPlugin.getPlugin().setQuietness(Command.VERBOSE);
- session.open(Policy.subMonitorFor(monitor, 10));
- IStatus status = Command.RDIFF.execute(session,
- Command.NO_GLOBAL_OPTIONS,
- getLocalOptions(),
- new ICVSResource[] { resource },
- new RDiffSummaryListener(this),
- Policy.subMonitorFor(monitor, 90));
- return status;
- } finally {
- try {
- session.close();
- } finally {
- CVSProviderPlugin.getPlugin().setQuietness(oldOption);
- }
- monitor.done();
- }
- }
-
- private LocalOption[] getLocalOptions() {
- return new LocalOption[] {RDiff.SUMMARY, RDiff.makeTagOption(left), RDiff.makeTagOption(right)};
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getTaskName()
- */
- protected String getTaskName() {
- return Policy.bind("RemoteCompareOperation.0", new Object[] {left.getName(), right.getName(), getRemoteResource().getRepositoryRelativePath()}); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.RDiffSummaryListener.IFileDiffListener#fileDiff(java.lang.String, java.lang.String, java.lang.String)
- */
- public void fileDiff(String remoteFilePath, String leftRevision, String rightRevision) {
- try {
- addFile(rightTree, right, new Path(remoteFilePath), rightRevision);
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- try {
- addFile(leftTree, left, new Path(remoteFilePath), leftRevision);
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.RDiffSummaryListener.IFileDiffListener#newFile(java.lang.String, java.lang.String)
- */
- public void newFile(String remoteFilePath, String rightRevision) {
- try {
- addFile(rightTree, right, new Path(remoteFilePath), rightRevision);
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.RDiffSummaryListener.IFileDiffListener#deletedFile(java.lang.String)
- */
- public void deletedFile(String remoteFilePath, String leftRevision) {
- // The leftRevision may be null in which case the tag is used
- try {
- addFile(leftTree, left, new Path(remoteFilePath), leftRevision);
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.core.client.listeners.RDiffSummaryListener.IFileDiffListener#directory(java.lang.String)
- */
- public void directory(String remoteFolderPath) {
- try {
- getFolder(leftTree, left, new Path(remoteFolderPath), Path.EMPTY);
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- try {
- getFolder(rightTree, right, new Path(remoteFolderPath), Path.EMPTY);
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- /*
- * Get the folder at the given path in the given tree, creating any missing folders as needed.
- */
- private ICVSRemoteFolder getFolder(RemoteFolderTree tree, CVSTag tag, IPath remoteFolderPath, IPath parentPath) throws CVSException {
- if (remoteFolderPath.segmentCount() == 0) return tree;
- String name = remoteFolderPath.segment(0);
- ICVSResource child;
- IPath childPath = parentPath.append(name);
- if (tree.childExists(name)) {
- child = tree.getChild(name);
- } else {
- child = new RemoteFolderTree(tree, tree.getRepository(), childPath.toString(), tag);
- ((RemoteFolderTree)child).setChildren(new ICVSRemoteResource[0]);
- addChild(tree, (ICVSRemoteResource)child);
- }
- return getFolder((RemoteFolderTree)child, tag, remoteFolderPath.removeFirstSegments(1), childPath);
- }
-
- private void addChild(RemoteFolderTree tree, ICVSRemoteResource resource) {
- ICVSRemoteResource[] children = tree.getChildren();
- ICVSRemoteResource[] newChildren;
- if (children == null) {
- newChildren = new ICVSRemoteResource[] { resource };
- } else {
- newChildren = new ICVSRemoteResource[children.length + 1];
- System.arraycopy(children, 0, newChildren, 0, children.length);
- newChildren[children.length] = resource;
- }
- tree.setChildren(newChildren);
- }
-
- private void addFile(RemoteFolderTree tree, CVSTag tag, Path filePath, String revision) throws CVSException {
- RemoteFolderTree parent = (RemoteFolderTree)getFolder(tree, tag, filePath.removeLastSegments(1), Path.EMPTY);
- String name = filePath.lastSegment();
- ICVSRemoteFile file = new RemoteFile(parent, 0, name, revision, null, tag);
- addChild(parent, file);
- }
-
- /*
- * Only intended to be overridden by test cases.
- */
- protected void openCompareEditor(final ICVSRemoteFolder leftTree, final ICVSRemoteFolder rightTree) {
- if (leftTree == null || rightTree == null) return;
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- CompareUI.openCompareEditorOnPage(
- new CVSCompareEditorInput(new ResourceEditionNode(leftTree), new ResourceEditionNode(rightTree)),
- getTargetPage());
- }
- });
- }
-
- protected IWorkbenchPage getTargetPage() {
- return TeamUIPlugin.getActivePage();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteOperation.java
deleted file mode 100644
index ad3659440..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteOperation.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.internal.ccvs.ui.operations;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-
-public abstract class RemoteOperation extends CVSOperation {
-
- private ICVSRemoteResource[] remoteResources;
-
- protected RemoteOperation(Shell shell, ICVSRemoteResource[] remoteResources) {
- super(shell);
- this.remoteResources =remoteResources;
- }
-
- protected ICVSRemoteResource[] getRemoteResources() {
- return remoteResources;
- }
-
- public ICVSResource[] getCVSResources() {
- ICVSResource[] cvsResources = new ICVSResource[remoteResources.length];
- for (int i = 0; i < remoteResources.length; i++) {
- cvsResources[i] = remoteResources[i];
- }
- return cvsResources;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReplaceOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReplaceOperation.java
deleted file mode 100644
index 9f2f558e1..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReplaceOperation.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.operations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Shell;
-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.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.PrepareForReplaceVisitor;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Thsi operation replaces the local resources with their remote contents
- */
-public class ReplaceOperation extends UpdateOperation {
-
- boolean recurse = true;
-
- public ReplaceOperation(Shell shell, IResource[] resources, CVSTag tag, boolean recurse) {
- super(shell, resources, getReplaceOptions(recurse), tag);
- this.recurse = recurse;
- }
-
- /*
- * Create the local options required to do a replace
- */
- private static LocalOption[] getReplaceOptions(boolean recurse) {
- List options = new ArrayList();
- options.add(Update.IGNORE_LOCAL_CHANGES);
- if(!recurse) {
- options.add(Command.DO_NOT_RECURSE);
- }
- return (LocalOption[]) options.toArray(new LocalOption[options.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getTaskName()
- */
- protected String getTaskName() {
- return Policy.bind("ReplaceOperation.taskName"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.SingleCommandOperation#executeCommand(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.CVSTeamProvider, org.eclipse.core.resources.IResource[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus executeCommand(
- Session session,
- CVSTeamProvider provider,
- ICVSResource[] resources,
- IProgressMonitor monitor)
- throws CVSException, InterruptedException {
-
- monitor.beginTask(null, 100);
- ICVSResource[] managedResources = getResourcesToUpdate(resources);
- try {
- // Purge any unmanaged or added files
- new PrepareForReplaceVisitor().visitResources(
- provider.getProject(),
- resources,
- "CVSTeamProvider.scrubbingResource", // TODO: This is a key in CVS core! //$NON-NLS-1$
- recurse ? IResource.DEPTH_INFINITE : IResource.DEPTH_ZERO,
- Policy.subMonitorFor(monitor, 30)); //$NON-NLS-1$
-
- // Only perform the remote command if some of the resources being replaced were managed
- IStatus status = OK;
- if (managedResources.length > 0) {
- // Perform an update, ignoring any local file modifications
- status = super.executeCommand(session, provider, managedResources, Policy.subMonitorFor(monitor, 70));
- }
-
- // Prune any empty folders left after the resources were purged.
- // This is done to prune any empty folders that contained only unmanaged resources
- if (status.isOK() && CVSProviderPlugin.getPlugin().getPruneEmptyDirectories()) {
- new PruneFolderVisitor().visit(session, resources);
- }
-
- return status;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Return the resources that need to be updated from the server.
- * By default, this is all resources that are managed.
- * @param resources all resources being replaced
- * @return resources that ae to be updated from the server
- * @throws CVSException
- */
- protected ICVSResource[] getResourcesToUpdate(ICVSResource[] resources) throws CVSException {
- // Accumulate the managed resources from the list of provided resources
- List managedResources = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- ICVSResource resource = resources[i];
- if ((resource.isFolder() && ((ICVSFolder)resource).isCVSFolder())) {
- managedResources.add(resource);
- } else if (!resource.isFolder()){
- byte[] syncBytes = ((ICVSFile)resource).getSyncBytes();
- if (syncBytes != null && !ResourceSyncInfo.isAddition(syncBytes)) {
- managedResources.add(resource);
- }
- }
- }
- return (ICVSResource[]) managedResources.toArray(new ICVSResource[managedResources.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.UpdateOperation#getUpdateCommand()
- */
- protected Update getUpdateCommand() {
- return Command.REPLACE;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java
deleted file mode 100644
index 48f263df2..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-
-/**
- * Performs a cvs operation on multiple repository providers
- */
-public abstract class RepositoryProviderOperation extends CVSOperation {
-
- private IResource[] resources;
-
- /**
- * @param shell
- */
- public RepositoryProviderOperation(Shell shell, IResource[] resources) {
- super(shell);
- this.resources = resources;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- Map table = getProviderMapping(getResources());
- Set keySet = table.keySet();
- monitor.beginTask(null, keySet.size() * 1000);
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- ISchedulingRule rule = getSchedulingRule(provider);
- try {
- Platform.getJobManager().beginRule(rule, monitor);
- execute(provider, providerResources, subMonitor);
- } finally {
- Platform.getJobManager().endRule(rule);
- }
- }
- }
-
- /**
- * Retgurn the scheduling rule to be obtained before work
- * begins on the given provider. By default, it is the provider's project.
- * This can be changed by subclasses.
- * @param provider
- * @return
- */
- protected ISchedulingRule getSchedulingRule(CVSTeamProvider provider) {
- return provider.getProject();
- }
-
- /*
- * Helper method. Return a Map mapping provider to a list of resources
- * shared with that provider.
- */
- private Map getProviderMapping(IResource[] resources) {
- Map result = new HashMap();
- for (int i = 0; i < resources.length; i++) {
- RepositoryProvider provider = RepositoryProvider.getProvider(resources[i].getProject(), CVSProviderPlugin.getTypeId());
- List list = (List)result.get(provider);
- if (list == null) {
- list = new ArrayList();
- result.put(provider, list);
- }
- list.add(resources[i]);
- }
- return result;
- }
-
- /**
- * Return the resources that the operation is being performed on
- * @return
- */
- protected IResource[] getResources() {
- return resources;
- }
-
- /**
- * Set the resources that the operation is to be performed on
- * @param resources
- */
- protected void setResources(IResource[] resources) {
- this.resources = resources;
- }
-
- /**
- * Execute the operation on the resources for the given provider.
- * @param provider
- * @param providerResources
- * @param subMonitor
- * @throws CVSException
- * @throws InterruptedException
- */
- protected abstract void execute(CVSTeamProvider provider, IResource[] resources, IProgressMonitor monitor) throws CVSException, InterruptedException;
-
- protected ICVSResource[] getCVSArguments(IResource[] resources) {
- ICVSResource[] cvsResources = new ICVSResource[resources.length];
- for (int i = 0; i < cvsResources.length; i++) {
- cvsResources[i] = CVSWorkspaceRoot.getCVSResourceFor(resources[i]);
- }
- return cvsResources;
- }
-
- /*
- * Get the arguments to be passed to a commit or update
- */
- protected String[] getStringArguments(IResource[] resources) throws CVSException {
- List arguments = new ArrayList(resources.length);
- for (int i=0;i<resources.length;i++) {
- IPath cvsPath = resources[i].getFullPath().removeFirstSegments(1);
- if (cvsPath.segmentCount() == 0) {
- arguments.add(Session.CURRENT_LOCAL_FOLDER);
- } else {
- arguments.add(cvsPath.toString());
- }
- }
- return (String[])arguments.toArray(new String[arguments.size()]);
- }
-
- public ICVSResource[] getCVSResources() {
- ICVSResource[] cvsResources = new ICVSResource[resources.length];
- for (int i = 0; i < resources.length; i++) {
- cvsResources[i] = CVSWorkspaceRoot.getCVSResourceFor(resources[i]);
- }
- return cvsResources;
- }
-
- protected ICVSRepositoryLocation getRemoteLocation(CVSTeamProvider provider) throws CVSException {
- CVSWorkspaceRoot workspaceRoot = provider.getCVSWorkspaceRoot();
- return workspaceRoot.getRemoteLocation();
- }
-
- protected ICVSFolder getLocalRoot(CVSTeamProvider provider) throws CVSException {
- CVSWorkspaceRoot workspaceRoot = provider.getCVSWorkspaceRoot();
- return workspaceRoot.getLocalRoot();
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ShareProjectOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ShareProjectOperation.java
deleted file mode 100644
index 66e733a7e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ShareProjectOperation.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.widgets.Shell;
-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.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-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.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolderTree;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Create a folder and any missing parents in the repository
- */
-public class ShareProjectOperation extends CVSOperation {
-
- private ICVSRepositoryLocation location;
- private IProject project;
- private String moduleName;
-
- public ShareProjectOperation(Shell shell, ICVSRepositoryLocation location, IProject project, String moduleName) {
- super(shell);
- this.moduleName = moduleName;
- this.project = project;
- this.location = location;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
-
- // Determine if the repository is known
- boolean alreadyExists = CVSProviderPlugin.getPlugin().isKnownRepository(location.getLocation());
-
- try {
- createRemoteFolder(monitor);
- mapProjectToRemoteFolder(monitor);
- } catch (CVSException e) {
- // The checkout may have triggered password caching
- // Therefore, if this is a newly created location, we want to clear its cache
- if ( ! alreadyExists)
- CVSProviderPlugin.getPlugin().disposeRepository(location);
- throw e;
- }
- // Add the repository if it didn't exist already
- if ( ! alreadyExists) {
- CVSProviderPlugin.getPlugin().addRepository(location);
- }
- }
-
- private void mapProjectToRemoteFolder(IProgressMonitor monitor) throws CVSException {
- // perform the workspace modifications in a runnable
- try {
- // Set the folder sync info of the project to point to the remote module
- final ICVSFolder folder = (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(project);
- final TeamException[] exception = new TeamException[] {null};
- final String modName = moduleName;
- ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- try {
- // Link the project to the newly created module
- folder.setFolderSyncInfo(new FolderSyncInfo(modName, location.getLocation(), null, false));
- //Register it with Team. If it already is, no harm done.
- RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
- } catch (TeamException e) {
- exception[0] = e;
- }
- }
- }, project, 0, monitor);
- if (exception[0] != null)
- throw exception[0];
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /*
- * Create the remote folder (and any ancestors).
- */
- private void createRemoteFolder(IProgressMonitor monitor) throws CVSException {
- String projectName = project.getName();
- if (moduleName == null)
- moduleName = projectName;
-
- RemoteFolderTree root = new RemoteFolderTree(null, location, Path.EMPTY.toString(), null);
- Path path = new Path(moduleName);
-
- try {
- monitor.beginTask(getTaskName(), 100 * path.segmentCount());
- ensureTreeExists(root, path, monitor);
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- }
-
- /*
- * Create handles for all the children in the moduleName path
- */
- private RemoteFolderTree createChild(RemoteFolderTree parent, String name, IProgressMonitor monitor) throws CVSException, TeamException {
- RemoteFolderTree child = new RemoteFolderTree(parent, name, location, new Path(parent.getRepositoryRelativePath()).append(name).toString(), null);
- parent.setChildren(new ICVSRemoteResource[] { child });
- if (child.exists(Policy.subMonitorFor(monitor, 50))) {
- // The child exists so get the handle that was received from the server
- return (RemoteFolderTree)parent.getFolder(name);
- } else {
- // Create the folder remotely
- createFolder(child, Policy.subMonitorFor(monitor, 50));
- return child;
- }
- }
-
- /*
- * Ensure that all the folders in the tree exist
- */
- private void ensureTreeExists(RemoteFolderTree folder, IPath path, IProgressMonitor monitor) throws TeamException {
- if (path.isEmpty()) return;
- String name = path.segment(0);
- RemoteFolderTree child = createChild(folder, name, monitor);
- ensureTreeExists(child, path.removeFirstSegments(1), monitor);
- }
-
- private void createFolder(RemoteFolderTree folder, IProgressMonitor monitor) throws TeamException {
- Session s = new Session(location, folder.getParent());
- s.open(monitor, true /* open for modification */);
- try {
- IStatus status = Command.ADD.execute(s,
- Command.NO_GLOBAL_OPTIONS,
- Command.NO_LOCAL_OPTIONS,
- new String[] { folder.getName() },
- null,
- monitor);
- // If we get a warning, the operation most likely failed so check that the status is OK
- if (status.getCode() == CVSStatus.SERVER_ERROR || ! status.isOK()) {
- throw new CVSServerException(status);
- }
- } finally {
- s.close();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getTaskName()
- */
- protected String getTaskName() {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/SingleCommandOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/SingleCommandOperation.java
deleted file mode 100644
index 959380e68..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/SingleCommandOperation.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Shell;
-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.ui.Policy;
-
-public abstract class SingleCommandOperation extends RepositoryProviderOperation {
-
- private LocalOption[] options = Command.NO_LOCAL_OPTIONS;
-
- public SingleCommandOperation(Shell shell, IResource[] resources, LocalOption[] options) {
- super(shell, resources);
- if (options != null) {
- this.options = options;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#execute(org.eclipse.team.internal.ccvs.core.CVSTeamProvider, org.eclipse.core.resources.IResource[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void execute(CVSTeamProvider provider, IResource[] resources, IProgressMonitor monitor) throws CVSException, InterruptedException {
- monitor.beginTask(null, 100);
- Session session = new Session(getRemoteLocation(provider), getLocalRoot(provider), true /* output to console */);
- session.open(Policy.subMonitorFor(monitor, 10), isServerModificationOperation());
- try {
- // TODO: This does not properly count the number of operations
- // Changing it causes an error in the test cases
- IStatus status = executeCommand(session, provider, getCVSArguments(resources), Policy.subMonitorFor(monitor, 90));
- collectStatus(status);
- } finally {
- session.close();
- }
- }
-
- /**
- * Indicate whether the operation requires write access to the server (i.e.
- * the operation changes state on the server whether it be to commit, tag, admin, etc).
- * @return
- */
- protected boolean isServerModificationOperation() {
- return false;
- }
-
- /**
- * Method overridden by subclasses to issue the command to the CVS repository using the given session.
- */
- protected abstract IStatus executeCommand(Session session, CVSTeamProvider provider, ICVSResource[] resources, IProgressMonitor monitor) throws CVSException, InterruptedException;
-
- protected LocalOption[] getLocalOptions() {
- return options;
- }
-
- protected void setLocalOptions(LocalOption[] options) {
- this.options = options;
- }
-
- protected void addLocalOption(LocalOption option) {
- LocalOption[] newOptions = new LocalOption[options.length + 1];
- System.arraycopy(options, 0, newOptions, 0, options.length);
- newOptions[options.length] = option;
- options = newOptions;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagInRepositoryOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagInRepositoryOperation.java
deleted file mode 100644
index 3a7ba94f3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagInRepositoryOperation.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.RTag;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.actions.TagAction;
-
-
-public class TagInRepositoryOperation extends RemoteOperation implements ITagOperation {
-
- private Set localOptions = new HashSet();
- private CVSTag tag;
-
- public TagInRepositoryOperation(Shell shell, ICVSRemoteResource[] remoteResource) {
- super(shell, remoteResource);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- ICVSRemoteResource[] resources = getRemoteResources();
- monitor.beginTask(null, 1000 * resources.length);
- for (int i = 0; i < resources.length; i++) {
- IStatus status = resources[i].tag(getTag(), getLocalOptions(), new SubProgressMonitor(monitor, 1000));
- collectStatus(status);
- }
- if (!errorsOccurred()) {
- try {
- TagAction.broadcastTagChange(getCVSResources(), getTag());
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- }
- }
- }
-
- /**
- * Override to dislay the number of tag operations that succeeded
- */
- protected String getErrorMessage(IStatus[] problems, int operationCount) {
- if(operationCount == 1) {
- return Policy.bind("TagInRepositoryAction.tagProblemsMessage"); //$NON-NLS-1$
- } else {
- return Policy.bind("TagInRepositoryAction.tagProblemsMessageMultiple", //$NON-NLS-1$
- Integer.toString(operationCount - problems.length), Integer.toString(problems.length));
- }
- }
-
- private LocalOption[] getLocalOptions() {
- return (LocalOption[]) localOptions.toArray(new LocalOption[localOptions.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ITagOperation#getTag()
- */
- public CVSTag getTag() {
- return tag;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ITagOperation#setTag(org.eclipse.team.internal.ccvs.core.CVSTag)
- */
- public void setTag(CVSTag tag) {
- this.tag = tag;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ITagOperation#addLocalOption(org.eclipse.team.internal.ccvs.core.client.Command.LocalOption)
- */
- public void addLocalOption(LocalOption option) {
- localOptions.add(option);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ITagOperation#moveTag()
- */
- public void moveTag() {
- addLocalOption(RTag.FORCE_REASSIGNMENT);
- addLocalOption(RTag.CLEAR_FROM_REMOVED);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ITagOperation#recurse()
- */
- public void recurse() {
- addLocalOption(Command.DO_NOT_RECURSE);
- }
-
- protected String getTaskName() {
- return Policy.bind("TagFromRepository.taskName"); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagOperation.java
deleted file mode 100644
index 7abd605f7..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/TagOperation.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.operations;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Tag;
-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.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.actions.TagAction;
-
-public class TagOperation extends RepositoryProviderOperation implements ITagOperation {
-
- private Set localOptions = new HashSet();
- private CVSTag tag;
-
- public TagOperation(Shell shell, IResource[] resources) {
- super(shell, resources);
- }
-
- public CVSTag getTag() {
- return tag;
- }
-
- public void setTag(CVSTag tag) {
- this.tag = tag;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#execute(org.eclipse.team.internal.ccvs.core.CVSTeamProvider, org.eclipse.core.resources.IResource[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void execute(CVSTeamProvider provider, IResource[] resources, IProgressMonitor monitor) throws CVSException, InterruptedException {
- IStatus status = tag(provider, resources, monitor);
- collectStatus(status);
- }
-
- private ICVSResource[] getCVSResources(IResource[] resources) {
- ICVSResource[] cvsResources = new ICVSResource[resources.length];
- for (int i = 0; i < cvsResources.length; i++) {
- cvsResources[i] = CVSWorkspaceRoot.getCVSResourceFor(resources[i]);
- }
- return cvsResources;
- }
-
- /**
- * Override to dislay the number of tag operations that succeeded
- */
- protected String getErrorMessage(IStatus[] problems, int operationCount) {
- // We accumulated 1 status per resource above.
- if(operationCount == 1) {
- return Policy.bind("TagAction.tagProblemsMessage"); //$NON-NLS-1$
- } else {
- return Policy.bind("TagAction.tagProblemsMessageMultiple", //$NON-NLS-1$
- Integer.toString(operationCount - problems.length), Integer.toString(problems.length));
- }
- }
-
- /**
- * Tag the resources in the CVS repository with the given tag.
- *
- * The returned IStatus will be a status containing any errors or warnings.
- * If the returned IStatus is a multi-status, the code indicates the severity.
- * Possible codes are:
- * CVSStatus.OK - Nothing to report
- * CVSStatus.SERVER_ERROR - The server reported an error
- * any other code - warning messages received from the server
- */
- public IStatus tag(CVSTeamProvider provider, IResource[] resources, IProgressMonitor progress) throws CVSException {
-
- LocalOption[] commandOptions = (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]);
-
- // Build the arguments list
- String[] arguments = getStringArguments(resources);
-
- // Execute the command
- CVSWorkspaceRoot root = provider.getCVSWorkspaceRoot();
- Session s = new Session(root.getRemoteLocation(), root.getLocalRoot());
- progress.beginTask(null, 100);
- try {
- // Opening the session takes 20% of the time
- s.open(Policy.subMonitorFor(progress, 20), true /* open for modification */);
- return Command.TAG.execute(s,
- Command.NO_GLOBAL_OPTIONS,
- commandOptions,
- tag,
- arguments,
- null,
- Policy.subMonitorFor(progress, 80));
- } finally {
- s.close();
- progress.done();
- }
- }
-
- public void addLocalOption(LocalOption option) {
- localOptions.add(option);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ITagOperation#moveTag()
- */
- public void moveTag() {
- addLocalOption(Tag.FORCE_REASSIGNMENT);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ITagOperation#recurse()
- */
- public void recurse() {
- addLocalOption(Command.DO_NOT_RECURSE);
- }
-
- protected String getTaskName() {
- return Policy.bind("TagFromWorkspace.taskName"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- super.execute(monitor);
- if (!errorsOccurred()) {
- try {
- TagAction.broadcastTagChange(getCVSResources(), getTag());
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- }
- }
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOnlyMergableOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOnlyMergableOperation.java
deleted file mode 100644
index ed56623e0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOnlyMergableOperation.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.ui.operations;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.UpdateMergableOnly;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * This operation performs an update that will only effect files
- * that have no conflicts or automergable conflicts.
- */
-public class UpdateOnlyMergableOperation extends SingleCommandOperation {
-
- List skippedFiles = new ArrayList();
-
- public UpdateOnlyMergableOperation(Shell shell, IResource[] resources, LocalOption[] localOptions) {
- super(shell, resources, localOptions);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.SingleCommandOperation#executeCommand(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.CVSTeamProvider, org.eclipse.core.resources.IResource[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus executeCommand(Session session, CVSTeamProvider provider, ICVSResource[] resources, IProgressMonitor monitor) throws CVSException, InterruptedException {
- UpdateMergableOnly update = new UpdateMergableOnly();
- IStatus status = update.execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- getLocalOptions(),
- resources,
- null,
- Policy.subMonitorFor(monitor, 90));
- if (status.getCode() != IStatus.ERROR) {
- addSkippedFiles(update.getSkippedFiles());
- return OK;
- }
- return status;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getTaskName()
- */
- protected String getTaskName() {
- return Policy.bind("UpdateOnlyMergeable.taskName"); //$NON-NLS-1$
- }
-
- protected void addSkippedFiles(IFile[] files) {
- skippedFiles.addAll(Arrays.asList(files));
- }
-
- public IFile[] getSkippedFiles() {
- return (IFile[]) skippedFiles.toArray(new IFile[skippedFiles.size()]);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.java
deleted file mode 100644
index 3529111cf..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/UpdateOperation.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.internal.ccvs.ui.operations;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Operation which performs a CVS update
- */
-public class UpdateOperation extends SingleCommandOperation {
-
- CVSTag tag;
-
- /**
- * Create an UpdateOperation that will perform on update on the given resources
- * using the given local option. If a tag is provided, it will be added to the
- * local options using the appropriate argument (-r or -D). If the tag is <code>null</code>
- * then the tag will be omitted from the local options and the tags on the local resources
- * will be used.
- * @param shell
- * @param resources
- * @param options
- * @param tag
- */
- public UpdateOperation(Shell shell, IResource[] resources, LocalOption[] options, CVSTag tag) {
- super(shell, resources, options);
- this.tag = tag;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.SingleCommandOperation#executeCommand(org.eclipse.team.internal.ccvs.core.client.Session, org.eclipse.team.internal.ccvs.core.CVSTeamProvider, org.eclipse.core.resources.IResource[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus executeCommand(
- Session session,
- CVSTeamProvider provider,
- ICVSResource[] resources,
- IProgressMonitor monitor)
- throws CVSException, InterruptedException {
-
- // Build the local options
- List localOptions = new ArrayList();
-
- // Use the appropriate tag options
- if (tag != null) {
- localOptions.add(Update.makeTagOption(tag));
- }
-
- // Build the arguments list
- localOptions.addAll(Arrays.asList(getLocalOptions()));
- LocalOption[] commandOptions = (LocalOption[])localOptions.toArray(new LocalOption[localOptions.size()]);
-
- return getUpdateCommand().execute(
- session,
- Command.NO_GLOBAL_OPTIONS,
- commandOptions,
- resources,
- getCommandOutputListener(),
- monitor);
- }
-
- protected Update getUpdateCommand() {
- return Command.UPDATE;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#getTaskName()
- */
- protected String getTaskName() {
- return Policy.bind("UpdateOperation.taskName"); //$NON-NLS-1$;
- }
-
- /**
- * Return the listener that is used to process E and M messages.
- * The default is <code>null</code>.
- * @return
- */
- protected ICommandOutputListener getCommandOutputListener() {
- return null;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/AddToBranchAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/AddToBranchAction.java
deleted file mode 100644
index 4c513f624..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/AddToBranchAction.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.internal.ccvs.ui.repo;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
-
-/**
- * Action to add a root remote folder to a branch
- */
-public class AddToBranchAction extends CVSAction {
-
- IInputValidator validator = new IInputValidator() {
- public String isValid(String newText) {
- IStatus status = CVSTag.validateTagName(newText);
- if (status.isOK()) return null;
- return status.getMessage();
- }
- };
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- final ICVSRemoteFolder folder = getSelectedRootFolder();
- if (folder == null) return;
- Shell shell = getShell();
- final CVSException[] exception = new CVSException[] { null };
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- InputDialog dialog = new InputDialog(getShell(), Policy.bind("AddToBranchAction.enterTag"), Policy.bind("AddToBranchAction.enterTagLong"), null, validator); //$NON-NLS-1$ //$NON-NLS-2$
- if (dialog.open() == InputDialog.OK) {
- CVSTag tag = new CVSTag(dialog.getValue(), CVSTag.BRANCH);
- try {
- CVSUIPlugin.getPlugin().getRepositoryManager().addTags(folder, new CVSTag[] {tag});
- } catch (CVSException e) {
- exception[0] = e;
- }
- }
- }
- });
- if (exception[0] != null)
- throw new InvocationTargetException(exception[0]);
- }
- }, false, PROGRESS_BUSYCURSOR); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- return getSelectedRootFolder() != null;
- }
-
- protected ICVSRemoteFolder getSelectedRootFolder() {
- ICVSRemoteFolder[] folders = getSelectedRemoteFolders();
- ICVSRemoteFolder selectedFolder = null;
- for (int i = 0; i < folders.length; i++) {
- ICVSRemoteFolder folder = folders[i];
- if (folder.isDefinedModule() || new Path(folder.getRepositoryRelativePath()).segmentCount()==1) {
- // only return a folder if one valid one is selected.
- if (selectedFolder != null) return null;
- selectedFolder = folder;
- }
- }
- return selectedFolder;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSRepositoryPropertiesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSRepositoryPropertiesPage.java
deleted file mode 100644
index 4f46d0bcd..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSRepositoryPropertiesPage.java
+++ /dev/null
@@ -1,568 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Control;
-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.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.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.IConnectionMethod;
-import org.eclipse.team.internal.ccvs.core.IUserInfo;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.dialogs.DetailsDialogWithProjects;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class CVSRepositoryPropertiesPage extends PropertyPage {
- ICVSRepositoryLocation location;
-
- // Widgets
- Text userText;
- Text passwordText;
- Combo methodType;
- Label hostLabel;
- Label pathLabel;
- Label portLabel;
-
- boolean passwordChanged;
- boolean connectionInfoChanged;
-
- IUserInfo info;
-
- // Label
- private Button useLocationAsLabel;
- private Button useCustomLabel;
- private Text labelText;
- // Read/write access
- private Button useDefaultReadWriteLocations;
- private Button useCustomReadWriteLocations;
- private Combo readLocation;
- private Combo writeLocation;
-
- /*
- * @see PreferencesPage#createContents
- */
- protected Control createContents(Composite parent) {
- initialize();
-
- Composite composite = new Composite(parent, SWT.NULL);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- composite.setLayout(layout);
-
- // Repository Label
- // create a composite to ensure the radio buttons come in the correct order
- Composite labelGroup = new Composite(composite, SWT.NONE);
- GridData data = new GridData();
- data.horizontalSpan = 3;
- labelGroup.setLayoutData(data);
- layout = new GridLayout();
- layout.numColumns = 3;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- labelGroup.setLayout(layout);
- Listener labelListener = new Listener() {
- public void handleEvent(Event event) {
- updateWidgetEnablements();
- }
- };
- useLocationAsLabel = createRadioButton(labelGroup, Policy.bind("CVSRepositoryPropertiesPage.useLocationAsLabel"), 3); //$NON-NLS-1$
- useCustomLabel = createRadioButton(labelGroup, Policy.bind("CVSRepositoryPropertiesPage.useCustomLabel"), 1); //$NON-NLS-1$
- useCustomLabel.addListener(SWT.Selection, labelListener);
- labelText = createTextField(labelGroup);
- labelText.addListener(SWT.Modify, labelListener);
-
- // Add some extra space
- createLabel(composite, "", 3); //$NON-NLS-1$
-
- createLabel(composite, Policy.bind("CVSPropertiesPage.connectionType"), 1); //$NON-NLS-1$
- methodType = createCombo(composite);
-
- createLabel(composite, Policy.bind("CVSPropertiesPage.user"), 1); //$NON-NLS-1$
- userText = createTextField(composite);
-
- createLabel(composite, Policy.bind("CVSPropertiesPage.password"), 1); //$NON-NLS-1$
- passwordText = createPasswordField(composite);
-
- createLabel(composite, Policy.bind("CVSPropertiesPage.host"), 1); //$NON-NLS-1$
- hostLabel = createLabel(composite, "", 2); //$NON-NLS-1$
-
- createLabel(composite, Policy.bind("CVSPropertiesPage.port"), 1); //$NON-NLS-1$
- portLabel = createLabel(composite, "", 2); //$NON-NLS-1$
-
- createLabel(composite, Policy.bind("CVSPropertiesPage.path"), 1); //$NON-NLS-1$
- pathLabel = createLabel(composite, "", 2); //$NON-NLS-1$
-
- // Add some extra space
- createLabel(composite, "", 3); //$NON-NLS-1$
-
- // Add some extra space
- createLabel(composite, "", 3); //$NON-NLS-1$
-
- createReadWriteAccessComposite(composite);
-
- initializeValues();
- updateWidgetEnablements();
- passwordText.addListener(SWT.Modify, new Listener() {
- public void handleEvent(Event event) {
- passwordChanged = true;
- }
- });
- userText.addListener(SWT.Modify, new Listener() {
- public void handleEvent(Event event) {
- connectionInfoChanged = true;
- updateWidgetEnablements();
- }
- });
- methodType.addListener(SWT.Modify, new Listener() {
- public void handleEvent(Event event) {
- connectionInfoChanged = true;
- }
- });
- useDefaultReadWriteLocations.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- updateWidgetEnablements();
-
- }
- });
- useCustomReadWriteLocations.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- updateWidgetEnablements();
-
- }
- });
-
- WorkbenchHelp.setHelp(getControl(), IHelpContextIds.REPOSITORY_LOCATION_PROPERTY_PAGE);
- Dialog.applyDialogFont(parent);
- return composite;
- }
- /**
- * @param composite
- */
- private void createReadWriteAccessComposite(Composite composite) {
- Composite radioGroup = createRadioGroupComposite(composite);
- useDefaultReadWriteLocations = createRadioButton(radioGroup, Policy.bind("CVSRepositoryPropertiesPage.21"), 3); //$NON-NLS-1$
- useCustomReadWriteLocations = createRadioButton(radioGroup, Policy.bind("CVSRepositoryPropertiesPage.22"), 3); //$NON-NLS-1$
- createLabel(composite, Policy.bind("CVSRepositoryPropertiesPage.23"), 1); //$NON-NLS-1$
- readLocation = createCombo(composite);
- createLabel(composite, Policy.bind("CVSRepositoryPropertiesPage.24"), 1); //$NON-NLS-1$
- writeLocation = createCombo(composite);
- }
- /**
- * @param composite
- */
- private Composite createRadioGroupComposite(Composite composite) {
- Composite radioGroup = new Composite(composite, SWT.NONE);
- GridData data = new GridData();
- data.horizontalSpan = 3;
- radioGroup.setLayoutData(data);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- radioGroup.setLayout(layout);
- return radioGroup;
- }
-
- /**
- * 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;
- data.horizontalSpan = 2;
- combo.setLayoutData(data);
- return combo;
- }
- /**
- * 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, int span) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = span;
- 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);
- return layoutTextField(text);
- }
- /**
- * Create a password field specific for this application
- *
- * @param parent the parent of the new text field
- * @return the new text field
- */
- protected Text createPasswordField(Composite parent) {
- Text text = new Text(parent, SWT.SINGLE | SWT.BORDER | SWT.PASSWORD);
- return layoutTextField(text);
- }
- /**
- * Layout a text or password field specific for this application
- *
- * @param parent the parent of the new text field
- * @return the new text field
- */
- protected Text layoutTextField(Text text) {
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.verticalAlignment = GridData.CENTER;
- data.grabExcessVerticalSpace = false;
- data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
- data.horizontalSpan = 2;
- text.setLayoutData(data);
- return text;
- }
-
- /**
- * Utility method to create a radio button
- *
- * @param parent the parent of the radio button
- * @param label the label of the radio button
- * @param span the number of columns to span
- * @return the created radio button
- */
- protected Button createRadioButton(Composite parent, String label, int span) {
- Button button = new Button(parent, SWT.RADIO);
- button.setText(label);
- GridData data = new GridData();
- data.horizontalSpan = span;
- button.setLayoutData(data);
- return button;
- }
- /**
- * Initializes the page
- */
- private void initialize() {
- location = null;
- IAdaptable element = getElement();
- if (element instanceof ICVSRepositoryLocation) {
- location = (ICVSRepositoryLocation)element;
- } else {
- Object adapter = element.getAdapter(ICVSRepositoryLocation.class);
- if (adapter instanceof ICVSRepositoryLocation) {
- location = (ICVSRepositoryLocation)adapter;
- }
- }
- }
- /**
- * Set the initial values of the widgets
- */
- private void initializeValues() {
- passwordChanged = false;
-
- IConnectionMethod[] methods = CVSRepositoryLocation.getPluggedInConnectionMethods();
- for (int i = 0; i < methods.length; i++) {
- methodType.add(methods[i].getName());
- }
- String method = location.getMethod().getName();
- methodType.select(methodType.indexOf(method));
- info = location.getUserInfo(true);
- userText.setText(info.getUsername());
- passwordText.setText("*********"); //$NON-NLS-1$
- hostLabel.setText(location.getHost());
- int port = location.getPort();
- if (port == ICVSRepositoryLocation.USE_DEFAULT_PORT) {
- portLabel.setText(Policy.bind("CVSPropertiesPage.defaultPort")); //$NON-NLS-1$
- } else {
- portLabel.setText("" + port); //$NON-NLS-1$
- }
- pathLabel.setText(location.getRootDirectory());
-
- // get the repository label
- String label = null;
- RepositoryRoot root = CVSUIPlugin.getPlugin().getRepositoryManager().getRepositoryRootFor(location);
- label = root.getName();
- useLocationAsLabel.setSelection(label == null);
- useCustomLabel.setSelection(!useLocationAsLabel.getSelection());
- if (label == null) {
- label = location.getLocation();
- }
- labelText.setText(label);
-
- // Fill in read/write repo locations
- String currentReadLocation = ((CVSRepositoryLocation)root.getRoot()).getReadLocation();
- String currentWriteLocation = ((CVSRepositoryLocation)root.getRoot()).getWriteLocation();
- try {
- // Ensure the read and write locations are listed
- if (currentReadLocation != null) {
- CVSProviderPlugin.getPlugin().getRepository(currentReadLocation);
- }
- if (currentWriteLocation != null) {
- CVSProviderPlugin.getPlugin().getRepository(currentWriteLocation);
- }
- } catch (CVSException e) {
- CVSProviderPlugin.log(e);
- }
-
- ICVSRepositoryLocation[] locations = CVSProviderPlugin.getPlugin().getKnownRepositories();
- for (int i = 0; i < locations.length; i++) {
- ICVSRepositoryLocation location = locations[i];
- readLocation.add(location.getLocation());
- writeLocation.add(location.getLocation());
- }
- readLocation.setText(currentReadLocation == null ? root.getRoot().getLocation() : currentReadLocation);
- writeLocation.setText(currentWriteLocation == null ? root.getRoot().getLocation() : currentWriteLocation);
- if (currentReadLocation == null && currentWriteLocation == null) {
- useDefaultReadWriteLocations.setSelection(true);
- useCustomReadWriteLocations.setSelection(false);
- } else {
- useDefaultReadWriteLocations.setSelection(false);
- useCustomReadWriteLocations.setSelection(true);
- }
- }
-
- private boolean performConnectionInfoChanges() {
- // Don't do anything if there wasn't a password or connection change
- if (!passwordChanged && !connectionInfoChanged) return true;
-
- try {
- // Check if the password was the only thing to change.
- if (passwordChanged && !connectionInfoChanged) {
- CVSRepositoryLocation oldLocation = (CVSRepositoryLocation)location;
- oldLocation.setPassword(getNewPassword());
- oldLocation.updateCache();
- passwordChanged = false;
- return true;
- }
-
- // Otherwise change the connection info and the password
- // This operation is done inside a workspace operation in case the sharing
- // info for existing projects is changed
- final boolean[] result = new boolean[] { false };
- new ProgressMonitorDialog(getShell()).run(false, false, new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- // Create a new repository location with the new information
- CVSRepositoryLocation newLocation = CVSRepositoryLocation.fromString(location.getLocation());
- newLocation.setMethod(methodType.getText());
- info.setUsername(userText.getText());
- if (passwordChanged) {
- info.setPassword(getNewPassword());
- }
- newLocation.setUserInfo(info);
-
- try {
- // For each project shared with the old location, set connection info to the new one
- List projects = new ArrayList();
- IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- for (int i = 0; i < allProjects.length; i++) {
- RepositoryProvider teamProvider = RepositoryProvider.getProvider(allProjects[i], CVSProviderPlugin.getTypeId());
- if (teamProvider != null) {
- CVSTeamProvider cvsProvider = (CVSTeamProvider)teamProvider;
- if (cvsProvider.getCVSWorkspaceRoot().getRemoteLocation().equals(location)) {
- projects.add(allProjects[i]);
- }
- }
- }
- if (projects.size() > 0) {
- // To do: warn the user
- DetailsDialogWithProjects dialog = new DetailsDialogWithProjects(
- getShell(),
- Policy.bind("CVSRepositoryPropertiesPage.Confirm_Project_Sharing_Changes_1"), //$NON-NLS-1$
- Policy.bind("CVSRepositoryPropertiesPage.There_are_projects_in_the_workspace_shared_with_this_repository_2"), //$NON-NLS-1$
- Policy.bind("CVSRepositoryPropertiesPage.sharedProject", location.toString()), //$NON-NLS-1$
- (IProject[]) projects.toArray(new IProject[projects.size()]),
- true,
- DetailsDialogWithProjects.DLG_IMG_WARNING);
- int r = dialog.open();
- if (r != DetailsDialogWithProjects.OK) {
- result[0] = false;
- return;
- }
- monitor.beginTask(null, 1000 * projects.size());
- try {
- Iterator it = projects.iterator();
- while (it.hasNext()) {
- IProject project = (IProject)it.next();
- RepositoryProvider teamProvider = RepositoryProvider.getProvider(project, CVSProviderPlugin.getTypeId());
- CVSTeamProvider cvsProvider = (CVSTeamProvider)teamProvider;
- cvsProvider.setRemoteRoot(newLocation, Policy.subMonitorFor(monitor, 1000));
- }
- } finally {
- monitor.done();
- }
- }
-
- // Dispose the old repository location
- CVSUIPlugin.getPlugin().getRepositoryManager().replaceRepositoryLocation(location, newLocation);
-
- } finally {
- // Even if we failed, ensure that the new location appears in the repo view.
- newLocation = (CVSRepositoryLocation)CVSProviderPlugin.getPlugin().getRepository(newLocation.getLocation());
- newLocation.updateCache();
- }
-
- // Set the location of the page to the new location in case Apply was chosen
- location = newLocation;
- connectionInfoChanged = false;
- passwordChanged = false;
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- result[0] = true;
- }
- });
- return result[0];
- } catch (InvocationTargetException e) {
- handle(e);
- } catch (InterruptedException e) {
- } catch (CVSException e) {
- handle(e);
- }
- return false; /* we only get here if an exception occurred */
- }
-
- private void performNonConnectionInfoChanges() {
- recordNewLabel((CVSRepositoryLocation)location);
- recordReadWriteLocations((CVSRepositoryLocation)location);
- }
- /*
- * @see PreferencesPage#performOk
- */
- public boolean performOk() {
- if (performConnectionInfoChanges()) {
- performNonConnectionInfoChanges();
- return true;
- }
- return false;
- }
- /**
- * Shows the given errors to the user.
- */
- protected void handle(Throwable e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
-
- /**
- * Updates widget enablements and sets error message if appropriate.
- */
- protected void updateWidgetEnablements() {
- if (useLocationAsLabel.getSelection()) {
- labelText.setEnabled(false);
- } else {
- labelText.setEnabled(true);
- }
- if (useDefaultReadWriteLocations.getSelection()) {
- readLocation.setEnabled(false);
- writeLocation.setEnabled(false);
- } else {
- readLocation.setEnabled(true);
- writeLocation.setEnabled(true);
- }
- validateFields();
- }
-
- private void validateFields() {
- if (labelText.isEnabled()) {
- if (labelText.getText().length() == 0) {
- setValid(false);
- return;
- }
- }
- String user = userText.getText();
- if ((user.indexOf('@') != -1) || (user.indexOf(':') != -1)) {
- setErrorMessage(Policy.bind("ConfigurationWizardMainPage.invalidUserName")); //$NON-NLS-1$
- setValid(false);
- return;
- }
- setErrorMessage(null);
- setValid(true);
- }
-
- private void recordNewLabel(CVSRepositoryLocation location) {
- String newLabel = getNewLabel(location);
- if (newLabel == null) {
- String oldLabel = getOldLabel(location);
- if (oldLabel == null || oldLabel.equals(location.getLocation())) {
- return;
- }
- } else if (newLabel.equals(getOldLabel(location))) {
- return;
- }
- try {
- CVSUIPlugin.getPlugin().getRepositoryManager().setLabel(location, newLabel);
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
- private String getOldLabel(CVSRepositoryLocation location) {
- return CVSUIPlugin.getPlugin().getRepositoryManager().getRepositoryRootFor(location).getName();
- }
- private String getNewLabel(CVSRepositoryLocation location) {
- String label = null;
- if (useCustomLabel.getSelection()) {
- label = labelText.getText();
- if (label.equals(location.getLocation())) {
- label = null;
- }
- }
- return label;
- }
- /* internal use only */ String getNewPassword() {
- return passwordText.getText();
- }
- private void recordReadWriteLocations(CVSRepositoryLocation location) {
- location.setReadLocation(useDefaultReadWriteLocations.getSelection() ? null : readLocation.getText());
- location.setWriteLocation(useDefaultReadWriteLocations.getSelection() ? null : writeLocation.getText());
- // TODO: These will be lost if a crash occurres before shutdown
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSet.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSet.java
deleted file mode 100644
index 157701878..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSet.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class adds ICVSRemoteResource filtering to a working set
- */
-public class CVSWorkingSet {
-
- IWorkingSet workingSet;
- IProject[] includedProjects;
- IPropertyChangeListener listener = new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- IWorkingSet changedSet = getChangedSet(event);
- if (changedSet == null || !changedSet.equals(workingSet)) return;
- String property = event.getProperty();
- if (property.equals(IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE)) {
- includedProjects = null;
- } else if (property.equals(IWorkingSetManager.CHANGE_WORKING_SET_REMOVE)) {
- workingSet = null;
- includedProjects = null;
- }
- }
- private IWorkingSet getChangedSet(PropertyChangeEvent event) {
- Object old = event.getOldValue();
- if (old instanceof IWorkingSet) {
- return (IWorkingSet)old;
-
- }
- Object newSet = event.getNewValue();
- if (newSet instanceof IWorkingSet) {
- return (IWorkingSet)newSet;
-
- }
- return null;
- }
- };
-
- /**
- *
- */
- public CVSWorkingSet(IWorkingSet workingSet) {
- this.workingSet = workingSet;
- PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(listener);
- }
-
- public void dispose() {
- PlatformUI.getWorkbench().getWorkingSetManager().removePropertyChangeListener(listener);
- }
-
- private void initializeProjects() {
- if (workingSet == null) {
- includedProjects = null;
- return;
- }
- // get the projects associated with the working set
- IAdaptable[] adaptables = workingSet.getElements();
- Set projects = new HashSet();
- for (int i = 0; i < adaptables.length; i++) {
- IAdaptable adaptable = adaptables[i];
- Object adapted = adaptable.getAdapter(IResource.class);
- if (adapted != null) {
- // Can this code be generalized?
- IProject project = ((IResource)adapted).getProject();
- projects.add(project);
- }
- }
- this.includedProjects = (IProject[]) projects.toArray(new IProject[projects.size()]);
- }
-
- public boolean select(ICVSRemoteResource remoteResource) {
- if (workingSet == null) return true;
- if (includedProjects == null) initializeProjects();
- for (int i = 0; i < includedProjects.length; i++) {
- IProject project = includedProjects[i];
- if (project.getName().equals(remoteResource.getName())) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java
deleted file mode 100644
index f2b225d90..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.repo;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.model.ModulesCategory;
-import org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetPage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class CVSWorkingSetPage extends CVSWizardPage implements IWorkingSetPage {
-
- private IWorkingSet workingSet;
- private String workingSetName;
- private Set checkedFolders;
- private Map modulesCategoryCache = new HashMap();
- private boolean editing = false;
-
- private Text nameField;
- private CheckboxTreeViewer tree;
- private ICheckStateListener checkStateListener;
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage#CVSWizardPage(String, String, ImageDescriptor, String)
- */
- public CVSWorkingSetPage(String pageName, String title, ImageDescriptor titleImage, String description) {
- super(pageName, title, titleImage, description);
- checkedFolders = new HashSet();
- workingSetName = ""; //$NON-NLS-1$
- }
- /**
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite= createComposite(parent, 2);
- setControl(composite);
-
- WorkbenchHelp.setHelp(composite, IHelpContextIds.WORKING_SET_FOLDER_SELECTION_PAGE);
-
- createLabel(composite, Policy.bind("CVSWorkingSetFolderSelectionPage.name")); //$NON-NLS-1$
- nameField = createTextField(composite);
- nameField.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent event) {
- workingSetName = nameField.getText();
- updateWidgetEnablements();
- }
- });
-
- createWrappingLabel(composite, Policy.bind("CVSWorkingSetFolderSelectionPage.treeLabel"), 0, 2); //$NON-NLS-1$
-
- tree = createFolderSelectionTree(composite, 2);
- checkStateListener = new ICheckStateListener() {
- public void checkStateChanged(CheckStateChangedEvent event) {
- CVSWorkingSetPage.this.handleChecked(event.getElement(), event.getChecked());
- }
- };
- tree.addCheckStateListener(checkStateListener);
- tree.addTreeListener(new ITreeViewerListener() {
- public void treeCollapsed(TreeExpansionEvent event) {
- // Ignore
- }
- public void treeExpanded(TreeExpansionEvent event) {
- CVSWorkingSetPage.this.handleExpansion(event.getElement());
- }
- });
-
- createLabel(composite, ""); //$NON-NLS-1$
- Button refresh = new Button(composite, SWT.PUSH);
- refresh.setText(Policy.bind("CVSWorkingSetFolderSelectionPage.refresh")); //$NON-NLS-1$
- GridData data = new GridData();
- data.horizontalAlignment = GridData.END;
- data.horizontalSpan = 1;
- refresh.setLayoutData(data);
- refresh.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- CVSWorkingSetPage.this.refreshTree();
- }
- });
-
- initializeValues();
- updateWidgetEnablements();
- nameField.setFocus();
- Dialog.applyDialogFont(parent);
- }
- /**
- * Method handleExpansion.
- * @param object
- */
- public void handleExpansion(Object element) {
- if (element instanceof ICVSRepositoryLocation) {
- ICVSRepositoryLocation location = (ICVSRepositoryLocation) element;
- tree.setGrayed(CVSWorkingSetPage.this.getModuleCategory(location), true);
- }
- updateCheckState(element);
- }
-
- /**
- * Method handleChecked.
- * @param object
- * @param b
- */
- public void handleChecked(Object object, boolean checked) {
- if (object instanceof ICVSRepositoryLocation) {
- ICVSRepositoryLocation location = (ICVSRepositoryLocation) object;
- if (checked) {
- repositoryLocationChecked(location);
- } else {
- repositoryLocationUnchecked(location);
- }
- } else if (object instanceof ModulesCategory) {
- ModulesCategory category = (ModulesCategory) object;
- if (checked) {
- modulesCategoryChecked(category);
- } else {
- modulesCategoryUnchecked(category);
- }
- } else if (object instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) object;
- if (checked) {
- folderChecked(folder);
- } else {
- folderUnchecked(folder);
- }
- }
- updateWidgetEnablements();
- }
-
- public ModulesCategory getModuleCategory(ICVSRepositoryLocation location) {
- ModulesCategory category = (ModulesCategory)modulesCategoryCache.get(location.getLocation());
- if (category == null) {
- category = new ModulesCategory(location);
- modulesCategoryCache.put(location.getLocation(), category);
- category.setRunnableContext(getContainer());
- }
- return category;
- }
-
- private void folderUnchecked(ICVSRemoteFolder folder) {
- checkedFolders.remove(folder);
- }
-
- private void folderChecked(ICVSRemoteFolder folder) {
- checkedFolders.add(folder);
- }
-
- private void repositoryLocationChecked(ICVSRepositoryLocation location) {
- Object[] elements = tree.getCheckedElements();
- boolean stayChecked = false;
- for (int i = 0; i < elements.length; i++) {
- Object object = elements[i];
- if (object instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) object;
- if (folder.getRepository().equals(location)) {
- stayChecked = true;
- }
- }
- }
- if (!stayChecked) {
- tree.setChecked(location, false);
- }
- }
-
- private void repositoryLocationUnchecked(ICVSRepositoryLocation location) {
- for (Iterator iter = checkedFolders.iterator(); iter.hasNext();) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) iter.next();
- if (folder.getRepository().equals(location)) {
- tree.setChecked(folder, false);
- iter.remove();
- }
- }
- }
-
- private void modulesCategoryChecked(ModulesCategory category) {
- ICVSRepositoryLocation location = category.getRepository();
- Object[] elements = tree.getCheckedElements();
- boolean stayChecked = false;
- for (int i = 0; i < elements.length; i++) {
- Object object = elements[i];
- if (object instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) object;
- if (folder.getRepository().equals(location) && (folder.isDefinedModule())) {
- stayChecked = true;
- }
- }
- }
- if (!stayChecked) {
- tree.setChecked(category, false);
- }
- }
-
- private void modulesCategoryUnchecked(ModulesCategory category) {
- ICVSRepositoryLocation location = category.getRepository();
- for (Iterator iter = checkedFolders.iterator(); iter.hasNext();) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) iter.next();
- if (folder.getRepository().equals(location) && folder.isDefinedModule()) {
- tree.setChecked(folder, false);
- iter.remove();
- }
- }
- }
-
- /**
- * Method refreshTree.
- */
- public void refreshTree() {
- tree.refresh();
- }
-
- /**
- * Method initializeValues.
- */
- private void initializeValues() {
- nameField.setText(workingSetName);
- tree.setGrayedElements(getRepositoryManager().getKnownRepositoryLocations());
- }
-
- /**
- * Method updateWidgetEnablement.
- */
- private void updateWidgetEnablements() {
- // update the check state of repository locations and modules categories
- tree.removeCheckStateListener(checkStateListener);
- try {
- updateCheckState(null);
- // Make sure the name is valid
- if (workingSetName.length() == 0) {
- setPageComplete(false);
- setErrorMessage(null);
- } else if (!isValidName(workingSetName)) {
- setPageComplete(false);
- setErrorMessage(Policy.bind("CVSWorkingSetFolderSelectionPage.invalidWorkingSetName", workingSetName)); //$NON-NLS-1$
- } else if (isDuplicateName(workingSetName)) {
- setPageComplete(false);
- setErrorMessage(Policy.bind("CVSWorkingSetFolderSelectionPage.duplicateWorkingSetName", workingSetName)); //$NON-NLS-1$
- } else if (checkedFolders.isEmpty()) {
- setErrorMessage(Policy.bind("CVSWorkingSetFolderSelectionPage.mustSelectFolder")); //$NON-NLS-1$
- setPageComplete(false);
- } else {
- setPageComplete(true);
- setErrorMessage(null);
- }
- } finally {
- tree.addCheckStateListener(checkStateListener);
- }
- }
-
- private void updateCheckState(Object expanded) {
- ICVSRepositoryLocation[] locations = getRepositoryManager().getKnownRepositoryLocations();
- Set checkedLocations = new HashSet();
- Set checkedCategories = new HashSet();
- List expandedParents = new ArrayList();
- expandedParents.addAll(Arrays.asList(tree.getExpandedElements()));
- if (expanded != null)
- expandedParents.add(expanded);
- for (Iterator iter = checkedFolders.iterator(); iter.hasNext();) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) iter.next();
- checkedLocations.add(folder.getRepository());
- if (folder.isDefinedModule()) {
- ModulesCategory category = getModuleCategory(folder.getRepository());
- checkedCategories.add(getModuleCategory(folder.getRepository()));
- if (expandedParents.contains(category))
- tree.setChecked(folder, true);
- } else if (expandedParents.contains(folder.getRepository())) {
- tree.setChecked(folder, true);
- }
- }
- for (int i = 0; i < locations.length; i++) {
- ICVSRepositoryLocation location = locations[i];
- tree.setChecked(location, checkedLocations.contains(location));
- }
- for (Iterator iter = modulesCategoryCache.values().iterator(); iter.hasNext();) {
- ModulesCategory element = (ModulesCategory) iter.next();
- if (expandedParents.contains(element.getRepository()))
- tree.setChecked(element, checkedCategories.contains(element));
- }
- }
-
- /**
- * Method isValidName.
- * @param workingSetName
- * @return boolean
- */
- private boolean isValidName(String workingSetName) {
- if (workingSetName.length() == 0)
- return false;
- if (workingSetName.startsWith(" ")) //$NON-NLS-1$
- return false;
- if (workingSetName.endsWith(" ")) //$NON-NLS-1$
- return false;
- for (int i = 0; i < workingSetName.length(); i++) {
- char c = workingSetName.charAt(i);
- if (! Character.isLetterOrDigit(c) && ! Character.isSpaceChar(c))
- return false;
- }
- return true;
- }
-
- /**
- * Method isDuplicateName.
- * @param workingSetName
- * @return boolean
- */
- private boolean isDuplicateName(String workingSetName) {
- String originalWorkingSetName = workingSet.getName();
- if (originalWorkingSetName != null && workingSetName.equals(originalWorkingSetName)) {
- return false;
- }
- IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
- for (int i= 0; i < workingSets.length; i++) {
- if (workingSetName.equals(workingSets[i].getName())) {
- return true;
- }
- }
- return false;
- }
-
- protected CheckboxTreeViewer createFolderSelectionTree(Composite composite, int span) {
- CheckboxTreeViewer tree = new CheckboxTreeViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- tree.setUseHashlookup(true);
- tree.setContentProvider(new WorkbenchContentProvider() {
- public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof CVSWorkingSetPage) {
- return getRepositoryManager().getKnownRepositoryLocations();
- }
- if (parentElement instanceof ICVSRepositoryLocation) {
- ICVSRepositoryLocation location = (ICVSRepositoryLocation)parentElement;
- List result = new ArrayList();
- result.add(getModuleCategory(location));
- result.addAll(Arrays.asList(CVSWorkingSetPage.this.getChildren((ICVSRepositoryLocation)parentElement)));
- return (Object[]) result.toArray(new Object[result.size()]);
- }
- if (parentElement instanceof ModulesCategory) {
- ModulesCategory modules = (ModulesCategory)parentElement;
- return modules.getChildren(modules);
- }
- return new Object[0];
- }
- public Object getParent(Object element) {
- if (element instanceof ICVSRemoteFolder) {
- return ((ICVSRemoteFolder)element).getRepository();
- }
- return null;
- }
- public boolean hasChildren(Object parentElement) {
- return parentElement instanceof CVSWorkingSetPage || parentElement instanceof ICVSRepositoryLocation || parentElement instanceof ModulesCategory;
- }
- });
- tree.setLabelProvider(new WorkbenchLabelProvider());
- tree.setSorter(new RepositorySorter());
- tree.setInput(this);
-
- GridData data = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
- data.heightHint = LIST_HEIGHT_HINT;
- data.horizontalSpan = span;
- tree.getControl().setLayoutData(data);
- return tree;
- }
-
- /**
- * Method getChildren.
- * @param iCVSRepositoryLocation
- * @return Object[]
- */
- public ICVSRemoteResource[] getChildren(final ICVSRepositoryLocation location) {
- final ICVSRemoteResource[][] result = new ICVSRemoteResource[1][0];
- result[0] = null;
- try {
- getContainer().run(false /* fork */, true /* cancelable */, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- result[0] = location.members(CVSTag.DEFAULT, false /* show modules */, monitor);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getContainer().getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC);
- } catch (InterruptedException e) {
- }
- return result[0];
- }
-
- public ICVSRepositoryLocation[] getRepositoryLocationsWithCheckedChildren() {
- Set locations = new HashSet();
- for (Iterator iter = checkedFolders.iterator(); iter.hasNext();) {
- ICVSRemoteFolder element = (ICVSRemoteFolder) iter.next();
- locations.add(element.getRepository());
- }
- return (ICVSRepositoryLocation[]) locations.toArray(new ICVSRepositoryLocation[locations.size()]);
- }
- /**
- * Returns the workingSetName.
- * @return String
- */
- public String getWorkingSetName() {
- return workingSetName;
- }
-
- public ICVSRemoteFolder[] getSelectedFolders() {
- return (ICVSRemoteFolder[]) checkedFolders.toArray(new ICVSRemoteFolder[checkedFolders.size()]);
- }
-
- /**
- * @see org.eclipse.ui.dialogs.IWorkingSetPage#finish()
- */
- public void finish() {
- // todo
- }
- /**
- * @see org.eclipse.ui.dialogs.IWorkingSetPage#getSelection()
- */
- public IWorkingSet getSelection() {
- return workingSet;
- }
- /**
- * @see org.eclipse.ui.dialogs.IWorkingSetPage#setSelection(org.eclipse.ui.IWorkingSet)
- */
- public void setSelection(IWorkingSet workingSet) {
- this.workingSet = workingSet;
- workingSetName = workingSet.getName();
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CommentHistoryContentHandler.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CommentHistoryContentHandler.java
deleted file mode 100644
index f3f3d58f2..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CommentHistoryContentHandler.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.util.Vector;
-
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.Attributes;
-
-class CommentHistoryContentHandler extends DefaultHandler {
-
- private StringBuffer buffer;
- private Vector comments;
- public CommentHistoryContentHandler() {
- }
-
- /**
- * @see ContentHandler#characters(char[], int, int)
- */
- public void characters(char[] chars, int startIndex, int length) throws SAXException {
- if (buffer == null) return;
- buffer.append(chars, startIndex, length);
- }
-
- /**
- * @see ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
- */
- public void startElement(
- String namespaceURI,
- String localName,
- String qName,
- Attributes atts)
- throws SAXException {
-
- String elementName = getElementName(namespaceURI, localName, qName);
- if (elementName.equals(RepositoryManager.ELEMENT_COMMIT_COMMENT)) {
- buffer = new StringBuffer();
- return;
- }
- if (elementName.equals(RepositoryManager.ELEMENT_COMMIT_HISTORY)) {
- comments = new Vector(RepositoryManager.MAX_COMMENTS);
- return;
- }
- }
-
- /**
- * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
- */
- public void endElement(String namespaceURI, String localName, String qName) {
- String elementName = getElementName(namespaceURI, localName, qName);
- if (elementName.equals(RepositoryManager.ELEMENT_COMMIT_COMMENT)) {
- comments.add(buffer.toString());
- buffer = null;
- return;
- }
- if (elementName.equals(RepositoryManager.ELEMENT_COMMIT_HISTORY)) {
- RepositoryManager.previousComments = new String[comments.size()];
- comments.copyInto(RepositoryManager.previousComments);
- return;
- }
- }
-
- /*
- * Couldn't figure out from the SAX API exactly when localName vs. qName is used.
- * However, the XML for project sets doesn't use namespaces so either of the two names
- * is fine. Therefore, use whichever one is provided.
- */
- private String getElementName(String namespaceURI, String localName, String qName) {
- if (localName != null && localName.length() > 0) {
- return localName;
- } else {
- return qName;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CopyRepositoryNameAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CopyRepositoryNameAction.java
deleted file mode 100644
index b237d36a1..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CopyRepositoryNameAction.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.internal.ccvs.ui.repo;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
-
-public class CopyRepositoryNameAction extends CVSAction {
- protected boolean isEnabled() throws TeamException {
- return true;
- }
- public void execute(IAction action) {
- ICVSRepositoryLocation[] locations = getSelectedRepositories();
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < locations.length; i++) {
- buffer.append(locations[i].getLocation());
- if (i < locations.length - 1) buffer.append("\n"); //$NON-NLS-1$
- }
- copyToClipbard(Display.getDefault(), buffer.toString());
- }
- protected ICVSRepositoryLocation[] getSelectedRepositories() {
- ArrayList repositories = null;
- if (!selection.isEmpty()) {
- repositories = new ArrayList();
- Iterator elements = ((IStructuredSelection)selection).iterator();
- while (elements.hasNext()) {
- Object next = getAdapter(elements.next(), ICVSRepositoryLocation.class);
- if (next instanceof ICVSRepositoryLocation) {
- repositories.add(next);
- continue;
- }
- }
- }
- if (repositories != null && !repositories.isEmpty()) {
- ICVSRepositoryLocation[] result = new ICVSRepositoryLocation[repositories.size()];
- repositories.toArray(result);
- return result;
- }
- return new ICVSRepositoryLocation[0];
- }
- private void copyToClipbard(Display display, String str) {
- Clipboard clipboard = new Clipboard(display);
- clipboard.setContents(new String[] { str }, new Transfer[] { TextTransfer.getInstance()});
- clipboard.dispose();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/NewCVSAnonEclipseConnection.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/NewCVSAnonEclipseConnection.java
deleted file mode 100644
index 586cce61a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/NewCVSAnonEclipseConnection.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.internal.ccvs.ui.repo;
-
-
-import java.util.Properties;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.wizards.NewLocationWizard;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * Called from Welcome page only.
- */
-public class NewCVSAnonEclipseConnection extends Action {
- public void run() {
- Shell shell;
- IWorkbenchWindow window = CVSUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- shell = window.getShell();
- } else {
- Display display = Display.getCurrent();
- shell = new Shell(display);
- }
- Properties p = new Properties();
- p.setProperty("connection", "pserver"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("user", "anonymous"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("host", "dev.eclipse.org"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("root", "/home/eclipse"); //$NON-NLS-1$ //$NON-NLS-2$
- NewLocationWizard wizard = new NewLocationWizard(p);
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.open();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/NewCVSRepositoryAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/NewCVSRepositoryAction.java
deleted file mode 100644
index 172607e6a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/NewCVSRepositoryAction.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.internal.ccvs.ui.repo;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.wizards.NewLocationWizard;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * Called from Welcome page only.
- */
-public class NewCVSRepositoryAction extends Action {
- public void run() {
- Shell shell;
- IWorkbenchWindow window = CVSUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- shell = window.getShell();
- } else {
- Display display = Display.getCurrent();
- shell = new Shell(display);
- }
- NewLocationWizard wizard = new NewLocationWizard();
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.open();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectSelectionPage.java
deleted file mode 100644
index f3243b702..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectSelectionPage.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.ListSelectionArea;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.WorkingSetSelectionArea;
-import org.eclipse.team.internal.ccvs.ui.model.RemoteContentProvider;
-import org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Page that allows the user to select the remote projects whose tags should be
- * refreshed.
- */
-public class RefreshRemoteProjectSelectionPage extends CVSWizardPage {
-
- private Dialog parentDialog;
- private ICVSRepositoryLocation root;
- private ICVSRemoteResource[] rootFolders;
- private ListSelectionArea listArea;
- private WorkingSetSelectionArea workingSetArea;
- private IWorkingSet workingSet;
- private IDialogSettings settings;
-
- /**
- * Custom input provider which returns the list of root folders
- */
- private class InputElement implements IWorkbenchAdapter, IAdaptable {
- public Object[] getChildren(Object o) {
- return rootFolders;
- }
- public ImageDescriptor getImageDescriptor(Object object) {
- return null;
- }
- public String getLabel(Object o) {
- return null;
- }
- public Object getParent(Object o) {
- return null;
- }
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
- return null;
- }
- }
-
- /**
- * Constructor for RemoteProjectSelectionPage.
- * @param pageName
- * @param title
- * @param titleImage
- * @param description
- */
- public RefreshRemoteProjectSelectionPage(
- String pageName,
- String title,
- ImageDescriptor titleImage,
- String description,
- Dialog parentDialog,
- IDialogSettings settings,
- ICVSRepositoryLocation root,
- ICVSRemoteResource[] rootFolders) {
- super(pageName, title, titleImage, description);
- this.parentDialog = parentDialog;
- this.settings = settings;
- this.root = root;
- this.rootFolders = rootFolders;
- }
-
- /**
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 1);
- setControl(composite);
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.REFRESH_REMOTE_PROJECT_SELECTION_PAGE);
-
- listArea = new ListSelectionArea(parentDialog,
- new InputElement(),
- new RemoteContentProvider(),
- new WorkbenchLabelProvider(),
- Policy.bind("RefreshRemoteProjectSelectionPage.selectRemoteProjects")); //$NON-NLS-1$
- listArea.createArea(composite);
- listArea.addPropertyChangeListener(new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- updateEnablement();
- }
- });
- listArea.getViewer().setSorter(new RepositorySorter());
-
- workingSetArea = new WorkingSetSelectionArea(parentDialog, Policy.bind("RefreshRemoteProjectSelectionPage.noWorkingSet"), Policy.bind("RefreshRemoteProjectSelectionPage.workingSet"), settings); //$NON-NLS-1$ //$NON-NLS-2$
- setWorkingSet(workingSet);
- workingSetArea.addPropertyChangeListener(new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- workingSet = (IWorkingSet)event.getNewValue();
- handleWorkingSetChange();
- }
- });
- workingSetArea.createArea(composite);
- Dialog.applyDialogFont(parent);
- }
-
- /**
- * Sets the working set that should be selected in the most recently
- * used working set list.
- *
- * @param workingSet the working set that should be selected.
- * has to exist in the list returned by
- * org.eclipse.ui.IWorkingSetManager#getRecentWorkingSets().
- * Must not be null.
- */
- public void setWorkingSet(IWorkingSet workingSet) {
- this.workingSet = workingSet;
-
- if (workingSetArea != null) {
- workingSetArea.setWorkingSet(workingSet);
- }
- }
-
- private void handleWorkingSetChange() {
- if (workingSet != null) {
- // check any projects in the working set
- listArea.getViewer().setAllChecked(false);
- RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- ICVSRemoteResource[] resources = manager.filterResources(workingSet, rootFolders);
- for (int i = 0; i < resources.length; i++) {
- ICVSRemoteResource resource = resources[i];
- listArea.getViewer().setChecked(resource, true);
- }
-
- }
- }
-
- private void updateEnablement() {
- boolean atLeastOne = listArea.getViewer().getCheckedElements().length > 0;
- setPageComplete(atLeastOne);
- }
-
- /**
- * Method getSelectedRemoteProject.
- * @return ICVSRemoteResource[]
- */
- public ICVSRemoteResource[] getSelectedRemoteProject() {
- Object[] checked = listArea.getViewer().getCheckedElements();
- return (ICVSRemoteResource[]) Arrays.asList(checked).toArray(new ICVSRemoteResource[checked.length]);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java
deleted file mode 100644
index 5e7f3a6ea..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Wizard for refreshing the tags for a CVS repository location
- */
-public class RefreshRemoteProjectWizard extends Wizard {
-
- private Dialog parentDialog;
- private ICVSRepositoryLocation root;
- private ICVSRemoteResource[] rootFolders;
- private RefreshRemoteProjectSelectionPage projectSelectionPage;
- private IDialogSettings settings;
-
- public static boolean execute(Shell shell, final ICVSRepositoryLocation root) {
- final ICVSRemoteResource[][] rootFolders = new ICVSRemoteResource[1][0];
- rootFolders[0] = null;
- try {
- new ProgressMonitorDialog(shell).run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- rootFolders[0] = CVSUIPlugin.getPlugin().getRepositoryManager().getFoldersForTag(root, CVSTag.DEFAULT, monitor);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(shell, null, null, e);
- return false;
- } catch (InterruptedException e) {
- return false;
- }
- RefreshRemoteProjectWizard wizard = new RefreshRemoteProjectWizard(root, rootFolders[0]);
- WizardDialog dialog = new WizardDialog(shell, wizard);
- wizard.setParentDialog(dialog);
- return (dialog.open() == Window.OK);
- }
-
- public RefreshRemoteProjectWizard(ICVSRepositoryLocation root, ICVSRemoteResource[] rootFolders) {
- this.root = root;
- this.rootFolders = rootFolders;
- IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings();
- this.settings = workbenchSettings.getSection("RefreshRemoteProjectWizard");//$NON-NLS-1$
- if (settings == null) {
- this.settings = workbenchSettings.addNewSection("RefreshRemoteProjectWizard");//$NON-NLS-1$
- }
- setWindowTitle(Policy.bind("RefreshRemoteProjectWizard.title")); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.jface.wizard.IWizard#addPages()
- */
- public void addPages() {
- setNeedsProgressMonitor(true);
- ImageDescriptor substImage = CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_NEW_LOCATION);
- projectSelectionPage = new RefreshRemoteProjectSelectionPage(
- "ProjectSelectionPage", //$NON-NLS-1$
- Policy.bind("RefreshRemoteProjectSelectionPage.pageTitle"), //$NON-NLS-1$
- substImage,
- Policy.bind("RefreshRemoteProjectSelectionPage.pageDescription"), //$NON-NLS-1$
- parentDialog, settings, root, rootFolders);
- addPage(projectSelectionPage);
- }
-
- /**
- * @see org.eclipse.jface.wizard.Wizard#performFinish()
- */
- public boolean performFinish() {
- final ICVSRemoteResource[] selectedFolders = projectSelectionPage.getSelectedRemoteProject();
- try {
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- monitor.beginTask(null, 100 * selectedFolders.length);
- try {
- RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- for (int i = 0; i < selectedFolders.length; i++) {
- ICVSRemoteResource resource = selectedFolders[i];
- if (resource instanceof ICVSFolder) {
- manager.refreshDefinedTags((ICVSFolder)resource, true /* replace */, true, Policy.subMonitorFor(monitor, 100));
- }
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- });
- return true;
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null ,e);
- } catch (InterruptedException e) {
- }
- return false;
- }
-
- /**
- * Sets the parentDialog.
- * @param parentDialog The parentDialog to set
- */
- public void setParentDialog(Dialog parentDialog) {
- this.parentDialog = parentDialog;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshTagsAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshTagsAction.java
deleted file mode 100644
index bb2402e2e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshTagsAction.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
-import org.eclipse.team.internal.ccvs.ui.model.BranchCategory;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class RefreshTagsAction extends CVSAction {
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- ICVSRepositoryLocation[] locations = getSelectedRepositoryLocations();
- RefreshRemoteProjectWizard.execute(getShell(), locations[0]);
- }
-
- /**
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSRepositoryLocation[] locations = getSelectedRepositoryLocations();
- if (locations.length != 1) return false;
- return true;
- }
-
- /**
- * Returns the selected CVS tags
- */
- protected ICVSRepositoryLocation[] getSelectedRepositoryLocations() {
- ArrayList tags = new ArrayList();
- if (!selection.isEmpty()) {
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object element = elements.next();
- Object adapter = getAdapter(element, ICVSRepositoryLocation.class);
- if (adapter != null) {
- tags.add(adapter);
- } else {
- adapter = getAdapter(element, BranchCategory.class);
- if(adapter != null) {
- tags.add(((BranchCategory)adapter).getRepository(adapter));
- }
- }
- }
- }
- return (ICVSRepositoryLocation[])tags.toArray(new ICVSRepositoryLocation[tags.size()]);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteProjectsView.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteProjectsView.java
deleted file mode 100644
index 84b0a63dc..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteProjectsView.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.model.CVSTagElement;
-import org.eclipse.team.internal.ccvs.ui.model.RemoteProjectsElement;
-import org.eclipse.team.internal.ui.actions.TeamAction;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * This view shows a list of projects stored in a repository that share the same
- * tag
- */
-public class RemoteProjectsView extends RemoteViewPart {
-
- public static final String VIEW_ID = "org.eclipse.team.ccvs.ui.RemoteProjectsView"; //$NON-NLS-1$
-
- private RemoteProjectsElement root;
-
- /**
- * Constructor for RemoteProjectsView.
- * @param partName
- */
- public RemoteProjectsView() {
- super(VIEW_ID);
- }
-
- protected void initializeListeners() {
- // listen for selection changes in the repo view
- getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(RepositoriesView.VIEW_ID, this);
- getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(RemoteTagsView.VIEW_ID, this);
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPart#dispose()
- */
- public void dispose() {
- getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(RepositoriesView.VIEW_ID, this);
- getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(RemoteTagsView.VIEW_ID, this);
- super.dispose();
- }
-
- /**
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
- */
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- Object[] selected = TeamAction.getSelectedAdaptables(selection, ICVSRepositoryLocation.class);
- if (selected.length != 0) {
- root.setRoot((ICVSRepositoryLocation)selected[0]);
- } else {
- selected = TeamAction.getSelectedAdaptables(selection, CVSTagElement.class);
- if (selected.length != 0) {
- CVSTagElement element = (CVSTagElement)selected[0];
- root.setRoot(element.getRoot());
- root.setTag(element.getTag());
- }
- };
- refreshViewer();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart#getTreeInput()
- */
- protected Object getTreeInput() {
- root = new RemoteProjectsElement();
- return root;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteTagsView.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteTagsView.java
deleted file mode 100644
index 99f9d931c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteTagsView.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.internal.ccvs.ui.repo;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ui.actions.TeamAction;
-import org.eclipse.ui.IWorkbenchPart;
-
-
-/**
- * This view shows the tags for the repository selected in the Repositories view
- */
-public class RemoteTagsView extends RemoteViewPart {
-
- public static final String VIEW_ID = "org.eclipse.team.ccvs.ui.RemoteTagsView"; //$NON-NLS-1$
-
- /**
- * Constructor for RemoteTagsView.
- * @param partName
- */
- public RemoteTagsView() {
- super(VIEW_ID);
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart#getTreeInput()
- */
- protected Object getTreeInput() {
- return null;
- }
-
- protected void initializeListeners() {
- // listen for selection changes in the repo view
- getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(RepositoriesView.VIEW_ID, this);
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPart#dispose()
- */
- public void dispose() {
- getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(RepositoriesView.VIEW_ID, this);
- super.dispose();
- }
-
- /**
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
- */
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- Object[] selected = TeamAction.getSelectedAdaptables(selection, ICVSRepositoryLocation.class);
- if (selected.length == 0) {
- getViewer().setInput(null);
- } else {
- getViewer().setInput((ICVSRepositoryLocation)selected[0]);
- };
- refreshViewer();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java
deleted file mode 100644
index 15227fd16..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.actions.OpenRemoteFileAction;
-import org.eclipse.team.internal.ccvs.ui.model.RemoteContentProvider;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetEditWizard;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.DrillDownAdapter;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * This class acts as a superclass to all remote CVS tree views.
- */
-public abstract class RemoteViewPart extends ViewPart implements ISelectionListener {
-
- // The tree viewer
- protected TreeViewer viewer;
-
- // Drill down adapter
- private DrillDownAdapter drillPart;
-
- private Action refreshAction;
- private Action collapseAllAction;
-
- private Action selectWorkingSetAction;
- private Action deselectWorkingSetAction;
- private Action editWorkingSetAction;
- private OpenRemoteFileAction openAction;
-
- private RemoteContentProvider contentProvider;
- private IDialogSettings settings;
- private static final String SELECTED_WORKING_SET = "SelectedWorkingSet"; //$NON-NLS-1$
-
- private class ChangeWorkingSetAction extends Action {
- String name;
- public ChangeWorkingSetAction(String name, int index) {
- super(Policy.bind("RepositoriesView.workingSetMenuItem", new Integer(index).toString(), name)); //$NON-NLS-1$
- this.name = name;
- }
- public void run() {
- IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager();
- setWorkingSet(manager.getWorkingSet(name), true);
- }
- }
-
- protected RemoteViewPart(String partName) {
- IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings();
- settings = workbenchSettings.getSection(partName);
- if (settings == null) {
- settings = workbenchSettings.addNewSection(partName);
- }
- String name = settings.get(SELECTED_WORKING_SET);
- IWorkingSet set = null;
- if (name != null)
- set = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSet(name);
- setWorkingSet(set, false);
- }
-
- /**
- * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
- */
- public void createPartControl(Composite parent) {
- viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
- viewer.setContentProvider(getContentProvider());
- viewer.setLabelProvider(new WorkbenchLabelProvider());
- getSite().setSelectionProvider(viewer);
- viewer.setInput(getTreeInput());
- viewer.setSorter(new RepositorySorter());
- viewer.getControl().addKeyListener(getKeyListener());
- drillPart = new DrillDownAdapter(viewer);
-
- contributeActions();
- initializeListeners();
-
- // F1 Help
- String helpID = getHelpContextId();
- if (helpID != null)
- WorkbenchHelp.setHelp(viewer.getControl(), helpID);
- }
-
- /**
- * @see WorkbenchPart#setFocus
- */
- public void setFocus() {
- viewer.getControl().setFocus();
- }
-
- /**
- * Method getHelpContextId should be overridden by subclasses to provide the
- * appropriate help id.
- *
- * @return String
- */
- protected String getHelpContextId() {
- return null;
- }
-
- /**
- * Method getTreeInput.
- * @return Object
- */
- protected abstract Object getTreeInput();
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart#getContentProvider()
- */
- protected RemoteContentProvider getContentProvider() {
- if (contentProvider == null) {
- contentProvider = new RemoteContentProvider();
- }
- return contentProvider;
- };
-
- protected KeyAdapter getKeyListener() {
- return new KeyAdapter() {
- public void keyPressed(KeyEvent event) {
- if (event.keyCode == SWT.F5) {
- refreshAction.run();
- }
- }
- };
- }
-
- protected void initializeListeners() {
- // listen for selection changes in the repo view
- getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(this);
- }
-
- protected IWorkingSet getWorkingSet() {
- return getContentProvider().getWorkingSet();
- }
-
- protected void setWorkingSet(IWorkingSet workingSet, boolean refreshViewer) {
- if (settings != null) {
- String name = null;
- if (workingSet != null)
- name = workingSet.getName();
- settings.put(SELECTED_WORKING_SET, name);
- }
- getContentProvider().setWorkingSet(workingSet);
- String toolTip;
- if (workingSet == null) {
- toolTip = null;
- } else {
- toolTip = Policy.bind("RemoteViewPart.workingSetToolTip", workingSet.getName()); //$NON-NLS-1$
- }
- setTitleToolTip(toolTip);
- if (refreshViewer) refreshViewer();
- }
-
- /**
- * Contribute actions to the view
- */
- protected void contributeActions() {
-
- final Shell shell = getShell();
-
- // Refresh (toolbar)
- CVSUIPlugin plugin = CVSUIPlugin.getPlugin();
- refreshAction = new Action(Policy.bind("RepositoriesView.refresh"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_REFRESH_ENABLED)) { //$NON-NLS-1$
- public void run() {
- refreshAll();
- }
- };
- refreshAction.setToolTipText(Policy.bind("RepositoriesView.refreshTooltip")); //$NON-NLS-1$
- refreshAction.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH_DISABLED));
- refreshAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH));
- getViewSite().getActionBars().setGlobalActionHandler(IWorkbenchActionConstants.REFRESH, refreshAction);
-
- collapseAllAction = new Action(Policy.bind("RepositoriesView.collapseAll"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL_ENABLED)) { //$NON-NLS-1$
- public void run() {
- collapseAll();
- }
- };
- collapseAllAction.setToolTipText(Policy.bind("RepositoriesView.collapseAllTooltip")); //$NON-NLS-1$
- collapseAllAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL));
-
- // Select Working Set (popup)
- selectWorkingSetAction = new Action(Policy.bind("RepositoriesView.newWorkingSet")) { //$NON-NLS-1$
- public void run() {
- IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager();
- IWorkingSetSelectionDialog dialog = manager.createWorkingSetSelectionDialog(shell, false);
- IWorkingSet workingSet = null;
- if (workingSet != null)
- dialog.setSelection(new IWorkingSet[]{workingSet});
-
- if (dialog.open() == Window.OK) {
- IWorkingSet[] result = dialog.getSelection();
- if (result != null && result.length > 0) {
- setWorkingSet(result[0], true);
- manager.addRecentWorkingSet(result[0]);
- } else {
- setWorkingSet(null, true);
- }
- }
- }
- };
- WorkbenchHelp.setHelp(selectWorkingSetAction, IHelpContextIds.SELECT_WORKING_SET_ACTION);
-
- // Deselect Working Set (popup)
- deselectWorkingSetAction = new Action(Policy.bind("RepositoriesView.deselectWorkingSet")) { //$NON-NLS-1$
- public void run() {
- setWorkingSet(null, true);
- }
- };
- WorkbenchHelp.setHelp(deselectWorkingSetAction, IHelpContextIds.DESELECT_WORKING_SET_ACTION);
-
- // Edit Working Set (popup)
- editWorkingSetAction = new Action(Policy.bind("RepositoriesView.editWorkingSet")) { //$NON-NLS-1$
- public void run() {
- IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager();
- IWorkingSet workingSet = getWorkingSet();
- if (workingSet == null) {
- setEnabled(false);
- return;
- }
- IWorkingSetEditWizard wizard = manager.createWorkingSetEditWizard(workingSet);
- if (wizard == null) {
- // todo
- String title = Policy.bind("EditWorkingSetAction.error.nowizard.title"); //$NON-NLS-1$
- String message = Policy.bind("EditWorkingSetAction.error.nowizard.message"); //$NON-NLS-1$
- CVSUIPlugin.openError(shell, title, message, null);
- return;
- }
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.create();
- if (dialog.open() == WizardDialog.OK)
- setWorkingSet(wizard.getSelection(), true);
- }
- };
- WorkbenchHelp.setHelp(editWorkingSetAction, IHelpContextIds.EDIT_WORKING_SET_ACTION);
-
- // Create the popup menu
- MenuManager menuMgr = new MenuManager();
- Tree tree = viewer.getTree();
- Menu menu = menuMgr.createContextMenu(tree);
- menuMgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- addWorkbenchActions(manager);
- }
-
- });
- menuMgr.setRemoveAllWhenShown(true);
- tree.setMenu(menu);
- getSite().registerContextMenu(menuMgr, viewer);
-
- // Create the local tool bar
- IActionBars bars = getViewSite().getActionBars();
- IToolBarManager tbm = bars.getToolBarManager();
- drillPart.addNavigationActions(tbm);
- tbm.add(refreshAction);
- tbm.add(new Separator());
- tbm.add(collapseAllAction);
- tbm.update(false);
-
- // Create the open action for double clicks
- openAction = new OpenRemoteFileAction();
- viewer.addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent e) {
- handleDoubleClick(e);
- }
- });
-
- updateWorkingSetMenu();
- bars.updateActionBars();
- }
-
- /**
- * Add the menu actions that were contributed in plugin.xml
- *
- * @param manager
- */
- protected void addWorkbenchActions(IMenuManager manager) {
- // File actions go first (view file)
- manager.add(new Separator(IWorkbenchActionConstants.GROUP_FILE));
- // Misc additions
- manager.add(new Separator("checkoutGroup")); //$NON-NLS-1$
- manager.add(new Separator("tagGroup")); //$NON-NLS-1$
- manager.add(new Separator("miscGroup")); //$NON-NLS-1$
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
- manager.add(refreshAction);
- }
-
- /**
- * Method getShell.
- * @return Shell
- */
- protected Shell getShell() {
- return viewer.getTree().getShell();
- }
-
- public void updateWorkingSetMenu() {
- IActionBars bars = getViewSite().getActionBars();
- IMenuManager mgr = bars.getMenuManager();
-
- mgr.removeAll();
-
- mgr.add(selectWorkingSetAction);
- mgr.add(deselectWorkingSetAction);
- deselectWorkingSetAction.setEnabled(getWorkingSet() != null);
- mgr.add(editWorkingSetAction);
- editWorkingSetAction.setEnabled(getWorkingSet() != null);
-
- mgr.add(new Separator());
-
- IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager();
- IWorkingSet[] workingSets = manager.getWorkingSets();
- for (int i = 0; i < workingSets.length; i++) {
- String name = workingSets[i].getName();
- ChangeWorkingSetAction action = new ChangeWorkingSetAction(name, i + 1);
- mgr.add(action);
- action.setChecked(getWorkingSet() != null && getWorkingSet().getName().equals(name));
- }
-
- bars.updateActionBars();
- }
-
- protected void refreshAll() {
- //CVSUIPlugin.getPlugin().getRepositoryManager().clearCaches();
- refreshViewer();
- }
-
- protected void refreshViewer() {
- if (viewer == null) return;
- ((RemoteContentProvider)viewer.getContentProvider()).cancelJobs(CVSUIPlugin.getPlugin().getRepositoryManager().getKnownRepositoryRoots());
- CVSUIPlugin.getPlugin().getRepositoryManager().purgeCache();
- updateWorkingSetMenu();
- viewer.refresh();
- }
-
- public void collapseAll() {
- if (viewer == null) return;
- viewer.getControl().setRedraw(false);
- viewer.collapseToLevel(viewer.getInput(), TreeViewer.ALL_LEVELS);
- viewer.getControl().setRedraw(true);
- }
- /**
- * The mouse has been double-clicked in the tree, perform appropriate
- * behaviour.
- */
- private void handleDoubleClick(DoubleClickEvent e) {
- // Only act on single selection
- ISelection selection = e.getSelection();
- if (selection instanceof IStructuredSelection) {
- IStructuredSelection structured = (IStructuredSelection)selection;
- if (structured.size() == 1) {
- Object first = structured.getFirstElement();
- if (first instanceof ICVSRemoteFile) {
- // It's a file, open it.
- openAction.selectionChanged(null, selection);
- openAction.run(null);
- } else {
- // Try to expand/contract
- viewer.setExpandedState(first, !viewer.getExpandedState(first));
- }
- }
- }
- }
-
- /**
- * Returns the viewer.
- * @return TreeViewer
- */
- protected TreeViewer getViewer() {
- return viewer;
- }
-
- /**
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
- */
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPart#dispose()
- */
- public void dispose() {
- getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(this);
- super.dispose();
- viewer = null;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java
deleted file mode 100644
index 7b22b5605..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
-import org.eclipse.team.internal.ccvs.ui.model.RepositoryLocationSchedulingRule;
-import org.eclipse.team.internal.ui.dialogs.DetailsDialogWithProjects;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.SelectionListenerAction;
-import org.eclipse.ui.progress.IProgressService;
-
-
-/**
- * RemoveRootAction removes a repository
- */
-public class RemoveRootAction extends SelectionListenerAction {
- private IStructuredSelection selection;
- /* internal use only */ Shell shell;
- private RepositoriesView view;
-
- public RemoveRootAction(Shell shell, RepositoriesView view) {
- super(Policy.bind("RemoteRootAction.label")); //$NON-NLS-1$
- this.view = view;
- this.shell = shell;
- }
-
- /**
- * Returns the selected remote files
- */
- protected ICVSRepositoryLocation[] getSelectedRemoteRoots() {
- ArrayList resources = null;
- if (selection!=null && !selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = ((IStructuredSelection) selection).iterator();
- while (elements.hasNext()) {
- Object next = CVSAction.getAdapter(elements.next(), ICVSRepositoryLocation.class);
- if (next instanceof ICVSRepositoryLocation) {
- resources.add(next);
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- ICVSRepositoryLocation[] result = new ICVSRepositoryLocation[resources.size()];
- resources.toArray(result);
- return result;
- }
- return new ICVSRepositoryLocation[0];
- }
-
- protected String getErrorTitle() {
- return Policy.bind("RemoveRootAction.removeRoot_3"); //$NON-NLS-1$
- }
-
- public void run() {
- ICVSRepositoryLocation[] roots = getSelectedRemoteRoots();
- if (roots.length == 0) return;
- final CVSProviderPlugin provider = CVSProviderPlugin.getPlugin();
- for (int i = 0; i < roots.length; i++) {
- final ICVSRepositoryLocation root = roots[i];
- try {
- // Check if any projects are shared with the repository
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- final ArrayList shared = new ArrayList();
- for (int j = 0; j < projects.length; j++) {
- RepositoryProvider teamProvider = RepositoryProvider.getProvider(projects[j], CVSProviderPlugin.getTypeId());
- if (teamProvider!=null) {
- CVSTeamProvider cvsProvider = (CVSTeamProvider)teamProvider;
- if (cvsProvider.getCVSWorkspaceRoot().getRemoteLocation().equals(roots[i])) {
- shared.add(projects[j]);
- }
- }
- }
-
- // This will notify the RepositoryManager of the removal
- if (!shared.isEmpty()) {
- final String location = roots[i].getLocation();
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- DetailsDialogWithProjects dialog = new DetailsDialogWithProjects(
- shell,
- Policy.bind("RemoteRootAction.Unable_to_Discard_Location_1"), //$NON-NLS-1$
- Policy.bind("RemoteRootAction.Projects_in_the_local_workspace_are_shared_with__2", location), //$NON-NLS-1$
- Policy.bind("RemoteRootAction.The_projects_that_are_shared_with_the_above_repository_are__4"), //$NON-NLS-1$
- (IProject[]) shared.toArray(new IProject[shared.size()]),
- false,
- DetailsDialogWithProjects.DLG_IMG_ERROR);
- dialog.open();
- }
- });
- } else {
- IProgressService manager = PlatformUI.getWorkbench().getProgressService();
- try {
- manager.busyCursorWhile(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- ISchedulingRule rule = new RepositoryLocationSchedulingRule(root);
- try {
- Platform.getJobManager().beginRule(rule, monitor);
- view.getContentProvider().cancelJobs(root);
- provider.disposeRepository(root);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- } finally {
- Platform.getJobManager().endRule(rule);
- }
-
- }
- });
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- } catch (InterruptedException e) {
- // Canceled
- return;
- }
- }
- } catch (CVSException e) {
- CVSUIPlugin.openError(view.getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC | CVSUIPlugin.LOG_TEAM_EXCEPTIONS | CVSUIPlugin.LOG_NONTEAM_EXCEPTIONS);
- }
- }
- }
-
- protected boolean updateSelection(IStructuredSelection selection) {
- this.selection = selection;
-
- ICVSRepositoryLocation[] roots = getSelectedRemoteRoots();
- return roots.length > 0;
- }
-
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java
deleted file mode 100644
index 6ab0637d7..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-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.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.IRepositoryListener;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.WorkbenchUserAuthenticator;
-import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
-import org.eclipse.team.internal.ccvs.ui.model.AllRootsElement;
-import org.eclipse.team.internal.ccvs.ui.wizards.NewLocationWizard;
-import org.eclipse.team.internal.core.TeamPlugin;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.dialogs.PropertyDialogAction;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * RepositoriesView is a view on a set of known CVS repositories
- * which allows navigation of the structure of the repository and
- * the performing of CVS-specific operations on the repository contents.
- */
-public class RepositoriesView extends RemoteViewPart {
- public static final String VIEW_ID = "org.eclipse.team.ccvs.ui.RepositoriesView"; //$NON-NLS-1$
-
- // The root
- private AllRootsElement root;
-
- // Actions
- private Action newAction;
- private Action newAnonAction;
- private PropertyDialogAction propertiesAction;
- private RemoveRootAction removeRootAction;
-
- IRepositoryListener listener = new IRepositoryListener() {
- public void repositoryAdded(final ICVSRepositoryLocation root) {
- getViewer().getControl().getDisplay().syncExec(new Runnable() {
- public void run() {
- refreshViewer();
- getViewer().setSelection(new StructuredSelection(root));
- }
- });
- }
- public void repositoryRemoved(ICVSRepositoryLocation root) {
- refresh();
- }
- public void repositoriesChanged(ICVSRepositoryLocation[] roots) {
- refresh();
- }
- private void refresh() {
- Display display = getViewer().getControl().getDisplay();
- display.syncExec(new Runnable() {
- public void run() {
- RepositoriesView.this.refreshViewer();
- }
- });
- }
- };
-
- /**
- * Constructor for RepositoriesView.
- * @param partName
- */
- public RepositoriesView() {
- super(VIEW_ID);
- }
-
- /**
- * Contribute actions to the view
- */
- protected void contributeActions() {
-
- final Shell shell = getShell();
-
- // Create actions
-
- // New Repository (popup)
- newAction = new Action(Policy.bind("RepositoriesView.new"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_NEWLOCATION)) { //$NON-NLS-1$
- public void run() {
- NewLocationWizard wizard = new NewLocationWizard();
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.open();
- }
- };
- WorkbenchHelp.setHelp(newAction, IHelpContextIds.NEW_REPOSITORY_LOCATION_ACTION);
-
- if (includeAnonConnection()) {
- newAnonAction = new Action(Policy.bind("RepositoriesView.newAnonCVS"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_NEWLOCATION)) { //$NON-NLS-1$
- public void run() {
- Properties p = new Properties();
- p.setProperty("connection", "pserver"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("user", "anonymous"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("host", "dev.eclipse.org"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("root", "/home/eclipse"); //$NON-NLS-1$ //$NON-NLS-2$
- NewLocationWizard wizard = new NewLocationWizard(p);
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.open();
- }
- };
- WorkbenchHelp.setHelp(newAnonAction, IHelpContextIds.NEW_DEV_ECLIPSE_REPOSITORY_LOCATION_ACTION);
- }
-
- // Properties
- propertiesAction = new PropertyDialogAction(shell, getViewer());
- getViewSite().getActionBars().setGlobalActionHandler(IWorkbenchActionConstants.PROPERTIES, propertiesAction);
- IStructuredSelection selection = (IStructuredSelection)getViewer().getSelection();
- if (selection.size() == 1 && selection.getFirstElement() instanceof RepositoryRoot) {
- propertiesAction.setEnabled(true);
- } else {
- propertiesAction.setEnabled(false);
- }
- getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection ss = (IStructuredSelection)event.getSelection();
- boolean enabled = ss.size() == 1 && ss.getFirstElement() instanceof RepositoryRoot;
- propertiesAction.setEnabled(enabled);
- }
- });
- removeRootAction = new RemoveRootAction(viewer.getControl().getShell(), this);
- removeRootAction.selectionChanged((IStructuredSelection)null);
- WorkbenchHelp.setHelp(removeRootAction, IHelpContextIds.REMOVE_REPOSITORY_LOCATION_ACTION);
- IActionBars bars = getViewSite().getActionBars();
- bars.setGlobalActionHandler(IWorkbenchActionConstants.DELETE, removeRootAction);
- super.contributeActions();
- }
-
- /**
- * Method includeEclipseConnection.
- * @return boolean
- */
- private boolean includeAnonConnection() {
- return System.getProperty("eclipse.cvs.anon") != null; //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart#addWorkbenchActions(org.eclipse.jface.action.IMenuManager)
- */
- protected void addWorkbenchActions(IMenuManager manager) {
- // New actions go next
- MenuManager sub = new MenuManager(Policy.bind("RepositoriesView.newSubmenu"), IWorkbenchActionConstants.GROUP_ADD); //$NON-NLS-1$
- sub.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- manager.add(sub);
- super.addWorkbenchActions(manager);
- IStructuredSelection selection = (IStructuredSelection)getViewer().getSelection();
-
- removeRootAction.selectionChanged(selection);
- if(removeRootAction.isEnabled()) {
- manager.add(removeRootAction);
- }
-
- if (selection.size() == 1 && selection.getFirstElement() instanceof RepositoryRoot) {
- manager.add(new Separator());
- manager.add(propertiesAction);
- }
- sub.add(newAction);
- if (newAnonAction != null)
- sub.add(newAnonAction);
- }
-
- /*
- * @see WorkbenchPart#createPartControl
- */
- public void createPartControl(Composite parent) {
- super.createPartControl(parent);
- CVSUIPlugin.getPlugin().getRepositoryManager().addRepositoryListener(listener);
- }
-
- /*
- * @see WorkbenchPart#dispose
- */
- public void dispose() {
- CVSUIPlugin.getPlugin().getRepositoryManager().removeRepositoryListener(listener);
- super.dispose();
- }
-
- /**
- * Initialize the repositories and actions
- */
- private void initialize() {
- root = new AllRootsElement();
- }
-
- protected void initializeListeners() {
- super.initializeListeners();
- viewer.addSelectionChangedListener(removeRootAction);
- viewer.getControl().addKeyListener(new KeyListener() {
- public void keyPressed(KeyEvent event) {
- handleKeyPressed(event);
- }
- public void keyReleased(KeyEvent event) {
- handleKeyReleased(event);
- }
- });
- }
- public void handleKeyPressed(KeyEvent event) {
- if (event.character == SWT.DEL && event.stateMask == 0) {
- removeRootAction.run();
- }
- }
- protected void handleKeyReleased(KeyEvent event) {
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart#getTreeInput()
- */
- protected Object getTreeInput() {
- initialize();
- return root;
- }
-
- /**
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
- */
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- String msg = getStatusLineMessage(selection);
- getViewSite().getActionBars().getStatusLineManager().setMessage(msg);
- }
-
- private String getStatusLineMessage(ISelection selection) {
- if (selection==null || selection.isEmpty()) return ""; //$NON-NLS-1$
- if (!(selection instanceof IStructuredSelection)) return ""; //$NON-NLS-1$
- IStructuredSelection s = (IStructuredSelection)selection;
-
- if (s.size() > 1) return Policy.bind("RepositoriesView.NItemsSelected", String.valueOf(s.size())); //$NON-NLS-1$
- Object element = CVSAction.getAdapter(s.getFirstElement(), ICVSResource.class);
- if (element instanceof ICVSRemoteResource) {
- ICVSRemoteResource res = (ICVSRemoteResource)element;
- String name;
- if (res.isContainer()) {
- name = res.getRepositoryRelativePath();
- } else {
- try {
- name = res.getRepositoryRelativePath() + " " + ((ICVSRemoteFile)res).getRevision(); //$NON-NLS-1$
- } catch (TeamException e) {
- TeamPlugin.log(IStatus.ERROR, Policy.bind("RepositoriesView.CannotGetRevision"), e); //$NON-NLS-1$
- name = res.getRepositoryRelativePath();
- }
- }
- return Policy.bind("RepositoriesView.ResourceInRepository", name, res.getRepository().getLocation()); //$NON-NLS-1$
- }
- return Policy.bind("RepositoriesView.OneItemSelected"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart#getHelpContextId()
- */
- protected String getHelpContextId() {
- return IHelpContextIds.REPOSITORIES_VIEW;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart#getKeyListener()
- */
- protected KeyAdapter getKeyListener() {
- return new KeyAdapter() {
- public void keyPressed(KeyEvent event) {
- if (event.keyCode == SWT.F5) {
- if (WorkbenchUserAuthenticator.USE_ALTERNATE_PROMPTER) {
- try {
- ICVSRepositoryLocation[] locations = CVSProviderPlugin.getPlugin().getKnownRepositories();
- for (int i = 0; i < locations.length; i++) {
- locations[i].flushUserInfo();
- }
- } catch (CVSException e) {
- // Do nothing
- }
- } else {
- refreshAll();
- }
- } else if (event.keyCode == SWT.F9 && WorkbenchUserAuthenticator.USE_ALTERNATE_PROMPTER) {
- refreshAll();
- }
- }
- };
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesViewContentHandler.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesViewContentHandler.java
deleted file mode 100644
index 75288c944..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesViewContentHandler.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Stack;
-
-import org.eclipse.core.runtime.Path;
-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.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-public class RepositoriesViewContentHandler extends DefaultHandler {
-
- public static final String REPOSITORIES_VIEW_TAG = "repositories-view"; //$NON-NLS-1$
-
- public static final String REPOSITORY_TAG = "repository"; //$NON-NLS-1$
- public static final String WORKING_SET_TAG = "working-set"; //$NON-NLS-1$
- public static final String CURRENT_WORKING_SET_TAG = "current-working-set"; //$NON-NLS-1$
- public static final String MODULE_TAG = "module"; //$NON-NLS-1$
- public static final String TAG_TAG = "tag"; //$NON-NLS-1$
- public static final String AUTO_REFRESH_FILE_TAG = "auto-refresh-file"; //$NON-NLS-1$
-
- public static final String ID_ATTRIBUTE = "id"; //$NON-NLS-1$
- public static final String NAME_ATTRIBUTE = "name"; //$NON-NLS-1$
- public static final String PATH_ATTRIBUTE = "path"; //$NON-NLS-1$
- public static final String FULL_PATH_ATTRIBUTE = "full-path"; //$NON-NLS-1$
- public static final String TYPE_ATTRIBUTE = "type"; //$NON-NLS-1$
- public static final String READ_ID_ATTRIBUTE = "read-id"; //$NON-NLS-1$
- public static final String WRITE_ID_ATTRIBUTE = "write-id"; //$NON-NLS-1$
-
- public static final String[] TAG_TYPES = {"head", "branch", "version", "date"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- public static final String DEFAULT_TAG_TYPE = "version"; //$NON-NLS-1$
- public static final String DEFINED_MODULE_TYPE = "defined"; //$NON-NLS-1$
-
- private RepositoryManager manager;
- private StringBuffer buffer = new StringBuffer();
- private Stack tagStack = new Stack();
- private RepositoryRoot currentRepositoryRoot;
- private String currentRemotePath;
- private List tags;
- private List autoRefreshFiles;
- private boolean ignoreElements;
-
- public RepositoriesViewContentHandler(RepositoryManager manager) {
- this.manager = manager;
- }
-
- /**
- * @see ContentHandler#characters(char[], int, int)
- */
- public void characters(char[] chars, int startIndex, int length) throws SAXException {
- buffer.append(chars, startIndex, length);
- }
-
- /**
- * @see ContentHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
- */
- public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
-
- String elementName = getElementName(namespaceURI, localName, qName);
- if (!elementName.equals(tagStack.peek())) {
- throw new SAXException(Policy.bind("RepositoriesViewContentHandler.unmatchedTag", elementName)); //$NON-NLS-1$
- }
-
- if (elementName.equals(REPOSITORIES_VIEW_TAG)) {
- // all done
- } else if (elementName.equals(REPOSITORY_TAG)) {
- if (!ignoreElements) {
- manager.add(currentRepositoryRoot);
- }
- currentRepositoryRoot = null;
- } else if (elementName.equals(WORKING_SET_TAG)) {
- // This tag is no longer used
- ignoreElements = false;
- } else if (elementName.equals(CURRENT_WORKING_SET_TAG)) {
- // This tag is no longer used
- ignoreElements = false;
- } else if (elementName.equals(MODULE_TAG)) {
- if (! ignoreElements && currentRepositoryRoot != null) {
- currentRepositoryRoot.addTags(currentRemotePath,
- (CVSTag[]) tags.toArray(new CVSTag[tags.size()]));
- currentRepositoryRoot.setAutoRefreshFiles(currentRemotePath,
- (String[]) autoRefreshFiles.toArray(new String[autoRefreshFiles.size()]));
- }
- }
- tagStack.pop();
- }
-
- /**
- * @see ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
- */
- public void startElement(
- String namespaceURI,
- String localName,
- String qName,
- Attributes atts)
- throws SAXException {
-
- String elementName = getElementName(namespaceURI, localName, qName);
- if (elementName.equals(REPOSITORIES_VIEW_TAG)) {
- // just started
- } else if (elementName.equals(REPOSITORY_TAG)) {
- String id = atts.getValue(ID_ATTRIBUTE);
- if (id == null) {
- throw new SAXException(Policy.bind("RepositoriesViewContentHandler.missingAttribute", REPOSITORY_TAG, ID_ATTRIBUTE)); //$NON-NLS-1$
- }
- ICVSRepositoryLocation root;
- try {
- root = CVSProviderPlugin.getPlugin().getRepository(id);
- } catch (CVSException e) {
- throw new SAXException(Policy.bind("RepositoriesViewContentHandler.errorCreatingRoot", id), e); //$NON-NLS-1$
- }
- currentRepositoryRoot = new RepositoryRoot(root);
- String name = atts.getValue(NAME_ATTRIBUTE);
- if (name != null) {
- currentRepositoryRoot.setName(name);
- }
- String readLocation = atts.getValue(READ_ID_ATTRIBUTE);
- ((CVSRepositoryLocation)root).setReadLocation(readLocation);
- String writeLocation = atts.getValue(WRITE_ID_ATTRIBUTE);
- ((CVSRepositoryLocation)root).setWriteLocation(writeLocation);
- } else if (elementName.equals(WORKING_SET_TAG)) {
- String name = atts.getValue(NAME_ATTRIBUTE);
- if (name == null) {
- throw new SAXException(Policy.bind("RepositoriesViewContentHandler.missingAttribute", WORKING_SET_TAG, NAME_ATTRIBUTE)); //$NON-NLS-1$
- }
- // Ignore any elements until the corresponding end tag is reached
- ignoreElements = true;
- } else if (elementName.equals(MODULE_TAG)) {
- String path = atts.getValue(PATH_ATTRIBUTE);
- if (path == null) {
- throw new SAXException(Policy.bind("RepositoriesViewContentHandler.missingAttribute", MODULE_TAG, PATH_ATTRIBUTE)); //$NON-NLS-1$
- }
- String type = atts.getValue(TYPE_ATTRIBUTE);
- if (type != null && type.equals(DEFINED_MODULE_TYPE)) {
- path = RepositoryRoot.asDefinedModulePath(path);
- }
- startModule(path);
- } else if (elementName.equals(TAG_TAG)) {
- String type = atts.getValue(TYPE_ATTRIBUTE);
- if (type == null) {
- type = DEFAULT_TAG_TYPE;
- }
- String name = atts.getValue(NAME_ATTRIBUTE);
- if (name == null) {
- throw new SAXException(Policy.bind("RepositoriesViewContentHandler.missingAttribute", TAG_TAG, NAME_ATTRIBUTE)); //$NON-NLS-1$
- }
- tags.add(new CVSTag(name, getCVSTagType(type)));
- } else if (elementName.equals(AUTO_REFRESH_FILE_TAG)) {
- String path = atts.getValue(FULL_PATH_ATTRIBUTE);
- if (path == null) {
- // get the old path attribute format which was relative to the module
- path = atts.getValue(PATH_ATTRIBUTE);
- if (path == null) {
- throw new SAXException(Policy.bind("RepositoriesViewContentHandler.missingAttribute", AUTO_REFRESH_FILE_TAG, FULL_PATH_ATTRIBUTE)); //$NON-NLS-1$
- }
- if (RepositoryRoot.isDefinedModuleName(currentRemotePath)) {
- path = null;
- } else {
- path = new Path(currentRemotePath).append(path).toString();
- }
- }
- if (path != null) autoRefreshFiles.add(path);
- } else if (elementName.equals(CURRENT_WORKING_SET_TAG)) {
- // Ignore any elements until the corresponding end tag is reached
- ignoreElements = true;
- }
- // empty buffer
- buffer = new StringBuffer();
- tagStack.push(elementName);
- }
-
- private void startModule(String path) {
- currentRemotePath = path;
- tags = new ArrayList();
- autoRefreshFiles = new ArrayList();
- }
-
- /**
- * Method getCVSTagType.
- * @param type
- */
- public int getCVSTagType(String type) {
- for (int i = 0; i < TAG_TYPES.length; i++) {
- if (TAG_TYPES[i].equals(type))
- return i;
- }
- return CVSTag.VERSION;
- }
-
- /*
- * Couldn't figure out from the SAX API exactly when localName vs. qName is used.
- * However, the XML for project sets doesn't use namespaces so either of the two names
- * is fine. Therefore, use whichever one is provided.
- */
- private String getElementName(String namespaceURI, String localName, String qName) {
- if (localName != null && localName.length() > 0) {
- return localName;
- } else {
- return qName;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryManager.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryManager.java
deleted file mode 100644
index 91b93453c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryManager.java
+++ /dev/null
@@ -1,958 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.DataInputStream;
-import java.io.EOFException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-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.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSListener;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.AddToVersionControlDialog;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.IRepositoryListener;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.ReleaseCommentDialog;
-import org.eclipse.team.internal.ccvs.ui.XMLWriter;
-import org.eclipse.ui.IWorkingSet;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * This class is repsible for maintaining the UI's list of known repositories,
- * and a list of known tags within each of those repositories.
- *
- * It also provides a number of useful methods for assisting in repository operations.
- */
-public class RepositoryManager {
- // old state file
- private static final String STATE_FILE = ".repositoryManagerState"; //$NON-NLS-1$
- private static final int STATE_FILE_VERSION_1 = -1;
- // new state file
- private static final String REPOSITORIES_VIEW_FILE = "repositoriesView.xml"; //$NON-NLS-1$
- private static final String COMMENT_HIST_FILE = "commitCommentHistory.xml"; //$NON-NLS-1$
- static final String ELEMENT_COMMIT_COMMENT = "CommitComment"; //$NON-NLS-1$
- static final String ELEMENT_COMMIT_HISTORY = "CommitComments"; //$NON-NLS-1$
-
- private Map repositoryRoots = new HashMap();
-
- List listeners = new ArrayList();
-
- // The previously remembered comment
- static String[] previousComments = new String[0];
-
- public static boolean notifyRepoView = true;
-
- // Cache of changed repository roots
- private int notificationLevel = 0;
- private Map changedRepositories = new HashMap();
-
- static final int MAX_COMMENTS = 10;
-
- /**
- * Answer an array of all known remote roots.
- */
- public ICVSRepositoryLocation[] getKnownRepositoryLocations() {
- return CVSProviderPlugin.getPlugin().getKnownRepositories();
- }
-
- /**
- * Method getRepositoryRoots.
- * @param iCVSRepositoryLocations
- * @return RepositoryRoot[]
- */
- private RepositoryRoot[] getRepositoryRoots(ICVSRepositoryLocation[] locations) {
- List roots = new ArrayList();
- for (int i = 0; i < locations.length; i++) {
- ICVSRepositoryLocation location = locations[i];
- RepositoryRoot root = getRepositoryRootFor(location);
- if (root != null)
- roots.add(root);
- }
- return (RepositoryRoot[]) roots.toArray(new RepositoryRoot[roots.size()]);
- }
-
- public RepositoryRoot[] getKnownRepositoryRoots() {
- return getRepositoryRoots(getKnownRepositoryLocations());
- }
-
- /**
- * Get the list of known branch tags for a given remote root.
- */
- public CVSTag[] getKnownTags(ICVSFolder project, int tagType) {
- try {
- CVSTag[] tags = getKnownTags(project);
- Set result = new HashSet();
- for (int i = 0; i < tags.length; i++) {
- CVSTag tag = tags[i];
- if (tag.getType() == tagType)
- result.add(tag);
- }
-
- return (CVSTag[])result.toArray(new CVSTag[result.size()]);
- } catch(CVSException e) {
- CVSUIPlugin.log(e);
- return new CVSTag[0];
- }
- }
-
- /**
- * Get the list of known version tags for a given project.
- */
- public CVSTag[] getKnownTags(ICVSRepositoryLocation location, int tagType) {
- Set result = new HashSet();
- RepositoryRoot root = (RepositoryRoot)repositoryRoots.get(location.getLocation());
- if (root != null) {
- String[] paths = root.getKnownRemotePaths();
- for (int i = 0; i < paths.length; i++) {
- String path = paths[i];
- CVSTag[] tags = root.getKnownTags(path);
- for (int j = 0; j < tags.length; j++) {
- CVSTag tag = tags[j];
- if (tag.getType() == tagType)
- result.add(tag);
- }
- }
- }
- return (CVSTag[])result.toArray(new CVSTag[0]);
- }
-
- /**
- * Method getKnownTags.
- * @param repository
- * @param set
- * @param i
- * @param monitor
- * @return CVSTag[]
- */
- public CVSTag[] getKnownTags(ICVSRepositoryLocation repository, IWorkingSet set, int tagType, IProgressMonitor monitor) throws CVSException {
- if (set == null) {
- return getKnownTags(repository, tagType);
- }
- ICVSRemoteResource[] folders = getFoldersForTag(repository, CVSTag.DEFAULT, monitor);
- folders = filterResources(set, folders);
- Set tags = new HashSet();
- for (int i = 0; i < folders.length; i++) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder)folders[i];
- tags.addAll(Arrays.asList(getKnownTags(folder, tagType)));
- }
- return (CVSTag[]) tags.toArray(new CVSTag[tags.size()]);
- }
-
- public CVSTag[] getKnownTags(ICVSFolder project) throws CVSException {
- RepositoryRoot root = getRepositoryRootFor(project);
- String remotePath = RepositoryRoot.getRemotePathFor(project);
- return root.getKnownTags(remotePath);
- }
-
- /*
- * XXX I hope this methos is not needed in this form
- */
- public Map getKnownProjectsAndVersions(ICVSRepositoryLocation location) {
- Map knownTags = new HashMap();
- RepositoryRoot root = getRepositoryRootFor(location);
- String[] paths = root.getKnownRemotePaths();
- for (int i = 0; i < paths.length; i++) {
- String path = paths[i];
- Set result = new HashSet();
- result.addAll(Arrays.asList(root.getKnownTags(path)));
- knownTags.put(path, result);
- }
- return knownTags;
- }
-
- public ICVSRemoteResource[] getFoldersForTag(ICVSRepositoryLocation location, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask(Policy.bind("RepositoryManager.fetchingRemoteFolders", tag.getName()), 100); //$NON-NLS-1$
- if (tag.getType() == CVSTag.HEAD) {
- ICVSRemoteResource[] resources = location.members(tag, false, Policy.subMonitorFor(monitor, 60));
- RepositoryRoot root = getRepositoryRootFor(location);
- ICVSRemoteResource[] modules = root.getDefinedModules(tag, Policy.subMonitorFor(monitor, 40));
- ICVSRemoteResource[] result = new ICVSRemoteResource[resources.length + modules.length];
- System.arraycopy(resources, 0, result, 0, resources.length);
- System.arraycopy(modules, 0, result, resources.length, modules.length);
- return result;
- }
- Set result = new HashSet();
- // Get the tags for the location
- RepositoryRoot root = getRepositoryRootFor(location);
- String[] paths = root.getKnownRemotePaths();
- for (int i = 0; i < paths.length; i++) {
- String path = paths[i];
- List tags = Arrays.asList(root.getKnownTags(path));
- if (tags.contains(tag)) {
- ICVSRemoteFolder remote = root.getRemoteFolder(path, tag, Policy.subMonitorFor(monitor, 100));
- result.add(remote);
- }
- }
- return (ICVSRemoteResource[])result.toArray(new ICVSRemoteResource[result.size()]);
- } finally {
- monitor.done();
- }
- }
-
- /*
- * Fetches tags from auto-refresh files if they exist. Then fetches tags from the user defined auto-refresh file
- * list. The fetched tags are cached in the CVS ui plugin's tag cache.
- */
- public void refreshDefinedTags(ICVSFolder project, boolean replace, boolean notify, IProgressMonitor monitor) throws TeamException {
- RepositoryRoot root = getRepositoryRootFor(project);
- String remotePath = RepositoryRoot.getRemotePathFor(project);
- root.refreshDefinedTags(remotePath, replace, monitor);
- if (notify)
- broadcastRepositoryChange(root);
- }
-
- /**
- * A repository root has been added. Notify any listeners.
- */
- public void rootAdded(ICVSRepositoryLocation root) {
- Iterator it = listeners.iterator();
- while (it.hasNext()) {
- IRepositoryListener listener = (IRepositoryListener)it.next();
- listener.repositoryAdded(root);
- }
- }
-
- /**
- * A repository root has been removed.
- * Remove the tags defined for this root and notify any listeners
- */
- public void rootRemoved(ICVSRepositoryLocation root) {
- RepositoryRoot repoRoot = (RepositoryRoot)repositoryRoots.remove(root.getLocation());
- if (root != null)
- broadcastRepositoryChange(repoRoot);
- }
-
- /**
- * Accept tags for any CVS resource. However, for the time being,
- * the given version tags are added to the list of known tags for the
- * remote ancestor of the resource that is a direct child of the remote root
- */
- public void addTags(ICVSResource resource, CVSTag[] tags) throws CVSException {
- RepositoryRoot root = getRepositoryRootFor(resource);
- // XXX could be a file or folder
- String remotePath = RepositoryRoot.getRemotePathFor(resource);
- root.addTags(remotePath, tags);
- broadcastRepositoryChange(root);
- }
-
- public void setAutoRefreshFiles(ICVSFolder project, String[] filePaths) throws CVSException {
- RepositoryRoot root = getRepositoryRootFor(project);
- String remotePath = RepositoryRoot.getRemotePathFor(project);
- root.setAutoRefreshFiles(remotePath, filePaths);
- }
-
- public void removeAutoRefreshFiles(ICVSFolder project, String[] relativeFilePaths) throws CVSException {
- RepositoryRoot root = getRepositoryRootFor(project);
- String remotePath = RepositoryRoot.getRemotePathFor(project);
- Set set = new HashSet();
- set.addAll(Arrays.asList(root.getAutoRefreshFiles(remotePath)));
- set.removeAll(Arrays.asList(relativeFilePaths));
- root.setAutoRefreshFiles(remotePath, (String[]) set.toArray(new String[set.size()]));
- }
-
- public String[] getAutoRefreshFiles(ICVSFolder project) throws CVSException {
- RepositoryRoot root = getRepositoryRootFor(project);
- String remotePath = RepositoryRoot.getRemotePathFor(project);
- return root.getAutoRefreshFiles(remotePath);
- }
-
- /**
- * Remove the given tags from the list of known tags for the
- * given remote root.
- */
- public void removeTags(ICVSFolder project, CVSTag[] tags) throws CVSException {
- RepositoryRoot root = getRepositoryRootFor(project);
- String remotePath = RepositoryRoot.getRemotePathFor(project);
- root.removeTags(remotePath, tags);
- broadcastRepositoryChange(root);
- }
-
- public void startup() throws TeamException {
- loadState();
- loadCommentHistory();
- CVSProviderPlugin.getPlugin().addRepositoryListener(new ICVSListener() {
- public void repositoryAdded(ICVSRepositoryLocation root) {
- rootAdded(root);
- }
- public void repositoryRemoved(ICVSRepositoryLocation root) {
- rootRemoved(root);
- }
- });
- }
-
- public void shutdown() throws TeamException {
- saveState();
- saveCommentHistory();
- }
-
- private void loadState() throws TeamException {
- IPath pluginStateLocation = CVSUIPlugin.getPlugin().getStateLocation().append(REPOSITORIES_VIEW_FILE);
- File file = pluginStateLocation.toFile();
- if (file.exists()) {
- try {
- BufferedInputStream is = new BufferedInputStream(new FileInputStream(file));
- try {
- readState(is);
- } finally {
- is.close();
- }
- } catch (IOException e) {
- CVSUIPlugin.log(Status.ERROR, Policy.bind("RepositoryManager.ioException"), e); //$NON-NLS-1$
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- }
- } else {
- IPath oldPluginStateLocation = CVSUIPlugin.getPlugin().getStateLocation().append(STATE_FILE);
- file = oldPluginStateLocation.toFile();
- if (file.exists()) {
- try {
- DataInputStream dis = new DataInputStream(new FileInputStream(file));
- try {
- readOldState(dis);
- } finally {
- dis.close();
- }
- saveState();
- file.delete();
- } catch (IOException e) {
- CVSUIPlugin.log(Status.ERROR, Policy.bind("RepositoryManager.ioException"), e); //$NON-NLS-1$
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- }
- }
- }
- }
- private void loadCommentHistory() throws TeamException {
- IPath pluginStateLocation = CVSUIPlugin.getPlugin().getStateLocation().append(COMMENT_HIST_FILE);
- File file = pluginStateLocation.toFile();
- if (!file.exists()) return;
- try {
- BufferedInputStream is = new BufferedInputStream(new FileInputStream(file));
- try {
- readCommentHistory(is);
- } finally {
- is.close();
- }
- } catch (IOException e) {
- CVSUIPlugin.log(Status.ERROR, Policy.bind("RepositoryManager.ioException"), e); //$NON-NLS-1$
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- protected void saveState() throws TeamException {
- IPath pluginStateLocation = CVSUIPlugin.getPlugin().getStateLocation();
- File tempFile = pluginStateLocation.append(REPOSITORIES_VIEW_FILE + ".tmp").toFile(); //$NON-NLS-1$
- File stateFile = pluginStateLocation.append(REPOSITORIES_VIEW_FILE).toFile();
- try {
- XMLWriter writer = new XMLWriter(new BufferedOutputStream(new FileOutputStream(tempFile)));
- try {
- writeState(writer);
- } finally {
- writer.close();
- }
- if (stateFile.exists()) {
- stateFile.delete();
- }
- boolean renamed = tempFile.renameTo(stateFile);
- if (!renamed) {
- throw new TeamException(new Status(Status.ERROR, CVSUIPlugin.ID, TeamException.UNABLE, Policy.bind("RepositoryManager.rename", tempFile.getAbsolutePath()), null)); //$NON-NLS-1$
- }
- } catch (IOException e) {
- throw new TeamException(new Status(Status.ERROR, CVSUIPlugin.ID, TeamException.UNABLE, Policy.bind("RepositoryManager.save",stateFile.getAbsolutePath()), e)); //$NON-NLS-1$
- }
- }
- private void writeState(XMLWriter writer) throws IOException, CVSException {
- writer.startTag(RepositoriesViewContentHandler.REPOSITORIES_VIEW_TAG, null, true);
- // Write the repositories
- Collection repos = Arrays.asList(getKnownRepositoryLocations());
- Iterator it = repos.iterator();
- while (it.hasNext()) {
- CVSRepositoryLocation location = (CVSRepositoryLocation)it.next();
- RepositoryRoot root = getRepositoryRootFor(location);
- root.writeState(writer);
- }
- writer.endTag(RepositoriesViewContentHandler.REPOSITORIES_VIEW_TAG);
- }
-
- private void readState(InputStream stream) throws IOException, TeamException {
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- SAXParser parser = factory.newSAXParser();
- parser.parse(new InputSource(stream), new RepositoriesViewContentHandler(this));
- } catch (SAXException ex) {
- throw new CVSException(Policy.bind("RepositoryManager.parsingProblem", REPOSITORIES_VIEW_FILE), ex); //$NON-NLS-1$
- } catch (ParserConfigurationException ex) {
- throw new CVSException(Policy.bind("RepositoryManager.parsingProblem", REPOSITORIES_VIEW_FILE), ex); //$NON-NLS-1$
- }
- }
- private void readCommentHistory(InputStream stream) throws IOException, TeamException {
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- SAXParser parser = factory.newSAXParser();
- parser.parse(new InputSource(stream), new CommentHistoryContentHandler());
- } catch (SAXException ex) {
- throw new CVSException(Policy.bind("RepositoryManager.parsingProblem", COMMENT_HIST_FILE), ex); //$NON-NLS-1$
- } catch (ParserConfigurationException ex) {
- throw new CVSException(Policy.bind("RepositoryManager.parsingProblem", COMMENT_HIST_FILE), ex); //$NON-NLS-1$
- }
- }
-
- private void readOldState(DataInputStream dis) throws IOException, TeamException {
- int repoSize = dis.readInt();
- boolean version1 = false;
- if (repoSize == STATE_FILE_VERSION_1) {
- version1 = true;
- repoSize = dis.readInt();
- }
- for (int i = 0; i < repoSize; i++) {
- ICVSRepositoryLocation root = CVSProviderPlugin.getPlugin().getRepository(dis.readUTF());
- RepositoryRoot repoRoot = getRepositoryRootFor(root);
-
- // read branch tags associated with this root
- int tagsSize = dis.readInt();
- CVSTag[] branchTags = new CVSTag[tagsSize];
- for (int j = 0; j < tagsSize; j++) {
- String tagName = dis.readUTF();
- int tagType = dis.readInt();
- branchTags[j] = new CVSTag(tagName, tagType);
- }
- // Ignore the branch tags since they are handled differently now
- // addBranchTags(root, branchTags);
-
- // read the number of projects for this root that have version tags
- int projSize = dis.readInt();
- if (projSize > 0) {
- for (int j = 0; j < projSize; j++) {
- String name = dis.readUTF();
- Set tagSet = new HashSet();
- int numTags = dis.readInt();
- for (int k = 0; k < numTags; k++) {
- tagSet.add(new CVSTag(dis.readUTF(), CVSTag.VERSION));
- }
- CVSTag[] tags = (CVSTag[]) tagSet.toArray(new CVSTag[tagSet.size()]);
- repoRoot.addTags(name, tags);
- }
- }
- // read the auto refresh filenames for this project
- if (version1) {
- try {
- projSize = dis.readInt();
- if (projSize > 0) {
- for (int j = 0; j < projSize; j++) {
- String name = dis.readUTF();
- Set filenames = new HashSet();
- int numFilenames = dis.readInt();
- for (int k = 0; k < numFilenames; k++) {
- filenames.add(dis.readUTF());
- }
- repoRoot.setAutoRefreshFiles(name, (String[]) filenames.toArray(new String[filenames.size()]));
- }
- }
- } catch (EOFException e) {
- // auto refresh files are not persisted, continue and save them next time.
- }
- }
- broadcastRepositoryChange(repoRoot);
- }
- }
-
- protected void saveCommentHistory() throws TeamException {
- IPath pluginStateLocation = CVSUIPlugin.getPlugin().getStateLocation();
- File tempFile = pluginStateLocation.append(COMMENT_HIST_FILE + ".tmp").toFile(); //$NON-NLS-1$
- File histFile = pluginStateLocation.append(COMMENT_HIST_FILE).toFile();
- try {
- XMLWriter writer = new XMLWriter(new BufferedOutputStream(new FileOutputStream(tempFile)));
- try {
- writeCommentHistory(writer);
- } finally {
- writer.close();
- }
- if (histFile.exists()) {
- histFile.delete();
- }
- boolean renamed = tempFile.renameTo(histFile);
- if (!renamed) {
- throw new TeamException(new Status(Status.ERROR, CVSUIPlugin.ID, TeamException.UNABLE, Policy.bind("RepositoryManager.rename", tempFile.getAbsolutePath()), null)); //$NON-NLS-1$
- }
- } catch (IOException e) {
- throw new TeamException(new Status(Status.ERROR, CVSUIPlugin.ID, TeamException.UNABLE, Policy.bind("RepositoryManager.save",histFile.getAbsolutePath()), e)); //$NON-NLS-1$
- }
- }
- private void writeCommentHistory(XMLWriter writer) throws IOException, CVSException {
- writer.startTag(ELEMENT_COMMIT_HISTORY, null, false);
- for (int i=0; i<previousComments.length && i<MAX_COMMENTS; i++)
- writer.printSimpleTag(ELEMENT_COMMIT_COMMENT, previousComments[i]);
- writer.endTag(ELEMENT_COMMIT_HISTORY);
- }
-
- public void addRepositoryListener(IRepositoryListener listener) {
- listeners.add(listener);
- }
-
- public void removeRepositoryListener(IRepositoryListener listener) {
- listeners.remove(listener);
- }
-
- /**
- * Add the given resources to their associated providers.
- * This schedules the resources for addition; they still need to be committed.
- */
- public void add(IResource[] resources, IProgressMonitor monitor) throws TeamException {
- Map table = getProviderMapping(resources);
- Set keySet = table.keySet();
- monitor.beginTask("", keySet.size() * 1000); //$NON-NLS-1$
- monitor.setTaskName(Policy.bind("RepositoryManager.adding")); //$NON-NLS-1$
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- provider.setComment(getCurrentComment());
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- provider.add(providerResources, IResource.DEPTH_ZERO, subMonitor);
- }
- }
-
- /**
- * Method getCurrentComment.
- * @return String
- */
- private String getCurrentComment() {
- if (previousComments.length == 0)
- return ""; //$NON-NLS-1$
- return previousComments[0];
- }
-
- /**
- * Delete the given resources from their associated providers.
- * This schedules the resources for deletion; they still need to be committed.
- */
- public void delete(IResource[] resources, IProgressMonitor monitor) throws TeamException {
- Map table = getProviderMapping(resources);
- Set keySet = table.keySet();
- monitor.beginTask("", keySet.size() * 1000); //$NON-NLS-1$
- monitor.setTaskName(Policy.bind("RepositoryManager.deleting")); //$NON-NLS-1$
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- provider.setComment(getCurrentComment());
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- provider.delete(providerResources, subMonitor);
- }
- }
-
- public void update(IResource[] resources, Command.LocalOption[] options, boolean createBackups, IProgressMonitor monitor) throws TeamException {
- Map table = getProviderMapping(resources);
- Set keySet = table.keySet();
- monitor.beginTask("", keySet.size() * 1000); //$NON-NLS-1$
- monitor.setTaskName(Policy.bind("RepositoryManager.updating")); //$NON-NLS-1$
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- provider.update(providerResources, options, null, createBackups, subMonitor);
- }
- }
-
- /**
- * Mark the files as merged.
- */
- public void merged(IRemoteSyncElement[] elements) throws TeamException {
- Map table = getProviderMapping(elements);
- Set keySet = table.keySet();
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- provider.setComment(getCurrentComment());
- List list = (List)table.get(provider);
- IRemoteSyncElement[] providerElements = (IRemoteSyncElement[])list.toArray(new IRemoteSyncElement[list.size()]);
- provider.merged(providerElements);
- }
- }
-
- /**
- * Return the entered comment or null if canceled.
- */
- public String promptForComment(final Shell shell, IResource[] resourcesToCommit) {
- final int[] result = new int[1];
- final ReleaseCommentDialog dialog = new ReleaseCommentDialog(shell, resourcesToCommit);
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- result[0] = dialog.open();
- if (result[0] != ReleaseCommentDialog.OK) return;
- }
- });
- if (result[0] != ReleaseCommentDialog.OK) return null;
- return dialog.getComment();
- }
-
- /**
- * Prompt to add all or some of the provided resources to version control.
- * The value null is returned if the dialog is cancelled.
- *
- * @param shell
- * @param unadded
- * @return IResource[]
- */
- public IResource[] promptForResourcesToBeAdded(Shell shell, IResource[] unadded) {
- if (unadded == null) return new IResource[0];
- if (unadded.length == 0) return unadded;
- final IResource[][] result = new IResource[1][0];
- result[0] = null;
- final AddToVersionControlDialog dialog = new AddToVersionControlDialog(shell, unadded);
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- int code = dialog.open();
- if (code == IDialogConstants.YES_ID) {
- result[0] = dialog.getResourcesToAdd();
- } else if(code == IDialogConstants.NO_ID) {
- // allow the commit to continue.
- result[0] = new IResource[0];
- }
- }
- });
- return result[0];
- }
- /**
- * Commit the given resources to their associated providers.
- *
- * @param resources the resources to commit
- * @param monitor the progress monitor
- */
- public void commit(IResource[] resources, String comment, IProgressMonitor monitor) throws TeamException {
- Map table = getProviderMapping(resources);
- Set keySet = table.keySet();
- monitor.beginTask("", keySet.size() * 1000); //$NON-NLS-1$
- monitor.setTaskName(Policy.bind("RepositoryManager.committing")); //$NON-NLS-1$
- Iterator iterator = keySet.iterator();
- while (iterator.hasNext()) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- CVSTeamProvider provider = (CVSTeamProvider)iterator.next();
- provider.setComment(comment);
- List list = (List)table.get(provider);
- IResource[] providerResources = (IResource[])list.toArray(new IResource[list.size()]);
- provider.checkin(providerResources, IResource.DEPTH_INFINITE, subMonitor);
- }
- }
-
- /**
- * Helper method. Return a Map mapping provider to a list of resources
- * shared with that provider.
- */
- private Map getProviderMapping(IResource[] resources) {
- Map result = new HashMap();
- for (int i = 0; i < resources.length; i++) {
- RepositoryProvider provider = RepositoryProvider.getProvider(resources[i].getProject(), CVSProviderPlugin.getTypeId());
- List list = (List)result.get(provider);
- if (list == null) {
- list = new ArrayList();
- result.put(provider, list);
- }
- list.add(resources[i]);
- }
- return result;
- }
- /**
- * Helper method. Return a Map mapping provider to a list of IRemoteSyncElements
- * shared with that provider.
- */
- private Map getProviderMapping(IRemoteSyncElement[] elements) {
- Map result = new HashMap();
- for (int i = 0; i < elements.length; i++) {
- RepositoryProvider provider = RepositoryProvider.getProvider(elements[i].getLocal().getProject(), CVSProviderPlugin.getTypeId());
- List list = (List)result.get(provider);
- if (list == null) {
- list = new ArrayList();
- result.put(provider, list);
- }
- list.add(elements[i]);
- }
- return result;
- }
-
- public ICVSRepositoryLocation getRepositoryLocationFor(ICVSResource resource) {
- try {
- return internalGetRepositoryLocationFor(resource);
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- return null;
- }
- }
-
- private ICVSRepositoryLocation internalGetRepositoryLocationFor(ICVSResource resource) throws CVSException {
- ICVSFolder folder;
- if (resource.isFolder()) {
- folder = (ICVSFolder)resource;
- } else {
- folder = resource.getParent();
- }
- if (folder.isCVSFolder()) {
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(folder.getFolderSyncInfo().getRoot());
- return location;
- }
- // XXX This is asking for trouble
- return null;
- }
-
- private RepositoryRoot getRepositoryRootFor(ICVSResource resource) throws CVSException {
- ICVSRepositoryLocation location = internalGetRepositoryLocationFor(resource);
- if (location == null) return null;
- return getRepositoryRootFor(location);
- }
-
- public RepositoryRoot getRepositoryRootFor(ICVSRepositoryLocation location) {
- RepositoryRoot root = (RepositoryRoot)repositoryRoots.get(location.getLocation());
- if (root == null) {
- root = new RepositoryRoot(location);
- add(root);
- }
- return root;
- }
-
- /**
- * Add the given repository root to the receiver. The provided instance of RepositoryRoot
- * is used to provide extra information about the repository location
- *
- * @param currentRepositoryRoot
- */
- public void add(RepositoryRoot root) {
- repositoryRoots.put(root.getRoot().getLocation(), root);
- broadcastRepositoryChange(root);
- }
-
- private void broadcastRepositoryChange(RepositoryRoot root) {
- if (notificationLevel == 0) {
- broadcastRepositoriesChanged(new ICVSRepositoryLocation[] {root.getRoot()});
- } else {
- changedRepositories.put(root.getRoot().getLocation(), root.getRoot());
- }
- }
-
- private void broadcastRepositoriesChanged(ICVSRepositoryLocation[] roots) {
- if (roots.length == 0) return;
- Iterator it = listeners.iterator();
- while (it.hasNext()) {
- IRepositoryListener listener = (IRepositoryListener)it.next();
- listener.repositoriesChanged(roots);
- }
- }
-
- /**
- * Run the given runnable, waiting until the end to perform a refresh
- *
- * @param runnable
- * @param monitor
- */
- public void run(IRunnableWithProgress runnable, IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- notificationLevel++;
- runnable.run(monitor);
- } finally {
- notificationLevel = Math.max(0, notificationLevel - 1);
- if (notificationLevel == 0) {
- try {
- Collection roots = changedRepositories.values();
- broadcastRepositoriesChanged((ICVSRepositoryLocation[]) roots.toArray(new ICVSRepositoryLocation[roots.size()]));
- } finally {
- changedRepositories.clear();
- }
- }
- }
- }
-
- /**
- * Method isDisplayingProjectVersions.
- * @param repository
- * @return boolean
- */
- public boolean isDisplayingProjectVersions(ICVSRepositoryLocation repository) {
- return true;
- }
-
- /**
- * Method filterResources filters the given resources using the given
- * working set.
- *
- * @param current
- * @param resources
- * @return ICVSRemoteResource[]
- */
- public ICVSRemoteResource[] filterResources(IWorkingSet workingSet, ICVSRemoteResource[] resources) {
- if (workingSet == null) return resources;
- // get the projects associated with the working set
- IAdaptable[] adaptables = workingSet.getElements();
- Set projects = new HashSet();
- for (int i = 0; i < adaptables.length; i++) {
- IAdaptable adaptable = adaptables[i];
- Object adapted = adaptable.getAdapter(IResource.class);
- if (adapted != null) {
- // Can this code be generalized?
- IProject project = ((IResource)adapted).getProject();
- projects.add(project);
- }
- }
- List result = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- ICVSRemoteResource resource = resources[i];
- for (Iterator iter = projects.iterator(); iter.hasNext();) {
- IProject project = (IProject) iter.next();
- if (project.getName().equals(resource.getName())) {
- result.add(resource);
- break;
- }
- }
- }
- return (ICVSRemoteResource[]) result.toArray(new ICVSRemoteResource[result.size()]);
- }
-
- /**
- * Method setLabel.
- * @param location
- * @param label
- */
- public void setLabel(CVSRepositoryLocation location, String label) throws CVSException {
- RepositoryRoot root = getRepositoryRootFor(location);
- String oldLabel = root.getName();
- if (oldLabel == null) {
- if (label == null) return;
- root.setName(label);
- } else if (label == null) {
- root.setName(label);
- } else if (label.equals(oldLabel)) {
- return;
- } else {
- root.setName(label);
- }
- broadcastRepositoryChange(root);
- }
-
- /**
- * Replace the old repository location with the new one assuming that they
- * are the same location with different authentication informations
- * @param location
- * @param newLocation
- */
- public void replaceRepositoryLocation(
- final ICVSRepositoryLocation oldLocation,
- final CVSRepositoryLocation newLocation) throws CVSException {
-
- try {
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- RepositoryRoot root = getRepositoryRootFor(oldLocation);
- // Disposing of the old location will result in the deletion of the
- // cached root through a listener callback
- CVSProviderPlugin.getPlugin().disposeRepository(oldLocation);
-
- newLocation.updateCache();
- // Get the new location from the CVS plugin to ensure we use the
- // instance that will be returned by future calls to getRepository()
- root.setRepositoryLocation(
- CVSProviderPlugin.getPlugin().getRepository(newLocation.getLocation()));
- add(root);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, Policy.monitorFor(null));
- } catch (InvocationTargetException e) {
- CVSException.wrapException(e);
- } catch (InterruptedException e) {
- }
- }
-
- /**
- * Purge any cahced information.
- */
- public void purgeCache() {
- for (Iterator iter = repositoryRoots.values().iterator(); iter.hasNext();) {
- RepositoryRoot root = (RepositoryRoot) iter.next();
- root.clearCache();
- }
- }
-
- /**
- * Answer the list of comments that were previously used when committing.
- * @return String[]
- */
- public String[] getPreviousComments() {
- return previousComments;
- }
-
- /**
- * Method addComment.
- * @param string
- */
- public void addComment(String comment) {
- // Only add the comment if the first entry isn't the same already
- if (previousComments.length > 0 && previousComments[0].equals(comment)) return;
- // Insert the comment as the first element
- String[] newComments = new String[Math.min(previousComments.length + 1, MAX_COMMENTS)];
- newComments[0] = comment;
- for (int i = 1; i < newComments.length; i++) {
- newComments[i] = previousComments[i-1];
- }
- previousComments = newComments;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java
deleted file mode 100644
index 28f2cf90b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java
+++ /dev/null
@@ -1,467 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.repo;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.XMLWriter;
-
-public class RepositoryRoot extends PlatformObject {
-
- public static final String[] DEFAULT_AUTO_REFRESH_FILES = { ".project" }; //$NON-NLS-1$ //$NON-NLS-2$
- private static final String DEFINED_MODULE_PREFIX = "module:"; //$NON-NLS-1$
-
- ICVSRepositoryLocation root;
- String name;
- // Map of String (remote folder path) -> Set (CVS tags)
- Map knownTags = new HashMap();
- // Map of String (remote folder path) -> Set (file paths that are project relative)
- Map autoRefreshFiles = new HashMap();
- // Map of String (module name) -> ICVSRemoteFolder (that is a defined module)
- Map modulesCache;
-
- public RepositoryRoot(ICVSRepositoryLocation root) {
- this.root = root;
- }
-
- /**
- * Returns the name.
- * @return String
- */
- public String getName() {
- return name;
- }
-
- /**
- * Method getRemoteFolder.
- * @param path
- * @param tag
- * @return ICVSRemoteFolder
- */
- public ICVSRemoteFolder getRemoteFolder(String path, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- if (isDefinedModuleName(path)) {
- return getDefinedModule(getDefinedModuleName(path), tag, monitor);
- } else {
- return root.getRemoteFolder(path, tag);
- }
- }
-
- static boolean isDefinedModuleName(String path) {
- return path.startsWith(DEFINED_MODULE_PREFIX);
- }
-
- static String getDefinedModuleName(String path) {
- return path.substring(DEFINED_MODULE_PREFIX.length());
- }
-
- static String asDefinedModulePath(String path) {
- return DEFINED_MODULE_PREFIX + path;
- }
-
- /**
- * Method getDefinedModule.
- * @param path
- * @param tag
- * @param monitor
- * @return ICVSRemoteFolder
- */
- private ICVSRemoteFolder getDefinedModule(String path, CVSTag tag, IProgressMonitor monitor) throws CVSException {
- Map cache = getDefinedModulesCache(tag, monitor);
- ICVSRemoteFolder folder = (ICVSRemoteFolder)cache.get(path);
- if (folder != null) {
- folder = (ICVSRemoteFolder)folder.forTag(tag);
- }
- return folder;
- }
-
- private Map getDefinedModulesCache(CVSTag tag, IProgressMonitor monitor) throws CVSException {
- if (modulesCache == null) {
- modulesCache = new HashMap();
- synchronized(modulesCache) {
- try {
- ICVSRemoteResource[] folders = root.members(CVSTag.DEFAULT, true, monitor);
- for (int i = 0; i < folders.length; i++) {
- ICVSRemoteResource resource = folders[i];
- modulesCache.put(resource.getName(), resource);
- }
- } catch (CVSException e) {
- // we could't fetch the modules. Log the problem and continue
- CVSUIPlugin.log(e);
- }
- }
- }
- return modulesCache;
- }
-
- public ICVSRemoteResource[] getDefinedModules(CVSTag tag, IProgressMonitor monitor) throws CVSException {
- Map cache = getDefinedModulesCache(tag, monitor);
- return (ICVSRemoteResource[]) cache.values().toArray(new ICVSRemoteResource[cache.size()]);
- }
-
- public static String getRemotePathFor(ICVSResource resource) throws CVSException {
- if (resource.isFolder()) {
- if (resource instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder remoteFolder = (ICVSRemoteFolder) resource;
- if (remoteFolder.isDefinedModule()) {
- return asDefinedModulePath(remoteFolder.getName());
- }
- }
- FolderSyncInfo info = ((ICVSFolder)resource).getFolderSyncInfo();
- if (info == null)
- throw new CVSException(Policy.bind("RepositoryRoot.folderInfoMissing", resource.getName())); //$NON-NLS-1$
- return info.getRepository();
- } else {
- FolderSyncInfo info = resource.getParent().getFolderSyncInfo();
- if (info == null)
- throw new CVSException(Policy.bind("RepositoryRoot.folderInfoMissing", resource.getParent().getName())); //$NON-NLS-1$
- String path = new Path(info.getRepository()).append(resource.getName()).toString();
- return path;
- }
- }
-
- /**
- * Returns the root.
- * @return ICVSRepositoryLocation
- */
- public ICVSRepositoryLocation getRoot() {
- return root;
- }
-
- /**
- * Sets the name.
- * @param name The name to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Accept the tags for any remote path that represents a folder. However, for the time being,
- * the given version tags are added to the list of known tags for the
- * remote ancestor of the resource that is a direct child of the remote root.
- *
- * It is the reponsibility of the caller to ensure that the given remote path is valid.
- */
- public void addTags(String remotePath, CVSTag[] tags) {
- // Get the name to cache the version tags with
- String name = getCachePathFor(remotePath);
-
- // Make sure there is a table for the ancestor that holds the tags
- Set set = (Set)knownTags.get(name);
- if (set == null) {
- set = new HashSet();
- knownTags.put(name, set);
- }
-
- // Store the tag with the appropriate ancestor
- for (int i = 0; i < tags.length; i++) {
- set.add(tags[i]);
- }
- }
-
- /**
- * Remove the given tags from the receiver
- * @param remotePath
- * @param tags
- */
- public void removeTags(String remotePath, CVSTag[] tags) {
- // Get the name to cache the version tags with
- String name = getCachePathFor(remotePath);
-
- // Make sure there is a table for the ancestor that holds the tags
- Set set = (Set)knownTags.get(name);
- if (set == null) {
- return;
- }
-
- // Store the tag with the appropriate ancestor
- for (int i = 0; i < tags.length; i++) {
- set.remove(tags[i]);
- }
- }
-
- /**
- * Returns the absolute paths of the auto refresh files relative to the
- * repository.
- *
- * @return String[]
- */
- public String[] getAutoRefreshFiles(String remotePath) {
- String name = getCachePathFor(remotePath);
- Set files = (Set)autoRefreshFiles.get(name);
- if (files == null || files.isEmpty()) {
- // convert the default relative file paths to full paths
- if (isDefinedModuleName(remotePath)) {
- return new String[0];
- }
- List result = new ArrayList();
- for (int i = 0; i < DEFAULT_AUTO_REFRESH_FILES.length; i++) {
- String relativePath = DEFAULT_AUTO_REFRESH_FILES[i];
- result.add(new Path(remotePath).append(relativePath).toString());
- }
- return (String[]) result.toArray(new String[result.size()]);
- } else {
- return (String[]) files.toArray(new String[files.size()]);
- }
- }
-
- /**
- * Sets the auto refresh files for the given remote path to the given
- * string values which are absolute file paths (relative to the receiver).
- *
- * @param autoRefreshFiles The autoRefreshFiles to set
- */
- public void setAutoRefreshFiles(String remotePath, String[] autoRefreshFiles) {
- Set newFiles = new HashSet(Arrays.asList(autoRefreshFiles));
- // Check to see if the auto-refresh files are the default files
- if (autoRefreshFiles.length == DEFAULT_AUTO_REFRESH_FILES.length) {
- boolean isDefault = true;
- for (int i = 0; i < DEFAULT_AUTO_REFRESH_FILES.length; i++) {
- String filePath = DEFAULT_AUTO_REFRESH_FILES[i];
- if (!newFiles.contains(new Path(remotePath).append(filePath).toString())) {
- isDefault = false;
- break;
- }
- }
- if (isDefault) {
- this.autoRefreshFiles.remove(getCachePathFor(remotePath));
- return;
- }
- }
- this.autoRefreshFiles.put(getCachePathFor(remotePath), newFiles);
- }
-
- /**
- * Fetches tags from auto-refresh files.
- */
- public void refreshDefinedTags(String remotePath, boolean replace, IProgressMonitor monitor) throws TeamException {
- String[] filesToRefresh = getAutoRefreshFiles(remotePath);
- monitor.beginTask(null, filesToRefresh.length * 10); //$NON-NLS-1$
- try {
- List tags = new ArrayList();
- for (int i = 0; i < filesToRefresh.length; i++) {
- ICVSRemoteFile file = root.getRemoteFile(filesToRefresh[i], CVSTag.DEFAULT);
- tags.addAll(Arrays.asList(fetchTags(file, Policy.subMonitorFor(monitor, 5))));
- }
- if (!tags.isEmpty()) {
- addTags(remotePath, (CVSTag[]) tags.toArray(new CVSTag[tags.size()]));
- }
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Returns Branch and Version tags for the given files
- */
- private CVSTag[] fetchTags(ICVSRemoteFile file, IProgressMonitor monitor) throws TeamException {
- try {
- Set tagSet = new HashSet();
- ILogEntry[] entries = file.getLogEntries(monitor);
- for (int j = 0; j < entries.length; j++) {
- CVSTag[] tags = entries[j].getTags();
- for (int k = 0; k < tags.length; k++) {
- tagSet.add(tags[k]);
- }
- }
- return (CVSTag[])tagSet.toArray(new CVSTag[0]);
- } catch (TeamException e) {
- IStatus status = e.getStatus();
- if (status.getCode() == CVSStatus.SERVER_ERROR && status.isMultiStatus()) {
- IStatus[] children = status.getChildren();
- if (children.length == 1 && children[0].getCode() == CVSStatus.DOES_NOT_EXIST) {
- return new CVSTag[0];
- }
- }
- throw e;
- }
- }
-
- private String getCachePathFor(String remotePath) {
- String root = new Path(remotePath).segment(0);
- if (isDefinedModuleName(remotePath)) {
- return asDefinedModulePath(root);
- }
- return root;
- }
-
- /**
- * Write out the state of the receiver as XML on the given XMLWriter.
- *
- * @param writer
- * @throws IOException
- */
- public void writeState(XMLWriter writer) throws IOException {
-
- HashMap attributes = new HashMap();
-
- attributes.clear();
- attributes.put(RepositoriesViewContentHandler.ID_ATTRIBUTE, root.getLocation());
- if (name != null) {
- attributes.put(RepositoriesViewContentHandler.NAME_ATTRIBUTE, name);
- }
- String readLocation = ((CVSRepositoryLocation)root).getReadLocation();
- if (readLocation != null) {
- attributes.put(RepositoriesViewContentHandler.READ_ID_ATTRIBUTE, readLocation);
- }
- String writeLocation = ((CVSRepositoryLocation)root).getWriteLocation();
- if (writeLocation != null) {
- attributes.put(RepositoriesViewContentHandler.WRITE_ID_ATTRIBUTE, writeLocation);
- }
-
- writer.startTag(RepositoriesViewContentHandler.REPOSITORY_TAG, attributes, true);
-
- // Gather all the modules that have tags and/or auto-refresh files
-
-
- // for each module, write the moduel, tags and auto-refresh files.
- String[] paths = getKnownRemotePaths();
- for (int i = 0; i < paths.length; i++) {
- String path = paths[i];
- attributes.clear();
- String name = path;
- if (isDefinedModuleName(path)) {
- name = getDefinedModuleName(path);
- attributes.put(RepositoriesViewContentHandler.TYPE_ATTRIBUTE, RepositoriesViewContentHandler.DEFINED_MODULE_TYPE);
- }
- attributes.put(RepositoriesViewContentHandler.PATH_ATTRIBUTE, name);
- writer.startTag(RepositoriesViewContentHandler.MODULE_TAG, attributes, true);
- Set tagSet = (Set)knownTags.get(path);
- if (tagSet != null) {
- Iterator tagIt = tagSet.iterator();
- while (tagIt.hasNext()) {
- CVSTag tag = (CVSTag)tagIt.next();
- attributes.clear();
- attributes.put(RepositoriesViewContentHandler.NAME_ATTRIBUTE, tag.getName());
- attributes.put(RepositoriesViewContentHandler.TYPE_ATTRIBUTE, RepositoriesViewContentHandler.TAG_TYPES[tag.getType()]);
- writer.startAndEndTag(RepositoriesViewContentHandler.TAG_TAG, attributes, true);
- }
- }
- Set refreshSet = (Set)autoRefreshFiles.get(path);
- if (refreshSet != null) {
- Iterator filenameIt = refreshSet.iterator();
- while (filenameIt.hasNext()) {
- String filename = (String)filenameIt.next();
- attributes.clear();
- attributes.put(RepositoriesViewContentHandler.FULL_PATH_ATTRIBUTE, filename);
- writer.startAndEndTag(RepositoriesViewContentHandler.AUTO_REFRESH_FILE_TAG, attributes, true);
- }
- }
- writer.endTag(RepositoriesViewContentHandler.MODULE_TAG);
- }
- writer.endTag(RepositoriesViewContentHandler.REPOSITORY_TAG);
- }
-
- /**
- * Method getKnownTags.
- * @param remotePath
- * @return CVSTag[]
- */
- public CVSTag[] getKnownTags(String remotePath) {
- Set tagSet = (Set)knownTags.get(getCachePathFor(remotePath));
- if (tagSet == null) return new CVSTag[0];
- return (CVSTag[]) tagSet.toArray(new CVSTag[tagSet.size()]);
- }
-
- public String[] getKnownRemotePaths() {
- Set paths = new HashSet();
- paths.addAll(knownTags.keySet());
- paths.addAll(autoRefreshFiles.keySet());
- return (String[]) paths.toArray(new String[paths.size()]);
- }
- /**
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (ICVSRepositoryLocation.class.equals(adapter)) return getRoot();
- return super.getAdapter(adapter);
- }
-
- public ICVSRemoteResource[] filterResources(ICVSRemoteResource[] resource) {
- List result = new ArrayList();
- for (int i = 0; i < resource.length; i++) {
- ICVSRemoteResource remoteResource = resource[i];
- if (remoteResource instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) remoteResource;
- if (tagIsKnown(remoteResource)) {
- result.add(folder);
- }
- }
- }
- return (ICVSRemoteResource[]) result.toArray(new ICVSRemoteResource[result.size()]);
- }
-
- /**
- * Method tagIsKnown.
- * @param remoteResource
- * @return boolean
- */
- public boolean tagIsKnown(ICVSRemoteResource remoteResource) {
- if (remoteResource instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) remoteResource;
- String path = getCachePathFor(folder.getRepositoryRelativePath());
- CVSTag[] tags = getKnownTags(path);
- CVSTag tag = folder.getTag();
- for (int i = 0; i < tags.length; i++) {
- CVSTag knownTag = tags[i];
- if (knownTag.equals(tag)) return true;
- }
- }
- return false;
- }
-
- /**
- * This method is invoked whenever the refresh button in the
- * RepositoriesView is pressed.
- */
- void clearCache() {
- if (modulesCache == null) return;
- synchronized(modulesCache) {
- modulesCache = null;
- }
- }
-
- /**
- * Sets the root.
- * @param root The root to set
- */
- void setRepositoryLocation(ICVSRepositoryLocation root) {
- this.root = root;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositorySorter.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositorySorter.java
deleted file mode 100644
index ad050801b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositorySorter.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.repo;
-
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.model.BranchCategory;
-import org.eclipse.team.internal.ccvs.ui.model.CVSTagElement;
-import org.eclipse.team.internal.ccvs.ui.model.RemoteModule;
-import org.eclipse.team.internal.ccvs.ui.model.VersionCategory;
-
-public class RepositorySorter extends ViewerSorter {
- public int category(Object element) {
- if (element instanceof ICVSRemoteFolder) {
- if (((ICVSRemoteFolder)element).isDefinedModule()) {
- return 7;
- }
- return 1;
- }
- if (element instanceof RemoteModule) {
- ICVSRemoteResource resource = ((RemoteModule)element).getCVSResource();
- if (resource instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) resource;
- if (folder.isDefinedModule()) {
- return 7;
- }
- }
- return 1;
- }
- if (element instanceof ICVSRemoteFile) {
- return 2;
- }
- if (element instanceof CVSTagElement) {
- CVSTagElement tagElement = (CVSTagElement)element;
- if (tagElement.getTag().getType() == CVSTag.HEAD) {
- return 0;
- } else if (tagElement.getTag().getType() == CVSTag.BRANCH) {
- return 4;
- } else if (tagElement.getTag().getType() == CVSTag.VERSION) {
- return 5;
- } else {
- return 6;
- }
- }
- if (element instanceof BranchCategory) {
- return 4;
- }
- if (element instanceof VersionCategory) {
- return 5;
- }
- return 0;
- }
-
- public int compare(Viewer viewer, Object o1, Object o2) {
- int cat1 = category(o1);
- int cat2 = category(o2);
- if (cat1 != cat2) return cat1 - cat2;
-
- if (o1 instanceof CVSTagElement && o2 instanceof CVSTagElement) {
- CVSTag tag1 = ((CVSTagElement)o1).getTag();
- CVSTag tag2 = ((CVSTagElement)o2).getTag();
- if (tag1.getType() == CVSTag.BRANCH) {
- return tag1.compareTo(tag2);
- } else {
- return -1 * tag1.compareTo(tag2);
- }
- }
-
- // Sort versions in reverse alphabetical order
- if (o1 instanceof ICVSRemoteFolder && o2 instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder f1 = (ICVSRemoteFolder)o1;
- ICVSRemoteFolder f2 = (ICVSRemoteFolder)o2;
- if (f1.getName().equals(f2.getName())) {
- return compare(f1, f2);
- }
- }
-
- if (o1 instanceof ICVSRepositoryLocation && o2 instanceof ICVSRepositoryLocation) {
- return ((ICVSRepositoryLocation)o1).getLocation().compareTo(((ICVSRepositoryLocation)o2).getLocation());
- }
-
- return super.compare(viewer, o1, o2);
- }
-
- /*
- * Compare to remote folders whose names are the same.
- */
- private int compare(ICVSRemoteFolder f1, ICVSRemoteFolder f2) {
- CVSTag tag1 = f1.getTag();
- CVSTag tag2 = f2.getTag();
- if (tag1 == null) return 1;
- if (tag2 == null) return -1;
- return tag2.compareTo(tag1);
- }
-}
-
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSLocalCompareConfiguration.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSLocalCompareConfiguration.java
deleted file mode 100644
index db278ebce..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSLocalCompareConfiguration.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.ui.synchronize.*;
-import org.eclipse.team.ui.synchronize.DiffTreeViewerConfiguration;
-import org.eclipse.team.ui.synchronize.SyncInfoDiffNode;
-import org.eclipse.team.ui.synchronize.actions.RefreshAction;
-
-/**
- * Provides compare specific support
- */
-public class CVSLocalCompareConfiguration extends DiffTreeViewerConfiguration {
-
- private CVSCompareSubscriber subscriber;
- private TeamSubscriberSyncInfoCollector collector;
- private RefreshAction refreshAction;
- private RefreshAction refreshAllAction;
- private FilteredSyncInfoCollector filteredSyncSet;
-
- /**
- * Return a <code>SyncInfoSetCompareConfiguration</code> that can be used in a
- * <code>SyncInfoSetCompareInput</code> to show the comparsion between the local
- * workspace resources and their tagged counterparts on the server.
- * @param resources the resources to be compared
- * @param tag the tag to be compared with
- * @return a configuration for a <code>SyncInfoSetCompareInput</code>
- */
- public static CVSLocalCompareConfiguration create(IResource[] resources, CVSTag tag) {
- CVSCompareSubscriber subscriber = new CVSCompareSubscriber(resources, tag);
- TeamSubscriberSyncInfoCollector collector = new TeamSubscriberSyncInfoCollector(subscriber);
- return new CVSLocalCompareConfiguration(subscriber, collector);
- }
-
- public CVSLocalCompareConfiguration(CVSCompareSubscriber subscriber, TeamSubscriberSyncInfoCollector collector) {
- super("org.eclipse.team.cvs.ui.compare-participant", collector.getSyncInfoSet()); //$NON-NLS-1$
- this.subscriber = subscriber;
- this.collector = collector;
- this.filteredSyncSet = new FilteredSyncInfoCollector(collector.getSyncInfoSet(), null, new SyncInfoFilter.ContentComparisonSyncInfoFilter());
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoSetCompareConfiguration#dispose()
- */
- public void dispose() {
- filteredSyncSet.dispose();
- collector.dispose();
- subscriber.dispose();
- super.dispose();
- }
-
- public SyncInfoDiffNode prepareInput(IProgressMonitor monitor) throws TeamException {
- subscriber.refresh(subscriber.roots(), IResource.DEPTH_INFINITE, monitor);
- collector.waitForCollector(monitor);
- return getInput();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoSetCompareConfiguration#fillContextMenu(org.eclipse.jface.viewers.StructuredViewer, org.eclipse.jface.action.IMenuManager)
- */
- protected void fillContextMenu(StructuredViewer viewer, IMenuManager manager) {
- manager.add(refreshAction);
- manager.add(new Separator());
- super.fillContextMenu(viewer, manager);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.DiffTreeViewerConfiguration#getInput()
- */
- protected SyncInfoDiffNodeRoot getInput() {
- return new ChangeLogDiffNodeRoot(getSyncSet());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.DiffTreeViewerConfiguration#contributeToToolBar(org.eclipse.jface.action.IToolBarManager)
- */
- public void contributeToToolBar(IToolBarManager tbm) {
- tbm.add(refreshAllAction);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoSetCompareConfiguration#initializeViewer(org.eclipse.swt.widgets.Composite, org.eclipse.jface.viewers.StructuredViewer)
- */
- public void initializeViewer(Composite parent, StructuredViewer viewer) {
- super.initializeViewer(parent, viewer);
- }
-
- protected void initializeActions(StructuredViewer viewer) {
- super.initializeActions(viewer);
- refreshAction = new RefreshAction(viewer, ((CVSSyncTreeSubscriber)collector.getTeamSubscriber()).getName(), collector, null /* no listener */, false);
- refreshAllAction = new RefreshAction(viewer, ((CVSSyncTreeSubscriber)collector.getTeamSubscriber()).getName(), collector, null /* no listener */, true);
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoSetCompareConfiguration#getSyncSet()
- */
- public SyncInfoSet getSyncSet() {
- return filteredSyncSet.getSyncInfoSet();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java
deleted file mode 100644
index 300222a4a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.PruneFolderVisitor;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.*;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.team.ui.synchronize.actions.SubscriberAction;
-
-public abstract class CVSSubscriberAction extends SubscriberAction {
-
- /*
- * Indicate that the resource is out of sync if the sync state is not IN_SYNC
- * or if the local doesn't exist but the remote does.
- */
- protected boolean isOutOfSync(SyncInfo resource) {
- if (resource == null) return false;
- return (!(resource.getKind() == 0) ||
- (! resource.getLocal().exists() && resource.getRemote() != null));
- }
-
- protected void makeInSync(SyncInfo[] folders) throws TeamException {
- // If a node has a parent that is an incoming folder creation, we have to
- // create that folder locally and set its sync info before we can get the
- // node itself. We must do this for all incoming folder creations (recursively)
- // in the case where there are multiple levels of incoming folder creations.
- for (int i = 0; i < folders.length; i++) {
- SyncInfo resource = folders[i];
- makeInSync(resource);
- }
- }
-
- protected boolean makeInSync(SyncInfo info) throws TeamException {
- if (isOutOfSync(info)) {
- SyncInfo parent = getParent(info);
- if (parent == null) {
- if (info.getLocal().getType() == IResource.ROOT) {
- // ROOT should be null
- return true;
- } else {
- // No other ancestors should be null. Log the problem.
- CVSUIPlugin.log(IStatus.WARNING, Policy.bind("CVSSubscriberAction.0", info.getLocal().getFullPath().toString()), null); //$NON-NLS-1$
- return false;
- }
- } else {
- if (!makeInSync(parent)) {
- // The failed makeInSync will log any errors
- return false;
- }
- }
- if (info instanceof CVSSyncInfo) {
- CVSSyncInfo cvsInfo= (CVSSyncInfo) info;
- IStatus status = cvsInfo.makeInSync();
- if (status.getSeverity() == IStatus.ERROR) {
- logError(status);
- return false;
- }
- return true;
- }
- return false;
- } else {
- return true;
- }
- }
-
- protected void makeOutgoing(SyncInfo[] folders, IProgressMonitor monitor) throws TeamException {
- // If a node has a parent that is an incoming folder creation, we have to
- // create that folder locally and set its sync info before we can get the
- // node itself. We must do this for all incoming folder creations (recursively)
- // in the case where there are multiple levels of incoming folder creations.
- monitor.beginTask(null, 100 * folders.length);
- for (int i = 0; i < folders.length; i++) {
- SyncInfo info = folders[i];
- makeOutgoing(info, Policy.subMonitorFor(monitor, 100));
- }
- monitor.done();
- }
-
- private void makeOutgoing(SyncInfo info, IProgressMonitor monitor) throws TeamException {
- if (info == null) return;
- if (info instanceof CVSSyncInfo) {
- CVSSyncInfo cvsInfo= (CVSSyncInfo) info;
- IStatus status = cvsInfo.makeOutgoing(monitor);
- if (status.getSeverity() == IStatus.ERROR) {
- logError(status);
- }
- }
- }
-
- /**
- * Log an error associated with an operation.
- * @param status
- */
- protected void logError(IStatus status) {
- CVSUIPlugin.log(status);
- }
-
- /**
- * Handle the exception by showing an error dialog to the user.
- * Sync actions seem to need to be sync-execed to work
- * @param t
- */
- protected void handle(Throwable t) {
- CVSUIPlugin.openError(getShell(), getErrorTitle(), null, t, CVSUIPlugin.PERFORM_SYNC_EXEC | CVSUIPlugin.LOG_NONTEAM_EXCEPTIONS);
- }
-
- /**
- * Return the error title that will appear in any error dialogs shown to the user
- * @return
- */
- protected String getErrorTitle() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
- */
- public void run(IAction action) {
-// TODO: Saving can change the sync state! How should this be handled?
-// boolean result = saveIfNecessary();
-// if (!result) return null;
-
- MutableSyncInfoSet syncSet = getFilteredSyncInfoSet(getFilteredSyncInfos());
- if (syncSet == null || syncSet.isEmpty()) return;
- try {
- getCVSRunnableContext().run(getJobName(syncSet), getSchedulingRule(syncSet), true, getRunnable(syncSet));
- } catch (InvocationTargetException e) {
- handle(e);
- } catch (InterruptedException e) {
- // nothing to do;
- }
- }
-
- /**
- * Return an IRunnableWithProgress that will operate on the given sync set.
- * This method is invoked by <code>run(IAction)</code> when the action is
- * executed from a menu. The default implementation invokes the method
- * <code>run(SyncInfoSet, IProgressMonitor)</code>.
- * @param syncSet
- * @return
- */
- public IRunnableWithProgress getRunnable(final MutableSyncInfoSet syncSet) {
- return new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- // Pass the scheduling rule to the synchronizer so that sync change events
- // and cache commits to disk are batched
- EclipseSynchronizer.getInstance().run(
- getSchedulingRule(syncSet),
- new ICVSRunnable() {
- public void run(IProgressMonitor monitor) throws CVSException {
- try {
- CVSSubscriberAction.this.run(syncSet, monitor);
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- }
- }, monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- };
- }
-
- protected abstract void run(MutableSyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException;
-
- /*
- * Return the ICVSRunnableContext which will be used to run the operation.
- */
- private ICVSRunnableContext getCVSRunnableContext() {
- if (canRunAsJob() && areJobsEnabled()) {
- return new CVSSubscriberNonblockingContext();
- } else {
- return new CVSBlockingRunnableContext(shell);
- }
- }
-
- protected boolean areJobsEnabled() {
- return true;
- }
-
- /**
- * Return the job name to be used if the action can run as a job.
- *
- * @param syncSet
- * @return
- */
- protected abstract String getJobName(SyncInfoSet syncSet);
-
- /**
- * Return a scheduling rule that includes all resources that will be operated
- * on by the subscriber action. The default behavior is to include all projects
- * effected by the operation. Subclasses may override.
- *
- * @param syncSet
- * @return
- */
- protected ISchedulingRule getSchedulingRule(SyncInfoSet syncSet) {
- IResource[] resources = syncSet.getResources();
- Set set = new HashSet();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- set.add(resource.getProject());
- }
- IProject[] projects = (IProject[]) set.toArray(new IProject[set.size()]);
- if (projects.length == 1) {
- return projects[0];
- } else {
- return new MultiRule(projects);
- }
- }
-
- protected boolean canRunAsJob() {
- return true;
- }
-
- /**
- * Filter the sync resource set using action specific criteria or input from the user.
- */
- protected MutableSyncInfoSet getFilteredSyncInfoSet(SyncInfo[] selectedResources) {
- // If there are conflicts or outgoing changes in the syncSet, we need to warn the user.
- return new MutableSyncInfoSet(selectedResources);
- }
-
- protected void pruneEmptyParents(SyncInfo[] nodes) throws CVSException {
- // TODO: A more explicit tie in to the pruning mechanism would be prefereable.
- // i.e. I don't like referencing the option and visitor directly
- if (!CVSProviderPlugin.getPlugin().getPruneEmptyDirectories()) return;
- ICVSResource[] cvsResources = new ICVSResource[nodes.length];
- for (int i = 0; i < cvsResources.length; i++) {
- cvsResources[i] = CVSWorkspaceRoot.getCVSResourceFor(nodes[i].getLocal());
- }
- new PruneFolderVisitor().visit(
- CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot()),
- cvsResources);
- }
-
- public CVSSyncInfo getCVSSyncInfo(SyncInfo info) {
- if (info instanceof CVSSyncInfo) {
- return (CVSSyncInfo)info;
- }
- return null;
- }
-
- protected SyncInfo getParent(SyncInfo info) throws TeamException {
- return info.getSubscriber().getSyncInfo(info.getLocal().getParent());
- }
-
- protected IResource[] getIResourcesFrom(SyncInfo[] nodes) {
- List resources = new ArrayList(nodes.length);
- for (int i = 0; i < nodes.length; i++) {
- resources.add(nodes[i].getLocal());
- }
- return (IResource[]) resources.toArray(new IResource[resources.size()]);
- }
-
- /**
- * Prompt to overwrite those resources that could not be safely updated
- * Note: This method is designed to be overridden by test cases.
- *
- * @return whether to perform the overwrite
- */
- protected boolean promptForOverwrite(final MutableSyncInfoSet syncSet) {
- final int[] result = new int[] {Dialog.CANCEL};
- TeamUIPlugin.getStandardDisplay().syncExec(new Runnable() {
- public void run() {
- UpdateDialog dialog = new UpdateDialog(getShell(), syncSet);
- result[0] = dialog.open();
- }
- });
- return (result[0] == UpdateDialog.YES);
- }
-
- /**
- * Make the contents of the local resource match that of the remote
- * without modifying the sync info of the local resource.
- * If called on a new folder, the sync info will be copied.
- */
- protected void makeRemoteLocal(SyncInfo info, IProgressMonitor monitor) throws TeamException {
- ISubscriberResource remote = info.getRemote();
- IResource local = info.getLocal();
- try {
- if(remote==null) {
- if (local.exists()) {
- local.delete(IResource.KEEP_HISTORY, monitor);
- }
- } else {
- if(remote.isContainer()) {
- ensureContainerExists(info);
- } else {
- monitor.beginTask(null, 200);
- try {
- IFile localFile = (IFile)local;
- if(local.exists()) {
- localFile.setContents(remote.getStorage(Policy.subMonitorFor(monitor, 100)).getContents(), false /*don't force*/, true /*keep history*/, Policy.subMonitorFor(monitor, 100));
- } else {
- ensureContainerExists(getParent(info));
- localFile.create(remote.getStorage(Policy.subMonitorFor(monitor, 100)).getContents(), false /*don't force*/, Policy.subMonitorFor(monitor, 100));
- }
- } finally {
- monitor.done();
- }
- }
- }
- } catch(CoreException e) {
- throw new CVSException(Policy.bind("UpdateMergeActionProblems_merging_remote_resources_into_workspace_1"), e); //$NON-NLS-1$
- }
- }
-
- private boolean ensureContainerExists(SyncInfo info) throws TeamException {
- IResource local = info.getLocal();
- // make sure that the parent exists
- if (!local.exists()) {
- if (!ensureContainerExists(getParent(info))) {
- return false;
- }
- }
- // make sure that the folder sync info is set;
- if (isOutOfSync(info)) {
- if (info instanceof CVSSyncInfo) {
- CVSSyncInfo cvsInfo = (CVSSyncInfo)info;
- IStatus status = cvsInfo.makeInSync();
- if (status.getSeverity() == IStatus.ERROR) {
- logError(status);
- return false;
- }
- }
- }
- // create the folder if it doesn't exist
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor((IContainer)local);
- if (!cvsFolder.exists()) {
- cvsFolder.mkdir();
- }
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSynchronizeViewCompareConfiguration.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSynchronizeViewCompareConfiguration.java
deleted file mode 100644
index d7d543efe..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSynchronizeViewCompareConfiguration.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.subscriber;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator;
-import org.eclipse.team.ui.synchronize.*;
-import org.eclipse.team.ui.synchronize.views.SyncInfoLabelProvider;
-
-public class CVSSynchronizeViewCompareConfiguration extends TeamSubscriberPageDiffTreeViewerConfiguration {
-
- private boolean isGroupIncomingByComment = false;
-
- private static class CVSLabelDecorator extends LabelProvider implements ILabelDecorator {
- public String decorateText(String input, Object element) {
- String text = input;
- if (element instanceof SyncInfoDiffNode) {
- IResource resource = ((SyncInfoDiffNode)element).getResource();
- if(resource != null && resource.getType() != IResource.ROOT) {
- CVSLightweightDecorator.Decoration decoration = new CVSLightweightDecorator.Decoration();
- CVSLightweightDecorator.decorateTextLabel(resource, decoration, false, true);
- StringBuffer output = new StringBuffer(25);
- if(decoration.prefix != null) {
- output.append(decoration.prefix);
- }
- output.append(text);
- if(decoration.suffix != null) {
- output.append(decoration.suffix);
- }
- return output.toString();
- }
- }
- return text;
- }
- public Image decorateImage(Image base, Object element) {
- return base;
- }
- }
-
- public CVSSynchronizeViewCompareConfiguration(ISynchronizeView view, TeamSubscriberParticipant participant) {
- super(view, participant);
- participant.addPropertyChangeListener(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.DiffTreeViewerConfiguration#getLabelProvider()
- */
- protected ILabelProvider getLabelProvider() {
- return new SyncInfoLabelProvider.DecoratingColorLabelProvider(new SyncInfoLabelProvider(), new CVSLabelDecorator());
- }
-
- public boolean isGroupIncomingByComment() {
- return isGroupIncomingByComment;
- }
-
- public void setGroupIncomingByComment(boolean enabled) {
- this.isGroupIncomingByComment = enabled;
- if(getParticipant().getMode() == TeamSubscriberParticipant.INCOMING_MODE) {
- setInput(getViewer());
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.DiffTreeViewerConfiguration#getInput()
- */
- protected SyncInfoDiffNodeRoot getInput() {
- if(isGroupIncomingByComment() && getParticipant().getMode() == TeamSubscriberParticipant.INCOMING_MODE) {
- return new ChangeLogDiffNodeRoot(getSyncSet());
- } else {
- return super.getInput();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.DiffTreeViewerConfiguration#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- String property = event.getProperty();
- if(property.equals(TeamSubscriberParticipant.P_SYNCVIEWPAGE_MODE) && isGroupIncomingByComment()) {
- int oldMode = ((Integer)event.getOldValue()).intValue();
- int newMode = ((Integer)event.getNewValue()).intValue();
- if(newMode == TeamSubscriberParticipant.INCOMING_MODE ||
- oldMode == TeamSubscriberParticipant.INCOMING_MODE) {
- aSyncExec(new Runnable() {
- public void run() {
- setInput(getViewer());
- }
- });
- }
- }
- super.propertyChange(event);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSynchronizeViewPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSynchronizeViewPage.java
deleted file mode 100644
index 7075a365b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSynchronizeViewPage.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.ui.synchronize.*;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IActionDelegate;
-
-public class CVSSynchronizeViewPage extends TeamSubscriberParticipantPage implements ISyncSetChangedListener {
-
- private List delegates = new ArrayList(2);
- private CVSSynchronizeViewCompareConfiguration config;
- private Action groupByComment;
-
- protected class CVSActionDelegate extends Action {
- private IActionDelegate delegate;
-
- public CVSActionDelegate(IActionDelegate delegate) {
- this.delegate = delegate;
- addDelegate(this);
- }
-
- public void run() {
- ISelection selection = new StructuredSelection(getSyncInfoSet().members());
- if (!selection.isEmpty()) {
- delegate.selectionChanged(this, selection);
- delegate.run(this);
- }
- }
-
- public IActionDelegate getDelegate() {
- return delegate;
- }
- }
-
- public CVSSynchronizeViewPage(TeamSubscriberParticipant participant, ISynchronizeView view) {
- super(participant, view);
- groupByComment = new Action("Show incoming grouped by comment", Action.AS_CHECK_BOX) {
- public void run() {
- config.setGroupIncomingByComment(!config.isGroupIncomingByComment());
- setChecked(config.isGroupIncomingByComment());
- }
- };
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.team.ui.sync.AbstractSynchronizeParticipant#dispose()
- */
- public void dispose() {
- super.dispose();
- getSyncInfoSet().removeSyncSetChangedListener(this);
- CVSUIPlugin.removePropertyChangeListener(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.TeamSubscriberParticipantPage#setActionBars(org.eclipse.ui.IActionBars)
- */
- public void setActionBars(IActionBars actionBars) {
- super.setActionBars(actionBars);
- IMenuManager mgr = actionBars.getMenuManager();
- mgr.add(new Separator());
- mgr.add(groupByComment);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.team.internal.ui.sync.sets.ISyncSetChangedListener#syncSetChanged(org.eclipse.team.internal.ui.sync.sets.SyncSetChangedEvent)
- */
- public void syncSetChanged(ISyncInfoSetChangeEvent event, IProgressMonitor monitor) {
- StructuredViewer viewer = (StructuredViewer)getChangesViewer();
- if (viewer != null && getSyncInfoSet() != null) {
- ISelection selection = new StructuredSelection(getSyncInfoSet().members());
- for (Iterator it = delegates.iterator(); it.hasNext(); ) {
- CVSActionDelegate delegate = (CVSActionDelegate) it.next();
- delegate.getDelegate().selectionChanged(delegate, selection);
- }
- }
- }
-
- private void addDelegate(CVSActionDelegate delagate) {
- delegates.add(delagate);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- super.propertyChange(event);
- String prop = event.getProperty();
- if(prop.equals(CVSUIPlugin.P_DECORATORS_CHANGED) && getChangesViewer() != null && getSyncInfoSet() != null) {
- ((StructuredViewer)getChangesViewer()).refresh(true /* update labels */);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- super.createControl(parent);
-
- // Sync changes are used to update the action state for the update/commit buttons.
- getSyncInfoSet().addSyncSetChangedListener(this);
-
- // Listen for decorator changed to refresh the viewer's labels.
- CVSUIPlugin.addPropertyChangeListener(this);
- }
-
- private SyncInfoSet getSyncInfoSet() {
- return getParticipant().getFilteredSyncInfoCollector().getSyncInfoSet();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.TeamSubscriberParticipantPage#createSyncInfoSetCompareConfiguration()
- */
- protected TeamSubscriberPageDiffTreeViewerConfiguration createSyncInfoSetCompareConfiguration() {
- if(config == null) {
- config = new CVSSynchronizeViewCompareConfiguration(getSynchronizeView(), getParticipant());
- }
- return config;
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNode.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNode.java
deleted file mode 100644
index 86a826856..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNode.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.team.internal.ccvs.ui.subscriber;
-
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.ui.synchronize.SyncInfoDiffNode;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-public class ChangeLogDiffNode extends SyncInfoDiffNode implements IAdaptable, IWorkbenchAdapter {
-
- private ILogEntry logEntry;
-
- public ChangeLogDiffNode(DiffNode parent, ILogEntry logEntry) {
- super(parent, new MutableSyncInfoSet(), ResourcesPlugin.getWorkspace().getRoot());
- this.logEntry = logEntry;
- }
-
- public ILogEntry getComment() {
- return logEntry;
- }
-
- public boolean equals(Object other) {
- if(other == this) return true;
- if(! (other instanceof ChangeLogDiffNode)) return false;
- return ((ChangeLogDiffNode)other).getComment().equals(getComment());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_PROJECT_VERSION);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
- */
- public String getLabel(Object o) {
- return logEntry.getComment() + "(" + logEntry.getAuthor() +")";
- }
-
- public void add(SyncInfo info) {
- ((MutableSyncInfoSet)getSyncInfoSet()).add(info);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoDiffNode#toString()
- */
- public String toString() {
- return getLabel(null);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNodeBuilder.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNodeBuilder.java
deleted file mode 100644
index b8803605e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNodeBuilder.java
+++ /dev/null
@@ -1,99 +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.team.internal.ccvs.ui.subscriber;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFile;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.ui.synchronize.SyncInfoDiffNodeRoot;
-import org.eclipse.team.ui.synchronize.views.SyncInfoDiffNodeBuilder;
-
-/**
- * It would be very useful to support showing changes grouped logically
- * instead of grouped physically. This could be used for showing incoming
- * changes and also for showing the results of comparisons.
- *
- * Some problems with this:
- * 1. you have to fetch the log entries to extract useful information by
- * which to classify changes. this is expensive and can't be done in the
- * ui thread.
- *
- * 2. how to support logical groupins based on any of the information in
- * the log entry?
- */
-public class ChangeLogDiffNodeBuilder extends SyncInfoDiffNodeBuilder {
-
- private Map commentRoots = new HashMap();
-
- public ChangeLogDiffNodeBuilder(SyncInfoDiffNodeRoot root) {
- super(root);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.views.SyncInfoDiffNodeBuilder#buildTree(org.eclipse.compare.structuremergeviewer.DiffNode)
- */
- protected IDiffElement[] buildTree(DiffNode node) {
- if(node == getRoot()) {
- DiffNode[] nodes = calculateRoots(getRoot().getSyncInfoSet());
- for (int i = 0; i < nodes.length; i++) {
- super.buildTree(nodes[i]);
- }
- } else {
- return super.buildTree(node);
- }
- return new IDiffElement[0];
- }
-
- private DiffNode[] calculateRoots(SyncInfoSet set) {
- commentRoots.clear();
- SyncInfo[] infos = set.members();
- for (int i = 0; i < infos.length; i++) {
- ILogEntry logEntry = getSyncInfoComment((CVSSyncInfo) infos[i]);
- if(logEntry != null) {
- String comment = logEntry.getComment();
- ChangeLogDiffNode changeRoot = (ChangeLogDiffNode) commentRoots.get(comment);
- if (changeRoot == null) {
- changeRoot = new ChangeLogDiffNode(getRoot(), logEntry);
- commentRoots.put(comment, changeRoot);
- }
- changeRoot.add(infos[i]);
- }
- }
- return (ChangeLogDiffNode[]) commentRoots.values().toArray(new ChangeLogDiffNode[commentRoots.size()]);
- }
-
- private ILogEntry getSyncInfoComment(CVSSyncInfo info) {
- try {
- ICVSRemoteResource remote = (ICVSRemoteResource)info.getRemote();
- if(remote instanceof RemoteFile) {
- return ((RemoteFile)remote).getLogEntry(new NullProgressMonitor());
- }
- return null;
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- return null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.views.SyncInfoDiffNodeBuilder#syncSetChanged(org.eclipse.team.core.subscribers.ISyncInfoSetChangeEvent)
- */
- protected void syncSetChanged(ISyncInfoSetChangeEvent event) {
- reset();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNodeRoot.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNodeRoot.java
deleted file mode 100644
index d95450a31..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNodeRoot.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.team.internal.ccvs.ui.subscriber;
-
-import org.eclipse.team.core.subscribers.SyncInfoSet;
-import org.eclipse.team.ui.synchronize.SyncInfoDiffNodeRoot;
-import org.eclipse.team.ui.synchronize.views.SyncInfoDiffNodeBuilder;
-
-public class ChangeLogDiffNodeRoot extends SyncInfoDiffNodeRoot {
-
- public ChangeLogDiffNodeRoot(SyncInfoSet set) {
- super(set);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoDiffNodeRoot#createBuilder()
- */
- protected SyncInfoDiffNodeBuilder createBuilder() {
- return new ChangeLogDiffNodeBuilder(this);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareRevertAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareRevertAction.java
deleted file mode 100644
index 5eabd837d..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareRevertAction.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.subscriber;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * Action in compare editor that reverts the local contents to match the contents on the server.
- */
-public class CompareRevertAction extends CVSSubscriberAction {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#run(org.eclipse.team.core.subscribers.MutableSyncInfoSet, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void run(MutableSyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException {
- SyncInfo[] changed = syncSet.members();
- if (changed.length == 0) return;
-
- // The list of sync resources to be updated using "cvs update"
- List updateShallow = new ArrayList();
- // A list of sync resource folders which need to be created locally
- // (incoming addition or previously pruned)
- Set parentCreationElements = new HashSet();
-
- for (int i = 0; i < changed.length; i++) {
- SyncInfo changedNode = changed[i];
-
- // Make sure that parent folders exist
- SyncInfo parent = getParent(changedNode);
- if (parent != null && isOutOfSync(parent)) {
- // We need to ensure that parents that are either incoming folder additions
- // or previously pruned folders are recreated.
- parentCreationElements.add(parent);
- }
-
- IResource resource = changedNode.getLocal();
- if (resource.getType() == IResource.FILE) {
- if (changedNode.getLocal().exists()) {
- updateShallow.add(changedNode);
- } else if (changedNode.getRemote() != null) {
- updateShallow.add(changedNode);
- }
- } else {
- // Special handling for folders to support shallow operations on files
- // (i.e. folder operations are performed using the sync info already
- // contained in the sync info.
- if (isOutOfSync(changedNode)) {
- parentCreationElements.add(changedNode);
- }
- }
-
- }
- try {
- // Calculate the total amount of work needed
- int work = updateShallow.size() * 100;
- monitor.beginTask(null, work);
-
- if (parentCreationElements.size() > 0) {
- makeInSync((SyncInfo[]) parentCreationElements.toArray(new SyncInfo[parentCreationElements.size()]));
- }
- if (updateShallow.size() > 0) {
- runUpdate((SyncInfo[])updateShallow.toArray(new SyncInfo[updateShallow.size()]), Policy.subMonitorFor(monitor, updateShallow.size() * 100));
- }
- } finally {
- monitor.done();
- }
- return;
- }
-
- private void runUpdate(SyncInfo[] infos, IProgressMonitor monitor) throws TeamException {
- monitor.beginTask(null, 100 * infos.length);
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- makeRemoteLocal(info, Policy.subMonitorFor(monitor, 100));
- }
- monitor.done();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.core.subscribers.SyncInfoSet)
- */
- protected String getJobName(SyncInfoSet syncSet) {
- return Policy.bind("CompareRevertAction.0", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
-
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizePage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizePage.java
deleted file mode 100644
index 0ecd25cf0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizePage.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.subscriber;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.Utils;
-import org.eclipse.team.ui.synchronize.ISynchronizeView;
-import org.eclipse.team.ui.synchronize.TeamSubscriberParticipant;
-import org.eclipse.team.ui.synchronize.actions.DirectionFilterActionGroup;
-import org.eclipse.team.ui.synchronize.actions.RemoveSynchronizeParticipantAction;
-import org.eclipse.ui.IActionBars;
-
-
-public class MergeSynchronizePage extends CVSSynchronizeViewPage {
-
- private RemoveSynchronizeParticipantAction removeAction;
- private DirectionFilterActionGroup modes;
- private Action updateAdapter;
-
- public MergeSynchronizePage(TeamSubscriberParticipant participant, ISynchronizeView view) {
- super(participant, view);
- removeAction = new RemoveSynchronizeParticipantAction(getParticipant());
- modes = new DirectionFilterActionGroup(getParticipant(), TeamSubscriberParticipant.INCOMING_MODE | TeamSubscriberParticipant.CONFLICTING_MODE);
- MergeUpdateAction action = new MergeUpdateAction();
- action.setPromptBeforeUpdate(true);
- updateAdapter = new CVSActionDelegate(action);
-
- Utils.initAction(updateAdapter, "action.SynchronizeViewUpdate.", Policy.getBundle()); //$NON-NLS-1$
- getParticipant().setMode(TeamSubscriberParticipant.INCOMING_MODE);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
- */
- public void setActionBars(IActionBars actionBars) {
- super.setActionBars(actionBars);
- if(actionBars != null) {
- IToolBarManager toolbar = actionBars.getToolBarManager();
- toolbar.add(new Separator());
- modes.fillToolBar(toolbar);
- toolbar.add(new Separator());
- toolbar.add(updateAdapter);
- toolbar.add(removeAction);
- }
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java
deleted file mode 100644
index 22ed1428e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.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.ui.subscriber;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.ui.TeamUI;
-import org.eclipse.team.ui.synchronize.*;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-public class MergeSynchronizeParticipant extends TeamSubscriberParticipant {
-
- private final static String CTX_QUALIFIER = "qualifier"; //$NON-NLS-1$
- private final static String CTX_LOCALNAME = "localname"; //$NON-NLS-1$
- private final static String CTX_ROOT = "root"; //$NON-NLS-1$
- private final static String CTX_ROOT_PATH = "root_resource"; //$NON-NLS-1$
- private final static String CTX_START_TAG = "start_tag"; //$NON-NLS-1$
- private final static String CTX_START_TAG_TYPE = "start_tag_type"; //$NON-NLS-1$
- private final static String CTX_END_TAG = "end_tag"; //$NON-NLS-1$
- private final static String CTX_END_TAG_TYPE = "end_tag_type"; //$NON-NLS-1$
-
- public MergeSynchronizeParticipant() {
- super();
- }
-
- public MergeSynchronizeParticipant(CVSMergeSubscriber subscriber) {
- super();
- setSubscriber(subscriber);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.TeamSubscriberParticipant#setSubscriber(org.eclipse.team.core.subscribers.TeamSubscriber)
- */
- protected void setSubscriber(TeamSubscriber subscriber) {
- super.setSubscriber(subscriber);
- String id = CVSMergeSubscriber.QUALIFIED_NAME;
- try {
- ISynchronizeParticipantDescriptor descriptor = TeamUI.getSynchronizeManager().getParticipantDescriptor(id);
- setInitializationData(descriptor);
- } catch (CoreException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.ISynchronizeParticipant#init(org.eclipse.ui.IMemento)
- */
- public void init(IMemento memento) throws PartInitException {
- super.init(memento);
- if(memento != null) {
- String qualifier = memento.getString(CTX_QUALIFIER);
- String localname = memento.getString(CTX_LOCALNAME);
- if(qualifier == null || localname == null) {
- throw new PartInitException(Policy.bind("MergeSynchronizeParticipant.8")); //$NON-NLS-1$
- }
- try {
- setSubscriber(read(new QualifiedName(qualifier, localname), memento));
- } catch (CVSException e) {
- throw new PartInitException(Policy.bind("MergeSynchronizeParticipant.9"), e); //$NON-NLS-1$
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.ISynchronizeParticipant#init(org.eclipse.ui.IMemento)
- */
- public void saveState(IMemento memento) {
- super.saveState(memento);
- CVSMergeSubscriber s = (CVSMergeSubscriber)getSubscriber();
- QualifiedName sId = s.getId();
- memento.putString(CTX_QUALIFIER, sId.getQualifier());
- memento.putString(CTX_LOCALNAME, sId.getLocalName());
- write(s, memento);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.AbstractSynchronizeParticipant#dispose()
- */
- public void dispose() {
- super.dispose();
- ((CVSMergeSubscriber)getSubscriber()).cancel();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.ISynchronizeParticipant#createPage(org.eclipse.team.ui.synchronize.ISynchronizeView)
- */
- public IPageBookViewPage createPage(ISynchronizeView view) {
- return new MergeSynchronizePage(this, view);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.ISynchronizeParticipant#getName()
- */
- public String getName() {
- return ((CVSMergeSubscriber)getSubscriber()).getName();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#saveState(org.eclipse.team.internal.core.SaveContext)
- */
- private void write(CVSMergeSubscriber s, IMemento memento) {
- // start and end tags
- CVSTag start = s.getStartTag();
- CVSTag end = s.getEndTag();
- memento.putString(CTX_START_TAG, start.getName());
- memento.putInteger(CTX_START_TAG_TYPE, start.getType());
- memento.putString(CTX_END_TAG, end.getName());
- memento.putInteger(CTX_END_TAG_TYPE, end.getType());
-
- // resource roots
- IResource[] roots = s.roots();
- for (int i = 0; i < roots.length; i++) {
- IResource resource = roots[i];
- IMemento rootNode = memento.createChild(CTX_ROOT);
- rootNode.putString(CTX_ROOT_PATH, resource.getFullPath().toString());
- }
- }
-
- private CVSMergeSubscriber read(QualifiedName id, IMemento memento) throws CVSException {
- CVSTag start = new CVSTag(memento.getString(CTX_START_TAG), memento.getInteger(CTX_START_TAG_TYPE).intValue()); //$NON-NLS-1$ //$NON-NLS-2$
- CVSTag end = new CVSTag(memento.getString(CTX_END_TAG), memento.getInteger(CTX_END_TAG_TYPE).intValue()); //$NON-NLS-1$ //$NON-NLS-2$
-
- IMemento[] rootNodes = memento.getChildren(CTX_ROOT);
- if(rootNodes == null || rootNodes.length == 0) {
- throw new CVSException(Policy.bind("MergeSynchronizeParticipant.10", id.toString())); //$NON-NLS-1$
- }
-
- List resources = new ArrayList();
- for (int i = 0; i < rootNodes.length; i++) {
- IMemento rootNode = rootNodes[i];
- IPath path = new Path(rootNode.getString(CTX_ROOT_PATH)); //$NON-NLS-1$
- IResource resource = ResourcesPlugin.getWorkspace().getRoot().findMember(path, true /* include phantoms */);
- if(resource != null) {
- resources.add(resource);
- } else {
- // log that a resource previously in the merge set is no longer in the workspace
- CVSProviderPlugin.log(CVSStatus.INFO, Policy.bind("MergeSynchronizeParticipant.11", path.toString()), null); //$NON-NLS-1$
- }
- }
- if(resources.isEmpty()) {
- throw new CVSException(Policy.bind("MergeSynchronizeParticipant.12", id.toString())); //$NON-NLS-1$
- }
- IResource[] roots = (IResource[]) resources.toArray(new IResource[resources.size()]);
- return new CVSMergeSubscriber(id, roots, start, end);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java
deleted file mode 100644
index 472ab2a8e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.OrSyncInfoFilter;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.SyncInfoDirectionFilter;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * This action performs a "cvs update -j start -j end ..." to merge changes
- * into the local workspace.
- */
-public class MergeUpdateAction extends SafeUpdateAction {
-
- TeamSubscriber currentSubcriber = null;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#getOverwriteLocalChanges()
- */
- protected boolean getOverwriteLocalChanges() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.SubscriberAction#getSyncInfoFilter()
- */
- protected FastSyncInfoFilter getSyncInfoFilter() {
- // Update works for all incoming and conflicting nodes
- return new OrSyncInfoFilter(new FastSyncInfoFilter[] {
- new SyncInfoDirectionFilter(SyncInfo.INCOMING),
- new SyncInfoDirectionFilter(SyncInfo.CONFLICTING)
- });
- }
-
- protected void updated(IResource[] resources) throws TeamException {
- // Mark all succesfully updated resources as merged
- if(resources.length > 0 && currentSubcriber != null) {
- ((CVSMergeSubscriber)currentSubcriber).merged(resources);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#runUpdateDeletions(org.eclipse.team.internal.ui.sync.views.SyncInfo[], org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void runUpdateDeletions(SyncInfo[] nodes, IProgressMonitor monitor) throws TeamException {
- // When merging, update deletions become outgoing deletions so just delete
- // the files locally without unmanaging (so the sync info is kept to
- // indicate an outgoing deletion
- try {
- monitor.beginTask(null, 100 * nodes.length);
- for (int i = 0; i < nodes.length; i++) {
- IResource resource = nodes[i].getLocal();
- if (resource.getType() == IResource.FILE) {
- ((IFile)resource).delete(false /* force */, true /* keep local history */, Policy.subMonitorFor(monitor, 100));
- }
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } finally {
- monitor.done();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberUpdateAction#runUpdateShallow(org.eclipse.team.internal.ui.sync.views.SyncInfo[], org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void runSafeUpdate(SyncInfo[] nodes, IProgressMonitor monitor) throws TeamException {
- if(nodes.length > 0) {
- // Assumption that all nodes are from the same subscriber.
- currentSubcriber = nodes[0].getSubscriber();
- if (!(currentSubcriber instanceof CVSMergeSubscriber)) {
- throw new CVSException(Policy.bind("MergeUpdateAction.invalidSubscriber", currentSubcriber.toString())); //$NON-NLS-1$
- }
- CVSTag startTag = ((CVSMergeSubscriber)currentSubcriber).getStartTag();
- CVSTag endTag = ((CVSMergeSubscriber)currentSubcriber).getEndTag();
-
- // Incoming additions require different handling then incoming changes and deletions
- List additions = new ArrayList();
- List changes = new ArrayList();
- for (int i = 0; i < nodes.length; i++) {
- SyncInfo resource = nodes[i];
- int kind = resource.getKind();
- if ((kind & SyncInfo.CHANGE_MASK) == SyncInfo.ADDITION) {
- additions.add(resource);
- } else {
- changes.add(resource);
- }
- }
-
- try {
- monitor.beginTask(null, (additions.size() + changes.size()) * 100);
- if (!additions.isEmpty()) {
- safeUpdate(
- getIResourcesFrom((SyncInfo[]) additions.toArray(new SyncInfo[additions.size()])),
- new Command.LocalOption[] {
- Command.DO_NOT_RECURSE,
- Update.makeArgumentOption(Update.JOIN, endTag.getName())
- },
- Policy.subMonitorFor(monitor, additions.size() * 100));
- }
- if (!changes.isEmpty()) {
- safeUpdate(
- getIResourcesFrom((SyncInfo[]) changes.toArray(new SyncInfo[changes.size()])),
- new Command.LocalOption[] {
- Command.DO_NOT_RECURSE,
- Update.makeArgumentOption(Update.JOIN, startTag.getName()),
- Update.makeArgumentOption(Update.JOIN, endTag.getName())
- },
- Policy.subMonitorFor(monitor, changes.size() * 100));
- }
- } finally {
- monitor.done();
- }
- }
- }
-
- /*
- * @see UpdateSyncAction#runUpdateDeep(IProgressMonitor, List, RepositoryManager)
- * incoming-change
- * incoming-deletion
- */
- protected void overwriteUpdate(SyncInfoSet set, IProgressMonitor monitor) throws TeamException {
- SyncInfo[] nodes = set.members();
- monitor.beginTask(null, 1000 * nodes.length);
- try {
- for (int i = 0; i < nodes.length; i++) {
- makeRemoteLocal(nodes[i], Policy.subMonitorFor(monitor, 1000));
- }
- } finally {
- monitor.done();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet)
- */
- protected String getJobName(SyncInfoSet syncSet) {
- return Policy.bind("MergeUpdateAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/OverrideAndCommitAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/OverrideAndCommitAction.java
deleted file mode 100644
index f161f917e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/OverrideAndCommitAction.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.internal.ccvs.ui.subscriber;
-
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.SyncInfoSet;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.SyncInfoDirectionFilter;
-
-public class OverrideAndCommitAction extends SubscriberCommitAction {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.SubscriberAction#getSyncInfoFilter()
- */
- protected FastSyncInfoFilter getSyncInfoFilter() {
- return new SyncInfoDirectionFilter(new int[] {SyncInfo.CONFLICTING, SyncInfo.INCOMING});
- }
-
- protected boolean promptForConflictHandling(SyncInfoSet syncSet) {
- // If there is a conflict in the syncSet, we need to prompt the user before proceeding.
- if (syncSet.hasConflicts() || syncSet.hasIncomingChanges()) {
- switch (promptForConflicts(syncSet)) {
- case 0:
- // Yes, synchronize conflicts as well
- break;
- case 1:
- // No, stop here
- return false;
- case 2:
- default:
- // Cancel
- return false;
- }
- }
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/OverrideAndUpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/OverrideAndUpdateAction.java
deleted file mode 100644
index a0b461d3a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/OverrideAndUpdateAction.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.SyncInfoDirectionFilter;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.OverrideAndUpdateOperation;
-
-/**
- * Runs an update command that will prompt the user for overwritting local
- * changes to files that have non-mergeable conflicts. All the prompting logic
- * is in the super class.
- */
-public class OverrideAndUpdateAction extends CVSSubscriberAction {
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.SubscriberAction#getSyncInfoFilter()
- */
- protected FastSyncInfoFilter getSyncInfoFilter() {
- return new SyncInfoDirectionFilter(new int[] {SyncInfo.CONFLICTING, SyncInfo.OUTGOING});
- }
-
- private FastSyncInfoFilter getConflictingAdditionFilter() {
- return new FastSyncInfoFilter.AndSyncInfoFilter(
- new FastSyncInfoFilter[] {
- new FastSyncInfoFilter.SyncInfoDirectionFilter(new int[] {SyncInfo.CONFLICTING}),
- new FastSyncInfoFilter.SyncInfoChangeTypeFilter(new int[] {SyncInfo.ADDITION})
- });
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#run(org.eclipse.team.ui.sync.SyncInfoSet, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void run(MutableSyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException {
- try {
- if(promptForOverwrite(syncSet)) {
- SyncInfo[] conflicts = syncSet.getNodes(getConflictingAdditionFilter());
- List conflictingResources = new ArrayList();
- for (int i = 0; i < conflicts.length; i++) {
- SyncInfo info = conflicts[i];
- conflictingResources.add(info.getLocal());
- }
- new OverrideAndUpdateOperation(getShell(), syncSet.getResources(), (IResource[]) conflictingResources.toArray(new IResource[conflictingResources.size()]), null /* tag */, false /* recurse */).run(monitor);
- }
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- } catch (InterruptedException e) {
- Policy.cancelOperation();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.synchronize.actions.SyncInfoSet)
- */
- protected String getJobName(SyncInfoSet syncSet) {
- return Policy.bind("OverrideAndUpdateAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java
deleted file mode 100644
index 549e09c2c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.*;
-import org.eclipse.team.internal.ccvs.core.*;
-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.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.UpdateOnlyMergableOperation;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-
-/**
- * This update action will update all mergable resources first and then prompt the
- * user to overwrite any resources that failed the safe update.
- *
- * Subclasses should determine how the update should handle conflicts by implementing
- * the getOverwriteLocalChanges() method.
- */
-public abstract class SafeUpdateAction extends CVSSubscriberAction {
-
- private List skippedFiles = new ArrayList();
- private boolean promptBeforeUpdate = false;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#run(org.eclipse.team.ui.sync.SyncInfoSet, org.eclipse.core.runtime.IProgressMonitor)
- */
- public void run(MutableSyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException {
- try {
- if(! promptIfNeeded(syncSet)) return;
- // First, remove any known failure cases
- FastSyncInfoFilter failFilter = getKnownFailureCases();
- SyncInfo[] willFail = syncSet.getNodes(failFilter);
- syncSet.rejectNodes(failFilter);
- skippedFiles.clear();
-
- monitor.beginTask(null, (syncSet.size() + willFail.length) * 100);
-
- // Run the update on the remaining nodes in the set
- // The update will fail for conflicts that turn out to be non-automergable
- safeUpdate(syncSet, Policy.subMonitorFor(monitor, syncSet.size() * 100));
-
- // It is possible that some of the conflicting changes were not auto-mergable.
- // Accumulate all resources that have not been updated so far
- final MutableSyncInfoSet failedSet = createFailedSet(syncSet, willFail, (IFile[]) skippedFiles.toArray(new IFile[skippedFiles.size()]));
-
- // Remove all these from the original sync set
- syncSet.rejectNodes(new FastSyncInfoFilter() {
- public boolean select(SyncInfo info) {
- return failedSet.getSyncInfo(info.getLocal()) != null;
- }
- });
-
- // Handle conflicting files that can't be merged, ask the user what should be done.
- if(! failedSet.isEmpty()) {
- if(getOverwriteLocalChanges()) {
- // Ask the user if a replace should be performed on the remaining nodes
- if(promptForOverwrite(failedSet)) {
- overwriteUpdate(failedSet, Policy.subMonitorFor(monitor, willFail.length * 100));
- syncSet.addAll(failedSet);
- }
- } else {
- // Warn the user that some nodes could not be updated. This can happen if there are
- // files with conflicts that are not auto-mergeable.
- warnAboutFailedResources(failedSet);
- }
- }
-
- updated(syncSet.getResources());
- } finally {
- monitor.done();
- }
- }
-
- protected boolean getOverwriteLocalChanges(){
- return false;
- }
-
- /**
- * Perform a safe update on the resources in the provided set. Any included resources
- * that cannot be updated safely wil be added to the skippedFiles list.
- * @param syncSet the set containing the resources to be updated
- * @param monitor
- */
- protected void safeUpdate(SyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException {
- SyncInfo[] changed = syncSet.members();
- if (changed.length == 0) return;
-
- // The list of sync resources to be updated using "cvs update"
- List updateShallow = new ArrayList();
- // A list of sync resource folders which need to be created locally
- // (incoming addition or previously pruned)
- Set parentCreationElements = new HashSet();
- // A list of sync resources that are incoming deletions.
- // We do these first to avoid case conflicts
- List updateDeletions = new ArrayList();
-
- for (int i = 0; i < changed.length; i++) {
- SyncInfo changedNode = changed[i];
-
- // Make sure that parent folders exist
- SyncInfo parent = getParent(changedNode);
- if (parent != null && isOutOfSync(parent)) {
- // We need to ensure that parents that are either incoming folder additions
- // or previously pruned folders are recreated.
- parentCreationElements.add(parent);
- }
-
- IResource resource = changedNode.getLocal();
- int kind = changedNode.getKind();
- boolean willBeAttempted = false;
- if (resource.getType() == IResource.FILE) {
- // Not all change types will require a "cvs update"
- // Some can be deleted locally without performing an update
- switch (kind & SyncInfo.DIRECTION_MASK) {
- case SyncInfo.INCOMING:
- switch (kind & SyncInfo.CHANGE_MASK) {
- case SyncInfo.DELETION:
- // Incoming deletions can just be deleted instead of updated
- updateDeletions.add(changedNode);
- willBeAttempted = true;
- break;
- default:
- // add the file to the list of files to be updated
- updateShallow.add(changedNode);
- willBeAttempted = true;
- break;
- }
- break;
- case SyncInfo.CONFLICTING:
- switch (kind & SyncInfo.CHANGE_MASK) {
- case SyncInfo.CHANGE:
- // add the file to the list of files to be updated
- updateShallow.add(changedNode);
- willBeAttempted = true;
- break;
- }
- break;
- }
- if (!willBeAttempted) {
- skippedFiles.add(resource);
- }
- } else {
- // Special handling for folders to support shallow operations on files
- // (i.e. folder operations are performed using the sync info already
- // contained in the sync info.
- if (isOutOfSync(changedNode)) {
- parentCreationElements.add(changedNode);
- }
- }
-
- }
- try {
- // Calculate the total amount of work needed
- int work = (updateDeletions.size() + updateShallow.size()) * 100;
- monitor.beginTask(null, work);
-
- if (parentCreationElements.size() > 0) {
- makeInSync((SyncInfo[]) parentCreationElements.toArray(new SyncInfo[parentCreationElements.size()]));
- }
- if (updateDeletions.size() > 0) {
- runUpdateDeletions((SyncInfo[])updateDeletions.toArray(new SyncInfo[updateDeletions.size()]), Policy.subMonitorFor(monitor, updateDeletions.size() * 100));
- }
- if (updateShallow.size() > 0) {
- runSafeUpdate((SyncInfo[])updateShallow.toArray(new SyncInfo[updateShallow.size()]), Policy.subMonitorFor(monitor, updateShallow.size() * 100));
- }
- } finally {
- monitor.done();
- }
- return;
- }
-
- /**
- * Perform an overwrite (unsafe) update on the resources in the provided set.
- * @param syncSet the set containing the resources to be updated
- * @param monitor
- */
- protected abstract void overwriteUpdate(SyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException;
-
- /*
- * Return a filter which selects the cases that we know ahead of time
- * will fail on an update
- */
- protected FastSyncInfoFilter getKnownFailureCases() {
- return new OrSyncInfoFilter(new FastSyncInfoFilter[] {
- // Conflicting additions of files will fail
- new AndSyncInfoFilter(new FastSyncInfoFilter[] {
- FastSyncInfoFilter.getDirectionAndChangeFilter(SyncInfo.CONFLICTING, SyncInfo.ADDITION),
- new FastSyncInfoFilter() {
- public boolean select(SyncInfo info) {
- return info.getLocal().getType() == IResource.FILE;
- }
- }
- }),
- // Conflicting changes involving a deletion on one side will aways fail
- new AndSyncInfoFilter(new FastSyncInfoFilter[] {
- FastSyncInfoFilter.getDirectionAndChangeFilter(SyncInfo.CONFLICTING, SyncInfo.CHANGE),
- new FastSyncInfoFilter() {
- public boolean select(SyncInfo info) {
- ISubscriberResource remote = info.getRemote();
- ISubscriberResource base = info.getBase();
- if (info.getLocal().exists()) {
- // local != base and no remote will fail
- return (base != null && remote == null);
- } else {
- // no local and base != remote
- return (base != null && remote != null && !base.equals(remote));
- }
- }
- }
- }),
- // Conflicts where the file type is binary will work but are not merged
- // so they should be skipped
- new AndSyncInfoFilter(new FastSyncInfoFilter[] {
- FastSyncInfoFilter.getDirectionAndChangeFilter(SyncInfo.CONFLICTING, SyncInfo.CHANGE),
- new FastSyncInfoFilter() {
- public boolean select(SyncInfo info) {
- IResource local = info.getLocal();
- if (local.getType() == IResource.FILE) {
- try {
- ICVSFile file = CVSWorkspaceRoot.getCVSFileFor((IFile)local);
- byte[] syncBytes = file.getSyncBytes();
- if (syncBytes != null) {
- return ResourceSyncInfo.isBinary(syncBytes);
- }
- } catch (CVSException e) {
- // There was an error obtaining or interpreting the sync bytes
- // Log it and skip the file
- CVSProviderPlugin.log(e);
- return true;
- }
- }
- return false;
- }
- }
- }),
- // Outgoing changes may not fail but they are skipped as well
- new SyncInfoDirectionFilter(SyncInfo.OUTGOING)
- });
- }
-
- /*
- * Return the complete set of selected resources that failed to update safely
- */
- private MutableSyncInfoSet createFailedSet(SyncInfoSet syncSet, SyncInfo[] willFail, IFile[] files) {
- List result = new ArrayList();
- for (int i = 0; i < files.length; i++) {
- IFile file = files[i];
- SyncInfo resource = syncSet.getSyncInfo(file);
- if (resource != null) result.add(resource);
- }
- for (int i = 0; i < willFail.length; i++) {
- result.add(willFail[i]);
- }
- return new MutableSyncInfoSet((SyncInfo[]) result.toArray(new SyncInfo[result.size()]));
- }
-
- /**
- * Warn user that some files could not be updated.
- * Note: This method is designed to be overridden by test cases.
- */
- protected void warnAboutFailedResources(final MutableSyncInfoSet syncSet) {
- final int[] result = new int[] {Dialog.CANCEL};
- TeamUIPlugin.getStandardDisplay().syncExec(new Runnable() {
- public void run() {
- MessageDialog.openInformation(shell,
- Policy.bind("SafeUpdateAction.warnFilesWithConflictsTitle"), //$NON-NLS-1$
- Policy.bind("SafeUpdateAction.warnFilesWithConflictsDescription")); //$NON-NLS-1$
- }
- });
- }
-
- /**
- * This method is invoked for all resources in the sync set that are incoming deletions.
- * It is done separately to allow deletions to be performed before additions that may
- * be the same name with different letter case.
- * @param nodes the SyncInfo nodes that are incoming deletions
- * @param monitor
- * @throws TeamException
- */
- protected abstract void runUpdateDeletions(SyncInfo[] nodes, IProgressMonitor monitor) throws TeamException;
-
- /**
- * This method is invoked for all resources in the sync set that are incoming changes
- * (but not deletions: @see runUpdateDeletions) or conflicting changes.
- * This method should only update those conflicting resources that are automergable.
- * @param nodes the incoming or conflicting SyncInfo nodes
- * @param monitor
- * @throws TeamException
- */
- protected abstract void runSafeUpdate(SyncInfo[] nodes, IProgressMonitor monitor) throws TeamException;
-
- protected void safeUpdate(IResource[] resources, LocalOption[] localOptions, IProgressMonitor monitor) throws TeamException {
- try {
- UpdateOnlyMergableOperation operation = new UpdateOnlyMergableOperation(getShell(), resources, localOptions);
- operation.run(monitor);
- addSkippedFiles(operation.getSkippedFiles());
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- } catch (InterruptedException e) {
- Policy.cancelOperation();
- }
- }
-
- /**
- * Notification of all resource that were updated (either safely or othrwise)
- */
- protected abstract void updated(IResource[] resources) throws TeamException;
-
- private void addSkippedFiles(IFile[] files) {
- skippedFiles.addAll(Arrays.asList(files));
- }
-
- protected String getErrorTitle() {
- return Policy.bind("UpdateAction.update"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet)
- */
- protected String getJobName(SyncInfoSet syncSet) {
- return Policy.bind("UpdateAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
- }
-
- /**
- * Confirm with the user what we are going to be doing. By default the update action doesn't
- * prompt because the user has usually selected resources first. But in some cases, for example
- * when performing a toolbar action, a confirmation prompt is nice.
- * @param set the resources to be updated
- * @return <code>true</code> if the update operation can continue, and <code>false</code>
- * if the update has been cancelled by the user.
- */
- private boolean promptIfNeeded(final SyncInfoSet set) {
- final boolean[] result = new boolean[] {true};
- if(getPromptBeforeUpdate()) {
- TeamUIPlugin.getStandardDisplay().syncExec(new Runnable() {
- public void run() {
- String sizeString = Integer.toString(set.size());
- String message = set.size() > 1 ? Policy.bind("UpdateAction.promptForUpdateSeveral", sizeString) : Policy.bind("UpdateAction.promptForUpdateOne", sizeString);
- result[0] = MessageDialog.openQuestion(getShell(), Policy.bind("UpdateAction.promptForUpdateTitle", sizeString), message);
- }
- });
- }
- return result[0];
- }
-
- public void setPromptBeforeUpdate(boolean prompt) {
- this.promptBeforeUpdate = prompt;
- }
-
- public boolean getPromptBeforeUpdate() {
- return promptBeforeUpdate;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java
deleted file mode 100644
index a30ee3e35..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.SyncInfoDirectionFilter;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.team.internal.ccvs.ui.sync.ToolTipMessageDialog;
-import org.eclipse.team.internal.ui.Utils;
-
-public class SubscriberCommitAction extends CVSSubscriberAction {
-
- private String comment;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.SubscriberAction#getSyncInfoFilter()
- */
- protected FastSyncInfoFilter getSyncInfoFilter() {
- return new SyncInfoDirectionFilter(new int[] {SyncInfo.OUTGOING});
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getFilteredSyncInfoSet(org.eclipse.team.internal.ui.sync.views.SyncInfo[])
- */
- protected MutableSyncInfoSet getFilteredSyncInfoSet(SyncInfo[] selectedResources) {
- MutableSyncInfoSet syncSet = super.getFilteredSyncInfoSet(selectedResources);
- if (!promptForConflictHandling(syncSet)) return null;
- try {
- if (!promptForUnaddedHandling(syncSet)) return null;
- } catch (CVSException e) {
- Utils.handle(e);
- }
- return syncSet;
- }
-
- protected boolean promptForConflictHandling(MutableSyncInfoSet syncSet) {
- // If there is a conflict in the syncSet, remove from sync set.
- if (syncSet.hasConflicts() || syncSet.hasIncomingChanges()) {
- syncSet.removeConflictingNodes();
- syncSet.removeIncomingNodes();
- }
- return true;
- }
-
- private boolean promptForUnaddedHandling(MutableSyncInfoSet syncSet) throws CVSException {
- if (syncSet.isEmpty()) return false;
-
- // accumulate any resources that are not under version control
- IResource[] unadded = getUnaddedResources(syncSet);
-
- // prompt to get comment and any resources to be added to version control
- RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- IResource[] toBeAdded = promptForResourcesToBeAdded(manager, unadded);
- if (toBeAdded == null) return false; // User cancelled.
- comment = promptForComment(manager, syncSet.getResources());
- if (comment == null) return false; // User cancelled.
-
- // remove unshared resources that were not selected by the user
- if (unadded != null && unadded.length > 0) {
- List resourcesToRemove = new ArrayList(unadded.length);
- for (int i = 0; i < unadded.length; i++) {
- IResource unaddedResource = unadded[i];
- boolean included = false;
- for (int j = 0; j < toBeAdded.length; j++) {
- IResource resourceToAdd = toBeAdded[j];
- if (unaddedResource.equals(resourceToAdd)) {
- included = true;
- break;
- }
- }
- if (!included)
- resourcesToRemove.add(unaddedResource);
- }
- syncSet.removeAll((IResource[]) resourcesToRemove.toArray(new IResource[resourcesToRemove.size()]));
- }
- return true;
- }
-
- private IResource[] getUnaddedResources(SyncInfoSet syncSet) throws CVSException {
- // TODO: Should only get outgoing additions (since conflicting additions
- // could be considered to be under version control already)
- IResource[] resources = syncSet.getResources();
- List result = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (!isAdded(resource)) {
- result.add(resource);
- }
- }
- return (IResource[]) result.toArray(new IResource[result.size()]);
- }
-
- private boolean isAdded(IResource resource) throws CVSException {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (cvsResource.isFolder()) {
- return ((ICVSFolder)cvsResource).isCVSFolder();
- } else {
- return cvsResource.isManaged();
- }
- }
-
- private boolean isRemoved(IResource resource) throws CVSException {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (!cvsResource.isFolder()) {
- byte[] syncBytes = ((ICVSFile)cvsResource).getSyncBytes();
- if (syncBytes == null) return true;
- return ResourceSyncInfo.isDeletion(syncBytes);
- }
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#run(org.eclipse.team.ui.sync.SyncInfoSet, org.eclipse.core.runtime.IProgressMonitor)
- */
- public void run(MutableSyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException {
-
- final SyncInfo[] changed = syncSet.members();
- if (changed.length == 0) return;
-
- // A list of files to be committed
- final List commits = new ArrayList(); // of IResource
- // New resources that are not yet under CVS control and need a "cvs add"
- final List additions = new ArrayList(); // of IResource
- // Deleted resources that need a "cvs remove"
- final List deletions = new ArrayList(); // of IResource
- // A list of incoming or conflicting file changes to be made outgoing changes
- final List makeOutgoing = new ArrayList(); // of SyncInfo
- // A list of out-of-sync folders that must be made in-sync
- final List makeInSync = new ArrayList(); // of SyncInfo
-
- for (int i = 0; i < changed.length; i++) {
- SyncInfo changedNode = changed[i];
- int kind = changedNode.getKind();
- IResource resource = changedNode.getLocal();
-
- // Any parent folders should be made in-sync.
- // Steps will be taken after the commit to prune any empty folders
- SyncInfo parent = getParent(changedNode);
- if (parent != null) {
- if (isOutOfSync(parent)) {
- makeInSync.add(parent);
- }
- }
-
- if (resource.getType() == IResource.FILE) {
- // By default, all files are committed
- commits.add(resource);
- // Determine what other work needs to be done for the file
- switch (kind & SyncInfo.DIRECTION_MASK) {
- case SyncInfo.INCOMING:
- // Convert the incoming change to an outgoing change
- makeOutgoing.add(changedNode);
- break;
- case SyncInfo.OUTGOING:
- switch (kind & SyncInfo.CHANGE_MASK) {
- case SyncInfo.ADDITION:
- // Outgoing addition. 'add' it before committing.
- if (!isAdded(resource))
- additions.add(resource);
- break;
- case SyncInfo.DELETION:
- // Outgoing deletion. 'delete' it before committing.
- if (!isRemoved(resource))
- deletions.add(resource);
- break;
- case SyncInfo.CHANGE:
- // Outgoing change. Just commit it.
- break;
- }
- break;
- case SyncInfo.CONFLICTING:
- // Convert the conflicting change to an outgoing change
- makeOutgoing.add(changedNode);
- break;
- }
- } else {
- if (((kind & SyncInfo.DIRECTION_MASK) == SyncInfo.OUTGOING)
- && ((kind & SyncInfo.CHANGE_MASK) == SyncInfo.ADDITION)) {
- // Outgoing folder additions must be added
- additions.add(changedNode.getLocal());
- } else if (isOutOfSync(changedNode)) {
- // otherwise, make any out-of-sync folders in-sync using the remote info
- makeInSync.add(changedNode);
- }
- }
- }
- try {
- // Calculate the total amount of work needed
- int work = (makeOutgoing.size() + additions.size() + deletions.size() + commits.size()) * 100;
- monitor.beginTask(null, work);
-
- if (makeInSync.size() > 0) {
- makeInSync((SyncInfo[]) makeInSync.toArray(new SyncInfo[makeInSync.size()]));
- }
-
- if (makeOutgoing.size() > 0) {
- makeOutgoing((SyncInfo[]) makeOutgoing.toArray(new SyncInfo[makeInSync.size()]), Policy.subMonitorFor(monitor, makeOutgoing.size() * 100));
- }
-
- RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- if (additions.size() != 0) {
- manager.add((IResource[])additions.toArray(new IResource[0]), Policy.subMonitorFor(monitor, additions.size() * 100));
- }
- if (deletions.size() != 0) {
- manager.delete((IResource[])deletions.toArray(new IResource[0]), Policy.subMonitorFor(monitor, deletions.size() * 100));
- }
- manager.commit((IResource[])commits.toArray(new IResource[commits.size()]), comment, Policy.subMonitorFor(monitor, commits.size() * 100));
-
- } catch (TeamException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /**
- * Prompts the user to determine how conflicting changes should be handled.
- * Note: This method is designed to be overridden by test cases.
- * @return 0 to sync conflicts, 1 to sync all non-conflicts, 2 to cancel
- */
- protected int promptForConflicts(SyncInfoSet syncSet) {
- String[] buttons = new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL};
- String question = Policy.bind("CommitSyncAction.questionRelease"); //$NON-NLS-1$
- String title = Policy.bind("CommitSyncAction.titleRelease"); //$NON-NLS-1$
- String[] tips = new String[] {
- Policy.bind("CommitSyncAction.releaseAll"), //$NON-NLS-1$
- Policy.bind("CommitSyncAction.releasePart"), //$NON-NLS-1$
- Policy.bind("CommitSyncAction.cancelRelease") //$NON-NLS-1$
- };
- Shell shell = getShell();
- final ToolTipMessageDialog dialog = new ToolTipMessageDialog(shell, title, null, question, MessageDialog.QUESTION, buttons, tips, 0);
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- dialog.open();
- }
- });
- return dialog.getReturnCode();
- }
-
- /**
- * Prompts the user for a release comment.
- * Note: This method is designed to be overridden by test cases.
- * @return the comment, or null to cancel
- */
- protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
- return manager.promptForComment(getShell(), resourcesToCommit);
- }
-
- protected IResource[] promptForResourcesToBeAdded(RepositoryManager manager, IResource[] unadded) {
- return manager.promptForResourcesToBeAdded(getShell(), unadded);
- }
-
- protected String getErrorTitle() {
- return Policy.bind("CommitAction.commitFailed"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet)
- */
- protected String getJobName(SyncInfoSet syncSet) {
- return Policy.bind("CommitAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberConfirmMergedAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberConfirmMergedAction.java
deleted file mode 100644
index 55a0650ec..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberConfirmMergedAction.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.internal.ccvs.ui.subscriber;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.SyncInfoDirectionFilter;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * This action marks the local resource as merged by updating the base
- * resource revision to match the remote resource revision
- */
-public class SubscriberConfirmMergedAction extends CVSSubscriberAction {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.SubscriberAction#getSyncInfoFilter()
- */
- protected FastSyncInfoFilter getSyncInfoFilter() {
- return new SyncInfoDirectionFilter(new int[] {SyncInfo.CONFLICTING});
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#run(org.eclipse.team.ui.sync.SyncInfoSet, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void run(MutableSyncInfoSet syncSet, IProgressMonitor monitor) throws CVSException {
- SyncInfo[] syncResources = syncSet.members();
- monitor.beginTask(null, 100 * syncResources.length);
- try {
- for (int i = 0; i < syncResources.length; i++) {
- SyncInfo info = syncResources[i];
- if (!makeOutgoing(info, Policy.subMonitorFor(monitor, 100))) {
- // Failure was logged in makeOutgoing
- }
- }
- } catch (TeamException e) {
- handle(e);
- } finally {
- monitor.done();
- }
- }
-
- private boolean makeOutgoing(SyncInfo info, IProgressMonitor monitor) throws CVSException, TeamException {
- monitor.beginTask(null, 100);
- try {
- CVSSyncInfo cvsInfo = getCVSSyncInfo(info);
- if (cvsInfo == null) {
- CVSUIPlugin.log(IStatus.ERROR, Policy.bind("SubscriberConfirmMergedAction.0", cvsInfo.getLocal().getFullPath().toString()), null); //$NON-NLS-1$
- return false;
- }
- // Make sure the parent is managed
- ICVSFolder parent = CVSWorkspaceRoot.getCVSFolderFor(cvsInfo.getLocal().getParent());
- if (!parent.isCVSFolder()) {
- // the parents must be made outgoing before the child can
- SyncInfo parentInfo = cvsInfo.getSubscriber().getSyncInfo(parent.getIResource());
- if (!makeOutgoing(parentInfo, Policy.subMonitorFor(monitor, 20))) {
- return false;
- }
- }
- IStatus status = cvsInfo.makeOutgoing(Policy.subMonitorFor(monitor, 80));
- if (status.getSeverity() == IStatus.ERROR) {
- logError(status);
- return false;
- }
- return true;
- } finally {
- monitor.done();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.synchronize.actions.SyncInfoSet)
- */
- protected String getJobName(SyncInfoSet syncSet) {
- return Policy.bind("SubscriberConfirmMergedAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SyncInfoSetDetailsDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SyncInfoSetDetailsDialog.java
deleted file mode 100644
index 316fe4c02..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SyncInfoSetDetailsDialog.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.*;
-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.team.core.subscribers.*;
-import org.eclipse.team.internal.ccvs.ui.AdaptableResourceList;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.dialogs.DetailsDialog;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * DetailsDialog that has a details area which shows the SyncInfos
- * in a SyncInfoSet.
- */
-public abstract class SyncInfoSetDetailsDialog extends DetailsDialog {
-
- private static final int WIDTH_HINT = 350;
- private final static int SELECTION_HEIGHT_HINT = 100;
-
- private CheckboxTableViewer listViewer;
-
- private MutableSyncInfoSet syncSet;
- private Object[] selectedResources;
- private String detailsTitle;
-
- /**
- * @param parentShell
- * @param dialogTitle
- */
- public SyncInfoSetDetailsDialog(Shell parentShell, String dialogTitle, String detailsTitle, MutableSyncInfoSet syncSet) {
- super(parentShell, dialogTitle);
- this.syncSet = syncSet;
- this.detailsTitle = detailsTitle;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.DetailsDialog#createDropDownDialogArea(org.eclipse.swt.widgets.Composite)
- */
- protected Composite createDropDownDialogArea(Composite parent) {
- Composite composite = createComposite(parent);
-
- addResourcesArea(composite);
-
- // TODO: set F1 help
- //WorkbenchHelp.setHelp(composite, IHelpContextIds.ADD_TO_VERSION_CONTROL_DIALOG);
-
- return composite;
- }
-
- /**
- * @param composite
- */
- private void addResourcesArea(Composite composite) {
- //createWrappingLabel(composite, detailsTitle);
- // add the selectable checkbox list
-
- listViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = SELECTION_HEIGHT_HINT;
- data.widthHint = WIDTH_HINT;
- listViewer.getTable().setLayoutData(data);
-
- // set the contents of the list
- listViewer.setLabelProvider(new WorkbenchLabelProvider() {
- protected String decorateText(String input, Object element) {
- if (element instanceof IResource)
- return ((IResource)element).getFullPath().toString();
- else
- return input;
- }
- });
- listViewer.setContentProvider(new WorkbenchContentProvider());
- setViewerInput();
- listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- selectedResources = listViewer.getCheckedElements();
- }
- });
-
- addSelectionButtons(composite);
-
- }
-
- /**
- * Add the selection and deselection buttons to the dialog.
- * @param composite org.eclipse.swt.widgets.Composite
- */
- private void addSelectionButtons(Composite composite) {
-
- Composite buttonComposite = new Composite(composite, SWT.RIGHT);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- buttonComposite.setLayout(layout);
- GridData data =
- new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.GRAB_HORIZONTAL);
- data.grabExcessHorizontalSpace = true;
- composite.setData(data);
-
- Button selectButton = createButton(buttonComposite, IDialogConstants.SELECT_ALL_ID, Policy.bind("ReleaseCommentDialog.selectAll"), false); //$NON-NLS-1$
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- listViewer.setAllChecked(true);
- selectedResources = null;
- }
- };
- selectButton.addSelectionListener(listener);
-
- Button deselectButton = createButton(buttonComposite, IDialogConstants.DESELECT_ALL_ID, Policy.bind("ReleaseCommentDialog.deselectAll"), false); //$NON-NLS-1$
- listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- listViewer.setAllChecked(false);
- selectedResources = new Object[0];
-
- }
- };
- deselectButton.addSelectionListener(listener);
- }
-
- protected void setViewerInput() {
- if (listViewer == null || listViewer.getControl().isDisposed()) return;
- listViewer.setInput(new AdaptableResourceList(getAllResources()));
- if (selectedResources == null) {
- listViewer.setAllChecked(true);
- } else {
- listViewer.setCheckedElements(selectedResources);
- }
- }
-
- protected void resetViewerInput() {
- selectedResources = null;
- setViewerInput();
- }
- /**
- * Return a list of all the resources that are currently under consideration by the dialog
- */
- protected IResource[] getAllResources() {
- return syncSet.getResources();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.team.internal.ui.DetailsDialog#updateEnablements()
- */
- protected void updateEnablements() {
- }
-
- /**
- * @return
- */
- public MutableSyncInfoSet getSyncSet() {
- return syncSet;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
- */
- protected void buttonPressed(int id) {
- if (id == IDialogConstants.OK_ID) {
- filterSyncSet();
- }
- super.buttonPressed(id);
- }
-
- protected void filterSyncSet() {
- // Keep only the checked resources
- if (selectedResources != null) {
- getSyncSet().selectNodes(new FastSyncInfoFilter() {
- public boolean select(SyncInfo info) {
- IResource local = info.getLocal();
- for (int i = 0; i < selectedResources.length; i++) {
- if (local.equals(selectedResources[i])) return true;
- }
- return false;
- }
- });
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java
deleted file mode 100644
index c8c6d31ca..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.subscriber;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * This dialog prompts for the type of update which should take place
- * (i.e. update of auto-mergable files or update of all ignore local
- * changes.
- */
-public class UpdateDialog extends SyncInfoSetDetailsDialog {
-
- public static final int YES = IDialogConstants.YES_ID;
-
- public UpdateDialog(Shell parentShell, MutableSyncInfoSet syncSet) {
- super(parentShell, Policy.bind("UpdateDialog.overwriteTitle"), Policy.bind("UpdateDialog.overwriteDetailsTitle"), syncSet); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.DetailsDialog#createMainDialogArea(org.eclipse.swt.widgets.Composite)
- */
- protected void createMainDialogArea(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
-
- // TODO: set F1 help
- //WorkbenchHelp.setHelp(composite, IHelpContextIds.ADD_TO_VERSION_CONTROL_DIALOG);
-
- createWrappingLabel(composite, Policy.bind("UpdateDialog.overwriteMessage")); //$NON-NLS-1$
- }
-
- protected void createButtonsForButtonBar(Composite parent) {
- createButton(parent, YES, IDialogConstants.YES_LABEL, true);
- createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, true);
- super.createButtonsForButtonBar(parent);
- }
-
- protected boolean includeOkButton() {
- return false;
- }
-
- protected boolean includeCancelButton() {
- return false;
- }
-
- protected void buttonPressed(int id) {
- // hijack yes and no buttons to set the correct return
- // codes.
- if(id == YES || id == IDialogConstants.NO_ID) {
- setReturnCode(id);
- filterSyncSet();
- close();
- } else {
- super.buttonPressed(id);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizePage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizePage.java
deleted file mode 100644
index db79fda4a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizePage.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.subscriber;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.Utils;
-import org.eclipse.team.ui.synchronize.ISynchronizeView;
-import org.eclipse.team.ui.synchronize.TeamSubscriberParticipant;
-import org.eclipse.team.ui.synchronize.actions.DirectionFilterActionGroup;
-import org.eclipse.ui.IActionBars;
-
-public class WorkspaceSynchronizePage extends CVSSynchronizeViewPage {
-
- private DirectionFilterActionGroup modes;
-
- private Action commitToolbar;
- private Action updateToolbar;
-
- public WorkspaceSynchronizePage(TeamSubscriberParticipant page, ISynchronizeView view) {
- super(page, view);
- modes = new DirectionFilterActionGroup(getParticipant(), TeamSubscriberParticipant.ALL_MODES);
-
- commitToolbar = new CVSActionDelegate(new SubscriberCommitAction());
- WorkspaceUpdateAction action = new WorkspaceUpdateAction();
- action.setPromptBeforeUpdate(true);
- updateToolbar = new CVSActionDelegate(action);
-
- Utils.initAction(commitToolbar, "action.SynchronizeViewCommit.", Policy.getBundle()); //$NON-NLS-1$
- Utils.initAction(updateToolbar, "action.SynchronizeViewUpdate.", Policy.getBundle()); //$NON-NLS-1$
-
- // force enablement to be update on action delegates
- //syncSetChanged(null);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
- */
- public void setActionBars(IActionBars actionBars) {
- super.setActionBars(actionBars);
- IToolBarManager toolbar = actionBars.getToolBarManager();
- modes.fillToolBar(toolbar);
- toolbar.add(new Separator());
- toolbar.add(updateToolbar);
- toolbar.add(commitToolbar);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java
deleted file mode 100644
index e10572e42..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java
+++ /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
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.subscriber;
-
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.ui.synchronize.ISynchronizeView;
-import org.eclipse.team.ui.synchronize.TeamSubscriberParticipant;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-public class WorkspaceSynchronizeParticipant extends TeamSubscriberParticipant {
-
- public final static String ID = "org.eclipse.team.cvs.ui.cvsworkspace-participant"; //$NON-NLS-1$
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.ISynchronizeParticipant#createPage(org.eclipse.team.ui.synchronize.ISynchronizeView)
- */
- public IPageBookViewPage createPage(ISynchronizeView view) {
- return new WorkspaceSynchronizePage(this, view);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.ISynchronizeParticipant#init(org.eclipse.ui.IMemento)
- */
- public void init(IMemento memento) throws PartInitException {
- super.init(memento);
- TeamSubscriber subscriber = CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber();
- setSubscriber(subscriber);
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceUpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceUpdateAction.java
deleted file mode 100644
index 0924da22e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceUpdateAction.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.subscriber;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.SyncInfoSet;
-import org.eclipse.team.core.subscribers.FastSyncInfoFilter.SyncInfoDirectionFilter;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-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.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.ReplaceOperation;
-
-/**
- * This action performs an update for the CVSWorkspaceSubscriber.
- */
-public class WorkspaceUpdateAction extends SafeUpdateAction {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.sync.SubscriberAction#getSyncInfoFilter()
- */
- protected FastSyncInfoFilter getSyncInfoFilter() {
- return new SyncInfoDirectionFilter(new int[] {SyncInfo.INCOMING, SyncInfo.CONFLICTING});
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#runUpdateDeletions(org.eclipse.team.core.subscribers.SyncInfo[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void runUpdateDeletions(SyncInfo[] nodes, IProgressMonitor monitor) throws TeamException {
- monitor.beginTask(null, nodes.length * 100);
- for (int i = 0; i < nodes.length; i++) {
- SyncInfo node = nodes[i];
- unmanage(node, Policy.subMonitorFor(monitor, 50));
- deleteAndKeepHistory(node.getLocal(), Policy.subMonitorFor(monitor, 50));
- }
- pruneEmptyParents(nodes);
- monitor.done();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#runSafeUpdate(org.eclipse.team.core.subscribers.SyncInfo[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void runSafeUpdate(SyncInfo[] nodes, IProgressMonitor monitor) throws TeamException {
- safeUpdate(getIResourcesFrom(nodes), new LocalOption[] { Command.DO_NOT_RECURSE }, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#overwriteUpdate(org.eclipse.team.ui.sync.SyncInfoSet, org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void overwriteUpdate(SyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException {
- try {
- new ReplaceOperation(getShell(), syncSet.getResources(), null /* tag */, false /* recurse */)
- .run(monitor);
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- } catch (InterruptedException e) {
- Policy.cancelOperation();
- }
-
- }
-
- private void unmanage(SyncInfo element, IProgressMonitor monitor) throws CVSException {
- CVSWorkspaceRoot.getCVSResourceFor(element.getLocal()).unmanage(monitor);
- }
-
- private void deleteAndKeepHistory(IResource resource, IProgressMonitor monitor) throws CVSException {
- try {
- if (!resource.exists()) return;
- if (resource.getType() == IResource.FILE)
- ((IFile)resource).delete(false /* force */, true /* keep history */, monitor);
- else if (resource.getType() == IResource.FOLDER)
- ((IFolder)resource).delete(false /* force */, true /* keep history */, monitor);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#updated(org.eclipse.core.resources.IResource[])
- */
- protected void updated(IResource[] resources) throws TeamException {
- // Do nothing
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java
deleted file mode 100644
index 38ee3e47f..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.sync;
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.structuremergeviewer.DiffContainer;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.OverlayIcon;
-import org.eclipse.team.internal.ui.sync.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class CVSCatchupReleaseViewer extends CatchupReleaseViewer {
- // Actions
- private HistoryAction showInHistory;
-
- private Image conflictImage;
-
- private static class DiffOverlayIcon extends OverlayIcon {
- private static final int HEIGHT = 16;
- private static final int WIDTH = 22;
- public DiffOverlayIcon(Image baseImage, ImageDescriptor[] overlays, int[] locations) {
- super(baseImage, overlays, locations, new Point(WIDTH, HEIGHT));
- }
- protected void drawOverlays(ImageDescriptor[] overlays, int[] locations) {
- Point size = getSize();
- for (int i = 0; i < overlays.length; i++) {
- ImageDescriptor overlay = overlays[i];
- ImageData overlayData = overlay.getImageData();
- switch (locations[i]) {
- case TOP_LEFT:
- drawImage(overlayData, 0, 0);
- break;
- case TOP_RIGHT:
- drawImage(overlayData, size.x - overlayData.width, 0);
- break;
- case BOTTOM_LEFT:
- drawImage(overlayData, 0, size.y - overlayData.height);
- break;
- case BOTTOM_RIGHT:
- drawImage(overlayData, size.x - overlayData.width, size.y - overlayData.height);
- break;
- }
- }
- }
- }
-
- private static class HistoryAction extends Action implements ISelectionChangedListener {
- IStructuredSelection selection;
- public HistoryAction(String label) {
- super(label);
- }
- public void run() {
- if (selection.isEmpty()) {
- return;
- }
- HistoryView view = HistoryView.openInActivePerspective();
- if (view == null) {
- return;
- }
- ITeamNode node = (ITeamNode)selection.getFirstElement();
- IRemoteSyncElement remoteSyncElement = ((TeamFile)node).getMergeResource().getSyncElement();
- ICVSRemoteFile remoteFile = (ICVSRemoteFile)remoteSyncElement.getRemote();
- IResource local = remoteSyncElement.getLocal();
-
- ICVSRemoteFile baseFile = (ICVSRemoteFile)remoteSyncElement.getBase();
- if(baseFile == null) {
- try {
- baseFile = (ICVSRemoteFile)CVSWorkspaceRoot.getRemoteResourceFor(local);
- } catch (CVSException e) {
- baseFile = null;
- }
- }
-
- if(local.exists()) {
- view.showHistory(local);
- }else if (baseFile != null) {
- view.showHistory(baseFile);
- } else if (remoteFile != null) {
- view.showHistory(remoteFile);
- }
- }
- public void selectionChanged(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (!(selection instanceof IStructuredSelection)) {
- setEnabled(false);
- return;
- }
- IStructuredSelection ss = (IStructuredSelection)selection;
- if (ss.size() != 1) {
- setEnabled(false);
- return;
- }
- ITeamNode first = (ITeamNode)ss.getFirstElement();
- if (first instanceof TeamFile) {
- // can only show history on elements that have a remote file
- this.selection = ss;
- IRemoteSyncElement remoteSyncElement = ((TeamFile)first).getMergeResource().getSyncElement();
- if(remoteSyncElement.getRemote() != null || remoteSyncElement.getBase() != null) {
- setEnabled(true);
- } else {
- setEnabled(false);
- }
- } else {
- this.selection = null;
- setEnabled(false);
- }
- }
- }
-
- public CVSCatchupReleaseViewer(Composite parent, CVSSyncCompareInput model) {
- super(parent, model);
- initializeActions(model);
- initializeLabelProvider();
- // set F1 help
- WorkbenchHelp.setHelp(this.getControl(), IHelpContextIds.CATCHUP_RELEASE_VIEWER);
- }
-
- private static class Decoration implements IDecoration {
- public String prefix = ""; //$NON-NLS-1$
- public String suffix = ""; //$NON-NLS-1$
- public ImageDescriptor overlay;
-
- /**
- * @see org.eclipse.jface.viewers.IDecoration#addPrefix(java.lang.String)
- */
- public void addPrefix(String prefix) {
- this.prefix = prefix;
- }
- /**
- * @see org.eclipse.jface.viewers.IDecoration#addSuffix(java.lang.String)
- */
- public void addSuffix(String suffix) {
- this.suffix = suffix;
- }
- /**
- * @see org.eclipse.jface.viewers.IDecoration#addOverlay(org.eclipse.jface.resource.ImageDescriptor)
- */
- public void addOverlay(ImageDescriptor overlay) {
- this.overlay = overlay;
- }
- }
-
- private void initializeLabelProvider() {
- final LabelProvider oldProvider = (LabelProvider)getLabelProvider();
-
-
- setLabelProvider(new LabelProvider() {
- private OverlayIconCache iconCache = new OverlayIconCache();
-
- public void dispose() {
- iconCache.disposeAll();
- oldProvider.dispose();
- if(conflictImage != null)
- conflictImage.dispose();
- }
-
- public Image getImage(Object element) {
- Image image = oldProvider.getImage(element);
-
- if (! (element instanceof ITeamNode))
- return image;
-
- ITeamNode node = (ITeamNode)element;
- IResource resource = node.getResource();
-
- if (! resource.exists())
- return image;
-
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId());
- List overlays = new ArrayList();
- List locations = new ArrayList();
-
- // use the default cvs image decorations
- ImageDescriptor resourceOverlay = CVSLightweightDecorator.getOverlay(node.getResource(),false, provider);
-
- int kind = node.getKind();
- boolean conflict = (kind & IRemoteSyncElement.AUTOMERGE_CONFLICT) != 0;
-
- if(resourceOverlay != null) {
- overlays.add(resourceOverlay);
- locations.add(new Integer(OverlayIcon.BOTTOM_RIGHT));
- }
-
- if(conflict) {
- overlays.add(CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_MERGEABLE_CONFLICT));
- locations.add(new Integer(OverlayIcon.TOP_LEFT));
- }
-
- if (overlays.isEmpty()) {
- return image;
- }
-
- //combine the descriptors and return the resulting image
- Integer[] integers = (Integer[])locations.toArray(new Integer[locations.size()]);
- int[] locs = new int[integers.length];
- for (int i = 0; i < integers.length; i++) {
- locs[i] = integers[i].intValue();
- }
-
- return iconCache.getImageFor(new DiffOverlayIcon(image,
- (ImageDescriptor[]) overlays.toArray(new ImageDescriptor[overlays.size()]),
- locs));
- }
-
- public String getText(Object element) {
- String label = oldProvider.getText(element);
- if (! (element instanceof ITeamNode))
- return label;
-
- ITeamNode node = (ITeamNode)element;
- IResource resource = node.getResource();
-
- if (resource.exists()) {
- // use the default text decoration preferences
- Decoration decoration = new Decoration();
- CVSLightweightDecorator.decorateTextLabel(resource, decoration, false /*don't show dirty*/, false /*don't show revisions*/);
- label = decoration.prefix + label + decoration.suffix;
- }
- return label;
- }
- });
- }
-
- protected void fillContextMenu(IMenuManager manager) {
- super.fillContextMenu(manager);
- if (showInHistory != null) {
- manager.add(showInHistory);
- }
- }
-
- /**
- * Creates the actions for this viewer.
- */
- private void initializeActions(final CVSSyncCompareInput diffModel) { // Show in history view
- showInHistory = new HistoryAction(Policy.bind("CVSCatchupReleaseViewer.showInHistory")); //$NON-NLS-1$
- WorkbenchHelp.setHelp(showInHistory, IHelpContextIds.SHOW_IN_RESOURCE_HISTORY);
- addSelectionChangedListener(showInHistory);
- }
-
- protected void mergeRecursive(IDiffElement element, List needsMerge) {
- if (element instanceof DiffContainer) {
- DiffContainer container = (DiffContainer)element;
- IDiffElement[] children = container.getChildren();
- for (int i = 0; i < children.length; i++) {
- mergeRecursive(children[i], needsMerge);
- }
- } else if (element instanceof TeamFile) {
- TeamFile file = (TeamFile)element;
- needsMerge.add(file);
- }
- }
-
- /**
- * Provide CVS-specific labels for the editors.
- */
- protected void updateLabels(MergeResource resource) {
- CompareConfiguration config = getCompareConfiguration();
- String name = resource.getName();
- config.setLeftLabel(Policy.bind("CVSCatchupReleaseViewer.workspaceFile", name)); //$NON-NLS-1$
-
- IRemoteSyncElement syncTree = resource.getSyncElement();
- IRemoteResource remote = syncTree.getRemote();
- if (remote != null) {
- try {
- final ICVSRemoteFile remoteFile = (ICVSRemoteFile)remote;
- String revision = remoteFile.getRevision();
- final String[] author = new String[] { "" }; //$NON-NLS-1$
- try {
- CVSUIPlugin.runWithProgress(getTree().getShell(), true /*cancelable*/,
- new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- ILogEntry logEntry = remoteFile.getLogEntry(monitor);
- if (logEntry != null)
- author[0] = logEntry.getAuthor();
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InterruptedException e) { // ignore cancellation
- } catch (InvocationTargetException e) {
- Throwable t = e.getTargetException();
- if (t instanceof TeamException) {
- throw (TeamException) t;
- }
- // should not get here
- }
- config.setRightLabel(Policy.bind("CVSCatchupReleaseViewer.repositoryFileRevision", new Object[] {name, revision, author[0]})); //$NON-NLS-1$
- } catch (TeamException e) {
- CVSUIPlugin.openError(getControl().getShell(), null, null, e);
- config.setRightLabel(Policy.bind("CVSCatchupReleaseViewer.repositoryFile", name)); //$NON-NLS-1$
- }
- } else {
- config.setRightLabel(Policy.bind("CVSCatchupReleaseViewer.noRepositoryFile")); //$NON-NLS-1$
- }
-
- IRemoteResource base = syncTree.getBase();
- if (base != null) {
- try {
- String revision = ((ICVSRemoteFile)base).getRevision();
- config.setAncestorLabel(Policy.bind("CVSCatchupReleaseViewer.commonFileRevision", new Object[] {name, revision} )); //$NON-NLS-1$
- } catch (TeamException e) {
- CVSUIPlugin.openError(getControl().getShell(), null, null, e);
- config.setRightLabel(Policy.bind("CVSCatchupReleaseViewer.commonFile", name)); //$NON-NLS-1$
- }
- } else {
- config.setAncestorLabel(Policy.bind("CVSCatchupReleaseViewer.noCommonFile")); //$NON-NLS-1$
- }
-
- IResource local = syncTree.getLocal();
- if (local != null) {
- if (!local.exists()) {
- config.setLeftLabel(Policy.bind("CVSCatchupReleaseViewer.No_workspace_file_1")); //$NON-NLS-1$
- } else {
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile)local);
- ResourceSyncInfo info = null;
- try {
- info = cvsFile.getSyncInfo();
- name = local.getName();
- String revision = null;
- if (info != null) {
- revision = info.getRevision();
- if (info.isAdded() || info.isDeleted()) {
- revision = null;
- }
- }
- if (revision != null) {
- config.setLeftLabel(Policy.bind("CVSCatchupReleaseViewer.commonFileRevision", name, revision)); //$NON-NLS-1$
- } else {
- config.setLeftLabel(Policy.bind("CVSCatchupReleaseViewer.commonFile", name)); //$NON-NLS-1$
- }
- } catch (CVSException e) {
- CVSUIPlugin.openError(getControl().getShell(), null, null, e);
- config.setLeftLabel(Policy.bind("CVSCatchupReleaseViewer.commonFile", name)); //$NON-NLS-1$
- }
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java
deleted file mode 100644
index 3a4cfe016..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.sync;
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.compare.structuremergeviewer.Differencer;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-import org.eclipse.compare.structuremergeviewer.IDiffContainer;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.ILocalSyncElement;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.AvoidableMessageDialog;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.sync.CatchupReleaseViewer;
-import org.eclipse.team.internal.ui.sync.ChangedTeamContainer;
-import org.eclipse.team.internal.ui.sync.ITeamNode;
-import org.eclipse.team.internal.ui.sync.SyncCompareInput;
-import org.eclipse.team.internal.ui.sync.SyncSet;
-import org.eclipse.team.internal.ui.sync.TeamFile;
-
-public class CVSSyncCompareInput extends SyncCompareInput {
-
- private IResource[] resources;
- private boolean onlyOutgoing = false;
-
- public CVSSyncCompareInput(IResource[] resources) {
- this(resources, false);
- }
-
- protected CVSSyncCompareInput(IResource[] resources, int granularity) {
- super(granularity);
- this.resources = getNonOverlapping(resources);
- }
-
- public CVSSyncCompareInput(IResource[] resources, boolean onlyOutgoing) {
- super(CVSUIPlugin.getPlugin().getPreferenceStore().getBoolean(ICVSUIConstants.PREF_CONSIDER_CONTENTS) ? ILocalSyncElement.GRANULARITY_CONTENTS : ILocalSyncElement.GRANULARITY_TIMESTAMP);
- this.onlyOutgoing = onlyOutgoing;
- this.resources = getNonOverlapping(resources);
- }
-
- /**
- * Method getNonOverlapping ensures that a resource is not covered more than once.
- * @param resources
- * @return IResource[]
- */
- private IResource[] getNonOverlapping(IResource[] resources) {
- // Sort the resources so the shortest paths are first
- List sorted = new ArrayList();
- sorted.addAll(Arrays.asList(resources));
- Collections.sort(sorted, new Comparator() {
- public int compare(Object arg0, Object arg1) {
- IResource resource0 = (IResource) arg0;
- IResource resource1 = (IResource) arg1;
- return resource0.getFullPath().segmentCount() - resource1.getFullPath().segmentCount();
- }
- public boolean equals(Object arg0) {
- return false;
- }
- });
- // Collect all non-overlapping resources
- List coveredPaths = new ArrayList();
- for (Iterator iter = sorted.iterator(); iter.hasNext();) {
- IResource resource = (IResource) iter.next();
- IPath resourceFullPath = resource.getFullPath();
- boolean covered = false;
- for (Iterator it = coveredPaths.iterator(); it.hasNext();) {
- IPath path = (IPath) it.next();
- if(path.isPrefixOf(resourceFullPath)) {
- covered = true;
- }
- }
- if (covered) {
- // if the resource is covered by a parent, remove it
- iter.remove();
- } else {
- // if the resource is a non-covered folder, add it to the covered paths
- if (resource.getType() == IResource.FOLDER) {
- coveredPaths.add(resource.getFullPath());
- }
- }
- }
- return (IResource[]) sorted.toArray(new IResource[sorted.size()]);
- }
-
- /**
- * Overridden to create a custom DiffTreeViewer in the top left pane of the CompareProvider.
- *
- * Subclasses must create and return a new CatchupReleaseViewer, and set the viewer
- * using setViewer().
- */
- public Viewer createDiffViewer(Composite parent) {
- CatchupReleaseViewer catchupReleaseViewer = new CVSCatchupReleaseViewer(parent, this);
- setViewer(catchupReleaseViewer);
-// catchupReleaseViewer.getTree().addMouseMoveListener(new MouseMoveListener() {
-// /**
-// * @see MouseMoveListener#mouseMove(MouseEvent)
-// */
-// public void mouseMove(MouseEvent e) {
-// final Tree tree = (Tree)e.widget;
-// TreeItem item = tree.getItem(new Point(e.x, e.y));
-// final TeamFile file;
-// if (item != null) {
-// // Hack: this is the only way to get an item from the tree viewer
-// Object o = item.getData();
-// if (o instanceof TeamFile) {
-// file = (TeamFile)o;
-// } else file = null;
-// } else file = null;
-//
-// // avoid redundant updates -- identity test is good enough here
-// if (file == previousTeamFile) return;
-// previousTeamFile = file;
-// getShell().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// updateToolTip(tree, file);
-// }
-// });
-// }
-// });
- return catchupReleaseViewer;
- }
-
-// protected void updateToolTip(Tree tree, TeamFile file) {
-// String newText = null;
-// if (file != null && file.getChangeDirection() != ITeamNode.OUTGOING) {
-// IRemoteSyncElement element = file.getMergeResource().getSyncElement();
-// final ICVSRemoteFile remoteFile = (ICVSRemoteFile)element.getRemote();
-// final ILogEntry[] logEntry = new ILogEntry[1];
-// if (remoteFile != null) {
-// try {
-// CVSUIPlugin.runWithProgress(getViewer().getTree().getShell(), true /*cancelable*/,
-// new IRunnableWithProgress() {
-// public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-// try {
-// logEntry[0] = remoteFile.getLogEntry(monitor);
-// } catch (TeamException ex) {
-// throw new InvocationTargetException(ex);
-// }
-// }
-// });
-// } catch (InterruptedException ex) {
-// // ignore cancellation
-// } catch (InvocationTargetException ex) {
-// // ignore the exception
-// }
-// }
-// if (logEntry[0] != null) {
-// newText = logEntry[0].getComment();
-// }
-// }
-// if (tree.isDisposed()) return;
-// String oldText = tree.getToolTipText();
-// if (newText == oldText || newText != null && newText.equals(oldText)) return;
-// tree.setToolTipText(newText);
-// }
-
- protected IRemoteSyncElement[] createSyncElements(IProgressMonitor monitor) throws TeamException {
- // Ensure that the projects for all resources being synchronized exist
- // Note: this could happen on a refresh view after a synced project was deleted.
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (!resource.getProject().exists()) {
- throw new CVSException(Policy.bind("CVSSyncCompareInput.projectDeleted", resource.getProject().getName())); //$NON-NLS-1$
- }
- }
-
- monitor.beginTask(null, 1000 + (onlyOutgoing?10:0));
- IResource[] resourcesToSync;
- if (onlyOutgoing) {
- List filteredResources = Arrays.asList(resources);
- filteredResources = filterOutgoingChangesSet(filteredResources, Policy.subMonitorFor(monitor, 10));
- resourcesToSync = (IResource[]) filteredResources.toArray(new IResource[filteredResources.size()]);
- } else {
- resourcesToSync = resources;
- }
- return buildSyncTrees(resourcesToSync, Policy.subMonitorFor(monitor, 1000));
- }
-
- private IRemoteSyncElement[] buildSyncTrees(IResource[] resourcesToSync, IProgressMonitor monitor)throws TeamException {
- IRemoteSyncElement[] trees = new IRemoteSyncElement[resourcesToSync.length];
- int work = 1000 * resourcesToSync.length;
- monitor.beginTask(null, work);
- try {
- for (int i = 0; i < trees.length; i++) {
- trees[i] = CVSWorkspaceRoot.getRemoteSyncTree(resourcesToSync[i], null, Policy.subMonitorFor(monitor, 1000));
- }
- } finally {
- monitor.done();
- }
- return trees;
- }
-
- protected void updateView() {
- // Update the view
- if (getDiffRoot().hasChildren()) {
- getViewer().refresh();
- } else {
- getViewer().setInput(null);
- }
-
- // Update the status line
- updateStatusLine();
- }
-
- /**
- * Overridden to mark the source as merged.
- */
- protected void compareInputChanged(ICompareInput source) {
- super.compareInputChanged(source);
- updateView();
-
- // prompt user with warning
- Shell shell = getShell();
- if(shell != null) {
- // prompt
- if(source instanceof TeamFile) {
- TeamFile file = (TeamFile)source;
- int direction = file.getChangeDirection();
- int type = file.getChangeType();
- if(direction == IRemoteSyncElement.INCOMING ||
- direction == IRemoteSyncElement.CONFLICTING) {
- promptForConfirmMerge(getShell());
- }
- }
- }
- }
-
- /*
- * Helper method to get cvs elements from the selection in the sync editor input
- */
- public static CVSRemoteSyncElement getSyncElementFrom(Object node) {
- CVSRemoteSyncElement element = null;
- if (node instanceof TeamFile) {
- element = (CVSRemoteSyncElement)((TeamFile)node).getMergeResource().getSyncElement();
- } else if (node instanceof ChangedTeamContainer) {
- element = (CVSRemoteSyncElement)((ChangedTeamContainer)node).getMergeResource().getSyncElement();
- }
- return element;
- }
-
- /*
- * Returns the resources in this input.
- */
- public IResource[] getResources() {
- return resources;
- }
-
- /*
- * Inform user that when changes are merged in the sync view that confirm
- * merge should be called to finish the merge.
- */
- private void promptForConfirmMerge(final Shell shell) {
- final IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- if(!store.getBoolean(ICVSUIConstants.PREF_PROMPT_ON_SAVING_IN_SYNC)) {
- return;
- };
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- AvoidableMessageDialog dialog = new AvoidableMessageDialog(
- shell,
- Policy.bind("CVSSyncCompareInput.confirmMergeMessageTitle"), //$NON-NLS-1$
- null, // accept the default window icon
- Policy.bind("CVSSyncCompareInput.confirmMergeMessage"), //$NON-NLS-1$
- MessageDialog.INFORMATION,
- new String[] {IDialogConstants.OK_LABEL},
- 0);
- dialog.open();
- if(dialog.isDontShowAgain()) {
- store.setValue(ICVSUIConstants.PREF_PROMPT_ON_SAVING_IN_SYNC, false);
- }
- }
- });
- }
-
- /**
- * Wrap the input preparation in a CVS session run so open sessions will be reused and
- * file contents under the same remote root folder will be fetched using the same connection.
- *
- * Also run with refresh prompting if one of the resources is out of sync with the local
- * file system.
- */
- public Object prepareInput(IProgressMonitor pm) throws InterruptedException, InvocationTargetException {
- final Object[] result = new Object[] { null };
- CVSUIPlugin.runWithRefresh(getShell(), resources, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- result[0] = CVSSyncCompareInput.super.prepareInput(monitor);
- }
- }, pm);
-
- if (hasDifferences(result[0])) {
- return result[0];
- } else {
- return null;
- }
- }
-
- /**
- * The given object has differences if it is an IDiffElement with a change
- * or it is an IDiffContainer that contains differences.
- *
- * @param object
- * @return boolean
- */
- private boolean hasDifferences(Object object) {
- if (object instanceof IDiffElement) {
- IDiffElement element = (IDiffElement)object;
- if (element.getKind() != Differencer.NO_CHANGE) return true;
- if (object instanceof IDiffContainer) {
- IDiffContainer container = (IDiffContainer) object;
- if (container.hasChildren()) {
- IDiffElement[] children = container.getChildren();
- for (int i = 0; i < children.length; i++) {
- IDiffElement child = children[i];
- if (hasDifferences(child)) return true;
- }
- }
- }
- }
- return false;
- }
-
- private boolean hasIncomingChanges(ChangedTeamContainer container) {
- IDiffElement[] children = container.getChildren();
- for (int i = 0; i < children.length; i++) {
- IDiffElement element = children[i];
- int direction = element.getKind() & Differencer.DIRECTION_MASK;
- if (direction == ITeamNode.CONFLICTING || direction == ITeamNode.INCOMING) {
- return true;
- }
- if (element instanceof ChangedTeamContainer) {
- boolean hasIncomingChanges = hasIncomingChanges((ChangedTeamContainer)element);
- if (hasIncomingChanges) return true;
- }
- }
- return false;
- }
-
- /*
- * Method copied from TeamAction. It should be put in a common place
- */
- protected Map getProviderMapping(IResource[] resources) {
- Map result = new HashMap();
- 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;
- }
-
- protected SyncSet getSyncSet(IStructuredSelection selection) {
- return new CVSSyncSet(selection);
- }
-
- /*
- * Return the resources from the original list that are modified.
- */
- private List filterOutgoingChangesSet(List resources, IProgressMonitor monitor) throws CVSException {
- try {
- monitor.beginTask(null, 100 * resources.size());
- monitor.subTask(Policy.bind("CVSSyncCompareInput.filteringOutgoingChanges")); //$NON-NLS-1$
- List result = new ArrayList();
- for (Iterator iter = resources.iterator(); iter.hasNext();) {
- IResource resource = (IResource) iter.next();
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (!cvsResource.isIgnored() && cvsResource.isModified(Policy.subMonitorFor(monitor, 100)))
- result.add(resource);
- }
- return result;
- } finally {
- monitor.done();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java
deleted file mode 100644
index aec6b7a32..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.sync;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-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.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.sync.ITeamNode;
-import org.eclipse.team.internal.ui.sync.SyncSet;
-
-/**
- * This class contains a set of CVS resources that are slated to be
- * synchronized. This adds CVS specific handling to the common sync set
- * class, specifically to deal with non-added outgoing changes.
- */
-public class CVSSyncSet extends SyncSet {
-
- /**
- * Creates a new sync set on the nodes in the given selection.
- */
- public CVSSyncSet(IStructuredSelection nodeSelection) {
- super(nodeSelection);
- }
-
- public ITeamNode[] getNonAddedNodes() throws CVSException {
- List result = new ArrayList();
- ITeamNode[] changedNodes = getChangedNodes();
- for (int i = 0; i < changedNodes.length; i++) {
- ITeamNode node = changedNodes[i];
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
- if (cvsResource.isFolder()) {
- if (!((ICVSFolder)cvsResource).isCVSFolder()) {
- result.add(node);
- }
- } else if (!cvsResource.isManaged()) {
- result.add(node);
- }
- }
- return (ITeamNode[])result.toArray(new ITeamNode[result.size()]);
- }
-
- public boolean hasNonAddedChanges() throws CVSException {
- ITeamNode[] changedNodes = getChangedNodes();
- for (int i = 0; i < changedNodes.length; i++) {
- ITeamNode node = changedNodes[i];
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
- if (cvsResource.exists()) {
- if (cvsResource.isFolder()) {
- if (!((ICVSFolder)cvsResource).isCVSFolder()) {
- return true;
- }
- } else if (!cvsResource.isManaged()) {
- return true;
- }
- }
- }
- return false;
- }
-
- public boolean removeNonAddedChanges() {
- for (Iterator it = getSyncSet().iterator(); it.hasNext();) {
- try {
- ITeamNode node = (ITeamNode)it.next();
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
- if (cvsResource.exists()) {
- if(cvsResource.isFolder()) {
- if(!((ICVSFolder)cvsResource).isCVSFolder()) {
- it.remove();
- }
- } else {
- if(!cvsResource.isManaged()) {
- it.remove();
- }
- }
- }
- } catch (CVSException e) {
- // isManaged or isCVSFolder threw an exception
- // Log it and continue
- CVSUIPlugin.log(e);
- }
- }
- return false;
- }
-
- public boolean removeNonAddedResources(IResource[] remove) {
- for (Iterator it = getSyncSet().iterator(); it.hasNext();) {
- ITeamNode node = (ITeamNode)it.next();
- IResource resource = node.getResource();
- boolean included = false;
- for (int j = 0; j < remove.length; j++) {
- IResource resourceToRemove = remove[j];
- if (resource.equals(resourceToRemove)) {
- included = true;
- break;
- }
- }
- if (included)
- it.remove();
- }
- return false;
- }
-
- public boolean removeAddedChanges() {
- for (Iterator it = getSyncSet().iterator(); it.hasNext();) {
- try {
- ITeamNode node = (ITeamNode)it.next();
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
- if(cvsResource.isFolder()) {
- if(((ICVSFolder)cvsResource).isCVSFolder()) {
- it.remove();
- }
- } else {
- if(cvsResource.isManaged()) {
- it.remove();
- }
- }
- } catch (CVSException e) {
- // isManaged or isCVSFolder threw an exception
- // Log it and continue
- CVSUIPlugin.log(e);
- }
- }
- return false;
- }
-
- /**
- * Returns a message for the status line describing this sync set.
- *
- * Override the method in SyncSet to add information about new resources
- */
- public String getStatusLineMessage() {
- int incoming = 0;
- int outgoing = 0;
- int conflicts = 0;
- int newResources = 0;
- ITeamNode[] nodes = getChangedNodes();
- for (int i = 0; i < nodes.length; i++) {
- ITeamNode next = nodes[i];
- switch (next.getChangeDirection()) {
- case IRemoteSyncElement.INCOMING:
- incoming++;
- break;
- case IRemoteSyncElement.OUTGOING:
- outgoing++;
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(next.getResource());
- try {
- if (cvsResource.exists()) {
- if (cvsResource.isFolder()) {
- if (!((ICVSFolder)cvsResource).isCVSFolder()) {
- newResources++;
- }
- } else if (!cvsResource.isManaged()) {
- newResources++;
- }
- }
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- break;
- case IRemoteSyncElement.CONFLICTING:
- conflicts++;
- break;
- }
- }
- StringBuffer result = new StringBuffer();
-
- if (conflicts == 0) {
- result.append(Policy.bind("CVSSyncSet.noConflicts")); //$NON-NLS-1$
- } else {
- result.append(Policy.bind("CVSSyncSet.conflicts", new Object[] {Integer.toString(conflicts)} )); //$NON-NLS-1$
- }
- if (incoming == 0) {
- result.append(Policy.bind("CVSSyncSet.noIncomings")); //$NON-NLS-1$
- } else {
- result.append(Policy.bind("CVSSyncSet.incomings", new Object[] {Integer.toString(incoming)} )); //$NON-NLS-1$
- }
- if (outgoing == 0) {
- result.append(Policy.bind("CVSSyncSet.noOutgoings")); //$NON-NLS-1$
- } else {
- result.append(Policy.bind("CVSSyncSet.outgoings", new Object[] {Integer.toString(outgoing)} )); //$NON-NLS-1$
- }
- if (newResources == 0) {
- result.append(Policy.bind("CVSSyncSet.noNew")); //$NON-NLS-1$
- } else {
- result.append(Policy.bind("CVSSyncSet.new", new Object[] {Integer.toString(newResources)} )); //$NON-NLS-1$
- }
-
- return result.toString();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/ToolTipMessageDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/ToolTipMessageDialog.java
deleted file mode 100644
index 1e06ab5e6..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/ToolTipMessageDialog.java
+++ /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
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.sync;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-/**
- * A class that adds tool-tips to the buttons of a standard message dialog.
- */
-public class ToolTipMessageDialog extends MessageDialog {
- private String[] buttonToolTips;
- /**
- * Same as the MessageDialog constructor, with the addition of a button tooltip
- * argument. The number of button tool tips must match the number of button labels.
- */
- public ToolTipMessageDialog(Shell parentShell, String dialogTitle, Image dialogTitleImage, String dialogMessage, int dialogImageType, String[] dialogButtonLabels, String[] buttonToolTips, int defaultIndex) {
- super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex);
- this.buttonToolTips = buttonToolTips;
- }
- /**
- * Method declared on MessageDialog.
- */
- protected void createButtonsForButtonBar(Composite parent) {
- super.createButtonsForButtonBar(parent);
- if (buttonToolTips != null) {
- for (int i = 0; i < buttonToolTips.length; i++) {
- getButton(i).setToolTipText(buttonToolTips[i]);
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CVSWizardPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CVSWizardPage.java
deleted file mode 100644
index b884271cd..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CVSWizardPage.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-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.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.model.WorkbenchViewerSorter;
-import org.eclipse.ui.views.navigator.ResourceSorter;
-
-/**
- * Common superclass for CVS wizard pages. Provides convenience methods
- * for widget creation.
- */
-public abstract class CVSWizardPage extends WizardPage {
- protected static final int LABEL_WIDTH_HINT = 400;
- protected static final int LABEL_INDENT_WIDTH = 32;
- protected static final int LIST_HEIGHT_HINT = 100;
- protected static final int SPACER_HEIGHT = 8;
-
- /**
- * CVSWizardPage constructor comment.
- * @param pageName the name of the page
- */
- public CVSWizardPage(String pageName) {
- super(pageName);
- }
- /**
- * CVSWizardPage constructor comment.
- * @param pageName the name of the page
- * @param title the title of the page
- * @param titleImage the image for the page
- */
- public CVSWizardPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- }
- /**
- * CVSWizardPage constructor comment.
- * @param pageName the name of the page
- * @param title the title of the page
- * @param titleImage the image for the page
- * @param description the description of the page
- */
- public CVSWizardPage(String pageName, String title, ImageDescriptor titleImage, String description) {
- super(pageName, title, titleImage);
- setDescription(description);
- }
- /**
- * 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
- */
- public static Label createLabel(Composite parent, String text) {
- return createIndentedLabel(parent, text, 0);
- }
- /**
- * Utility method that creates a label instance indented by the specified
- * number of pixels and sets the default layout data.
- *
- * @param parent the parent for the new label
- * @param text the text for the new label
- * @param indent the indent in pixels, or 0 for none
- * @return the new label
- */
- public static Label createIndentedLabel(Composite parent, String text, int indent) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = 1;
- data.horizontalAlignment = GridData.FILL;
- data.horizontalIndent = indent;
- label.setLayoutData(data);
- return label;
- }
- /**
- * Utility method that creates a label instance with word wrap and sets
- * the default layout data.
- *
- * @param parent the parent for the new label
- * @param text the text for the new label
- * @param indent the indent in pixels, or 0 for none
- * @param widthHint the nominal width of the label
- * @return the new label
- */
- protected Label createWrappingLabel(Composite parent, String text, int indent) {
- return createWrappingLabel(parent, text, indent, 1);
- }
-
- protected Label createWrappingLabel(Composite parent, String text, int indent, int horizontalSpan) {
- Label label = new Label(parent, SWT.LEFT | SWT.WRAP);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = horizontalSpan;
- data.horizontalAlignment = GridData.FILL;
- data.horizontalIndent = indent;
- data.grabExcessHorizontalSpace = true;
- data.widthHint = LABEL_WIDTH_HINT;
- 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
- */
- static public Text createTextField(Composite parent) {
- Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
- return layoutTextField(text);
- }
- /**
- * Create a password field specific for this application
- *
- * @param parent the parent of the new text field
- * @return the new text field
- */
- static public Text createPasswordField(Composite parent) {
- Text text = new Text(parent, SWT.SINGLE | SWT.BORDER | SWT.PASSWORD);
- return layoutTextField(text);
- }
- /**
- * Layout a text or password field specific for this application
- *
- * @param parent the parent of the new text field
- * @return the new text field
- */
- static public Text layoutTextField(Text text) {
- 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;
- }
-
- /**
- * Utility method to create a radio button
- *
- * @param parent the parent of the radio button
- * @param label the label of the radio button
- * @param span the number of columns to span
- * @return the created radio button
- */
- protected Button createRadioButton(Composite parent, String label, int span) {
- Button button = new Button(parent, SWT.RADIO);
- button.setText(label);
- GridData data = new GridData();
- data.horizontalSpan = span;
- button.setLayoutData(data);
- return button;
- }
- /**
- * Utility method to create a full width separator preceeded by a blank space
- *
- * @param parent the parent of the separator
- * @param verticalSpace the vertical whitespace to insert before the label
- */
- protected void createSeparator(Composite parent, int verticalSpace) {
- // space
- Label label = new Label(parent, SWT.NONE);
- GridData data = new GridData();
- data.heightHint = verticalSpace;
- label.setLayoutData(data);
- // separator
- label = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
- data = new GridData(GridData.FILL_HORIZONTAL);
- label.setLayoutData(data);
- }
-
- /**
- * Creates a ListViewer whose input is an array of IFiles.
- *
- * @param parent the parent of the viewer
- * @param title the text for the title label
- * @param heightHint the nominal height of the list
- * @return the created list viewer
- */
- public ListViewer createFileListViewer(Composite parent, String title, int heightHint) {
- createLabel(parent, title);
- ListViewer listViewer = new ListViewer(parent, SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
- listViewer.setContentProvider(new IStructuredContentProvider() {
- public Object[] getElements(Object inputElement) {
- return (Object[]) inputElement;
- }
- public void dispose() {
- }
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- });
- listViewer.setLabelProvider(new LabelProvider() {
- public String getText(Object element) {
- return ((IFile) element).getFullPath().toString();
- }
- });
- listViewer.setSorter(new WorkbenchViewerSorter());
-
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = heightHint;
- listViewer.getList().setLayoutData(data);
- return listViewer;
- }
-
- protected TreeViewer createResourceSelectionTree(Composite composite, int types, int span) {
- TreeViewer tree = new TreeViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- tree.setUseHashlookup(true);
- tree.setContentProvider(getResourceProvider(types));
- tree.setLabelProvider(
- new DecoratingLabelProvider(
- new WorkbenchLabelProvider(),
- CVSUIPlugin.getPlugin().getWorkbench().getDecoratorManager().getLabelDecorator()));
- tree.setSorter(new ResourceSorter(ResourceSorter.NAME));
-
- GridData data = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
- data.heightHint = LIST_HEIGHT_HINT;
- data.horizontalSpan = span;
- tree.getControl().setLayoutData(data);
- return tree;
- }
-
- /**
- * Returns a content provider for <code>IResource</code>s that returns
- * only children of the given resource type.
- */
- protected ITreeContentProvider getResourceProvider(final int resourceType) {
- return new WorkbenchContentProvider() {
- public Object[] getChildren(Object o) {
- if (o instanceof IContainer) {
- IResource[] members = null;
- try {
- members = ((IContainer)o).members();
- } catch (CoreException e) {
- //just return an empty set of children
- return new Object[0];
- }
-
- //filter out the desired resource types
- ArrayList results = new ArrayList();
- for (int i = 0; i < members.length; i++) {
- //And the test bits with the resource types to see if they are what we want
- if ((members[i].getType() & resourceType) > 0) {
- results.add(members[i]);
- }
- }
- return results.toArray();
- } else {
- return super.getChildren(o);
- }
- }
- };
- }
-
- protected RepositoryManager getRepositoryManager() {
- return CVSUIPlugin.getPlugin().getRepositoryManager();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsLocationSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsLocationSelectionPage.java
deleted file mode 100644
index 6c67e66b5..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsLocationSelectionPage.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * @author Administrator
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class CheckoutAsLocationSelectionPage extends CVSWizardPage {
-
- public static final String NAME = "CheckoutAsLocationSelectionPage"; //$NON-NLS-1$
-
- private Button browseButton;
- private Text locationPathField;
- private Label locationLabel;
- private boolean useDefaults = true;
- private ICVSRemoteFolder[] remoteFolders;
- private String targetLocation;
- private IProject singleProject;
-
- // constants
- private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
- /**
- * @param pageName
- * @param title
- * @param titleImage
- * @param description
- */
- public CheckoutAsLocationSelectionPage(ImageDescriptor titleImage, ICVSRemoteFolder[] remoteFolders) {
- super(NAME, Policy.bind("CheckoutAsLocationSelectionPage.title"), titleImage, Policy.bind("CheckoutAsLocationSelectionPage.description")); //$NON-NLS-1$ //$NON-NLS-2$
- this.remoteFolders = remoteFolders;
- }
-
- /**
- * @return
- */
- private boolean isSingleFolder() {
- return remoteFolders.length == 1;
- }
-
- /**
- * @param string
- */
- public void setProject(IProject project) {
- singleProject = project;
- }
-
- /**
- * @param string
- */
- public void setProjectName(String string) {
- if (string == null) return;
- if (singleProject != null && singleProject.getName().equals(string)) return;
- setProject(ResourcesPlugin.getWorkspace().getRoot().getProject(string));
- }
-
- private IProject getSingleProject() {
- if (singleProject == null) {
- setProjectName(remoteFolders[0].getName());
- }
- return singleProject;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite= createComposite(parent, 1);
- setControl(composite);
- // required in order to use setButtonLayoutData
- initializeDialogUnits(composite);
-
- // WorkbenchHelp.setHelp(composite, IHelpContextIds.CHECKOUT_INTO_RESOURCE_SELECTION_PAGE);
-
- final Button useDefaultsButton =
- new Button(composite, SWT.CHECK | SWT.RIGHT);
- useDefaultsButton.setText(Policy.bind("CheckoutAsLocationSelectionPage.useDefaultLabel")); //$NON-NLS-1$
- useDefaultsButton.setSelection(this.useDefaults);
-
- createUserSpecifiedProjectLocationGroup(composite, !this.useDefaults);
-
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- useDefaults = useDefaultsButton.getSelection();
- browseButton.setEnabled(!useDefaults);
- locationPathField.setEnabled(!useDefaults);
- locationLabel.setEnabled(!useDefaults);
- setLocationForSelection(true);
- setErrorMessage(useDefaults ? null : checkValidLocation());
- }
- };
- useDefaultsButton.addSelectionListener(listener);
- Dialog.applyDialogFont(parent);
- }
-
- /**
- * Creates the project location specification controls.
- *
- * @return the parent of the widgets created
- * @param projectGroup the parent composite
- * @param enabled - sets the initial enabled state of the widgets
- */
- private Composite createUserSpecifiedProjectLocationGroup(Composite parent, boolean enabled) {
-
- // This group needs 3 columns
- Composite projectGroup = createComposite(parent, 3);
-
- // location label
- locationLabel = new Label(projectGroup, SWT.NONE);
- if (isSingleFolder()) {
- locationLabel.setText(Policy.bind("CheckoutAsLocationSelectionPage.locationLabel")); //$NON-NLS-1$
- } else {
- locationLabel.setText(Policy.bind("CheckoutAsLocationSelectionPage.parentDirectoryLabel")); //$NON-NLS-1$
- }
- locationLabel.setEnabled(enabled);
-
- // project location entry field
- locationPathField = new Text(projectGroup, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = SIZING_TEXT_FIELD_WIDTH;
- locationPathField.setLayoutData(data);
- locationPathField.setEnabled(enabled);
-
- // browse button
- this.browseButton = new Button(projectGroup, SWT.PUSH);
- this.browseButton.setText(Policy.bind("CheckoutAsLocationSelectionPage.browseLabel")); //$NON-NLS-1$
- this.browseButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- handleLocationBrowseButtonPressed();
- }
- });
- this.browseButton.setEnabled(enabled);
- setButtonLayoutData(this.browseButton);
-
- // Set the initial value first before listener
- // to avoid handling an event during the creation.
- setLocationForSelection(true);
- locationPathField.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- setErrorMessage(checkValidLocation());
- }
- });
- return projectGroup;
- }
-
- /**
- * Check if the entry in the widget location is valid. If it is valid return null. Otherwise
- * return a string that indicates the problem.
- */
- private String checkValidLocation() {
-
- if (useDefaults) {
- targetLocation = null;
- return null;
- } else {
- targetLocation = locationPathField.getText();
- if (targetLocation.equals("")) {//$NON-NLS-1$
- return(Policy.bind("CheckoutAsLocationSelectionPage.locationEmpty")); //$NON-NLS-1$
- }
- else{
- IPath path = new Path("");//$NON-NLS-1$
- if (!path.isValidPath(targetLocation)) {
- return Policy.bind("CheckoutAsLocationSelectionPage.invalidLocation"); //$NON-NLS-1$
- }
- }
-
- if (isSingleFolder()) {
- IStatus locationStatus =
- ResourcesPlugin.getWorkspace().validateProjectLocation(
- getSingleProject(),
- new Path(targetLocation));
-
- if (!locationStatus.isOK())
- return locationStatus.getMessage();
- } else {
- for (int i = 0; i < remoteFolders.length; i++) {
- String projectName = remoteFolders[i].getName();
- IStatus locationStatus = ResourcesPlugin.getWorkspace().validateProjectLocation(
- ResourcesPlugin.getWorkspace().getRoot().getProject(projectName),
- new Path(targetLocation).append(projectName));
- if (!locationStatus.isOK())
- return locationStatus.getMessage();
- }
- }
-
- return null;
- }
- }
-
- /**
- * Set the location to the default location if we are set to useDefaults.
- */
- private void setLocationForSelection(boolean changed) {
- if (useDefaults) {
- IPath defaultPath = null;
- if (isSingleFolder()) {
- try {
- defaultPath = getSingleProject().getDescription().getLocation();
- } catch (CoreException e) {
- // ignore
- }
- if (defaultPath == null) {
- defaultPath = Platform.getLocation().append(getSingleProject().getName());
- }
- } else {
- defaultPath = Platform.getLocation();
- }
- locationPathField.setText(defaultPath.toOSString());
- targetLocation = null;
- } else if (changed) {
- IPath location = null;
- try {
- location = ResourcesPlugin.getWorkspace().getRoot().getProject(remoteFolders[0].getName()).getDescription().getLocation();
- } catch (CoreException e) {
- // ignore the exception
- }
- if (location == null) {
- targetLocation = null;
- locationPathField.setText(""); //$NON-NLS-1$
- } else {
- if (isSingleFolder()) {
- targetLocation = location.toOSString();
- } else {
- targetLocation = location.removeLastSegments(1).toOSString();
- }
- locationPathField.setText(targetLocation);
- }
- }
- }
-
- /**
- * Open an appropriate directory browser
- */
- private void handleLocationBrowseButtonPressed() {
- DirectoryDialog dialog = new DirectoryDialog(locationPathField.getShell());
- if (isSingleFolder()) {
- dialog.setMessage(Policy.bind("CheckoutAsLocationSelectionPage.messageForSingle", getSingleProject().getName())); //$NON-NLS-1$
- } else {
- dialog.setMessage(Policy.bind("CheckoutAsLocationSelectionPage.messageForMulti", new Integer(remoteFolders.length).toString())); //$NON-NLS-1$
- }
-
- String dirName = locationPathField.getText();
- if (!dirName.equals("")) {//$NON-NLS-1$
- File path = new File(dirName);
- if (path.exists())
- dialog.setFilterPath(dirName);
- }
-
- String selectedDirectory = dialog.open();
- if (selectedDirectory != null) {
- if (isSingleFolder()) {
- locationPathField.setText(new Path(selectedDirectory).append(getSingleProject().getName()).toOSString());
- } else {
- locationPathField.setText(new Path(selectedDirectory).toOSString());
- }
- }
- targetLocation = locationPathField.getText();
- }
-
- /**
- * Return the custom location for a single project. In this case, the specified
- * location is used as the location of the project.
- *
- * @param project
- * @return
- */
- public String getTargetLocation() {
- if (isCustomLocationSpecified())
- return targetLocation;
- else
- return null;
- }
-
- /**
- * @return
- */
- private boolean isCustomLocationSpecified() {
- return !useDefaults;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsMainPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsMainPage.java
deleted file mode 100644
index ed4a34fb0..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsMainPage.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * This is the main page of the Check Out As wizard. It allows the user to specify
- * whether they want to check out the remote folder(s) as project(s) or into an
- * existing project. For single project checkout, the page will also allow the user to
- * choose whether to configure the new project (if it is missing a .project file).
- */
-public class CheckoutAsMainPage extends CVSWizardPage {
-
- private String newProjectName;
- private boolean allowProjectConfiguration;
- private Button intoProjectButton;
- private Button simpleProjectButton;
- private Button configuredProjectButton;
- private Text projectNameField;
- private ICVSRemoteFolder[] folders;
-
- public static final String NAME = "CheckoutAsMainPage"; //$NON-NLS-1$
-
- /**
- * @param pageName
- * @param title
- * @param titleImage
- * @param description
- */
- public CheckoutAsMainPage(ImageDescriptor titleImage, ICVSRemoteFolder[] folders, boolean allowProjectConfiguration) {
- super(NAME, Policy.bind("CheckoutAsMainPage.title"), titleImage, Policy.bind("CheckoutAsMainPage.description")); //$NON-NLS-1$ //$NON-NLS-2$
- this.folders = folders;
- this.allowProjectConfiguration = allowProjectConfiguration;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
-
- Composite composite = createComposite(parent, 1);
- setControl(composite);
-
- // WorkbenchHelp.setHelp(composite, IHelpContextIds.CHECKOUT_AS_MAIN_PAGE);
-
- if (isSingleFolder()) {
- createSingleFolderArea(composite);
- } else {
- createMultipleFoldersArea(composite);
- }
-
- updateEnablements();
- Dialog.applyDialogFont(parent);
- }
-
- /*
- * Is the input to the wizard a single folder or multiple folders
- */
- private boolean isSingleFolder() {
- return folders.length == 1;
- }
-
- /*
- * For the single folder case, return the name of the folder
- */
- private String getFolderName() {
- return folders[0].getName();
- }
-
- /*
- * Create the page contents for a single folder checkout
- */
- private void createSingleFolderArea(Composite composite) {
- createLabel(composite, Policy.bind("CheckoutAsMainPage.singleFolder", getFolderName())); //$NON-NLS-1$
- if (allowProjectConfiguration) {
- configuredProjectButton = createRadioButton(composite, Policy.bind("CheckoutAsMainPage.asConfiguredProject"), 1); //$NON-NLS-1$
- }
- createCheckoutAsProjectRadioArea(composite);
- createCheckoutIntoRadioArea(composite);
- if (allowProjectConfiguration) {
- configuredProjectButton.setSelection(true);
- } else {
- simpleProjectButton.setSelection(true);
- }
- }
-
- /*
- * Create the page contents for a multiple folder checkout
- */
- private void createMultipleFoldersArea(Composite composite) {
- createLabel(composite, Policy.bind("CheckoutAsMainPage.multipleFolders", new Integer(folders.length).toString())); //$NON-NLS-1$
- createCheckoutAsProjectRadioArea(composite);
- createCheckoutIntoRadioArea(composite);
- simpleProjectButton.setSelection(true);
- }
-
- /**
- * @param composite
- */
- private void createCheckoutAsProjectRadioArea(Composite composite) {
- if (isSingleFolder()) {
- simpleProjectButton = createRadioButton(composite, Policy.bind("CheckoutAsMainPage.asSimpleProject"), 1); //$NON-NLS-1$
- createProjectNameGroup(composite);
- } else {
- simpleProjectButton = createRadioButton(composite, Policy.bind("CheckoutAsMainPage.asProjects"), 1); //$NON-NLS-1$
- }
- }
-
- /**
- * @param composite
- */
- private void createCheckoutIntoRadioArea(Composite composite) {
- intoProjectButton = createRadioButton(composite, Policy.bind("CheckoutAsMainPage.intoProject"), 1); //$NON-NLS-1$
- }
-
- /**
- * Creates the project name specification controls.
- *
- * @param parent the parent composite
- */
- private void createProjectNameGroup(Composite parent) {
- // project specification group
- Composite projectGroup = new Composite(parent,SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- projectGroup.setLayout(layout);
- projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // new project label
- Label projectLabel = new Label(projectGroup,SWT.NONE);
- projectLabel.setText(Policy.bind("CheckoutAsMainPage.projectNameLabel")); //$NON-NLS-1$
-
- // new project name entry field
- projectNameField = new Text(projectGroup, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- projectNameField.setLayoutData(data);
-
- // Set the initial value first before listener
- // to avoid handling an event during the creation.
- newProjectName = getFolderName();
- projectNameField.setText(newProjectName);
- projectNameField.selectAll();
-
- // Set the listener to capture modify events
- projectNameField.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- updateEnablements();
- }
- });
- }
-
- /**
- * Check if the entries in the widget are valid. If they are return null otherwise
- * return a string that indicates the problem.
- */
- private void updateEnablements() {
-
- if (projectNameField != null) {
- projectNameField.setEnabled(simpleProjectButton.getSelection());
- if (projectNameField.isEnabled()) {
- newProjectName = this.projectNameField.getText();
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IStatus nameStatus = workspace.validateName(newProjectName, IResource.PROJECT);
- if (!nameStatus.isOK()) {
- setErrorMessage(nameStatus.getMessage());
- setPageComplete(false);
- }
- }
- }
- setErrorMessage(null);
- setPageComplete(true);
- }
-
- public String getProjectName() {
- if (isSingleFolder() && simpleProjectButton.getSelection()) return newProjectName;
- return null;
- }
-
- public boolean isPerformConfigure() {
- if (configuredProjectButton == null) return false;
- return configuredProjectButton.getSelection();
- }
-
- public boolean isPerformCheckoutInto() {
- return intoProjectButton.getSelection();
- }
-
- public boolean isPerformCheckoutAs() {
- return simpleProjectButton.getSelection();
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage#createRadioButton(org.eclipse.swt.widgets.Composite, java.lang.String, int)
- */
- protected Button createRadioButton(Composite parent, String label, int span) {
- Button radio = super.createRadioButton(parent, label, span);
- radio.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- updateEnablements();
- }
- });
- return radio;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsProjectSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsProjectSelectionPage.java
deleted file mode 100644
index 4eea0bbd3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsProjectSelectionPage.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.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.AdaptableResourceList;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * This page allows the user to select the target parent container for
- * the folders being checked out.
- */
-public class CheckoutAsProjectSelectionPage extends CVSWizardPage {
-
- public static final String NAME = "CheckoutAsProjectSelectionPage"; //$NON-NLS-1$
-
- private TreeViewer tree;
- private Text nameField;
- private Combo filterList;
- private Button recurseCheck;
-
- private IResource[] resources;
- private IResource selection;
- private ICVSRemoteFolder[] remoteFolders;
- private String folderName;
- private boolean recurse;
- private int filter;
-
- /**
- * Constructor for CheckoutIntoProjectSelectionPage.
- * @param pageName
- * @param title
- * @param titleImage
- */
- public CheckoutAsProjectSelectionPage(ImageDescriptor titleImage, ICVSRemoteFolder[] remoteFolders) {
- super(NAME, Policy.bind("CheckoutAsProjectSelectionPage.title"), titleImage, Policy.bind("CheckoutAsProjectSelectionPage.description")); //$NON-NLS-1$ //$NON-NLS-2$
- this.remoteFolders = remoteFolders;
- }
-
- /**
- * @return
- */
- private boolean isSingleFolder() {
- return remoteFolders.length == 1;
- }
-
- /*
- * For the single folder case, return the name of the folder
- */
- private String getInputFolderName() {
- return remoteFolders[0].getName();
- }
-
- private String getRepository() throws CVSException {
- return remoteFolders[0].getFolderSyncInfo().getRoot();
- }
-
- /**
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite= createComposite(parent, 2);
- setControl(composite);
-
- // WorkbenchHelp.setHelp(composite, IHelpContextIds.CHECKOUT_INTO_RESOURCE_SELECTION_PAGE);
-
- if (isSingleFolder()) {
- createLabel(composite, Policy.bind("CheckoutAsProjectSelectionPage.name")); //$NON-NLS-1$
- nameField = createTextField(composite);
- nameField.addListener(SWT.Modify, new Listener() {
- public void handleEvent(Event event) {
- folderName = nameField.getText();
- updateWidgetEnablements();
- }
- });
- }
-
- createWrappingLabel(composite, Policy.bind("CheckoutAsProjectSelectionPage.treeLabel"), 0, 2); //$NON-NLS-1$
-
- tree = createResourceSelectionTree(composite, IResource.PROJECT | IResource.FOLDER, 2 /* horizontal span */);
- tree.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- handleResourceSelection(event);
- }
- });
-
- Composite filterComposite = createComposite(composite, 2);
- GridData data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- data.horizontalSpan = 2;
- filterComposite.setLayoutData(data);
- createLabel(filterComposite, Policy.bind("CheckoutAsProjectSelectionPage.showLabel")); //$NON-NLS-1$
- filterList = createCombo(filterComposite);
- filterList.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- handleFilterSelection();
- }
- });
-
- createWrappingLabel(composite, "", 0, 2); //$NON-NLS-1$
-
- // Should subfolders of the folder be checked out?
- recurseCheck = createCheckBox(composite, Policy.bind("CheckoutAsProjectSelectionPage.recurse")); //$NON-NLS-1$
- recurseCheck.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- recurse = recurseCheck.getSelection();
- updateWidgetEnablements();
- }
- });
-
- initializeValues();
- updateWidgetEnablements();
- tree.getControl().setFocus();
- Dialog.applyDialogFont(parent);
- }
-
- /**
- * Method initializeValues.
- */
- private void initializeValues() {
- if (isSingleFolder()) {
- nameField.setText(getInputFolderName());
- }
- tree.setInput(ResourcesPlugin.getWorkspace().getRoot());
- recurse = true;
- recurseCheck.setSelection(recurse);
- filter = 0;
- updateTreeContents(filter);
- filterList.add(Policy.bind("CheckoutAsProjectSelectionPage.showAll")); //$NON-NLS-1$
- filterList.add(Policy.bind("CheckoutAsProjectSelectionPage.showUnshared")); //$NON-NLS-1$
- filterList.add(Policy.bind("CheckoutAsProjectSelectionPage.showSameRepo")); //$NON-NLS-1$
- filterList.select(filter);
- }
-
- private void handleResourceSelection(SelectionChangedEvent event) {
- ISelection sel = event.getSelection();
- if (sel.isEmpty()) {
- this.selection = null;
- } else if (sel instanceof IStructuredSelection) {
- this.selection = (IResource)((IStructuredSelection)sel).getFirstElement();
- }
- updateWidgetEnablements();
- }
-
- /**
- * Method updateWidgetEnablement.
- */
- private void updateWidgetEnablements() {
- if (isSingleFolder() && !Path.EMPTY.isValidSegment(folderName)) {
- setPageComplete(false);
- setErrorMessage(Policy.bind("CheckoutAsProjectSelectionPage.invalidFolderName", folderName)); //$NON-NLS-1$
- return;
- }
- boolean complete = selection != null && selection.getType() != IResource.FILE;
- setErrorMessage(null);
- setPageComplete(complete);
- }
-
- /**
- * Returns the selection.
- * @return IResource
- */
- public IResource getSelection() {
- return selection;
- }
-
- /**
- * Returns the folderName.
- * @return String
- */
- public String getFolderName() {
- return folderName;
- }
-
- private void updateTreeContents(int selected) {
- try {
- if (selected == 0) {
- tree.setInput(new AdaptableResourceList(getProjects(getRepository(), true)));
- } else if (selected == 1) {
- tree.setInput(new AdaptableResourceList(getProjects(null, true)));
- } else if (selected == 2) {
- tree.setInput(new AdaptableResourceList(getProjects(getRepository(), false)));
- }
- } catch (CVSException e) {
- CVSUIPlugin.log(e);
- }
- }
-
- /**
- * Method getValidTargetProjects returns the set of projects that match the provided criteria.
- * @return IResource
- */
- private IProject[] getProjects(String root, boolean unshared) throws CVSException {
- List validTargets = new ArrayList();
- try {
- IResource[] projects = ResourcesPlugin.getWorkspace().getRoot().members();
- for (int i = 0; i < projects.length; i++) {
- IResource resource = projects[i];
- if (resource instanceof IProject) {
- IProject project = (IProject) resource;
- if (project.isAccessible()) {
- RepositoryProvider provider = RepositoryProvider.getProvider(project);
- if (provider == null && unshared) {
- validTargets.add(project);
- } else if (provider != null && provider.getID().equals(CVSProviderPlugin.getTypeId())) {
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(project);
- FolderSyncInfo info = cvsFolder.getFolderSyncInfo();
- if (root != null && info != null && root.equals(info.getRoot())) {
- validTargets.add(project);
- }
- }
- }
- }
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- return (IProject[]) validTargets.toArray(new IProject[validTargets.size()]);
- }
-
- public IContainer getLocalFolder() {
- if (Path.EMPTY.isValidSegment(folderName)) {
- return ((IContainer)getSelection()).getFolder(new Path(folderName));
- } else {
- return null;
- }
- }
-
- public IContainer getParentFolder() {
- return ((IContainer)getSelection());
- }
-
- /**
- * Returns the recurse.
- * @return boolean
- */
- public boolean isRecurse() {
- return recurse;
- }
-
- private void handleFilterSelection() {
- filter = filterList.getSelectionIndex();
- updateTreeContents(filter);
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsWizard.java
deleted file mode 100644
index cb3ce06b3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutAsWizard.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.CheckoutIntoOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.CheckoutMultipleProjectsOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.CheckoutSingleProjectOperation;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.NewProjectAction;
-
-/**
- * @author Administrator
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class CheckoutAsWizard extends Wizard {
-
- private ICVSRemoteFolder[] remoteFolders;
- private boolean allowProjectConfiguration;
-
- private CheckoutAsMainPage mainPage;
- private CheckoutAsProjectSelectionPage projectSelectionPage;
- private CheckoutAsLocationSelectionPage locationSelectionPage;
-
- class NewProjectListener implements IResourceChangeListener {
- private IProject newProject = null;
- /**
- * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- IResourceDelta root = event.getDelta();
- IResourceDelta[] projectDeltas = root.getAffectedChildren();
- for (int i = 0; i < projectDeltas.length; i++) {
- IResourceDelta delta = projectDeltas[i];
- IResource resource = delta.getResource();
- if (delta.getKind() == IResourceDelta.ADDED) {
- newProject = (IProject)resource;
- }
- }
- }
- /**
- * Gets the newProject.
- * @return Returns a IProject
- */
- public IProject getNewProject() {
- return newProject;
- }
- }
-
- public CheckoutAsWizard(ICVSRemoteFolder[] remoteFolders, boolean allowProjectConfiguration) {
- super();
- this.remoteFolders = remoteFolders;
- setWindowTitle(Policy.bind("CheckoutAsWizard.title")); //$NON-NLS-1$
- this.allowProjectConfiguration = allowProjectConfiguration;
- }
-
- /**
- * @see org.eclipse.jface.wizard.IWizard#addPages()
- */
- public void addPages() {
- setNeedsProgressMonitor(true);
- ImageDescriptor substImage = CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_CHECKOUT);
-
- mainPage = new CheckoutAsMainPage(substImage, remoteFolders, allowProjectConfiguration);
- addPage(mainPage);
-
- projectSelectionPage = new CheckoutAsProjectSelectionPage(substImage, remoteFolders);
- addPage(projectSelectionPage);
-
- locationSelectionPage = new CheckoutAsLocationSelectionPage(substImage, remoteFolders);
- addPage(locationSelectionPage);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.wizard.IWizard#performFinish()
- */
- public boolean performFinish() {
- try {
- if (mainPage.isPerformConfigure()) {
- return performConfigureAndCheckout();
- } else if (mainPage.isPerformCheckoutAs()) {
- if (isSingleFolder()) {
- return performSingleCheckoutAs();
- } else {
- return performMultipleCheckoutAs();
- }
- } else if (mainPage.isPerformCheckoutInto()) {
- return performCheckoutInto();
- }
- } catch (CVSException e) {
- handle(e);
- // drop through
- } catch (InterruptedException e) {
- // drop through
- }
- return false;
- }
-
- /**
- * @return
- */
- private boolean isSingleFolder() {
- return remoteFolders.length == 1;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.wizard.IWizard#canFinish()
- */
- public boolean canFinish() {
- return (mainPage.isPageComplete()
- && (mainPage.isPerformConfigure()
- || (mainPage.isPerformCheckoutInto() && projectSelectionPage.isPageComplete())
- || (mainPage.isPerformCheckoutAs() && locationSelectionPage.isPageComplete())));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.wizard.IWizard#getNextPage(org.eclipse.jface.wizard.IWizardPage)
- */
- public IWizardPage getNextPage(IWizardPage page) {
- if (page == mainPage) {
- if (mainPage.isPerformConfigure()) return null;
- if (mainPage.isPerformCheckoutInto()) return projectSelectionPage;
- if (mainPage.isPerformCheckoutAs()) {
- if (isSingleFolder()) {
- locationSelectionPage.setProjectName(mainPage.getProjectName());
- } else {
- locationSelectionPage.setProject(null);
- }
- return locationSelectionPage;
- }
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.wizard.IWizard#getPreviousPage(org.eclipse.jface.wizard.IWizardPage)
- */
- public IWizardPage getPreviousPage(IWizardPage page) {
- if (page == mainPage) return null;
- return mainPage;
- }
-
- private void handle(Throwable e) {
- CVSUIPlugin.openError(getShell(), Policy.bind("CheckoutAsWizard.error"), null, e); //$NON-NLS-1$
- }
-
- /*
- * Configure a local project and checkout the selected remote folder into the project.
- * This only occurs for single folders.
- */
- private boolean performConfigureAndCheckout() throws CVSException, InterruptedException {
- IProject newProject = getNewProject();
- if (newProject == null) return false;
- // Run the checkout in the background
- new CheckoutSingleProjectOperation(getShell(), remoteFolders[0], newProject, null, true).run();
- return true;
- }
-
- private boolean performSingleCheckoutAs() throws CVSException, InterruptedException {
- IProject newProject = ResourcesPlugin.getWorkspace().getRoot().getProject(mainPage.getProjectName());
- String targetLocation = locationSelectionPage.getTargetLocation();
- // Run the checkout in the background
- new CheckoutSingleProjectOperation(getShell(), remoteFolders[0], newProject, targetLocation, false).run();
- return true;
- }
-
- /**
- * Check out multiple folders to the workspace using a custom location if one is
- * specified.
- */
- private boolean performMultipleCheckoutAs() throws CVSException, InterruptedException {
- String targetLocation = locationSelectionPage.getTargetLocation();
- // Run the checkout in the background
- new CheckoutMultipleProjectsOperation(getShell(), remoteFolders, targetLocation).run();
- return true;
- }
-
- private boolean performCheckoutInto() throws CVSException, InterruptedException {
- CheckoutIntoOperation operation;
- boolean recursive = projectSelectionPage.isRecurse();
- if (isSingleFolder()) {
- operation = new CheckoutIntoOperation(getShell(), remoteFolders[0] , projectSelectionPage.getLocalFolder(), recursive);
- } else {
- operation = new CheckoutIntoOperation(getShell(), remoteFolders, projectSelectionPage.getParentFolder(), recursive);
- }
- // Run the checkout in the background
- operation.run();
- return true;
- }
-
- /**
- * Get a new project that is configured by the new project wizard.
- * This is currently the only way to do this.
- */
- private IProject getNewProject() {
- NewProjectListener listener = new NewProjectListener();
- ResourcesPlugin.getWorkspace().addResourceChangeListener(listener, IResourceChangeEvent.POST_CHANGE);
- (new NewProjectAction(PlatformUI.getWorkbench().getActiveWorkbenchWindow())).run();
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(listener);
- IProject project = listener.getNewProject();
- return project;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ConfigurationWizardAutoconnectPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ConfigurationWizardAutoconnectPage.java
deleted file mode 100644
index ed7ab50df..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ConfigurationWizardAutoconnectPage.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.internal.ccvs.ui.wizards;
-
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-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.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-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.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * This configuration page explains to the user that CVS/ directories already exists and
- * it will attach the selected project to the repository that is specified in the CVS/ files.
- *
- * This is useful for people who have checked out a project using command-line tools.
- */
-public class ConfigurationWizardAutoconnectPage extends CVSWizardPage {
- private boolean validate = true;
- private FolderSyncInfo info;
- ICVSRepositoryLocation location;
-
- public ConfigurationWizardAutoconnectPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- }
-
- /*
- * @see IDialogPage#createControl(Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 2);
- setControl(composite);
-
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.SHARING_AUTOCONNECT_PAGE);
-
- Label description = new Label(composite, SWT.WRAP);
- GridData data = new GridData();
- data.horizontalSpan = 2;
- data.widthHint = 350;
- description.setLayoutData(data);
- description.setText(Policy.bind("ConfigurationWizardAutoconnectPage.description")); //$NON-NLS-1$
-
- if (location == null) return;
-
- // Spacer
- createLabel(composite, ""); //$NON-NLS-1$
- createLabel(composite, ""); //$NON-NLS-1$
-
- createLabel(composite, Policy.bind("ConfigurationWizardAutoconnectPage.user")); //$NON-NLS-1$
- createLabel(composite, location.getUsername());
- createLabel(composite, Policy.bind("ConfigurationWizardAutoconnectPage.host")); //$NON-NLS-1$
- createLabel(composite, location.getHost());
- createLabel(composite, Policy.bind("ConfigurationWizardAutoconnectPage.port")); //$NON-NLS-1$
- int port = location.getPort();
- if (port == ICVSRepositoryLocation.USE_DEFAULT_PORT) {
- createLabel(composite, Policy.bind("ConfigurationWizardAutoconnectPage.default")); //$NON-NLS-1$
- } else {
- createLabel(composite, "" + port); //$NON-NLS-1$
- }
- createLabel(composite, Policy.bind("ConfigurationWizardAutoconnectPage.connectionType")); //$NON-NLS-1$
- createLabel(composite, location.getMethod().getName());
- createLabel(composite, Policy.bind("ConfigurationWizardAutoconnectPage.repositoryPath")); //$NON-NLS-1$
- createLabel(composite, location.getRootDirectory());
- createLabel(composite, Policy.bind("ConfigurationWizardAutoconnectPage.module")); //$NON-NLS-1$
- createLabel(composite, info.getRepository());
-
- // Spacer
- createLabel(composite, ""); //$NON-NLS-1$
- createLabel(composite, ""); //$NON-NLS-1$
-
- final Button check = new Button(composite, SWT.CHECK);
- data = new GridData();
- data.horizontalSpan = 2;
- check.setText(Policy.bind("ConfigurationWizardAutoconnectPage.validate")); //$NON-NLS-1$
- check.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- validate = check.getSelection();
- }
- });
- check.setSelection(true);
- Dialog.applyDialogFont(parent);
- }
-
- public FolderSyncInfo getFolderSyncInfo() {
- return info;
- }
- public boolean getValidate() {
- return validate;
- }
- public void setProject(IProject project) {
- try {
- ICVSFolder folder = (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(project);
- info = folder.getFolderSyncInfo();
- if (info == null) {
- // This should never happen
- CVSUIPlugin.openError(null, Policy.bind("ConfigurationWizardAutoconnectPage.noSyncInfo"), Policy.bind("ConfigurationWizardAutoconnectPage.noCVSDirectory"), null); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
- location = CVSRepositoryLocation.fromString(info.getRoot());
- } catch (TeamException e) {
- CVSUIPlugin.openError(null, null, null, e);
- }
- }
-
- public void setSharing(FolderSyncInfo info) {
- this.info = info;
- try {
- this. location = CVSRepositoryLocation.fromString(info.getRoot());
- } catch (CVSException e) {
- CVSUIPlugin.openError(null, null, null, e);
- }
- }
-
- public FolderSyncInfo getSharing() {
- return info;
- }
- /**
- * Gets the location.
- * @return Returns a ICVSRepositoryLocation
- */
- public ICVSRepositoryLocation getLocation() {
- return location;
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ConfigurationWizardMainPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ConfigurationWizardMainPage.java
deleted file mode 100644
index e2ddae19b..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ConfigurationWizardMainPage.java
+++ /dev/null
@@ -1,493 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.IConnectionMethod;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Wizard page for entering information about a CVS repository location.
- */
-public class ConfigurationWizardMainPage extends CVSWizardPage {
- private boolean showValidate;
- private boolean validate;
-
- // Widgets
-
- // Connection Method
- private Combo connectionMethodCombo;
- // User
- private Combo userCombo;
- // Password
- private Text passwordText;
- // Port
- private Text portText;
- private Button useDefaultPort;
- private Button useCustomPort;
- // Host
- private Combo hostCombo;
- // Repository Path
- private Combo repositoryPathCombo;
- // Validation
- private Button validateButton;
-
- private static final int COMBO_HISTORY_LENGTH = 5;
-
- private Properties properties = null;
-
- // Dialog store id constants
- private static final String STORE_USERNAME_ID =
- "ConfigurationWizardMainPage.STORE_USERNAME_ID";//$NON-NLS-1$
- private static final String STORE_HOSTNAME_ID =
- "ConfigurationWizardMainPage.STORE_HOSTNAME_ID";//$NON-NLS-1$
- private static final String STORE_PATH_ID =
- "ConfigurationWizardMainPage.STORE_PATH_ID";//$NON-NLS-1$
- private static final String STORE_DONT_VALIDATE_ID =
- "ConfigurationWizardMainPage.STORE_DONT_VALIDATE_ID";//$NON-NLS-1$
-
- // In case the page was launched from a different wizard
- private IDialogSettings settings;
-
- /**
- * ConfigurationWizardMainPage constructor.
- *
- * @param pageName the name of the page
- * @param title the title of the page
- * @param titleImage the image for the page
- */
- public ConfigurationWizardMainPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- }
- /**
- * 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
- */
- private 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;
- }
- protected IDialogSettings getDialogSettings() {
- return settings;
- }
- protected void setDialogSettings(IDialogSettings settings) {
- this.settings = settings;
- }
- /**
- * 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
- */
- private 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);
- }
- /**
- * Creates the UI part of the page.
- *
- * @param parent the parent of the created widgets
- */
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 2);
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.SHARING_NEW_REPOSITORY_PAGE);
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- updateWidgetEnablements();
- }
- };
-
- Group g = createGroup(composite, Policy.bind("ConfigurationWizardMainPage.Location_1")); //$NON-NLS-1$
-
- // Host name
- createLabel(g, Policy.bind("ConfigurationWizardMainPage.host")); //$NON-NLS-1$
- hostCombo = createEditableCombo(g);
- hostCombo.addListener(SWT.Selection, listener);
- hostCombo.addListener(SWT.Modify, listener);
-
- // Repository Path
- createLabel(g, Policy.bind("ConfigurationWizardMainPage.repositoryPath")); //$NON-NLS-1$
- repositoryPathCombo = createEditableCombo(g);
- repositoryPathCombo.addListener(SWT.Selection, listener);
- repositoryPathCombo.addListener(SWT.Modify, listener);
-
- g = createGroup(composite, Policy.bind("ConfigurationWizardMainPage.Authentication_2")); //$NON-NLS-1$
-
- // User name
- createLabel(g, Policy.bind("ConfigurationWizardMainPage.userName")); //$NON-NLS-1$
- userCombo = createEditableCombo(g);
- userCombo.addListener(SWT.Selection, listener);
- userCombo.addListener(SWT.Modify, listener);
-
- // Password
- createLabel(g, Policy.bind("ConfigurationWizardMainPage.password")); //$NON-NLS-1$
- passwordText = createPasswordField(g);
-
- g = createGroup(composite, Policy.bind("ConfigurationWizardMainPage.Connection_3")); //$NON-NLS-1$
-
- // Connection type
- createLabel(g, Policy.bind("ConfigurationWizardMainPage.connection")); //$NON-NLS-1$
- connectionMethodCombo = createCombo(g);
-
- // Port number
- // create a composite to ensure the radio buttons come in the correct order
- Composite portGroup = new Composite(g, SWT.NONE);
- GridData data = new GridData();
- data.horizontalSpan = 2;
- portGroup.setLayoutData(data);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- portGroup.setLayout(layout);
- useDefaultPort = createRadioButton(portGroup, Policy.bind("ConfigurationWizardMainPage.useDefaultPort"), 2); //$NON-NLS-1$
- useCustomPort = createRadioButton(portGroup, Policy.bind("ConfigurationWizardMainPage.usePort"), 1); //$NON-NLS-1$
- useCustomPort.addListener(SWT.Selection, listener);
- portText = createTextField(portGroup);
- portText.addListener(SWT.Modify, listener);
-
- // create a composite to ensure the validate button is in its own tab group
- if (showValidate) {
- Composite validateButtonTabGroup = new Composite(composite, SWT.NONE);
- data = new GridData();
- data.horizontalSpan = 2;
- validateButtonTabGroup.setLayoutData(data);
- validateButtonTabGroup.setLayout(new FillLayout());
-
- validateButton = new Button(validateButtonTabGroup, SWT.CHECK);
- validateButton.setText(Policy.bind("ConfigurationWizardAutoconnectPage.validate")); //$NON-NLS-1$
- validateButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- validate = validateButton.getSelection();
- }
- });
- }
-
- initializeValues();
- updateWidgetEnablements();
- hostCombo.setFocus();
-
- setControl(composite);
- Dialog.applyDialogFont(parent);
- }
- /**
- * 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;
- }
-
- protected Group createGroup(Composite parent, String text) {
- Group group = new Group(parent, SWT.NULL);
- group.setText(text);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- //data.widthHint = GROUP_WIDTH;
-
- group.setLayoutData(data);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- group.setLayout(layout);
- return group;
- }
-
- /**
- * @see CVSWizardPage#finish
- */
- public boolean finish(IProgressMonitor monitor) {
- // Set the result to be the current values
- Properties result = new Properties();
- result.setProperty("connection", connectionMethodCombo.getText()); //$NON-NLS-1$
- result.setProperty("user", userCombo.getText()); //$NON-NLS-1$
- result.setProperty("password", passwordText.getText()); //$NON-NLS-1$
- result.setProperty("host", hostCombo.getText()); //$NON-NLS-1$
- if (useCustomPort.getSelection()) {
- result.setProperty("port", portText.getText()); //$NON-NLS-1$
- }
- result.setProperty("root", repositoryPathCombo.getText()); //$NON-NLS-1$
- this.properties = result;
-
- saveWidgetValues();
-
- return true;
- }
- /**
- * Returns the properties for the repository connection
- *
- * @return the properties or null
- */
- public Properties getProperties() {
- return properties;
- }
- /**
- * Initializes states of the controls.
- */
- private void initializeValues() {
- // Set remembered values
- IDialogSettings settings = getDialogSettings();
- if (settings != null) {
- String[] hostNames = settings.getArray(STORE_HOSTNAME_ID);
- if (hostNames != null) {
- for (int i = 0; i < hostNames.length; i++) {
- hostCombo.add(hostNames[i]);
- }
- }
- String[] paths = settings.getArray(STORE_PATH_ID);
- if (paths != null) {
- for (int i = 0; i < paths.length; i++) {
- repositoryPathCombo.add(paths[i]);
- }
- }
- String[] userNames = settings.getArray(STORE_USERNAME_ID);
- if (userNames != null) {
- for (int i = 0; i < userNames.length; i++) {
- userCombo.add(userNames[i]);
- }
- }
- if (showValidate) {
- validate = !settings.getBoolean(STORE_DONT_VALIDATE_ID);
- validateButton.setSelection(validate);
- }
- }
-
- // Initialize other values and widget states
- IConnectionMethod[] methods = CVSRepositoryLocation.getPluggedInConnectionMethods();
- for (int i = 0; i < methods.length; i++) {
- connectionMethodCombo.add(methods[i].getName());
- }
-
- connectionMethodCombo.select(0);
- useDefaultPort.setSelection(true);
-
- if(properties != null) {
- String method = (String)properties.getProperty("connection"); //$NON-NLS-1$
- if (method == null) {
- connectionMethodCombo.select(0);
- } else {
- connectionMethodCombo.select(connectionMethodCombo.indexOf(method));
- }
-
- String user = (String)properties.getProperty("user"); //$NON-NLS-1$
- if (user != null) {
- userCombo.setText(user);
- }
-
- String password = (String)properties.getProperty("password"); //$NON-NLS-1$
- if (password != null) {
- passwordText.setText(password);
- }
-
- String host = (String)properties.getProperty("host"); //$NON-NLS-1$
- if (host != null) {
- hostCombo.setText(host);
- }
-
- String port = (String)properties.getProperty("port"); //$NON-NLS-1$
- if (port != null) {
- useCustomPort.setSelection(true);
- portText.setText(port);
- }
-
- String repositoryPath = (String)properties.getProperty("root"); //$NON-NLS-1$
- if (repositoryPath != null) {
- repositoryPathCombo.setText(repositoryPath);
- }
- }
- }
- /**
- * Saves the widget values
- */
- private void saveWidgetValues() {
- // Update history
- IDialogSettings settings = getDialogSettings();
- if (settings != null) {
- String[] userNames = settings.getArray(STORE_USERNAME_ID);
- if (userNames == null) userNames = new String[0];
- userNames = addToHistory(userNames, userCombo.getText());
- settings.put(STORE_USERNAME_ID, userNames);
-
- String[] hostNames = settings.getArray(STORE_HOSTNAME_ID);
- if (hostNames == null) hostNames = new String[0];
- hostNames = addToHistory(hostNames, hostCombo.getText());
- settings.put(STORE_HOSTNAME_ID, hostNames);
-
- String[] paths = settings.getArray(STORE_PATH_ID);
- if (paths == null) paths = new String[0];
- paths = addToHistory(paths, repositoryPathCombo.getText());
- settings.put(STORE_PATH_ID, paths);
-
- if (showValidate) {
- settings.put(STORE_DONT_VALIDATE_ID, !validate);
- }
- }
- }
-
- public void setShowValidate(boolean showValidate) {
- this.showValidate = showValidate;
- }
-
- /**
- * Sets the properties for the repository connection
- *
- * @param properties the properties or null
- */
- public void setProperties(Properties properties) {
- this.properties = properties;
- }
-
- /**
- * Updates widget enablements and sets error message if appropriate.
- */
- protected void updateWidgetEnablements() {
- if (useDefaultPort.getSelection()) {
- portText.setEnabled(false);
- } else {
- portText.setEnabled(true);
- }
-
- validateFields();
- }
- /**
- * Validates the contents of the editable fields and set page completion
- * and error messages appropriately.
- */
- private void validateFields() {
- String user = userCombo.getText();
- if (user.length() == 0) {
- setErrorMessage(null);
- setPageComplete(false);
- return;
- }
- if ((user.indexOf('@') != -1) || (user.indexOf(':') != -1)) {
- setErrorMessage(Policy.bind("ConfigurationWizardMainPage.invalidUserName")); //$NON-NLS-1$
- setPageComplete(false);
- return;
- }
-
- String host = hostCombo.getText();
- if (host.length() == 0) {
- setErrorMessage(null);
- setPageComplete(false);
- return;
- }
- if (host.indexOf(':') != -1) {
- setErrorMessage(Policy.bind("ConfigurationWizardMainPage.invalidHostName")); //$NON-NLS-1$
- setPageComplete(false);
- return;
- }
-
- if (portText.isEnabled()) {
- if (portText.getText().length() == 0) {
- setErrorMessage(null);
- setPageComplete(false);
- return;
- }
- try {
- Integer.parseInt(portText.getText());
- } catch (NumberFormatException e) {
- setErrorMessage(Policy.bind("ConfigurationWizardMainPage.invalidPort")); //$NON-NLS-1$
- setPageComplete(false);
- return;
- }
- }
-
- if (repositoryPathCombo.getText().length() == 0) {
- setErrorMessage(null);
- setPageComplete(false);
- return;
- } else {
- String pathString = repositoryPathCombo.getText();
- IPath path = new Path(pathString);
- String[] segments = path.segments();
- for (int i = 0; i < segments.length; i++) {
- String string = segments[i];
- if (string.charAt(0) == ' ' || string.charAt(string.length() -1) == ' ') {
- setErrorMessage(Policy.bind("ConfigurationWizardMainPage.invalidPathWithSpaces")); //$NON-NLS-1$
- setPageComplete(false);
- return;
- }
- }
- // look for // and inform the user that we support use of C:\cvs\root instead of /c//cvs/root
- if (pathString.indexOf("//") != -1) { //$NON-NLS-1$
- if (pathString.indexOf("//") == 2) { //$NON-NLS-1$
- // The user is probably trying to specify a CVSNT path
- setErrorMessage(Policy.bind("ConfigurationWizardMainPage.useNTFormat")); //$NON-NLS-1$
- } else {
- setErrorMessage(Policy.bind("ConfigurationWizardMainPage.invalidPathWithSlashes")); //$NON-NLS-1$
- }
- setPageComplete(false);
- return;
- }
- }
- setErrorMessage(null);
- setPageComplete(true);
- }
-
- public boolean getValidate() {
- return validate;
- }
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- hostCombo.setFocus();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileOperation.java
deleted file mode 100644
index 3ee427545..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileOperation.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.internal.ccvs.ui.wizards;
-
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Shell;
-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.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * An operation to run the CVS diff operation on a set of resources. The result
- * of the diff is written to a file. If there are no differences found, the
- * user is notified and the output file is not created.
- */
-public class GenerateDiffFileOperation implements IRunnableWithProgress {
-
- private File outputFile;
- private IResource resource;
- private Shell shell;
- private LocalOption[] options;
- private boolean toClipboard;
-
- GenerateDiffFileOperation(IResource resource, File file, boolean toClipboard, LocalOption[] options, Shell shell) {
- this.resource = resource;
- this.outputFile = file;
- this.shell = shell;
- this.options = options;
- this.toClipboard = toClipboard;
- }
-
- /**
- * @see IRunnableWithProgress#run(IProgressMonitor)
- */
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- monitor.beginTask("", 500); //$NON-NLS-1$
- monitor.setTaskName(
- Policy.bind("GenerateCVSDiff.working")); //$NON-NLS-1$
-
- OutputStream os;
- if(toClipboard) {
- os = new ByteArrayOutputStream();
- } else {
- os = new FileOutputStream(outputFile);
- }
- try {
- CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId());
- provider.diff(resource, options, new PrintStream(os), new SubProgressMonitor(monitor, 500));
- } finally {
- os.close();
- }
-
- boolean emptyDiff = false;
-
- if(toClipboard) {
- final ByteArrayOutputStream baos = (ByteArrayOutputStream)os;
- if(baos.size() == 0) {
- emptyDiff = true;
- } else {
- shell.getDisplay().syncExec(new Runnable() {
- public void run() {
- TextTransfer plainTextTransfer = TextTransfer.getInstance();
- Clipboard clipboard = new Clipboard(shell.getDisplay());
- clipboard.setContents(
- new String[]{baos.toString()},
- new Transfer[]{plainTextTransfer});
- clipboard.dispose();
- }
- });
- }
- } else {
- if(outputFile.length() == 0) {
- emptyDiff = true;
- outputFile.delete();
- }
- }
-
- //check for empty diff and report
- if (emptyDiff) {
- CVSUIPlugin.openDialog(shell, new CVSUIPlugin.IOpenableInShell() {
- public void open(Shell shell) {
- MessageDialog.openInformation(
- shell,
- Policy.bind("GenerateCVSDiff.noDiffsFoundTitle"), //$NON-NLS-1$
- Policy.bind("GenerateCVSDiff.noDiffsFoundMsg")); //$NON-NLS-1$
- }
- }, CVSUIPlugin.PERFORM_SYNC_EXEC);
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } catch(IOException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java
deleted file mode 100644
index e6978876c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java
+++ /dev/null
@@ -1,541 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-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.team.internal.ccvs.core.client.Diff;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.ide.misc.ContainerContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * A wizard for creating a patch file by running the CVS diff command.
- */
-public class GenerateDiffFileWizard extends Wizard {
-
- private PatchFileSelectionPage mainPage;
- private PatchFileCreationOptionsPage optionsPage;
-
- private IStructuredSelection selection;
- private IResource resource;
-
- /**
- * Page to select a patch file. Overriding validatePage was necessary to allow
- * entering a file name that already exists.
- */
- private class PatchFileSelectionPage extends WizardPage {
- private Text filenameCombo;
- private Button browseButton;
-
- private TreeViewer treeViewer;
- private IContainer selectedContainer;
- private Text workspaceFilename;
- private Button saveInFilesystem;
- private Button saveInWorkspace;
- private Button saveToClipboard;
-
- public final int CLIPBOARD = 1;
- public final int FILESYSTEM = 2;
- public final int WORKSPACE = 3;
-
- // sizing constants
- private static final int SIZING_SELECTION_PANE_HEIGHT = 125;
- private static final int SIZING_SELECTION_PANE_WIDTH = 200;
-
- PatchFileSelectionPage(String pageName, String title, ImageDescriptor image, IStructuredSelection selection) {
- super(pageName, title, image);
- setPageComplete(false);
- }
-
- /**
- * Allow the user to finish if a valid file has been entered.
- */
- protected boolean validatePage() {
- boolean valid = false;
-
- switch (getSaveType()) {
- case WORKSPACE:
- if (selectedContainer != null && getWorkspaceFile() != null) {
- valid = true;
- }
- break;
- case FILESYSTEM:
- File file = new File(getFilesystemFile());
- valid = isValidFile(file);
- break;
- case CLIPBOARD:
- valid = true;
- break;
- }
-
- // Avoid draw flicker by clearing error message
- // if all is valid.
- if (valid) {
- setMessage(null);
- setErrorMessage(null);
- } else {
- setErrorMessage(Policy.bind("Enter_a_valid_file_name_or_select_the_clipboard_option_1")); //$NON-NLS-1$
- }
- setPageComplete(valid);
- return valid;
- }
-
- private boolean isValidFile(File file) {
- if (!file.isAbsolute()) return false;
- if (file.isDirectory()) return false;
- File parent = file.getParentFile();
- if (parent==null) return false;
- if (!parent.exists()) return false;
- if (!parent.isDirectory()) return false;
- return true;
- }
- /**
- * Answers a full path to a file system file or <code>null</code> if the user
- * selected to save the patch in the workspace.
- */
- public String getFilesystemFile() {
- if(saveInFilesystem.getSelection()) {
- return filenameCombo.getText();
- }
- return null;
- }
-
- /**
- * Answers a workspace file or <code>null</code> if the user selected to save
- * the patch outside of the workspace.
- */
- public IFile getWorkspaceFile() {
- if(saveInWorkspace.getSelection() && selectedContainer !=null) {
- String filename = workspaceFilename.getText();
- if(filename==null || filename.length() == 0) {
- return null;
- }
- return selectedContainer.getFile(new Path(workspaceFilename.getText()));
- }
- return null;
- }
-
- /**
- * Allow the user to chose to save the patch to the workspace or outside
- * of the workspace.
- */
- public void createControl(Composite parent) {
-
- Composite composite= new Composite(parent, SWT.NULL);
- GridLayout layout= new GridLayout();
- composite.setLayout(layout);
- composite.setLayoutData(new GridData());
- setControl(composite);
- initializeDialogUnits(composite);
-
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.PATCH_SELECTION_PAGE);
-
- // Clipboard
- saveToClipboard= new Button(composite, SWT.RADIO);
- saveToClipboard.setText(Policy.bind("Save_To_Clipboard_2")); //$NON-NLS-1$
- saveToClipboard.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- validatePage();
- updateEnablements();
- }
- });
-
- // File System
- saveInFilesystem= new Button(composite, SWT.RADIO);
- saveInFilesystem.setText(Policy.bind("Save_In_File_System_3")); //$NON-NLS-1$
- saveInFilesystem.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- validatePage();
- updateEnablements();
- }
- });
-
- Composite nameGroup = new Composite(composite,SWT.NONE);
- layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginWidth = 0;
- nameGroup.setLayout(layout);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
- nameGroup.setLayoutData(data);
-
- filenameCombo= new Text(nameGroup, SWT.BORDER);
- GridData gd= new GridData(GridData.FILL_HORIZONTAL);
- filenameCombo.setLayoutData(gd);
- filenameCombo.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- validatePage();
- }
- });
-
- browseButton = new Button(nameGroup, SWT.NULL);
- browseButton.setText(Policy.bind("Browse..._4")); //$NON-NLS-1$
- data = new GridData(GridData.HORIZONTAL_ALIGN_END);
- data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- browseButton.setLayoutData(data);
- browseButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- FileDialog d = new FileDialog(getShell(), SWT.PRIMARY_MODAL | SWT.SAVE);
- d.setText(Policy.bind("Save_Patch_As_5")); //$NON-NLS-1$
- d.setFileName(Policy.bind("patch.txt_6")); //$NON-NLS-1$
- String file = d.open();
- if(file!=null) {
- IPath path = new Path(file);
- setFilesystemFilename(path.toOSString());
- }
- }
- });
-
- // Workspace
- saveInWorkspace= new Button(composite, SWT.RADIO);
- saveInWorkspace.setText(Policy.bind("Save_In_Workspace_7")); //$NON-NLS-1$
- saveInWorkspace.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- validatePage();
- updateEnablements();
- }
- });
-
- createTreeViewer(composite);
- saveToClipboard.setSelection(true);
- validatePage();
- updateEnablements();
- }
-
- /**
- * Sets the file name in the file system text.
- */
- protected void setFilesystemFilename(String filename) {
- filenameCombo.setText(filename);
- }
-
- /**
- * Create the tree viewer that shows the container available in the workspace. The user
- * can then enter a filename in the text box below the viewer.
- */
- protected void createTreeViewer(Composite parent) {
- // Create tree viewer inside drill down.
- new Label(parent, SWT.LEFT).setText(Policy.bind("Select_a_folder_then_type_in_the_file_name__8")); //$NON-NLS-1$
-
- treeViewer = new TreeViewer(parent, SWT.BORDER);
- ContainerContentProvider cp = new ContainerContentProvider();
- cp.showClosedProjects(false);
- GridData data = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL |
- GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL);
-
- data.widthHint = SIZING_SELECTION_PANE_WIDTH;
- data.heightHint = SIZING_SELECTION_PANE_HEIGHT;
-
- treeViewer.getTree().setLayoutData(data);
- treeViewer.setContentProvider(cp);
- treeViewer.setLabelProvider(new WorkbenchLabelProvider());
- treeViewer.addSelectionChangedListener(
- new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection)event.getSelection();
- containerSelectionChanged((IContainer) selection.getFirstElement()); // allow null
- validatePage();
- }
- });
-
- treeViewer.addDoubleClickListener(
- new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- ISelection selection = event.getSelection();
- if (selection instanceof IStructuredSelection) {
- Object item = ((IStructuredSelection)selection).getFirstElement();
- if (treeViewer.getExpandedState(item))
- treeViewer.collapseToLevel(item, 1);
- else
- treeViewer.expandToLevel(item, 1);
- }
- }
- });
-
- // This has to be done after the viewer has been laid out
- treeViewer.setInput(ResourcesPlugin.getWorkspace());
-
- // name group
- Composite nameGroup = new Composite(parent,SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginWidth = 0;
- nameGroup.setLayout(layout);
- data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
- nameGroup.setLayoutData(data);
-
- Label label = new Label(nameGroup,SWT.NONE);
- label.setText(Policy.bind("Fi&le_name__9")); //$NON-NLS-1$
-
- // resource name entry field
- workspaceFilename = new Text(nameGroup,SWT.BORDER);
- data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
- workspaceFilename.setLayoutData(data);
- workspaceFilename.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- validatePage();
- }
- });
- }
-
- /**
- * Enable and disable controls based on the selected radio button.
- */
- protected void updateEnablements() {
- int type = getSaveType();
-
- browseButton.setEnabled(type==FILESYSTEM);
- filenameCombo.setEnabled(type==FILESYSTEM);
- treeViewer.getTree().setEnabled(type==WORKSPACE);
- workspaceFilename.setEnabled(type==WORKSPACE);
- }
-
- /**
- * Answers the type of the patch file destination.
- */
- public int getSaveType() {
- if(saveInFilesystem.getSelection()) {
- return FILESYSTEM;
- } else if(saveToClipboard.getSelection()) {
- return CLIPBOARD;
- } else {
- return WORKSPACE;
- }
- }
-
- /**
- * Remember the container selected in the tree viewer.
- */
- public void containerSelectionChanged(IContainer container) {
- selectedContainer = container;
- }
- }
- // end of PatchFileSelectionPage
-
- /**
- * Page to select the options for creating the patch.
- */
- public class PatchFileCreationOptionsPage extends WizardPage {
-
- private Button recurseOption;
- private Button contextDiffOption;
- private Button unifiedDiffOption;
- private Button regularDiffOption;
- private Button includeNewFilesOptions;
-
- /**
- * Constructor for PatchFileCreationOptionsPage.
- */
- protected PatchFileCreationOptionsPage(String pageName) {
- super(pageName);
- }
-
- /**
- * Constructor for PatchFileCreationOptionsPage.
- */
- protected PatchFileCreationOptionsPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- }
-
- /*
- * @see IDialogPage#createControl(Composite)
- */
- public void createControl(Composite parent) {
- Composite composite= new Composite(parent, SWT.NULL);
- GridLayout layout= new GridLayout();
- composite.setLayout(layout);
- composite.setLayoutData(new GridData());
- setControl(composite);
-
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.PATCH_OPTIONS_PAGE);
-
- recurseOption = new Button(composite, SWT.CHECK);
- recurseOption.setText(Policy.bind("Do_not_recurse_into_sub-folders_10")); //$NON-NLS-1$
- recurseOption.setSelection(true);
-
- includeNewFilesOptions = new Button(composite, SWT.CHECK);
- includeNewFilesOptions.setText(Policy.bind("Do_not_include_new_files_in_patch_11")); //$NON-NLS-1$
- includeNewFilesOptions.setSelection(true);
-
- Group diffTypeGroup = new Group(composite, SWT.NONE);
- layout = new GridLayout();
- layout.marginHeight = 0;
- diffTypeGroup.setLayout(layout);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
- diffTypeGroup.setLayoutData(data);
- diffTypeGroup.setText(Policy.bind("Diff_output_format_12")); //$NON-NLS-1$
-
- unifiedDiffOption = new Button(diffTypeGroup, SWT.RADIO);
- unifiedDiffOption.setText(Policy.bind("Unified_(format_required_by_Compare_With_Patch_feature)_13")); //$NON-NLS-1$
- unifiedDiffOption.setSelection(true);
- contextDiffOption = new Button(diffTypeGroup, SWT.RADIO);
- contextDiffOption.setText(Policy.bind("Context_14")); //$NON-NLS-1$
- regularDiffOption = new Button(diffTypeGroup, SWT.RADIO);
- regularDiffOption.setText(Policy.bind("Standard_15")); //$NON-NLS-1$
- }
-
- /**
- * Answers if the difference operation should be run recursively.
- */
- public boolean isRecursive() {
- return !recurseOption.getSelection();
- }
-
- /**
- * Return the list of Diff command options configured on this page.
- */
- public LocalOption[] getOptions() {
- List options = new ArrayList(5);
- if(includeNewFilesOptions.getSelection()) {
- options.add(Diff.INCLUDE_NEWFILES);
- }
- if(!recurseOption.getSelection()) {
- options.add(Diff.DO_NOT_RECURSE);
- }
- if(unifiedDiffOption.getSelection()) {
- options.add(Diff.UNIFIED_FORMAT);
- } else if(contextDiffOption.getSelection()) {
- options.add(Diff.CONTEXT_FORMAT);
- }
- return (LocalOption[]) options.toArray(new LocalOption[options.size()]);
- }
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- recurseOption.setFocus();
- }
- }
- }
- // end of PatchFileCreationOptionsPage
-
- public GenerateDiffFileWizard(IStructuredSelection selection, IResource resource) {
- super();
- this.selection = selection;
- this.resource = resource;
- setWindowTitle(Policy.bind("GenerateCVSDiff.title")); //$NON-NLS-1$
- initializeDefaultPageImageDescriptor();
- }
-
- public void addPages() {
- String pageTitle = Policy.bind("GenerateCVSDiff.pageTitle"); //$NON-NLS-1$
- String pageDescription = Policy.bind("GenerateCVSDiff.pageDescription"); //$NON-NLS-1$
- mainPage = new PatchFileSelectionPage(pageTitle, pageTitle, CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_DIFF), selection);
- mainPage.setDescription(pageDescription);
- addPage(mainPage);
-
- pageTitle = Policy.bind("Advanced_options_19"); //$NON-NLS-1$
- pageDescription = Policy.bind("Configure_the_options_used_for_the_CVS_diff_command_20"); //$NON-NLS-1$
- optionsPage = new PatchFileCreationOptionsPage(pageTitle, pageTitle, CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_DIFF));
- optionsPage.setDescription(pageDescription);
- addPage(optionsPage);
- }
-
- /**
- * Initializes this creation wizard using the passed workbench and
- * object selection.
- *
- * @param workbench the current workbench
- * @param selection the current object selection
- */
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- }
- /**
- * Declares the wizard banner iamge descriptor
- */
- protected void initializeDefaultPageImageDescriptor() {
- String iconPath;
- iconPath = "icons/full/"; //$NON-NLS-1$
- try {
- URL installURL = CVSUIPlugin.getPlugin().getDescriptor().getInstallURL();
- URL url = new URL(installURL, iconPath + "wizards/newconnect_wiz.gif"); //$NON-NLS-1$
- ImageDescriptor desc = ImageDescriptor.createFromURL(url);
- setDefaultPageImageDescriptor(desc);
- } catch (MalformedURLException e) {
- // Should not happen. Ignore.
- }
- }
-
- /* (Non-javadoc)
- * Method declared on IWizard.
- */
- public boolean needsProgressMonitor() {
- return true;
- }
- /**
- * Completes processing of the wizard. If this method returns <code>
- * true</code>, the wizard will close; otherwise, it will stay active.
- */
- public boolean performFinish() {
- String fs = mainPage.getFilesystemFile();
- IFile ws = mainPage.getWorkspaceFile();
- int type = mainPage.getSaveType();
-
- try {
- if(type != mainPage.CLIPBOARD) {
- File file = new File(fs!=null ? fs : ws.getLocation().toOSString());
- if (file.exists()) {
- // prompt then delete
- String title = Policy.bind("GenerateCVSDiff.overwriteTitle"); //$NON-NLS-1$
- String msg = Policy.bind("GenerateCVSDiff.overwriteMsg"); //$NON-NLS-1$
- final MessageDialog dialog = new MessageDialog(getShell(), title, null, msg, MessageDialog.QUESTION, new String[] { IDialogConstants.YES_LABEL, IDialogConstants.CANCEL_LABEL }, 0);
-
- dialog.open();
-
- if (dialog.getReturnCode() != 0) {
- // cancel
- return false;
- }
- }
- getContainer().run(true, true, new GenerateDiffFileOperation(resource, file, false, optionsPage.getOptions(), getShell()));
- if(type==mainPage.WORKSPACE) {
- ws.getParent().refreshLocal(IResource.DEPTH_ONE, null);
- }
- } else {
- getContainer().run(true, true, new GenerateDiffFileOperation(resource, null, true, optionsPage.getOptions(), getShell()));
- }
- return true;
- } catch (InterruptedException e1) {
- return true;
- } catch(CoreException e) {
- CVSUIPlugin.openError(getShell(), Policy.bind("GenerateCVSDiff.error"), null, e); //$NON-NLS-1$
- return false;
- } catch (InvocationTargetException e2) {
- CVSUIPlugin.openError(getShell(), Policy.bind("GenerateCVSDiff.error"), null, e2); //$NON-NLS-1$
- return false;
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizard.java
deleted file mode 100644
index 1c1a96c98..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizard.java
+++ /dev/null
@@ -1,418 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-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.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.custom.BusyIndicator;
-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.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * A wizard for changing the keyword substitution mode of files.
- *
- * 1. Ask the user select to select the desired keyword substitution mode.
- * 2. Compute the set of possibly affected resources
- * 3. If the affected resources include existing committed files, warn the user
- * and provide an option to include them in the operation anyways.
- * 4. If the affected resources include dirty files, warn the user and provide
- * an option to include them in the operation anyways.
- * 5. Perform the operation on Finish.
- */
-public class KSubstWizard extends Wizard {
- private KSubstOption defaultKSubst;
-
- private final IResource[] resources;
- private final int depth;
- private List changeList = null;
- private KSubstOption changeOption = null;
-
- private KSubstWizardSelectionPage mainPage;
- private KSubstWizardSummaryPage summaryPage;
- private KSubstWizardSharedFilesPage sharedFilesPage;
- private KSubstWizardDirtyFilesPage dirtyFilesPage;
-
- private Dialog parentDialog;
-
- private KSubstWizardCommitCommentPage commitCommentPage;
-
- public class KSubstChangeElement {
- public static final int ADDED_FILE = 1;
- public static final int CHANGED_FILE = 2;
- public static final int UNCHANGED_FILE = 4;
-
- private IFile file;
- private int classification;
- private boolean excluded;
- private KSubstOption fromKSubst;
- private KSubstOption toKSubst;
-
- private KSubstChangeElement(IFile file, int classification, boolean excluded, KSubstOption fromKSubst, KSubstOption toKSubst) {
- this.file = file;
- this.classification = classification;
- this.excluded = excluded;
- this.fromKSubst = fromKSubst;
- this.toKSubst = toKSubst;
- }
- public boolean matchesFilter(int filter) {
- return (classification & filter) != 0;
- }
- public boolean isExcluded() {
- return excluded;
- }
- public void setExcluded(boolean excluded) {
- this.excluded = excluded;
- }
- public boolean isNewKSubstMode() {
- return ! fromKSubst.equals(toKSubst);
- }
- public void setKSubst(KSubstOption toKSubst) {
- this.toKSubst = toKSubst;
- }
- public KSubstOption getKSubst() {
- return toKSubst;
- }
- public IFile getFile() {
- return file;
- }
- }
-
- /**
- * Creates a wizard to set the keyword substitution mode for the specified resources.
- *
- * @param resources the resources to alter
- * @param depth the recursion depth
- * @param defaultOption the keyword substitution option to select by default
- */
- public KSubstWizard(IResource[] resources, int depth, KSubstOption defaultOption) {
- super();
- this.defaultKSubst = defaultOption;
- this.resources = resources;
- this.depth = depth;
- setWindowTitle(Policy.bind("KSubstWizard.title")); //$NON-NLS-1$
- }
-
- /**
- * Returns the keyword substitution option that was selected at the time
- * the Finish button was pressed.
- */
- public KSubstOption getKSubstOption() {
- return defaultKSubst;
- }
-
- public void addPages() {
- ImageDescriptor substImage = CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_KEYWORD);
-
- // add main page
- String pageTitle = Policy.bind("KSubstWizardSelectionPage.pageTitle"); //$NON-NLS-1$
- String pageDescription = Policy.bind("KSubstWizardSelectionPage.pageDescription"); //$NON-NLS-1$
- mainPage = new KSubstWizardSelectionPage(pageTitle, pageTitle, substImage, defaultKSubst);
- mainPage.setDescription(pageDescription);
- mainPage.setTitle(pageTitle);
- addPage(mainPage);
-
- // add summary page
- pageTitle = Policy.bind("KSubstWizardSummaryPage.pageTitle"); //$NON-NLS-1$
- pageDescription = Policy.bind("KSubstWizardSummaryPage.pageDescription"); //$NON-NLS-1$
- summaryPage = new KSubstWizardSummaryPage(pageTitle, pageTitle, substImage, false);
- summaryPage.setDescription(pageDescription);
- addPage(summaryPage);
-
- // add shared files warning page
- pageTitle = Policy.bind("KSubstWizardSharedFilesPage.pageTitle"); //$NON-NLS-1$
- pageDescription = Policy.bind("KSubstWizardSharedFilesPage.pageDescription"); //$NON-NLS-1$
- sharedFilesPage = new KSubstWizardSharedFilesPage(pageTitle, pageTitle, substImage, false);
- sharedFilesPage.setDescription(pageDescription);
- addPage(sharedFilesPage);
-
- // add changed files warning page
- pageTitle = Policy.bind("KSubstWizardDirtyFilesPage.pageTitle"); //$NON-NLS-1$
- pageDescription = Policy.bind("KSubstWizardDirtyFilesPage.pageDescription"); //$NON-NLS-1$
- dirtyFilesPage = new KSubstWizardDirtyFilesPage(pageTitle, pageTitle, substImage, false);
- dirtyFilesPage.setDescription(pageDescription);
- addPage(dirtyFilesPage);
-
- // add commit comment page
- pageTitle = Policy.bind("KSubstWizardCommitCommentPage.pageTitle"); //$NON-NLS-1$
- pageDescription = Policy.bind("KSubstWizardCommitCommentPage.pageDescription"); //$NON-NLS-1$
- commitCommentPage = new KSubstWizardCommitCommentPage(parentDialog, pageTitle, pageTitle, substImage, pageDescription);
- addPage(commitCommentPage);
- }
-
- public IWizardPage getNextPage(IWizardPage page) {
- if (page == mainPage) {
- if (prepareSharedFilesPage()) return sharedFilesPage;
- } else if (page == sharedFilesPage) {
- if (sharedFilesPage.includeSharedFiles() && prepareDirtyFilesPage()) return dirtyFilesPage;
- } else if (page == summaryPage) {
- return null;
- }
- prepareSummaryPage();
- if (page != commitCommentPage) return commitCommentPage;
- return summaryPage;
- }
-
- public IWizardPage getPreviousPage(IWizardPage page) {
- if (page == summaryPage) {
- return commitCommentPage;
- } else if (page == commitCommentPage) {
- if (sharedFilesPage.includeSharedFiles() && prepareDirtyFilesPage()) return dirtyFilesPage;
- if (prepareSharedFilesPage()) return sharedFilesPage;
- return mainPage;
- } else if (page == dirtyFilesPage) {
- if (prepareSharedFilesPage()) return sharedFilesPage;
- return mainPage;
- } else if (page == sharedFilesPage) {
- return mainPage;
- }
- return null;
- }
-
- /* (Non-javadoc)
- * Method declared on IWizard.
- */
- public boolean needsProgressMonitor() {
- return true;
- }
-
- /* (Non-javadoc)
- * Method declared on IWizard.
- */
- public boolean needsPreviousAndNextButtons() {
- return true;
- }
-
- /* (Non-javadoc)
- * Method declared on IWizard.
- */
- public boolean performFinish() {
- try {
- defaultKSubst = mainPage.getKSubstOption();
- final List messages = new ArrayList();
- getContainer().run(false /*fork*/, true /*cancelable*/, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- monitor.beginTask("", 10000); //$NON-NLS-1$
- monitor.setTaskName(Policy.bind("KSubstWizard.working")); //$NON-NLS-1$
- computeChangeList(mainPage.getKSubstOption());
- Map table = getProviderMapping();
-
- int workPerProvider = 10000 / (table.size() + 1);
- monitor.worked(workPerProvider);
- for (Iterator it = table.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Map.Entry) it.next();
- CVSTeamProvider provider = (CVSTeamProvider) entry.getKey();
- Map providerFiles = (Map) entry.getValue();
-
- String comment = commitCommentPage.getComment();
- IStatus status = provider.setKeywordSubstitution(providerFiles, comment,
- Policy.subMonitorFor(monitor, workPerProvider));
- if (status.getCode() != CVSStatus.OK) {
- messages.add(status);
- }
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- });
- // Check for any status messages and display them
- if ( ! messages.isEmpty()) {
- boolean error = false;
- MultiStatus combinedStatus = new MultiStatus(CVSUIPlugin.ID, 0,
- Policy.bind("KSubstWizard.problemsMessage"), null); //$NON-NLS-1$
- for (int i = 0; i < messages.size(); i++) {
- IStatus status = (IStatus)messages.get(i);
- if (status.getSeverity() == IStatus.ERROR || status.getCode() == CVSStatus.SERVER_ERROR) {
- error = true;
- }
- combinedStatus.merge(status);
- }
- String message = null;
- IStatus statusToDisplay;
- if (combinedStatus.getChildren().length == 1) {
- message = combinedStatus.getMessage();
- statusToDisplay = combinedStatus.getChildren()[0];
- } else {
- statusToDisplay = combinedStatus;
- }
- String title;
- if (error) {
- title = Policy.bind("KSubstWizard.errorTitle"); //$NON-NLS-1$
- } else {
- title = Policy.bind("KSubstWizard.warningTitle"); //$NON-NLS-1$
- }
- CVSUIPlugin.openError(getShell(), title, message, new CVSException(statusToDisplay));
- }
- return true;
- } catch (InterruptedException e1) {
- return true;
- } catch (InvocationTargetException e2) {
- CVSUIPlugin.openError(getShell(), Policy.bind("KSubstWizard.problemsMessage"), null, e2); //$NON-NLS-1$
- return false;
- }
- }
-
- private boolean prepareDirtyFilesPage() {
- BusyIndicator.showWhile(getContainer().getShell().getDisplay(), new Runnable() {
- public void run() {
- computeChangeList(mainPage.getKSubstOption());
- dirtyFilesPage.setChangeList(changeList);
- }
- });
- return ! dirtyFilesPage.isListEmpty();
- }
-
- private boolean prepareSharedFilesPage() {
- BusyIndicator.showWhile(getContainer().getShell().getDisplay(), new Runnable() {
- public void run() {
- computeChangeList(mainPage.getKSubstOption());
- sharedFilesPage.setChangeList(changeList);
- }
- });
- return ! sharedFilesPage.isListEmpty();
- }
-
- private void prepareSummaryPage() {
- BusyIndicator.showWhile(getContainer().getShell().getDisplay(), new Runnable() {
- public void run() {
- computeChangeList(mainPage.getKSubstOption());
- summaryPage.setChangeList(changeList, getFilters());
- }
- });
- }
-
- /**
- * @param ksubst the desired keyword substitution mode, if null chooses for each file:
- * <code>KSubstOption.fromPattern(fileName).isBinary() ? KSUBST_BINARY : KSUBST_TEXT</code>
- */
- private void computeChangeList(final KSubstOption ksubst) {
- if (changeList != null) {
- if (changeOption == ksubst) return;
- changeList.clear();
- } else {
- changeList = new ArrayList();
- }
- changeOption = ksubst;
- // recurse over all specified resources, considering each exactly once
- final Set seen = new HashSet();
- for (int i = 0; i < resources.length; i++) {
- final IResource currentResource = resources[i];
- try {
- currentResource.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- try {
- if (resource.getType() == IResource.FILE && resource.exists() && ! seen.contains(resource)) {
- seen.add(resource);
- IFile file = (IFile) resource;
- ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(file);
- if (cvsFile.isManaged()) {
- ResourceSyncInfo info = cvsFile.getSyncInfo();
- // classify the change
- final int classification;
- if (info.isAdded()) {
- classification = KSubstChangeElement.ADDED_FILE;
- } else if (info.isDeleted()) {
- return true;
- } else if (cvsFile.isModified(null)) {
- classification = KSubstChangeElement.CHANGED_FILE;
- } else {
- classification = KSubstChangeElement.UNCHANGED_FILE;
- }
- // determine the to/from substitution modes
- KSubstOption fromKSubst = info.getKeywordMode();
- KSubstOption toKSubst = ksubst;
- if (ksubst == null) {
- toKSubst = KSubstOption.fromFile(file);
- }
- changeList.add(new KSubstChangeElement(file, classification, false, fromKSubst, toKSubst));
- }
- }
- } catch (TeamException e) {
- throw new CoreException(e.getStatus());
- }
- // always return true and let the depth determine if children are visited
- return true;
- }
- }, depth, false);
- } catch (CoreException e) {
- CVSUIPlugin.openError(getShell(), Policy.bind("KSubstWizard.problemsMessage"), null, e); //$NON-NLS-1$
- }
- }
- }
-
- private int getFilters() {
- return KSubstChangeElement.ADDED_FILE |
- (sharedFilesPage.includeSharedFiles() ? KSubstChangeElement.UNCHANGED_FILE |
- (dirtyFilesPage.includeDirtyFiles() ? KSubstChangeElement.CHANGED_FILE : 0) : 0);
- }
-
- private Map getProviderMapping() {
- Map table = new HashMap();
- int filter = getFilters();
- for (Iterator it = changeList.iterator(); it.hasNext();) {
- KSubstChangeElement change = (KSubstChangeElement) it.next();
- if (! change.isExcluded() && change.isNewKSubstMode() && change.matchesFilter(filter)) {
- // classify file according to its provider
- IFile file = change.getFile();
- RepositoryProvider provider = RepositoryProvider.getProvider(file.getProject(), CVSProviderPlugin.getTypeId());
- Map providerMap = (Map) table.get(provider);
- if (providerMap == null) {
- providerMap = new HashMap();
- table.put(provider, providerMap);
- }
- providerMap.put(file, change.toKSubst);
- }
- }
- return table;
- }
-
- /**
- * Method setParentDialog.
- * @param dialog
- */
- public void setParentDialog(Dialog dialog) {
- this.parentDialog = dialog;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardCommitCommentPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardCommitCommentPage.java
deleted file mode 100644
index d5727e2dc..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardCommitCommentPage.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.internal.ccvs.ui.wizards;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.internal.ccvs.ui.CommitCommentArea;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class KSubstWizardCommitCommentPage extends CVSWizardPage {
-
- private CommitCommentArea commitCommentArea;
-
- /**
- * Constructor for KSubstWizardCommitCommentPage.
- * @param pageName
- * @param title
- * @param titleImage
- * @param description
- */
- public KSubstWizardCommitCommentPage(
- Dialog parentDialog,
- String pageName,
- String title,
- ImageDescriptor titleImage,
- String description) {
-
- super(pageName, title, titleImage, description);
- commitCommentArea = new CommitCommentArea(parentDialog, null);
- }
-
- /**
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- top.setLayout(new GridLayout());
- setControl(top);
- // set F1 help
- WorkbenchHelp.setHelp(top, IHelpContextIds.KEYWORD_SUBSTITUTION_COMMIT_COMMENT_PAGE);
- commitCommentArea.createArea(top);
- Dialog.applyDialogFont(parent);
- }
-
- /**
- * Method getComment.
- * @return String
- */
- public String getComment() {
- return commitCommentArea.getComment();
- }
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardDirtyFilesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardDirtyFilesPage.java
deleted file mode 100644
index 7df0ba1e6..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardDirtyFilesPage.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.internal.ccvs.ui.wizards;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.wizards.KSubstWizard.KSubstChangeElement;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Page to warn user about uncommitted outgoing changes.
- */
-public class KSubstWizardDirtyFilesPage extends CVSWizardPage {
- private boolean includeDirtyFiles;
- private Button includeDirtyFilesButton;
- private ListViewer listViewer;
-
- public KSubstWizardDirtyFilesPage(String pageName, String title, ImageDescriptor image, boolean includeDirtyFiles) {
- super(pageName, title, image);
- this.includeDirtyFiles = includeDirtyFiles;
- }
-
- public void createControl(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- top.setLayout(new GridLayout());
- setControl(top);
-
- // set F1 help
- WorkbenchHelp.setHelp(top, IHelpContextIds.KEYWORD_SUBSTITUTION_CHANGED_PAGE);
-
- createWrappingLabel(top, Policy.bind("KSubstWizardDirtyFilesPage.contents"), 0); //$NON-NLS-1$
-
- includeDirtyFilesButton = new Button(top, SWT.CHECK);
- includeDirtyFilesButton.setText(Policy.bind("KSubstWizardDirtyFilesPage.includeDirtyFiles")); //$NON-NLS-1$
- includeDirtyFilesButton.setSelection(includeDirtyFiles);
- includeDirtyFilesButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- includeDirtyFiles = includeDirtyFilesButton.getSelection();
- }
- });
-
- createSeparator(top, SPACER_HEIGHT);
- listViewer = createFileListViewer(top,
- Policy.bind("KSubstWizardDirtyFilesPage.dirtyFilesViewer.title"), LIST_HEIGHT_HINT); //$NON-NLS-1$
- Dialog.applyDialogFont(parent);
- }
-
- public boolean includeDirtyFiles() {
- return includeDirtyFiles;
- }
-
- public void setChangeList(List changes) {
- List filteredFiles = new ArrayList();
- for (Iterator it = changes.iterator(); it.hasNext();) {
- KSubstChangeElement change = (KSubstChangeElement) it.next();
- if (change.matchesFilter(KSubstChangeElement.CHANGED_FILE)) {
- filteredFiles.add(change.getFile());
- }
- }
- listViewer.setInput(filteredFiles.toArray());
- }
-
- public boolean isListEmpty() {
- // returns true iff the list is empty after filtering
- return listViewer.getList().getItemCount() == 0;
- }
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- includeDirtyFilesButton.setFocus();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSelectionPage.java
deleted file mode 100644
index 4fec08d51..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSelectionPage.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.team.internal.ccvs.ui.wizards;
-
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-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.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Page to select keyword substitution mode.
- */
-public class KSubstWizardSelectionPage extends CVSWizardPage {
- private KSubstOption ksubst;
- private List ksubstOptions;
- private Button automaticRadioButton;
- private Button binaryRadioButton;
- private Button textRadioButton;
- private Button ksubstRadioButton;
- private Combo ksubstOptionCombo;
-
- public KSubstWizardSelectionPage(String pageName, String title, ImageDescriptor image, KSubstOption defaultKSubst) {
- super(pageName, title, image);
- this.ksubst = defaultKSubst;
-
- // sort the options by display text
- KSubstOption[] options = KSubstOption.getAllKSubstOptions();
- this.ksubstOptions = new ArrayList();
- for (int i = 0; i < options.length; i++) {
- KSubstOption option = options[i];
- if (! (Command.KSUBST_BINARY.equals(option) ||
- Command.KSUBST_TEXT.equals(option))) {
- ksubstOptions.add(option);
- }
- }
- Collections.sort(ksubstOptions, new Comparator() {
- public int compare(Object a, Object b) {
- String aKey = ((KSubstOption) a).getLongDisplayText();
- String bKey = ((KSubstOption) b).getLongDisplayText();
- return aKey.compareTo(bKey);
- }
- });
- }
-
- public void createControl(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- top.setLayout(new GridLayout());
- setControl(top);
-
- // set F1 help
- WorkbenchHelp.setHelp(top, IHelpContextIds.KEYWORD_SUBSTITUTION_SELECTION_PAGE);
-
- Listener selectionListener = new Listener() {
- public void handleEvent(Event event) {
- updateEnablements();
- }
- };
-
- // Automatic
- automaticRadioButton = createRadioButton(top, Policy.bind("KSubstWizardSelectionPage.automaticButton"), 1); //$NON-NLS-1$
- automaticRadioButton.addListener(SWT.Selection, selectionListener);
- automaticRadioButton.setSelection(ksubst == null);
- createWrappingLabel(top, Policy.bind("KSubstWizardSelectionPage.automaticLabel", //$NON-NLS-1$
- Command.KSUBST_BINARY.getLongDisplayText(),
- CVSProviderPlugin.getPlugin().getDefaultTextKSubstOption().getLongDisplayText()),
- LABEL_INDENT_WIDTH);
-
- // Binary
- binaryRadioButton = createRadioButton(top, Policy.bind("KSubstWizardSelectionPage.binaryButton"), 1); //$NON-NLS-1$
- binaryRadioButton.addListener(SWT.Selection, selectionListener);
- binaryRadioButton.setSelection(Command.KSUBST_BINARY.equals(ksubst));
- createIndentedLabel(top, Policy.bind("KSubstWizardSelectionPage.binaryLabel"), LABEL_INDENT_WIDTH); //$NON-NLS-1$
-
- // Text without keyword substitution
- textRadioButton = createRadioButton(top, Policy.bind("KSubstWizardSelectionPage.textButton"), 1); //$NON-NLS-1$
- textRadioButton.addListener(SWT.Selection, selectionListener);
- textRadioButton.setSelection(Command.KSUBST_TEXT.equals(ksubst));
- createIndentedLabel(top, Policy.bind("KSubstWizardSelectionPage.textLabel"), LABEL_INDENT_WIDTH); //$NON-NLS-1$
-
- // Text with keyword substitution
- ksubstRadioButton = createRadioButton(top, Policy.bind("KSubstWizardSelectionPage.textWithSubstitutionsButton"), 1); //$NON-NLS-1$
- ksubstRadioButton.addListener(SWT.Selection, selectionListener);
- ksubstRadioButton.setSelection(false);
- createIndentedLabel(top, Policy.bind("KSubstWizardSelectionPage.textWithSubstitutionsLabel"), LABEL_INDENT_WIDTH); //$NON-NLS-1$
-
- ksubstOptionCombo = new Combo(top, SWT.READ_ONLY);
- ksubstOptionCombo.addListener(SWT.Selection, selectionListener);
- GridData data = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_BEGINNING);
- data.horizontalIndent = LABEL_INDENT_WIDTH;
- ksubstOptionCombo.setLayoutData(data);
-
- // populate the combo box and select the default option
- for (int i = 0; i < ksubstOptions.size(); ++i) {
- KSubstOption option = (KSubstOption) ksubstOptions.get(i);
- ksubstOptionCombo.add(option.getLongDisplayText());
- if (option.equals(ksubst)) {
- ksubstOptionCombo.select(i);
- ksubstRadioButton.setSelection(true);
- } else if (option.equals(Command.KSUBST_TEXT_EXPAND)) {
- // if no expansion mode selected, show KSUBST_TEXT_EXPAND
- // since it is the server default
- if (! ksubstRadioButton.getSelection()) ksubstOptionCombo.select(i);
- }
- }
- updateEnablements();
- Dialog.applyDialogFont(parent);
- }
-
- /**
- * Enable and disable controls based on the selected radio button.
- */
- protected void updateEnablements() {
- if (ksubstRadioButton.getSelection()) {
- ksubstOptionCombo.setEnabled(true);
- ksubst = (KSubstOption) ksubstOptions.get(ksubstOptionCombo.getSelectionIndex());
- } else {
- ksubstOptionCombo.setEnabled(false);
- if (automaticRadioButton.getSelection()) {
- ksubst = null;
- } else if (binaryRadioButton.getSelection()) {
- ksubst = Command.KSUBST_BINARY;
- } else if (textRadioButton.getSelection()) {
- ksubst = Command.KSUBST_TEXT;
- }
- }
- }
-
- public KSubstOption getKSubstOption() {
- return ksubst;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSharedFilesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSharedFilesPage.java
deleted file mode 100644
index de8f0e67a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSharedFilesPage.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.internal.ccvs.ui.wizards;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.wizards.KSubstWizard.KSubstChangeElement;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Page to warn user about the side-effects of changing keyword
- * substitution on already committed files.
- */
-public class KSubstWizardSharedFilesPage extends CVSWizardPage {
- private boolean includeSharedFiles;
- private Button includeSharedFilesButton;
- private ListViewer listViewer;
-
- public KSubstWizardSharedFilesPage(String pageName, String title, ImageDescriptor image, boolean includeSharedFiles) {
- super(pageName, title, image);
- this.includeSharedFiles = includeSharedFiles;
- }
-
- public void createControl(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- top.setLayout(new GridLayout());
- setControl(top);
- createWrappingLabel(top, Policy.bind("KSubstWizardSharedFilesPage.contents"), 0); //$NON-NLS-1$
-
- // set F1 help
- WorkbenchHelp.setHelp(top, IHelpContextIds.KEYWORD_SUBSTITUTION_SHARED_PAGE);
-
- includeSharedFilesButton = new Button(top, SWT.CHECK);
- includeSharedFilesButton.setText(Policy.bind("KSubstWizardSharedFilesPage.includeSharedFiles")); //$NON-NLS-1$
- includeSharedFilesButton.setSelection(includeSharedFiles);
- includeSharedFilesButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- includeSharedFiles = includeSharedFilesButton.getSelection();
- }
- });
-
- createSeparator(top, SPACER_HEIGHT);
- listViewer = createFileListViewer(top,
- Policy.bind("KSubstWizardSharedFilesPage.sharedFilesViewer.title"), LIST_HEIGHT_HINT); //$NON-NLS-1$
- Dialog.applyDialogFont(parent);
- }
-
- public boolean includeSharedFiles() {
- return includeSharedFiles;
- }
-
- public void setChangeList(List changes) {
- List filteredFiles = new ArrayList();
- for (Iterator it = changes.iterator(); it.hasNext();) {
- KSubstChangeElement change = (KSubstChangeElement) it.next();
- if (change.matchesFilter(KSubstChangeElement.CHANGED_FILE | KSubstChangeElement.UNCHANGED_FILE)) {
- filteredFiles.add(change.getFile());
- }
- }
- listViewer.setInput(filteredFiles.toArray());
- }
-
- public boolean isListEmpty() {
- // returns true iff the list is empty after filtering
- return listViewer.getList().getItemCount() == 0;
- }
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- includeSharedFilesButton.setFocus();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java
deleted file mode 100644
index b605bbf15..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.TableEditor;
-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.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.wizards.KSubstWizard.KSubstChangeElement;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchViewerSorter;
-
-public class KSubstWizardSummaryPage extends CVSWizardPage {
- private CheckboxTableViewer tableViewer = null;
- private KSubstOption[] ksubstOptions;
- private String[] ksubstOptionsDisplayText;
- private int filterType;
-
- private Button showUnaffectedFilesButton;
- private boolean showUnaffectedFiles;
-
- public KSubstWizardSummaryPage(String pageName, String title, ImageDescriptor image, boolean showUnaffectedFiles) {
- super(pageName, title, image);
- this.showUnaffectedFiles = showUnaffectedFiles;
-
- // sort the options by display text
- ksubstOptions = KSubstOption.getAllKSubstOptions();
- ksubstOptionsDisplayText = new String[ksubstOptions.length];
- Arrays.sort(ksubstOptions, new Comparator() {
- public int compare(Object a, Object b) {
- String aKey = getModeDisplayText((KSubstOption) a);
- String bKey = getModeDisplayText((KSubstOption) b);
- return aKey.compareTo(bKey);
- }
- });
- for (int i = 0; i < ksubstOptions.length; i++) {
- ksubstOptionsDisplayText[i] = getModeDisplayText(ksubstOptions[i]);
- }
- }
-
- public void createControl(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- top.setLayout(new GridLayout());
- setControl(top);
- createWrappingLabel(top, Policy.bind("KSubstWizardSummaryPage.contents"), 0); //$NON-NLS-1$
-
- // set F1 help
- WorkbenchHelp.setHelp(top, IHelpContextIds.KEYWORD_SUBSTITUTION_SUMMARY_PAGE);
-
- createSeparator(top, 0);
-
- showUnaffectedFilesButton = new Button(top, SWT.CHECK);
- showUnaffectedFilesButton.setText(Policy.bind("KSubstWizardSummaryPage.showUnaffectedFiles")); //$NON-NLS-1$
- showUnaffectedFilesButton.setSelection(showUnaffectedFiles);
- showUnaffectedFilesButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- BusyIndicator.showWhile(getContainer().getShell().getDisplay(), new Runnable() {
- public void run() {
- showUnaffectedFiles = showUnaffectedFilesButton.getSelection();
- refresh(false);
- }
- });
- }
- });
-
- tableViewer = createFileTableViewer(top,
- Policy.bind("KSubstWizardSummaryPage.summaryViewer.title"), //$NON-NLS-1$
- Policy.bind("KSubstWizardSummaryPage.summaryViewer.fileHeader"), //$NON-NLS-1$
- Policy.bind("KSubstWizardSummaryPage.summaryViewer.ksubstHeader"), //$NON-NLS-1$
- LIST_HEIGHT_HINT);
- Dialog.applyDialogFont(parent);
- }
-
- /**
- * Creates a TableViewer whose input is a Map from IFile to KSubstOption.
- *
- * @param parent the parent of the viewer
- * @param title the text for the title label
- * @param heightHint the nominal height of the list
- * @return the created list viewer
- */
- public CheckboxTableViewer createFileTableViewer(Composite parent, String title,
- String fileHeader, String ksubstHeader, int heightHint) {
- createLabel(parent, title);
- // create a table
- Table table = new Table(parent, SWT.CHECK | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = heightHint;
- table.setLayoutData(data);
- table.setLinesVisible(true);
- table.setHeaderVisible(true);
-
- // add the columns
- TableColumn column = new TableColumn(table, SWT.LEFT);
- column.setText(fileHeader);
- column = new TableColumn(table, SWT.LEFT);
- column.setText(ksubstHeader);
- TableLayout tableLayout = new TableLayout();
- table.setLayout(tableLayout);
- tableLayout.addColumnData(new ColumnWeightData(1, true));
- tableLayout.addColumnData(new ColumnWeightData(1, true));
-
- // create a viewer for the table
- final CheckboxTableViewer tableViewer = new CheckboxTableViewer(table);
- tableViewer.setContentProvider(new IStructuredContentProvider() {
- public Object[] getElements(Object inputElement) {
- return (Object[]) inputElement;
- }
- public void dispose() {
- }
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- });
-
- // show file name and keyword substitution mode
- tableViewer.setLabelProvider(new ITableLabelProvider() {
- public Image getColumnImage(Object element, int columnIndex) {
- return null;
- }
- public String getColumnText(Object element, int columnIndex) {
- KSubstChangeElement change = (KSubstChangeElement) element;
- if (columnIndex == 0) {
- return change.getFile().getFullPath().toString();
- } else if (columnIndex == 1) {
- return getModeDisplayText(change.getKSubst());
- }
- return null;
- }
- public void addListener(ILabelProviderListener listener) {
- }
- public void dispose() {
- }
- public boolean isLabelProperty(Object element, String property) {
- return false;
- }
- public void removeListener(ILabelProviderListener listener) {
- }
- });
-
- // sort by file name
- tableViewer.setSorter(new WorkbenchViewerSorter() {
- public int compare(Viewer viewer, Object e1, Object e2) {
- IFile file1 = ((KSubstChangeElement) e1).getFile();
- IFile file2 = ((KSubstChangeElement) e2).getFile();
- return super.compare(viewer, file1, file2);
- }
- });
-
- // filter
- tableViewer.addFilter(new ViewerFilter() {
- public boolean select(Viewer viewer, Object parentElement, Object element) {
- KSubstChangeElement change = (KSubstChangeElement) element;
- return ( showUnaffectedFiles || change.isNewKSubstMode()) && change.matchesFilter(filterType);
- }
- });
-
- // add a check state listener
- tableViewer.addCheckStateListener(new ICheckStateListener() {
- public void checkStateChanged(CheckStateChangedEvent event) {
- KSubstChangeElement change = (KSubstChangeElement) event.getElement();
- if (tableViewer.getGrayed(change)) {
- // if it's grayed then give it the appearance of being disabled
- updateCheckStatus(change);
- } else {
- // otherwise record the change
- change.setExcluded(! event.getChecked());
- }
- }
- });
-
- // add a cell editor in the Keyword Substitution Mode column
- TableEditor tableEditor = new TableEditor(table);
- CellEditor cellEditor = new ComboBoxCellEditor(table, ksubstOptionsDisplayText);
- tableViewer.setCellEditors(new CellEditor[] { null, cellEditor });
- tableViewer.setColumnProperties(new String[] { "file", "mode" }); //$NON-NLS-1$ //$NON-NLS-2$
- tableViewer.setCellModifier(new ICellModifier() {
- public Object getValue(Object element, String property) {
- KSubstChangeElement change = (KSubstChangeElement) element;
- KSubstOption option = change.getKSubst();
- for (int i = 0; i < ksubstOptions.length; ++i) {
- if (ksubstOptions[i].equals(option)) return new Integer(i);
- }
- // XXX need to handle this better
- return null;
- }
- public boolean canModify(Object element, String property) {
- return true;
- }
- public void modify(Object element, String property, Object value) {
- // XXX The runtime type of 'element' seems to be a TableItem instead of the
- // actual element data as with the other methods. As a workaround, use
- // the table's selection mechanism instead.
- IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
- element = selection.getFirstElement();
- int index = ((Integer) value).intValue();
- // selection will be -1 if some arbitrary text was entered since the combo box is not read only
- if (index != -1) {
- KSubstChangeElement change = (KSubstChangeElement) element;
- KSubstOption newOption = ksubstOptions[index];
- if (! newOption.equals(change.getKSubst())) {
- // the option has been changed, include it by default now if it wasn't before
- // since the user has shown interest in it
- change.setKSubst(newOption);
- change.setExcluded(false);
- tableViewer.refresh(change, true /*updateLabels*/);
- updateCheckStatus(change);
- }
- }
- }
- });
- return tableViewer;
- }
-
- public void setChangeList(List changes, int filterType) {
- this.filterType = filterType;
- tableViewer.setInput(changes.toArray());
- refresh(true);
- }
-
- private void refresh(boolean updateLabels) {
- tableViewer.refresh(updateLabels);
- Object[] elements = (Object[]) tableViewer.getInput();
- for (int i = 0; i < elements.length; i++) {
- KSubstChangeElement change = (KSubstChangeElement) elements[i];
- updateCheckStatus(change);
- }
- }
-
- private void updateCheckStatus(KSubstChangeElement change) {
- if (change.isNewKSubstMode()) {
- // if the mode differs, the checkbox indicates the inclusion/exclusion status
- tableViewer.setGrayed(change, false);
- tableViewer.setChecked(change, ! change.isExcluded());
- } else {
- // otherwise, the checkbox is meaningless except to indicate that the file will not be changed
- tableViewer.setGrayed(change, true);
- tableViewer.setChecked(change, false);
- }
- }
-
- private String getModeDisplayText(KSubstOption option) {
- return option.getLongDisplayText();
- }
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- showUnaffectedFilesButton.setFocus();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ModuleSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ModuleSelectionPage.java
deleted file mode 100644
index 67c881dd4..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/ModuleSelectionPage.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class ModuleSelectionPage extends CVSWizardPage {
- Button useProjectNameButton;
- Button useSpecifiedNameButton;
- Text text;
-
- String result;
- boolean useProjectName = true;
-
- public ModuleSelectionPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- }
-
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 2);
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.SHARING_MODULE_PAGE);
-
- useProjectNameButton = createRadioButton(composite, Policy.bind("ModuleSelectionPage.moduleIsProject"), 2); //$NON-NLS-1$
- useSpecifiedNameButton = createRadioButton(composite, Policy.bind("ModuleSelectionPage.specifyModule"), 1); //$NON-NLS-1$
- useProjectNameButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- useProjectName = useProjectNameButton.getSelection();
- if (useProjectName) {
- text.setEnabled(false);
- result = null;
- setPageComplete(true);
- } else {
- text.setEnabled(true);
- result = text.getText();
- if (result.length() == 0) {
- result = null;
- setPageComplete(false);
- } else {
- setPageComplete(true);
- }
- }
- }
- });
-
- text = createTextField(composite);
- text.setEnabled(false);
- text.addListener(SWT.Modify, new Listener() {
- public void handleEvent(Event event) {
- result = text.getText();
- if (result.length() == 0) {
- result = null;
- setPageComplete(false);
- } else {
- setPageComplete(true);
- }
- }
- });
- useSpecifiedNameButton.setSelection(false);
- useProjectNameButton.setSelection(true);
- setControl(composite);
- setPageComplete(true);
- Dialog.applyDialogFont(parent);
- }
- public String getModuleName() {
- return result;
- }
- public boolean useProjectName() {
- return useProjectName;
- }
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- useProjectNameButton.setFocus();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/NewLocationWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/NewLocationWizard.java
deleted file mode 100644
index 325d3b675..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/NewLocationWizard.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-public class NewLocationWizard extends Wizard {
- private ConfigurationWizardMainPage mainPage;
-
- private Properties properties = null;
-
- public NewLocationWizard() {
- IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings();
- IDialogSettings section = workbenchSettings.getSection("NewLocationWizard");//$NON-NLS-1$
- if (section == null) {
- section = workbenchSettings.addNewSection("NewLocationWizard");//$NON-NLS-1$
- }
- setDialogSettings(section);
- setWindowTitle(Policy.bind("NewLocationWizard.title")); //$NON-NLS-1$
- }
-
- public NewLocationWizard(Properties initialProperties) {
- this();
- this.properties = initialProperties;
- }
-
- /**
- * Creates the wizard pages
- */
- public void addPages() {
- mainPage = new ConfigurationWizardMainPage("repositoryPage1", Policy.bind("NewLocationWizard.heading"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_NEW_LOCATION)); //$NON-NLS-1$ //$NON-NLS-2$
- if (properties != null) {
- mainPage.setProperties(properties);
- }
- mainPage.setShowValidate(true);
- mainPage.setDescription(Policy.bind("NewLocationWizard.description")); //$NON-NLS-1$
- mainPage.setDialogSettings(getDialogSettings());
- addPage(mainPage);
- }
- /*
- * @see IWizard#performFinish
- */
- public boolean performFinish() {
- mainPage.finish(new NullProgressMonitor());
- Properties properties = mainPage.getProperties();
- final ICVSRepositoryLocation[] root = new ICVSRepositoryLocation[1];
- CVSProviderPlugin provider = CVSProviderPlugin.getPlugin();
- try {
- root[0] = provider.createRepository(properties);
- if (mainPage.getValidate()) {
- try {
- new ProgressMonitorDialog(getShell()).run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- root[0].validateConnection(monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InterruptedException e) {
- return false;
- } catch (InvocationTargetException e) {
- Throwable t = e.getTargetException();
- if (t instanceof TeamException) {
- throw (TeamException)t;
- }
- }
- }
- provider.addRepository(root[0]);
- } catch (TeamException e) {
- if (root[0] == null) {
- // Exception creating the root, we cannot continue
- CVSUIPlugin.openError(getContainer().getShell(), Policy.bind("NewLocationWizard.exception"), null, e); //$NON-NLS-1$
- return false;
- } else {
- // Exception validating. We can continue if the user wishes.
- IStatus error = e.getStatus();
- if (error.isMultiStatus() && error.getChildren().length == 1) {
- error = error.getChildren()[0];
- }
-
- boolean keep = false;
- if (error.isMultiStatus()) {
- CVSUIPlugin.openError(getContainer().getShell(), Policy.bind("NewLocationWizard.validationFailedTitle"), null, e); //$NON-NLS-1$
- } else {
- keep = MessageDialog.openQuestion(getContainer().getShell(),
- Policy.bind("NewLocationWizard.validationFailedTitle"), //$NON-NLS-1$
- Policy.bind("NewLocationWizard.validationFailedText", new Object[] {error.getMessage()})); //$NON-NLS-1$
- }
- try {
- if (keep) {
- provider.addRepository(root[0]);
- } else {
- provider.disposeRepository(root[0]);
- }
- } catch (TeamException e1) {
- CVSUIPlugin.openError(getContainer().getShell(), Policy.bind("exception"), null, e1); //$NON-NLS-1$
- return false;
- }
- return keep;
- }
- }
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RepositorySelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RepositorySelectionPage.java
deleted file mode 100644
index 9f59a5a5e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RepositorySelectionPage.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.wizards;
-
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.*;
-
-/**
- * First wizard page for importing a project into a CVS repository.
- * This page prompts the user to select an existing repo or create a new one.
- * If the user selected an existing repo, then getLocation() will return it.
- */
-public class RepositorySelectionPage extends CVSWizardPage {
- private TableViewer table;
- private Button useExistingRepo;
- private Button useNewRepo;
-
- private ICVSRepositoryLocation result;
-
- /**
- * RepositorySelectionPage constructor.
- *
- * @param pageName the name of the page
- * @param title the title of the page
- * @param titleImage the image for the page
- */
- public RepositorySelectionPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- }
- protected TableViewer createTable(Composite parent, int span) {
- Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
- GridData data = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL);
- data.horizontalSpan = span;
- data.widthHint = 200;
- table.setLayoutData(data);
- TableLayout layout = new TableLayout();
- layout.addColumnData(new ColumnWeightData(100, true));
- table.setLayout(layout);
- TableColumn col = new TableColumn(table, SWT.NONE);
- col.setResizable(true);
-
- return new TableViewer(table);
- }
- /**
- * Creates the UI part of the page.
- *
- * @param parent the parent of the created widgets
- */
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 1);
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.SHARING_SELECT_REPOSITORY_PAGE);
-
- createWrappingLabel(composite, Policy.bind("RepositorySelectionPage.description"), 0 /* indent */, 1 /* columns */); //$NON-NLS-1$
-
- useNewRepo = createRadioButton(composite, Policy.bind("RepositorySelectionPage.useNew"), 1); //$NON-NLS-1$
-
- useExistingRepo = createRadioButton(composite, Policy.bind("RepositorySelectionPage.useExisting"), 1); //$NON-NLS-1$
- table = createTable(composite, 1);
- table.setContentProvider(new WorkbenchContentProvider());
- table.setLabelProvider(new WorkbenchLabelProvider());
- table.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- result = (ICVSRepositoryLocation)((IStructuredSelection)table.getSelection()).getFirstElement();
- setPageComplete(true);
- }
- });
-
- useExistingRepo.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- if (useNewRepo.getSelection()) {
- table.getTable().setEnabled(false);
- result = null;
- } else {
- table.getTable().setEnabled(true);
- result = (ICVSRepositoryLocation)((IStructuredSelection)table.getSelection()).getFirstElement();
- }
- setPageComplete(true);
- }
- });
-
- setControl(composite);
-
- initializeValues();
- Dialog.applyDialogFont(parent);
- }
- /**
- * Initializes states of the controls.
- */
- private void initializeValues() {
- ICVSRepositoryLocation[] locations = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownRepositoryLocations();
- AdaptableList input = new AdaptableList(locations);
- table.setInput(input);
- if (locations.length == 0) {
- useNewRepo.setSelection(true);
- } else {
- useExistingRepo.setSelection(true);
- table.setSelection(new StructuredSelection(locations[0]));
- }
- }
-
- public ICVSRepositoryLocation getLocation() {
- return result;
- }
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- useExistingRepo.setFocus();
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RestoreFromRepositoryFileSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RestoreFromRepositoryFileSelectionPage.java
deleted file mode 100644
index 124a788e9..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RestoreFromRepositoryFileSelectionPage.java
+++ /dev/null
@@ -1,586 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-import java.io.BufferedInputStream;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.compare.CompareUI;
-import org.eclipse.compare.CompareViewerPane;
-import org.eclipse.compare.CompareViewerSwitchingPane;
-import org.eclipse.compare.IModificationDate;
-import org.eclipse.compare.IStreamContentAccessor;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.Splitter;
-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.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-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.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Widget;
-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.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-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.AdaptableHierarchicalResourceList;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.HistoryTableProvider;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.views.navigator.ResourceSorter;
-
-/**
- * Select the files to restore
- */
-public class RestoreFromRepositoryFileSelectionPage extends CVSWizardPage {
- private TreeViewer fileTree;
- private CompareViewerPane fileSelectionPane;
- private CompareViewerPane revisionSelectionPane;
- private CheckboxTableViewer revisionsTable;
- private CompareViewerSwitchingPane fileContentPane;
-
- private HistoryTableProvider historyTableProvider;
- private AdaptableHierarchicalResourceList treeInput = new AdaptableHierarchicalResourceList(ResourcesPlugin.getWorkspace().getRoot(), new IResource[0]);
-
- private IContainer folder;
- private IFile selectedFile;
- private ILogEntry selectedRevision;
- private Map entriesCache = new HashMap();
- private Map filesToRestore = new HashMap();
-
- private static final int WIZARD_WIDTH = 550;
-
- class HistoryInput implements ITypedElement, IStreamContentAccessor, IModificationDate {
- IFile file;
- ILogEntry logEntry;
-
- HistoryInput(IFile file, ILogEntry logEntry) {
- this.file= file;
- this.logEntry = logEntry;
- }
- public InputStream getContents() throws CoreException {
- return getContentsFromLogEntry(logEntry);
- }
- public String getName() {
- return file.getName();
- }
- public String getType() {
- return file.getFileExtension();
- }
- public Image getImage() {
- return CompareUI.getImage(file);
- }
- public long getModificationDate() {
- return logEntry.getDate().getTime();
- }
- }
-
- /**
- * Constructor for RestoreFromRepositoryFileSelectionPage.
- * @param pageName
- * @param title
- * @param titleImage
- * @param description
- */
- public RestoreFromRepositoryFileSelectionPage(
- String pageName,
- String title,
- ImageDescriptor titleImage,
- String description) {
- super(pageName, title, titleImage, description);
- }
-
- /**
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite= createComposite(parent, 1);
- setControl(composite);
-
- WorkbenchHelp.setHelp(composite, IHelpContextIds.RESTORE_FROM_REPOSITORY_FILE_SELECTION_PAGE);
-
- // Top and bottom panes: top is the two selection panes, bottom is the file content viewer
- Splitter vsplitter= new Splitter(composite, SWT.VERTICAL);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
- | GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_VERTICAL);
- // Set the width to be extra wide to accomodate the two selection lists
- data.widthHint = WIZARD_WIDTH;
- vsplitter.setLayoutData(data);
-
- // Top left and top right panes: the left for the files, the right for the log entries
- Splitter hsplitter= new Splitter(vsplitter, SWT.HORIZONTAL);
-
- // Top left: file selection pane
- fileSelectionPane = new CompareViewerPane(hsplitter, SWT.BORDER | SWT.FLAT);
- data = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
- fileSelectionPane.setLayoutData(data);
- fileTree = createFileSelectionTree(fileSelectionPane);
-
- // Top right: Revision selection pane
- revisionSelectionPane = new CompareViewerPane(hsplitter, SWT.BORDER | SWT.FLAT);
- data = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);;
- revisionSelectionPane.setLayoutData(data);
- historyTableProvider = new HistoryTableProvider();
- revisionsTable = createRevisionSelectionTable(revisionSelectionPane, historyTableProvider);
- revisionSelectionPane.setText(Policy.bind("RestoreFromRepositoryFileSelectionPage.emptyRevisionPane")); //$NON-NLS-1$
-
- // Bottom: File content viewer
- fileContentPane = new CompareViewerSwitchingPane(vsplitter, SWT.BORDER | SWT.FLAT) {
- protected Viewer getViewer(Viewer oldViewer, Object input) {
- return CompareUI.findContentViewer(oldViewer, input, this, null);
- }
- };
-
- initializeValues();
- updateWidgetEnablements();
- Dialog.applyDialogFont(parent);
- }
-
- protected CheckboxTableViewer createRevisionSelectionTable(CompareViewerPane composite, HistoryTableProvider tableProvider) {
- CheckboxTableViewer table = tableProvider.createCheckBoxTable(composite);
- table.setContentProvider(new IStructuredContentProvider() {
- public Object[] getElements(Object inputElement) {
- ILogEntry[] entries = getSelectedEntries();
- if (entries != null) return entries;
- return new Object[0];
- }
- public void dispose() {
- }
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- });
- table.setInput(this);
- table.getTable().addSelectionListener(
- new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- // Handle check selection in the check state listener
- if (e.detail == SWT.CHECK) return;
- handleRevisionSelection(e.item);
- }
- }
- );
- table.addCheckStateListener(new ICheckStateListener() {
- public void checkStateChanged(CheckStateChangedEvent event) {
- handleRevisionChecked(event);
- }
- });
- composite.setContent(table.getControl());
- return table;
- }
-
- protected TreeViewer createFileSelectionTree(CompareViewerPane composite) {
- TreeViewer tree = new TreeViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- tree.setUseHashlookup(true);
- tree.setContentProvider(treeInput.getTreeContentProvider());
- tree.setLabelProvider(
- new DecoratingLabelProvider(
- new WorkbenchLabelProvider() {
- protected String decorateText(String input, Object element) {
- String text;
- if (element instanceof IFolder && element.equals(folder)) {
- text = super.decorateText(folder.getProjectRelativePath().toString(), element);
- } else {
- ILogEntry entry = (ILogEntry)filesToRestore.get(element);
- text = super.decorateText(input, element);
- if (entry != null) {
- text = Policy.bind("RestoreFromRepositoryFileSelectionPage.fileToRestore", text, entry.getRevision()); //$NON-NLS-1$
- }
- }
- return text;
- }
- },
- CVSUIPlugin.getPlugin().getWorkbench().getDecoratorManager().getLabelDecorator()));
- tree.setSorter(new ResourceSorter(ResourceSorter.NAME));
- tree.setInput(treeInput);
-
- GridData data = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
- tree.getTree().setLayoutData(data);
- tree.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- handleFileSelection(event);
- }
- });
- composite.setContent(tree.getControl());
- return tree;
- }
-
- /**
- * Method updateWidgetEnablements.
- */
- private void updateWidgetEnablements() {
-
- if (filesToRestore.isEmpty()) {
- setPageComplete(false);
- setErrorMessage(null);
- return;
- }
-
- for (Iterator iter = filesToRestore.keySet().iterator(); iter.hasNext();) {
- IFile file = (IFile) iter.next();
- if (file.exists()) {
- setPageComplete(false);
- setErrorMessage(Policy.bind("RestoreFromRepositoryFileSelectionPage.fileExists", file.getName())); //$NON-NLS-1$
- return;
- }
-
- ILogEntry entry = (ILogEntry) filesToRestore.get(file);
- if (entry.isDeletion()) {
- setPageComplete(false);
- setErrorMessage(Policy.bind("RestoreFromRepositoryFileSelectionPage.revisionIsDeletion", entry.getRevision(), file.getName())); //$NON-NLS-1$
- return;
- }
- }
- setPageComplete(true);
- setErrorMessage(null);
- }
-
- /**
- * Method initializeValues.
- */
- private void initializeValues() {
- refresh();
- }
-
- /**
- * Sets the folder.
- * @param folder The folder to set
- */
- public void setInput(IContainer folder, ICVSFile[] files) {
- if (folder.equals(this.folder)) return;
- this.folder = folder;
- setTreeInput(folder, files);
- initializeValues();
- updateWidgetEnablements();
- }
-
- /*
- * Set the resource tree input to the files that were deleted
- */
- private void setTreeInput(IContainer folder, ICVSFile[] cvsFiles) {
- reset();
- IResource[] files = new IResource[cvsFiles.length];
- for (int i = 0; i < cvsFiles.length; i++) {
- try {
- files[i] = cvsFiles[i].getIResource();
- } catch (CVSException e) {
- // In practive, this error shold not occur.
- // It may if there is an existing folder with a name that matches the file
- // but this is bad in general when using CVS
- CVSUIPlugin.log(e);
- }
- }
- treeInput.setResources(files);
- // kludge to avoid auto-selection of first element
- // set the root to the folder's parent so the folder appears in the tree
- treeInput.setRoot(folder.getParent());
- refresh();
- }
-
- private void reset() {
- this.selectedFile = null;
- this.selectedRevision = null;
- treeInput.setResources(null);
- filesToRestore = new HashMap();
- if (fileContentPane != null && !fileContentPane.isDisposed()) {
- fileContentPane.setInput(null);
- }
- updateWidgetEnablements();
- }
-
- /**
- * Method refresh.
- */
- private void refresh() {
- if (folder == null) return;
-
- if (fileSelectionPane != null && !fileSelectionPane.isDisposed()) {
- fileSelectionPane.setText(Policy.bind("RestoreFromRepositoryFileSelectionPage.fileSelectionPaneTitle", folder.getProject().getName())); //$NON-NLS-1$
- fileSelectionPane.setImage(CompareUI.getImage(folder.getProject()));
- }
-
- if (revisionSelectionPane != null && !revisionSelectionPane.isDisposed()) {
- if (selectedFile == null) {
- revisionSelectionPane.setText(Policy.bind("RestoreFromRepositoryFileSelectionPage.emptyRevisionPane")); //$NON-NLS-1$
- revisionSelectionPane.setImage(null);
- }
- }
-
- // Empty the file content viewer
- if (fileContentPane != null && !fileContentPane.isDisposed()) {
- fileContentPane.setInput(null);
- }
-
- // refresh the tree
- if (fileTree != null) {
- // If the parent folder is in the tree, make sure it is expanded
- fileTree.setExpandedState(folder, true);
- fileTree.refresh();
- }
- if (revisionsTable != null)
- revisionsTable.refresh();
- }
-
- /*
- * Set the log entry table input to the fetched entries in response to a file selection
- */
- private void setLogEntryTableInput(ILogEntry[] entries) {
- this.selectedRevision = null;
- // Refresh the table so it picks up the selected entries through its content provider
- revisionsTable.refresh();
- // Check the previously checked entry if one exists
- ILogEntry selectedEntry = (ILogEntry)filesToRestore.get(selectedFile);
- if (selectedEntry != null) {
- revisionsTable.setChecked(selectedEntry, true);
- }
- // Disable entries that represent deletions since they can't be loaded
- for (int i = 0; i < entries.length; i++) {
- ILogEntry entry = entries[i];
- if (entry.isDeletion()) {
- revisionsTable.setGrayed(entry, true);
- }
- }
- // Set the titlebar text for the revisions table
- revisionSelectionPane.setText(Policy.bind("RestoreFromRepositoryFileSelectionPage.revisionSelectionPaneTitle", selectedFile.getName())); //$NON-NLS-1$
- revisionSelectionPane.setImage(CompareUI.getImage(selectedFile));
- // Clear the file content pane
- fileContentPane.setInput(null);
- }
-
- private void handleFileSelection(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (selection == null || selection.isEmpty()) {
- clearSelection();
- } else {
- if (selection instanceof StructuredSelection) {
- StructuredSelection structuredSelection = (StructuredSelection) selection;
- IResource resource = (IResource)structuredSelection.getFirstElement();
- if (resource instanceof IFile) {
- handleFileSelection((IFile) resource);
- } else {
- clearSelection();
- }
- }
- }
- }
-
- /**
- * Method handleFileSelection.
- * @param file
- */
- private void handleFileSelection(IFile file) {
- if (this.selectedFile == file) return;
- this.selectedFile = file;
- if (entriesCache.get(file) == null) {
- try {
-
- // First, we need to create a remote file handle so we can get the log entries
- ICVSFolder parent = CVSWorkspaceRoot.getCVSFolderFor(file.getParent());
- FolderSyncInfo info = parent.getFolderSyncInfo();
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(info.getRoot());
- final ICVSRemoteFile remoteFile = location.getRemoteFile(new Path(info.getRepository()).append(file.getName()).toString(), CVSTag.DEFAULT);
-
- // Then we need to fetch the log entries
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- // fetch the entries
- ILogEntry[] entries = remoteFile.getLogEntries(monitor);
- // cache the entries with the selected file
- entriesCache.put(selectedFile, entries);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (CVSException e) {
- setErrorMessage(
- CVSUIPlugin.openError(getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC)
- .getMessage());
- return;
- } catch (InvocationTargetException e) {
- setErrorMessage(
- CVSUIPlugin.openError(getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC)
- .getMessage());
- return;
- } catch (InterruptedException e) {
- return;
- }
- }
-
- // Set the log table to display the entries for the selected file
- setLogEntryTableInput(getSelectedEntries());
- }
-
- private ILogEntry[] getSelectedEntries() {
- return (ILogEntry[])entriesCache.get(selectedFile);
- }
-
- /**
- * Method getContents.
- * @param logEntry
- * @return InputStream
- */
- private InputStream getContentsFromLogEntry(final ILogEntry logEntry) {
- final InputStream[] is = new InputStream[] { null };
- try {
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- ICVSRemoteFile remoteFile = logEntry.getRemoteFile();
- is[0] = remoteFile.getContents(monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InvocationTargetException e) {
- setErrorMessage(
- CVSUIPlugin.openError(getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC)
- .getMessage());
- return null;
- } catch (InterruptedException e) {
- return null;
- }
- return new BufferedInputStream(is[0]);
- }
-
- private void handleRevisionChecked(CheckStateChangedEvent event) {
- if (event.getChecked()) {
- revisionsTable.setCheckedElements(new Object[] {event.getElement()});
- filesToRestore.put(selectedFile, event.getElement());
- }
- if (revisionsTable.getCheckedElements().length == 0) {
- filesToRestore.remove(selectedFile);
- }
- fileTree.refresh();
- updateWidgetEnablements();
- }
-
- /*
- * A revision in the revision table has been selected.
- * Populate the file contents pane with the selected log entry.
- */
- private void handleRevisionSelection(Widget w) {
- if (fileContentPane != null && !fileContentPane.isDisposed()) {
- Object o= w.getData();
- if (o instanceof ILogEntry) {
- ILogEntry selected = (ILogEntry) o;
- if (this.selectedRevision == selected) return;
- this.selectedRevision = selected;
- if (selected.isDeletion()) {
- fileContentPane.setInput(null);
- } else {
- fileContentPane.setInput(new HistoryInput(selectedFile, selected));
- fileContentPane.setText(getEditionLabel(selectedFile, selected));
- fileContentPane.setImage(CompareUI.getImage(selectedFile));
- }
- } else {
- fileContentPane.setInput(null);
- }
- }
- }
- /**
- * Method getEditionLabel.
- * @param selectedFile
- * @param selected
- * @return String
- */
- private String getEditionLabel(IFile selectedFile, ILogEntry selected) {
- return Policy.bind("RestoreFromRepositoryFileSelectionPage.fileContentPaneTitle", //$NON-NLS-1$
- new Object[] { selectedFile.getName(), selected.getRevision(), selectedFile.getFullPath().makeRelative().removeLastSegments(1).toString() });
- }
-
- public boolean restoreSelectedFiles() {
- try {
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- monitor.beginTask(null, 100 * filesToRestore.size());
- for (Iterator iter = filesToRestore.keySet().iterator();iter.hasNext();) {
- IFile file = (IFile) iter.next();
- ILogEntry entry = (ILogEntry)filesToRestore.get(file);
- ensureParentExists(file);
- file.create(entry.getRemoteFile().getContents(Policy.subMonitorFor(monitor, 50)), false, Policy.subMonitorFor(monitor, 50));
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- });
- } catch (InvocationTargetException e) {
- setErrorMessage(
- CVSUIPlugin.openError(getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC)
- .getMessage());
- return false;
- } catch (InterruptedException e) {
- return false;
- }
- return true;
- }
-
- /**
- * Method ensureParentExists.
- * @param file
- */
- private void ensureParentExists(IResource resource) throws CoreException {
- IContainer parent = resource.getParent();
- if (!parent.exists() && parent.getType() == IResource.FOLDER) {
- ensureParentExists(parent);
- ((IFolder)parent).create(false, true, null);
- }
- }
-
- private void clearSelection() {
- this.selectedFile = null;
- this.selectedRevision = null;
- refresh();
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RestoreFromRepositoryWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RestoreFromRepositoryWizard.java
deleted file mode 100644
index 960671851..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/RestoreFromRepositoryWizard.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.internal.ccvs.ui.wizards;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-/**
- * This wizard allows the user to show deleted resources in the history view
- */
-public class RestoreFromRepositoryWizard extends Wizard {
-
- private RestoreFromRepositoryFileSelectionPage fileSelectionPage;
- private IContainer parent;
- private ICVSFile[] files;
-
- /**
- * Constructor for RestoreFromRepositoryWizard.
- */
- public RestoreFromRepositoryWizard(IContainer parent, ICVSFile[] files) {
- this.parent = parent;
- this.files = files;
- setWindowTitle(Policy.bind("RestoreFromRepositoryWizard.fileSelectionPageTitle")); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.jface.wizard.IWizard#performFinish()
- */
- public boolean performFinish() {
- return fileSelectionPage.restoreSelectedFiles();
- }
-
- /**
- * @see org.eclipse.jface.wizard.IWizard#addPages()
- */
- public void addPages() {
- setNeedsProgressMonitor(true);
- ImageDescriptor substImage = CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_CHECKOUT);
-
- fileSelectionPage = new RestoreFromRepositoryFileSelectionPage("FileSelectionPage", Policy.bind("RestoreFromRepositoryWizard.fileSelectionPageTitle"), substImage, Policy.bind("RestoreFromRepositoryWizard.fileSelectionPageDescription")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- fileSelectionPage.setInput(parent, files);
- addPage(fileSelectionPage);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
deleted file mode 100644
index fb4c4c2c2..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
+++ /dev/null
@@ -1,457 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ui.wizards;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.widgets.Shell;
-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.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-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.RemoteFolder;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.TagSelectionDialog;
-import org.eclipse.team.internal.ccvs.ui.operations.ReconcileProjectOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.ShareProjectOperation;
-import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant;
-import org.eclipse.team.ui.IConfigurationWizard;
-import org.eclipse.team.ui.TeamUI;
-import org.eclipse.team.ui.synchronize.TeamSubscriberParticipant;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * This wizard helps the user to import a new project in their workspace
- * into a CVS repository for the first time.
- */
-public class SharingWizard extends Wizard implements IConfigurationWizard {
- // The project to configure
- private IProject project;
-
- // The autoconnect page is used if CVS/ directories already exist.
- private ConfigurationWizardAutoconnectPage autoconnectPage;
-
- // The import page is used if CVS/ directories do not exist.
- private RepositorySelectionPage locationPage;
-
- // The page that prompts the user for connection information.
- private ConfigurationWizardMainPage createLocationPage;
-
- // The page that prompts the user for module name.
- private ModuleSelectionPage modulePage;
-
- // The page that tells the user what's going to happen.
- private SharingWizardFinishPage finishPage;
-
- public SharingWizard() {
- IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings();
- IDialogSettings section = workbenchSettings.getSection("NewLocationWizard");//$NON-NLS-1$
- if (section == null) {
- section = workbenchSettings.addNewSection("NewLocationWizard");//$NON-NLS-1$
- }
- setDialogSettings(section);
- setNeedsProgressMonitor(true);
- setWindowTitle(Policy.bind("SharingWizard.title")); //$NON-NLS-1$
- //set
- }
-
- public void addPages() {
- ImageDescriptor sharingImage = CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_SHARE);
- if (doesCVSDirectoryExist()) {
- autoconnectPage = new ConfigurationWizardAutoconnectPage("autoconnectPage", Policy.bind("SharingWizard.autoConnectTitle"), sharingImage); //$NON-NLS-1$ //$NON-NLS-2$
- autoconnectPage.setProject(project);
- autoconnectPage.setDescription(Policy.bind("SharingWizard.autoConnectTitleDescription")); //$NON-NLS-1$
- addPage(autoconnectPage);
- } else {
- FolderSyncInfo info = getRepositoryInfoFromOneO(project);
- if (info != null) {
- // The project is from 1.0 and has sharing info
- autoconnectPage = new ConfigurationWizardAutoconnectPage("autoconnectPage", Policy.bind("SharingWizard.autoConnectOneOTitle"), sharingImage); //$NON-NLS-1$ //$NON-NLS-2$
- autoconnectPage.setSharing(info);
- autoconnectPage.setDescription(Policy.bind("SharingWizard.autoConnectTitleDescription")); //$NON-NLS-1$
- addPage(autoconnectPage);
- } else {
- ICVSRepositoryLocation[] locations = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownRepositoryLocations();
- if (locations.length > 0) {
- locationPage = new RepositorySelectionPage("importPage", Policy.bind("SharingWizard.importTitle"), sharingImage); //$NON-NLS-1$ //$NON-NLS-2$
- locationPage.setDescription(Policy.bind("SharingWizard.importTitleDescription")); //$NON-NLS-1$
- addPage(locationPage);
- }
- createLocationPage = new ConfigurationWizardMainPage("createLocationPage", Policy.bind("SharingWizard.enterInformation"), sharingImage); //$NON-NLS-1$ //$NON-NLS-2$
- createLocationPage.setDescription(Policy.bind("SharingWizard.enterInformationDescription")); //$NON-NLS-1$
- addPage(createLocationPage);
- createLocationPage.setDialogSettings(getDialogSettings());
- modulePage = new ModuleSelectionPage("modulePage", Policy.bind("SharingWizard.enterModuleName"), sharingImage); //$NON-NLS-1$ //$NON-NLS-2$
- modulePage.setDescription(Policy.bind("SharingWizard.enterModuleNameDescription")); //$NON-NLS-1$
- addPage(modulePage);
- WorkspaceSynchronizeParticipant p = (WorkspaceSynchronizeParticipant)TeamUI.getSynchronizeManager().find(WorkspaceSynchronizeParticipant.ID)[0];
- finishPage = new SharingWizardFinishPage("finishPage", Policy.bind("SharingWizard.readyToFinish"), sharingImage); //$NON-NLS-1$ //$NON-NLS-2$
- finishPage.setDescription(Policy.bind("SharingWizard.readyToFinishDescription")); //$NON-NLS-1$
- addPage(finishPage);
- }
- }
- }
- public boolean canFinish() {
- IWizardPage page = getContainer().getCurrentPage();
- if (page == locationPage) {
- if (locationPage.getLocation() == null) {
- return createLocationPage.isPageComplete();
- } else {
- return modulePage.useProjectName() || modulePage.getModuleName() != null;
- }
- } else if (page == modulePage) {
- return modulePage.useProjectName() || modulePage.getModuleName() != null;
- } else if (page == finishPage) {
- return true;
- }
- return super.canFinish();
- }
- protected String getMainPageDescription() {
- return Policy.bind("SharingWizard.description"); //$NON-NLS-1$
- }
- protected String getMainPageTitle() {
- return Policy.bind("SharingWizard.heading"); //$NON-NLS-1$
- }
- public IWizardPage getNextPage(IWizardPage page) {
- if (page == autoconnectPage) return null;
- if (page == locationPage) {
- if (locationPage.getLocation() == null) {
- return createLocationPage;
- } else {
- return modulePage;
- }
- }
- if (page == createLocationPage) {
- return modulePage;
- }
- if (page == modulePage) {
- return finishPage;
- }
- return null;
- }
- /*
- * @see IWizard#performFinish
- */
- public boolean performFinish() {
- final boolean[] result = new boolean[] { true };
- try {
- final boolean[] doSync = new boolean[] { false };
- final boolean[] projectExists = new boolean[] { false };
- getContainer().run(true /* fork */, true /* cancel */, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- try {
- monitor.beginTask("", 100); //$NON-NLS-1$
- if (autoconnectPage != null && doesCVSDirectoryExist()) {
- // Autoconnect to the repository using CVS/ directories
-
- FolderSyncInfo info = autoconnectPage.getFolderSyncInfo();
- if (info == null) {
- // Error!
- return;
- }
-
- // Get the repository location (the get will add the locatin to the provider)
- boolean isPreviouslyKnown = CVSProviderPlugin.getPlugin().isKnownRepository(info.getRoot());
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(info.getRoot());
-
- // Validate the connection if the user wants to
- boolean validate = autoconnectPage.getValidate();
- if (validate) {
- // Do the validation
- try {
- location.validateConnection(new SubProgressMonitor(monitor, 50));
- } catch (final TeamException e) {
- // Exception validating. We can continue if the user wishes.
- final boolean[] keep = new boolean[] { false };
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- keep[0] = MessageDialog.openQuestion(getContainer().getShell(),
- Policy.bind("SharingWizard.validationFailedTitle"), //$NON-NLS-1$
- Policy.bind("SharingWizard.validationFailedText", new Object[] {e.getStatus().getMessage()})); //$NON-NLS-1$
- }
- });
- if (!keep[0]) {
- // Remove the root
- try {
- if (!isPreviouslyKnown) {
- CVSProviderPlugin.getPlugin().disposeRepository(location);
- }
- } catch (TeamException e1) {
- CVSUIPlugin.openError(getContainer().getShell(), Policy.bind("exception"), null, e1, CVSUIPlugin.PERFORM_SYNC_EXEC); //$NON-NLS-1$
- }
- result[0] = false;
- return;
- }
- // They want to keep the connection anyway. Fall through.
- }
- }
-
- // Set the sharing
- CVSWorkspaceRoot.setSharing(project, info, new SubProgressMonitor(monitor, 50));
- } else {
- // Import
- doSync[0] = true;
- // Check if the directory exists on the server
- ICVSRepositoryLocation location = null;
- boolean isKnown = false;
- try {
- location = getLocation();
- isKnown = CVSProviderPlugin.getPlugin().isKnownRepository(location.getLocation());
- location.validateConnection(monitor);
- // Purge any CVS folders that may exists in subfolders
- purgeAnyCVSFolders();
- String moduleName = getModuleName();
- ICVSRemoteFolder folder = location.getRemoteFolder(moduleName, null);
- if (folder.exists(new SubProgressMonitor(monitor, 50))) {
- projectExists[0] = true;
- final boolean[] sync = new boolean[] {true};
- if (autoconnectPage == null) {
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- sync[0] = MessageDialog.openQuestion(getShell(), Policy.bind("SharingWizard.couldNotImport"), Policy.bind("SharingWizard.couldNotImportLong", getModuleName())); //$NON-NLS-1$ //$NON-NLS-2$
- }
- });
- }
- result[0] = sync[0];
- doSync[0] = sync[0];
- return;
- }
- } catch (TeamException e) {
- CVSUIPlugin.openError(getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC);
- if (!isKnown && location != null) location.flushUserInfo();
- result[0] = false;
- doSync[0] = false;
- return;
- }
- // Add the location to the provider if it is new
- if (!isKnown) {
- CVSProviderPlugin.getPlugin().addRepository(location);
- }
-
- // Create the remote module for the project
- ShareProjectOperation op = new ShareProjectOperation(getShell(), location, project, getModuleName());
- op.run(new SubProgressMonitor(monitor, 50));
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } catch (InterruptedException e) {
- // Must have been canceled
- return;
- } finally {
- monitor.done();
- }
- }
- });
- if (doSync[0]) {
- // Sync of the project
- if (projectExists[0]) {
- try {
- String moduleName = getModuleName();
- CVSTag tag;
- if (autoconnectPage == null) {
- TagSelectionDialog dialog = new TagSelectionDialog(getShell(),
- new ICVSFolder[] {(ICVSFolder)getLocation().getRemoteFolder(moduleName, null)},
- Policy.bind("SharingWizard.selectTagTitle"), //$NON-NLS-1$
- Policy.bind("SharingWizard.selectTag"), //$NON-NLS-1$
- TagSelectionDialog.INCLUDE_HEAD_TAG | TagSelectionDialog.INCLUDE_BRANCHES,
- false, /*don't show recurse option*/
- IHelpContextIds.SHARE_WITH_EXISTING_TAG_SELETION_DIALOG);
- dialog.setBlockOnOpen(true);
- if (dialog.open() == Dialog.CANCEL) {
- return false;
- }
- tag = dialog.getResult();
- } else {
- tag = autoconnectPage.getSharing().getTag();
- }
- mapProject(moduleName, tag);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- CVSUIPlugin.showInSyncView(getContainer().getShell(), null, TeamSubscriberParticipant.OUTGOING_MODE);
- }
- } catch (InterruptedException e) {
- return true;
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getContainer().getShell(), null, null, e);
- }
-
- return result[0];
- }
-
- private void mapProject(final String moduleName, final CVSTag tag) throws InvocationTargetException, InterruptedException {
- try {
- ICVSRemoteFolder remote = new RemoteFolder(null, getLocation(), moduleName, tag);
- new ReconcileProjectOperation(getShell(), project, remote).run();
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
-
- /**
- * Return an ICVSRepositoryLocation
- */
- private ICVSRepositoryLocation getLocation() throws TeamException {
- // If there is an autoconnect page then it has the location
- if (autoconnectPage != null) {
- return autoconnectPage.getLocation();
- }
-
- // If the import page has a location, use it.
- if (locationPage != null) {
- ICVSRepositoryLocation location = locationPage.getLocation();
- if (location != null) return location;
- }
-
- // Otherwise, get the location from the create location page
- getShell().getDisplay().syncExec(new Runnable() {
- public void run() {
- createLocationPage.finish(new NullProgressMonitor());
- }
- });
- Properties properties = createLocationPage.getProperties();
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().createRepository(properties);
- return location;
- }
- /**
- * Return the module name.
- */
- private String getModuleName() {
- // If there is an autoconnect page then it has the module name
- if (autoconnectPage != null) {
- return autoconnectPage.getSharing().getRepository();
- }
- String moduleName = modulePage.getModuleName();
- if (moduleName == null) moduleName = project.getName();
- return moduleName;
- }
- /*
- * @see IConfigurationWizard#init(IWorkbench, IProject)
- */
- public void init(IWorkbench workbench, IProject project) {
- this.project = project;
- }
- private boolean doesCVSDirectoryExist() {
- // Determine if there is an existing CVS/ directory from which configuration
- // information can be retrieved.
- Shell shell = null;
- if (getContainer() != null) {
- shell = getContainer().getShell();
- }
- final boolean[] isCVSFolder = new boolean[] { false };
- try {
- CVSUIPlugin.runWithRefresh(shell, new IResource[] { project }, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- ICVSFolder folder = (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(project);
- FolderSyncInfo info = folder.getFolderSyncInfo();
- isCVSFolder[0] = info != null;
- } catch (final TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, null);
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(shell, null, null, e);
- } catch (InterruptedException e) {
- }
- return isCVSFolder[0];
- }
-
- private FolderSyncInfo getRepositoryInfoFromOneO(IProject project) {
- try {
- QualifiedName key = new QualifiedName("org.eclipse.vcm.core", "Sharing"); //$NON-NLS-1$ //$NON-NLS-2$
- byte[] syncBytes = ResourcesPlugin.getWorkspace().getSynchronizer().getSyncInfo(key, project); //$NON-NLS-1$ //$NON-NLS-2$
- if (syncBytes != null) {
- DataInputStream reader = new DataInputStream(new ByteArrayInputStream(syncBytes));
- String repoType = reader.readUTF();
- String repoLocation = reader.readUTF();
- String stream = reader.readUTF();
- reader.close();
- ResourcesPlugin.getWorkspace().getSynchronizer().flushSyncInfo(key, project, IResource.DEPTH_INFINITE);
- if (repoType.equals("CVS")) { //$NON-NLS-1$
- // Get the repository so it is added to the provider
- // (in case the user cancels after we purge the old info)
- CVSProviderPlugin.getPlugin().getRepository(repoLocation);
- CVSTag tag;
- if (stream.equals("HEAD")) { //$NON-NLS-1$
- tag = CVSTag.DEFAULT;
- } else {
- tag = new CVSTag(stream, CVSTag.BRANCH);
- }
- return new FolderSyncInfo(project.getName(), repoLocation, tag, false);
- }
- }
- } catch (CVSException ex) {
- CVSUIPlugin.log(ex);
- } catch (CoreException ex) {
- // Ignore the core exception since we will get one if the key is not registered
- } catch (IOException ex) {
- CVSUIPlugin.log(CVSException.wrapException(ex));
- }
- return null;
- }
-
- /**
- * Method findCommonRootInSubfolders.
- * @return String
- */
- private void purgeAnyCVSFolders() {
- try {
- ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(project);
- folder.accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- // nothing to do for files
- }
- public void visitFolder(ICVSFolder folder) throws CVSException {
- if (folder.isCVSFolder()) {
- // for now, just unmanage
- folder.unmanage(null);
- }
- }
- }, true /* recurse */);
- } catch (CVSException e) {
- // log the exception and return null
- CVSUIPlugin.log(e);
- }
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardFinishPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardFinishPage.java
deleted file mode 100644
index 269f3ab74..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardFinishPage.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.wizards;
-
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class SharingWizardFinishPage extends CVSWizardPage {
- public SharingWizardFinishPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- }
-
- /*
- * @see IDialogPage#createControl(Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 1);
- // set F1 help
- WorkbenchHelp.setHelp(composite, IHelpContextIds.SHARING_FINISH_PAGE);
- Label label = new Label(composite, SWT.LEFT | SWT.WRAP);
- label.setText(Policy.bind("SharingWizardFinishPage.message")); //$NON-NLS-1$
- GridData data = new GridData();
- data.widthHint = 350;
- label.setLayoutData(data);
- setControl(composite);
- Dialog.applyDialogFont(parent);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/UpdateWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/UpdateWizard.java
deleted file mode 100644
index 8125cccb3..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/UpdateWizard.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.wizards;
-
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-
-public class UpdateWizard extends Wizard {
-
- UpdateWizardPage updatePage;
- IProject project;
-
- public UpdateWizard() {
- setNeedsProgressMonitor(true);
- setWindowTitle(Policy.bind("UpdateWizard.title")); //$NON-NLS-1$
- }
-
- public void addPages() {
- // Provide a progress monitor to indicate what is going on
- try {
- new ProgressMonitorDialog(getShell()).run(false, false, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- monitor.beginTask(null, 100);
- updatePage = new UpdateWizardPage("updatePage", Policy.bind("UpdateWizard.updatePage"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_SHARE)); //$NON-NLS-1$ //$NON-NLS-2$
- updatePage.setProject(project);
- addPage(updatePage);
- monitor.done();
- }
- });
- } catch (InvocationTargetException e) {
- CVSUIPlugin.log(IStatus.ERROR, Policy.bind("internal"), e.getTargetException()); //$NON-NLS-1$
- } catch (InterruptedException e) {
- // Ignore
- }
- }
-
- /*
- * @see IWizard#performFinish()
- */
- public boolean performFinish() {
- final boolean[] result = new boolean[] {false};
- try {
- getContainer().run(false, false, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException {
- try {
- CVSTeamProvider provider = ((CVSTeamProvider)RepositoryProvider.getProvider(project));
- provider.update(new IResource[] { project }, updatePage.getLocalOptions(),
- updatePage.getTag(), true /*createBackups*/, monitor);
- result[0] = true;
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- });
- } catch (InterruptedException e) {
- return true;
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
- return result[0];
- }
-
- public void setProject(IProject project) {
- this.project = project;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/UpdateWizardPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/UpdateWizardPage.java
deleted file mode 100644
index e5cc80c6c..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/UpdateWizardPage.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.wizards;
-
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-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.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.TagConfigurationDialog;
-import org.eclipse.team.internal.ccvs.ui.merge.ProjectElement;
-import org.eclipse.team.internal.ccvs.ui.merge.TagElement;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class UpdateWizardPage extends CVSWizardPage {
-
- IProject project;
- TreeViewer tree;
- CVSTag result;
- ICVSRemoteFolder remote;
- boolean doOverwrite;
-
- public UpdateWizardPage(String pageName, String title, ImageDescriptor titleImage) {
- super(pageName, title, titleImage);
- }
-
- /*
- * @see IDialogPage#createControl(Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 2);
- // set F1 help
- // WorkbenchHelp.setHelp(composite, new DialogPageContextComputer (this, ITeamHelpContextIds.REPO_CONNECTION_MAIN_PAGE));
-
- Label description = new Label(composite, SWT.WRAP);
- GridData data = new GridData();
- data.horizontalSpan = 2;
- data.widthHint = 350;
- description.setLayoutData(data);
- description.setText(Policy.bind("UpdateWizardPage.description")); //$NON-NLS-1$
-
- tree = createTree(composite);
- tree.setContentProvider(new WorkbenchContentProvider());
- tree.setLabelProvider(new WorkbenchLabelProvider());
- tree.setSorter(new ViewerSorter() {
- public int compare(Viewer v, Object o1, Object o2) {
- int result = super.compare(v, o1, o2);
- if (o1 instanceof TagElement && o2 instanceof TagElement) {
- return -result;
- }
- return result;
- }
- });
- tree.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- Object selected = ((IStructuredSelection)tree.getSelection()).getFirstElement();
- if (selected instanceof TagElement) {
- result = ((TagElement)selected).getTag();
- setPageComplete(true);
- } else {
- result = null;
- setPageComplete(false);
- }
- }
- });
-
- createLabel(composite, ""); //$NON-NLS-1$
- createLabel(composite, ""); //$NON-NLS-1$
-
- doOverwrite = false;
- final Button overwrite = new Button(composite, SWT.CHECK);
- data = new GridData();
- data.horizontalSpan = 2;
- overwrite.setLayoutData(data);
- overwrite.setText(Policy.bind("UpdateWizardPage.overwrite")); //$NON-NLS-1$
- overwrite.setSelection(doOverwrite);
- overwrite.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- doOverwrite = overwrite.getSelection();
- }
- });
-
- setControl(composite);
- tree.setInput(new ProjectElement(CVSWorkspaceRoot.getCVSFolderFor(project), ProjectElement.INCLUDE_ALL_TAGS));
-
- Runnable refresh = new Runnable() {
- public void run() {
- tree.refresh();
- }
- };
- TagConfigurationDialog.createTagDefinitionButtons(getShell(), composite, new ICVSFolder[] {CVSWorkspaceRoot.getCVSFolderFor(project)},
- convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT),
- convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH), refresh, refresh);
-
- Label seperator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
- data = new GridData (GridData.FILL_BOTH);
- data.horizontalSpan = 2;
- seperator.setLayoutData(data);
-
- setPageComplete(false);
- Dialog.applyDialogFont(parent);
- }
-
- protected TreeViewer createTree(Composite parent) {
- Tree tree = new Tree(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE);
- tree.setLayoutData(new GridData(GridData.FILL_BOTH));
- return new TreeViewer(tree);
- }
-
- public void setProject(IProject project) {
- this.project = project;
- try {
- this.remote = (ICVSRemoteFolder) CVSWorkspaceRoot.getRemoteResourceFor(project);
- } catch (TeamException e) {
- // To do
- }
- }
-
- public CVSTag getTag() {
- return result;
- }
-
- public LocalOption[] getLocalOptions() {
- if (doOverwrite) {
- return new LocalOption[] { Update.IGNORE_LOCAL_CHANGES };
- }
- return Command.NO_LOCAL_OPTIONS;
- }
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/.classpath b/examples/org.eclipse.team.examples.filesystem/.classpath
deleted file mode 100644
index 065ac06e1..000000000
--- 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 ba077a403..000000000
--- 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 eee25274a..000000000
--- 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 9db411aab..000000000
--- 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 fa97e5430..000000000
--- 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 cf2ced352..000000000
--- 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 61cef4852..000000000
--- 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 9604d0d6c..000000000
--- 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 af038fa69..000000000
--- 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 3038a23c0..000000000
--- 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 360a2e606..000000000
--- 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 bda3da5f8..000000000
--- 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 909e30733..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileModificationValidator.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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 {
- //Used to avoid creating multiple copies of the OK status:
- private static final IStatus OK_STATUS = new Status(Status.OK, FileSystemPlugin.ID, Status.OK, Policy.bind("ok"), null); //$NON-NLS-1$
-
- private SimpleAccessOperations operations;
-
- /**
- * Constructor for FileModificationValidator.
- */
- public FileModificationValidator(RepositoryProvider provider) {
- operations = ((FileSystemProvider)provider).getSimpleAccess();
- }
-
- /**
- * This method will convert any exceptions thrown by the SimpleAccessOperations.chechout() to a Status.
- * @param resources the resources that are to be checked out
- * @return IStatus a status indicator that reports whether the operation went smoothly or not.
- * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#chechout(IResource[] resources, int depth, IProgressMonitor progress)
- */
- private IStatus checkout(IResource[] resources) {
- try {
- operations.checkout(resources, IResource.DEPTH_INFINITE, null);
- } catch (TeamException e) {
- return new Status(Status.ERROR, FileSystemPlugin.ID, Status.ERROR, e.getLocalizedMessage(), e);
- }
- return OK_STATUS;
- }
-
- /**
- * This method will be called by the workbench/editor before it tries to edit one or more files.
- * The idea is to prevent anyone from accidentally working on a file that they won't be able to check in changes to.
- * @see org.eclipse.core.resources.IFileModificationValidator#validateEdit(IFile[], Object)
- */
- public IStatus validateEdit(IFile[] files, Object context) {
- Collection toBeCheckedOut = new ArrayList();
-
- //Make a list of all the files that need to be checked out:
- for (int i = 0; i < files.length; i++) {
- if (!operations.isCheckedOut(files[i])) {
- toBeCheckedOut.add(files[i]);
- }
- }
-
- return checkout((IResource[]) toBeCheckedOut.toArray(new IResource[toBeCheckedOut.size()]));
- }
-
- /**
- * This method will be called by the workbench before it tries to save a file.
- * It should not attempt to save any files that don't recieve an OK status here.
- * @see org.eclipse.core.resources.IFileModificationValidator#validateSave(IFile)
- */
- public IStatus validateSave(IFile file) {
- return checkout(new IResource[] { file });
- }
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemPlugin.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemPlugin.java
deleted file mode 100644
index 040f24c3e..000000000
--- 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 60f64c48b..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemProvider.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IFileModificationValidator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-
-/**
- * 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 {
- }
-
- /**
- * This method is invoked when the provider is unmapped from its
- * project.
- *
- * @see org.eclipse.core.resources.IProjectNature#deconfigure()
- */
- public void deconfigure() throws CoreException {
- // Clear the persistant property containing the location
- getProject().setPersistentProperty(FILESYSTEM_REPO_LOC, null);
- }
-
- /**
- * Return the provider ID as specified in the plugin.xml
- *
- * @see RepositoryProvider#getID()
- */
- public String getID() {
- return FileSystemPlugin.PROVIDER_ID;
- }
-
- /**
- * Set the file system location for the provider. This mist be invoked after
- * the provider is mapped and configured but before the provider is used to
- * perform any operations.
- *
- * @param location the path representing the location where the project contents will be stored.
- * @throws TeamException
- */
- public void setTargetLocation(String location) throws TeamException {
-
- // set the instance variable to the provided path
- root = new Path(location);
-
- // ensure that the location is a folder (if it exists)
- File file = new File(location);
- if (file.exists() && !file.isDirectory()) {
- throw new TeamException(Policy.bind("FileSystemProvider.mustBeFolder", location)); //$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 instance of <code>SimpleAccessOperations</code> that provides the
- * operations for transfering data to and from the provider's location.
- * Note: The interface <code>SimpleAccessOperations</code> is not part of the official
- * Team API. We use it here for convenience.
- *
- * @see org.eclipse.team.core.RepositoryProvider#getSimpleAccess()
- */
- public SimpleAccessOperations getSimpleAccess() {
- return new FileSystemSimpleAccessOperations(this);
- }
- /**
- * @see org.eclipse.team.core.RepositoryProvider#getFileModificationValidator()
- */
- public IFileModificationValidator getFileModificationValidator() {
- return new FileModificationValidator(this);
- }
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemRemoteResource.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemRemoteResource.java
deleted file mode 100644
index d8b2db061..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemRemoteResource.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.examples.filesystem;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-
-/**
- * Class represents a handle to a <code>java.io.File</code> that conforms to
- * the <code>org.eclipse.team.core.IRemoteResource</code> interface.
- */
-public class FileSystemRemoteResource implements IRemoteResource, IStorage {
-
- // the file object in which the data is stored on the disk
- private File ioFile;
-
- /**
- * The constructor.
- * @param path the full path of the resource on disk
- */
- public FileSystemRemoteResource(IPath path) {
- this(new File(path.toOSString()));
- }
-
- /**
- * Create a remote resource handle from the given java.io.file
- *
- * @param ioFile the file
- */
- FileSystemRemoteResource(File ioFile) {
- this.ioFile = ioFile;
- }
-
- /**
- * Adapters are used to ensure that the right menus will appear in differnet views.
- *
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
- */
- public Object getAdapter(Class adapter) {
- return Platform.getAdapterManager().getAdapter(this, adapter);
- }
-
- /**
- * Returns an input stream containing the contents of the remote resource.
- * The remote resource must be a file.
- *
- * @see org.eclipse.team.core.sync.IRemoteResource#getContents(IProgressMonitor)
- */
- public InputStream getContents(IProgressMonitor progress) throws TeamException {
- if (isContainer())
- throw new TeamException(Policy.bind("FileSystemRemoteResource.0")); //$NON-NLS-1$
- try {
- return new FileInputStream(ioFile);
- } catch (FileNotFoundException e) {
- throw FileSystemPlugin.wrapException(e);
- }
- }
-
- /**
- * Return the modification timestamp of the remote resource.
- *
- * @return long The date and time (in milliseconds) when the file was last changed on disk.
- */
- public long getLastModified() {
- return ioFile.lastModified();
- }
-
- /**
- * @see org.eclipse.team.core.sync.IRemoteResource#getName()
- */
- public String getName() {
- return ioFile.getName();
- }
-
- /**
- * @see org.eclipse.team.core.sync.IRemoteResource#isContainer()
- */
- public boolean isContainer() {
- return ioFile.isDirectory();
- }
-
- /**
- * Fetch the members of the remote resource. The remote resource must be a
- * container.
- *
- * @see org.eclipse.team.core.sync.IRemoteResource#members(IProgressMonitor)
- */
- public IRemoteResource[] members(IProgressMonitor progress) throws TeamException {
- // Make sure we have a container
- if (!isContainer())
- throw new TeamException(Policy.bind("RemoteResource.mustBeFolder", ioFile.getName())); //$NON-NLS-1$
-
- // convert the File children to remote resource children
- File[] members = ioFile.listFiles();
- IRemoteResource[] result = new IRemoteResource[members.length];
- for (int i = 0; i < members.length; i++) {
- result[i] = new FileSystemRemoteResource(members[i]);
- }
- return result;
- }
-
- /**
- * copies a single specified file to a specified location on the filesystem.
- * @param dest The location on the filesystem to which the file is to be copied
- * @param src The source file
- */
- static void copyFile(IPath dest, File src) {
- File target = new File(dest.append(src.getName()).toOSString());
- try {
- InputStream in = ((IFile) src).getContents();
- java.io.FileOutputStream out = new java.io.FileOutputStream(target);
- StreamUtil.pipe(in, out, target.length(), null, target.getName());
- } catch (FileNotFoundException e) {} catch (IOException e) {} catch (CoreException e) {}
- }
- /**
- * Recursively copies an entire directory structure to a specified location on the filesystem
- * @param dest The location on the filssystem to which the directory structure is to be written
- * @param src The directory structure that is to be duplicated
- */
- static void copyFolder(IPath dest, File src) {
- String children[] = src.list();
- File current;
- for (int i = 0; i < children.length; i++) {
- current = new File(children[i]);
- if (current.isFile())
- copyFile(dest.append(src.getName()), current);
- else if (current.isDirectory())
- copyFolder(dest.append(src.getName()), current);
- }
- }
-
- /**
- * Creates a copy of the remote resource in the location specified
- * @param location The destination for the copy of the remote resource
- */
- public void copyOver(IPath location) {
- copyFolder(location, ioFile);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getComment()
- */
- public String getComment() throws TeamException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getContentIdentifier()
- */
- public String getContentIdentifier() throws TeamException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getCreatorDisplayName()
- */
- public String getCreatorDisplayName() throws TeamException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.IRemoteResource#getBufferedStorage(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStorage getBufferedStorage(IProgressMonitor monitor) throws TeamException {
- // The contents are local so no caching is required
- return this;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getContents()
- */
- public InputStream getContents() throws CoreException {
- return getContents(new NullProgressMonitor());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getFullPath()
- */
- public IPath getFullPath() {
- return new Path(ioFile.getAbsolutePath());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#isReadOnly()
- */
- public boolean isReadOnly() {
- return true;
- }
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemSimpleAccessOperations.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemSimpleAccessOperations.java
deleted file mode 100644
index 9fb3afa17..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemSimpleAccessOperations.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.examples.filesystem.Policy;
-
-/**
- * SimpleAccessOperations is not part of the Team API. We use it here because it provides
- * a reasonable set of operation commonly implemented by repository providers.
- * Note: This class is not to be interpreted as an example of how a repository
- * provider is to do its work. It is only here because we needed to have some operations
- * to perform. In the future, we may update this class to illustrate the use of the workspace
- * synchronizer (<code>ISynchronizer</code>).
- */
-public class FileSystemSimpleAccessOperations implements SimpleAccessOperations {
-
- // A reference to the provider
- private FileSystemProvider provider;
-
- /**
- * Constructor
- * @param provider
- */
- FileSystemSimpleAccessOperations(FileSystemProvider provider) {
- this.provider = provider;
- }
-
- /**
- * Given a local resource, finds the remote counterpart.
- * @param resource The local resource to lookup
- * @return FileSystemRemoteResource The remote counterpart to the given local resource
- */
- public FileSystemRemoteResource getRemoteResourceFor(IResource resource) {
- return new FileSystemRemoteResource(provider.getRoot().append(resource.getProjectRelativePath()));
- }
-
- /**
- * @see SimpleAccessOperations#get(IResource[], int, IProgressMonitor)
- */
- public void get(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
- // ensure the progress monitor is not null
- progress = Policy.monitorFor(progress);
- progress.beginTask(Policy.bind("GetAction.working"), resources.length); //$NON-NLS-1$
- for (int i = 0; i < resources.length; i++) {
- Policy.checkCanceled(progress);
- IPath rootdir = provider.getRoot();
- FileSystemRemoteResource remote = getRemoteResourceFor(resources[i]);
- if (resources[i].getType() == IResource.FILE) {
- //Copy the resource over to the other side:
- IFile localFile = (IFile) resources[i]; //since we know the local resource is a file.
- if (localFile.getModificationStamp() != remote.getLastModified()) {
- //Only do this if the timestamps are different
- try {
- //Copy from the local file to the remote file:
- InputStream source = null;
- try {
- // Get the remote file content.
- source = remote.getContents(progress);
- // Set the local file content to be the same as the remote file.
- if (localFile.exists())
- localFile.setContents(source, false, false, progress);
- else
- localFile.create(source, false, progress);
- } finally {
- if (source != null)
- source.close();
- }
- } catch (IOException e) {
- throw FileSystemPlugin.wrapException(e);
- } catch (CoreException e) {
- throw FileSystemPlugin.wrapException(e);
- }
- }
- } else if (depth > 0) { //Assume that resources are either files or containers.
- //If the resource is a container, copy its children over.
- IRemoteResource[] estranged = remote.members(progress);
- IResource[] children = new IResource[estranged.length];
-
- if (resources[i].getType() == IResource.PROJECT) {
- for (int j = 0; j < estranged.length; j++) {
- if (estranged[j].isContainer())
- children[j] = provider.getProject().getFolder(estranged[j].getName());
- else
- children[j] = provider.getProject().getFile(estranged[j].getName());
- }
- } else if (resources[i].getType() == IResource.FOLDER) {
- //Make sure that the folder exists before trying to put anything into it:
- IFolder localFolder = (IFolder) resources[i];
- if (!localFolder.exists()) {
- try {
- localFolder.create(false, true, progress);
- } catch (CoreException e) {
- throw FileSystemPlugin.wrapException(e);
- }
- }
-
- //Create placeholder local resources to place data into:
- for (int j = 0; j < estranged.length; j++) {
- if (estranged[j].isContainer())
- children[j] = provider.getProject().getFolder(resources[i].getProjectRelativePath().append(estranged[j].getName()));
- else
- children[j] = provider.getProject().getFile(resources[i].getProjectRelativePath().append(estranged[j].getName()));
- }
- }
-
- //Recurse into children:
- if (children.length > 0)
- get(children, depth - 1, null);
- }
- progress.worked(1);
- }
- progress.done();
- }
-
- /**
- * Simply make sure that the local resource is not read only.
- *
- * @see SimpleAccessOperations#checkout(IResource[], int, IProgressMonitor)
- */
- public void checkout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
- progress = Policy.monitorFor(progress);
- progress.beginTask(Policy.bind("FileSystemSimpleAccessOperations.1"), resources.length); //$NON-NLS-1$
- IPath rootdir = provider.getRoot();
- for (int i = 0; i < resources.length; i++) {
- Policy.checkCanceled(progress);
-
- //Do the actual file locking:
- FileSystemRemoteResource remote = getRemoteResourceFor(resources[i]);
- File diskFile = new File(rootdir.append(resources[i].getProjectRelativePath()).toOSString());
- if (resources[i].getType() == IResource.FILE) {
- //TODO: lock the file on the 'server'.
- resources[i].setReadOnly(false);
- } else if (depth > 0) {
- diskFile.mkdirs();
- //Recursively checkout children too:
- try {
- IResource[] children;
- if (resources[i].getType() == IResource.PROJECT)
- children = provider.getProject().members();
- else
- children = provider.getProject().getFolder(resources[i].getName()).members();
- if (children.length > 0)
- checkout(children, depth - 1, null);
- } catch (CoreException e) {
- throw FileSystemPlugin.wrapException(e);
- }
- }
- progress.worked(1);
- }
- progress.done();
- }
-
- /**
- * Checkin the resources to the given depth. Mark all checked in resources as read only.
- *
- * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#checkin(IResource[], int, IProgressMonitor)
- */
- public void checkin(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
- // ensure the progress monitor is not null
- progress = Policy.monitorFor(progress);
- progress.beginTask(Policy.bind("PutAction.working"), resources.length); //$NON-NLS-1$
- for (int i = 0; i < resources.length; i++) {
- Policy.checkCanceled(progress);
- IPath rootdir = provider.getRoot();
- // Verify that the resources are checked out:
- if (!isCheckedOut(resources[i]))
- return;
-
- File diskFile = new File(rootdir.append(resources[i].getProjectRelativePath()).toOSString());
- if (resources[i].getType() == IResource.FILE) {
- //Copy the resource over to the other side:
- IFile localFile = (IFile) resources[i]; //since we know the local resource is a file.
- if (localFile.getModificationStamp() != diskFile.lastModified()) {
- //Only do this if the timestamps are different
- try {
- diskFile.getParentFile().mkdirs();
- //Copy from the local file to the remote file:
- InputStream in = null;
- FileOutputStream out = null;
- try {
- in = localFile.getContents();
- out = new FileOutputStream(diskFile);
- //Copy the contents of the local file to the remote file:
- StreamUtil.pipe(in, out, diskFile.length(), progress, diskFile.getName());
- } finally {
- if (in != null)
- in.close();
- if (out != null)
- out.close();
- }
- } catch (IOException e) {
- throw FileSystemPlugin.wrapException(e);
- } catch (CoreException e) {
- throw FileSystemPlugin.wrapException(e);
- }
- }
- } else if (depth > 0) { //Assume that resources are either files or containers.
- diskFile.mkdirs();
- //Recursively copy children, if any, over as well:
- try {
- IResource[] children;
- if (resources[i].getType() == IResource.PROJECT)
- children = provider.getProject().members();
- else
- children = provider.getProject().getFolder(resources[i].getName()).members();
- if (children.length > 0)
- checkin(children, depth - 1, null);
- } catch (CoreException e) {
- throw FileSystemPlugin.wrapException(e);
- }
- }
- progress.worked(1);
- }
- uncheckout(resources, depth, progress);
- progress.done();
- }
-
- /**
- * Mark all checked in resources as read only.
- *
- * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#uncheckout(IResource[], int, IProgressMonitor)
- */
- public void uncheckout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
- progress = Policy.monitorFor(progress);
- progress.beginTask(Policy.bind("FileSystemSimpleAccessOperations.3"), resources.length); //$NON-NLS-1$
- IPath rootdir = provider.getRoot();
- for (int i = 0; i < resources.length; i++) {
- Policy.checkCanceled(progress);
-
- //Do the actual file unlocking:
- FileSystemRemoteResource remote = getRemoteResourceFor(resources[i]);
- File diskFile = new File(rootdir.append(resources[i].getProjectRelativePath()).toOSString());
- if (resources[i].getType() == IResource.FILE) {
- //TODO: unlock the file on the 'server'.
- resources[i].setReadOnly(true);
- } else if (depth > 0) {
- diskFile.mkdirs();
- //Recursively uncheckout children too:
- try {
- IResource[] children;
- if (resources[i].getType() == IResource.PROJECT)
- children = provider.getProject().members();
- else
- children = provider.getProject().getFolder(resources[i].getName()).members();
- if (children.length > 0)
- uncheckout(children, depth - 1, null);
- } catch (CoreException e) {
- throw FileSystemPlugin.wrapException(e);
- }
- }
- progress.worked(1);
- }
- progress.done();
- }
-
- /**
- * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#delete(IResource[], IProgressMonitor)
- */
- public void delete(IResource[] resources, IProgressMonitor progress) throws TeamException {}
-
- /**
- * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#moved(IPath, IResource, IProgressMonitor)
- */
- public void moved(IPath source, IResource target, IProgressMonitor progress) throws TeamException {}
-
- /**
- * A resource is checked out if it is not read only.
- *
- * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#isCheckedOut(IResource)
- */
- public boolean isCheckedOut(IResource resource) {
- return !resource.isReadOnly();
- }
-
- /**
- * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#hasRemote(IResource)
- */
- public boolean hasRemote(IResource resource) {
- return false;
- }
-
- /**
- * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#isDirty(IResource)
- */
- public boolean isDirty(IResource resource) {
- return false;
- }
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/Policy.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/Policy.java
deleted file mode 100644
index cfb2db53a..000000000
--- 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/SimpleAccessOperations.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/SimpleAccessOperations.java
deleted file mode 100644
index ce5f0c0d4..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/SimpleAccessOperations.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-
-/*
- * This class represents provisional API. Its here to allow experimentation with 3rd party tools
- * calling providers in a repository neutral manner.
- *
- * A provider is not required to implement this API.
- * Implementers, and those who reference it, do so with the awareness that this class may be
- * removed or substantially changed at future times without warning.
- *
- * The <code>SimpleAccessOperations</code> class exposes a basic repository model that
- * providers may implement to allow third-party plugins to perform repository operations
- * programmatically. For example, a code generation tool may want to get source
- * files before generating the code, and check-in the results. If a provider plugin does
- * not adhere to the <i>semantics</i> of the <code>SimpleAccessOperations</code> class
- * as described, they are free to opt out of implementing it.
- *
- * @since 2.0
- */
-public interface SimpleAccessOperations {
- /*
- * Updates the local resource to have the same content as the corresponding remote
- * resource. Where the local resource does not exist, this method will create it.
- * <p>
- * If the remote resource is a container (e.g. folder or project) this operation is equivalent
- * to getting each non-container member of the remote resource, thereby updating the
- * content of existing local members, creating local members to receive new remote resources,
- * and deleting local members that no longer have a corresponding remote resource.</p>
- * <p>
- * The method is applied to all resources satisfying the depth parameter, described above.</p>
- * <p>
- * Interrupting the method (via the progress monitor) may lead to partial, but consistent, results.</p>
- *
- * @param resources an array of local resources to update from the corresponding remote
- * resources.
- * @param depth the depth to traverse the given resources, taken from <code>IResource</code>
- * static constants.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamException if there is a problem getting one or more of the resources. The
- * exception will contain multiple statuses, one for each resource in the <code>resources</code>
- * array. Possible status codes include:
- * <ul>
- * <li>NO_REMOTE_RESOURCE</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- */
- public void get(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException;
-
- /*
- * Changes the state of the local resource from checked-in to checked-out and transfers the content
- * of the remote resource to the local resource.
- * <p>
- * Where no corresponding local resource exists in the workspace, one is created (including any
- * intermediate parent containers) to receive the contents of the remote resource.</p>
- * <p>
- * Implementations may optimistically only flag the state change locally and rely on resolving conflicts
- * during check-in, or they may pessimistically also checkout or lock the remote resource during a
- * local resource checkout to avoid conflicts. The provider API does not subscribe to either model
- * and supports each equally.</p>
- * <p>
- * Where checkout is applied to a resource that is already checked-out the method has no
- * effect.</p>
- *
- * @param resources the array of local resources to be checked-out.
- * @param depth the depth to traverse the given resources, taken from <code>IResource</code>
- * constants.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamProviderException if there is a problem checking-out one or more of the resources.
- * The exception will contain multiple statuses, one for each resource in the <code>resources</code>
- * array. Possible status codes include:
- * <ul>
- * <li>NOT_CHECKED_IN</li>
- * <li>NO_REMOTE_RESOURCE</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- * @see checkin(IResource[], int, IProgressMonitor)
- */
- public void checkout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException;
-
- /*
- * Transfers the content of the local resource to the corresponding remote resource, and changes the
- * state of the local resource from checked-out to checked-in.
- * <p>
- * If a remote resource does not exist this method creates a new remote resource with the same content
- * as the given local resource. The local resource is said to <i>correspond</i> to the new remote resource.</p>
- * <p>
- * Where providers deal with stores that check-out or lock resources this method is an opportunity
- * to transfer the content and make the corresponding remote check-in or unlock. It is envisaged that
- * where the server maintains resource versions, checkin creates a new version of the remote resource.</p>
- * <p>
- * Note that some providers may <em>require</em> that a resource is checked-out before it can be
- * checked-in. However, all providers must support the explicit checking out a resource before checking
- * it in (e.g., even if the check out is a no-op).</p>
- *
- * @param resources an array of local resources to be checked-in.
- * @param the depth to traverse the given resources, taken from <code>IResource</code>
- * constants.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamException if there is a problem checking-in one or more of the resources.
- * The exception will contain multiple statuses, one for each resource in the <code>resources</code>
- * array. Possible status codes include:
- * <ul>
- * <li>NOT_CHECKED_OUT</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- * @see checkout(IResource[], int, IProgressMonitor)
- */
- public void checkin(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException;
-
- /*
- * Changes the state of the local resource from checked-out to checked-in without updating the contents
- * of the remote resource.
- * <p>
- * Note that where the provider is a versioning provider, it is envisaged (though not required) that the
- * uncheckout operation does not create a new version.</p>
- * <p>
- * Note also that <code>uncheckout()</code> does not affect the content of the local resource. The
- * caller is required to perform a <code>get()</code> to revert the local resource if that is required
- * (otherwise the local resource will be left with the changes that were made while the remote resource
- * was checked-out. Furthermore, it is valid to call <code>uncheckout()</code> with an
- * <code>IResource</code> that does not exist locally.</p>
- *
- * @param resources an array of the local resources that are to be unchecked-out.
- * @param depth the depth to traverse the given resources, taken from <code>IResource</code>
- * constants.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamProviderException if there is a problem undoing the check-out of one or more of
- * the resources. The exception will contain multiple statuses, one for each resource in the
- * <code>resources</code> array. Possible status codes include:
- * <ul>
- * <li>NOT_CHECKED_OUT</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- * @see checkin(IResource)
- * @see uncheckout(IResource)
- */
- public void uncheckout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException;
-
- /*
- * Deletes the remote resource corresponding to the given local resource.
- * <p>
- * The notion of delete is simply to make the remote resource unavailable. Where the provider
- * supports versioning it is not specified whether the delete operation makes the version
- * temporarily or forever unavailable, or indeed whether the entire history is made unavailable.</p>
- * <p>
- * Note that the <code>IResource</code>'s passed as arguments may be non-existant in the
- * workbench, the typical case is when such a resource has been received in a core callback.</p>
- * <p>
- * The resource may be checked-in or checked-out prior to deletion. The local resource is not
- * deleted by this method.</p>
- * <p>
- * Resource deletions are inherently deep.</p>
- *
- * @param resources the array of resources whose corresponding remote resources are to be deleted.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamProviderException if there is a problem deleting one or more of
- * the resources. The exception will contain multiple statuses, one for each resource in the
- * <code>resources</code> array. Possible status codes include:
- * <ul>
- * <li>NO_REMOTE_RESOURCE</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- */
- public void delete(IResource[] resources, IProgressMonitor progress) throws TeamException;
-
- /*
- * Informs the provider that a local resource's name or path has changed.
- * <p>
- * Some providers, such as versioning providers, may require this information to track the resource
- * across name changes.</p>
- * <p>
- * Note that this method is always called <em>after</em> the local resource has been moved.</p>
- *
- * @param source the full name of the resource before it was moved.
- * @param target the resource that was moved.
- * @param progress a progress monitor to indicate the duration of the operation, or
- * <code>null</code> if progress reporting is not required.
- * @throws TeamProviderException if there is a problem recording the move. The exception will
- * contain a single status. Possible status codes are:
- * <ul>
- * <li>NO_REMOTE_RESOURCE</li>
- * <li>IO_FAILED</li>
- * <li>NOT_AUTHORIZED</li>
- * <li>UNABLE</li>
- * </ul>
- */
- public void moved(IPath source, IResource target, IProgressMonitor progress) throws TeamException;
-
- /*
- * Implementor's Note:
- * The following methods are required to return promptly (i.e., they may be used to determine the state of
- * a resource in a UI where long delays are unacceptable). Implementations may cache these values
- * and update the cache on an explicit call to #refreshState().
- *
- * They are currently listed in the provider API, however, they may be moved to a new or different
- * interface in the future to better reflect their UI-orientation.
- */
-
- /*
- * Answers if the remote resource state is checked-out. If the resource has never been checked in this
- * method will return <code>true</code>.
- * <p>
- * It is undefined whether this method tests for a resource being checked out to this workspace
- * or any workspace.</p>
- *
- * @param resource the local resource to test.
- * @return <code>true</code> if the resource is checked-out and <code>false</code> if it is not.
- * @see checkout(IResource[], int, IProgressMonitor)
- */
- public boolean isCheckedOut(IResource resource);
-
- /*
- * Answers whether the resource has a corresponding remote resource.
- * <p>
- * Before a resource is checked-in, the resource will occur locally but not remotely, and calls to this
- * method will return <code>false</code>. Once a local resource is checked in (and assuming the local
- * local resource is not moved or the remote resource deleted) there will be a corresponding remote
- * resource and this method returns <code>true</code>.</p>
- *
- * @param resource the local resource to test.
- * @return <code>true</code> if the local resource has a corresponding remote resource,
- * and <code>false</code> otherwise.
- * @see checkin(IResource[], int, IProgressMonitor)
- * @see refreshState(IResource[], int, IProgressMonitor)
- */
- public boolean hasRemote(IResource resource);
-
- /*
- * Answer if the local resource currently has a different timestamp to the base timestamp
- * for this resource.
- *
- * @param resource the resource to test.
- * @return <code>true</code> if the resource has a different modification
- * timestamp, and <code>false</code> otherwise.
- */
- public boolean isDirty(IResource resource);
-}
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 f39f21743..000000000
--- 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/deployment/DeployAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/DeployAction.java
deleted file mode 100644
index 7fc9c2790..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/DeployAction.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.deployment;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.team.core.*;
-import org.eclipse.team.internal.ui.actions.TeamAction;
-import org.eclipse.ui.IActionDelegate;
-
-public class DeployAction extends TeamAction implements IActionDelegate {
-
- public void run(IAction action) {
- IContainer container = (IContainer)getSelectedResources()[0];
- IDeploymentProviderManager manager = Team.getDeploymentManager();
- FileSystemDeploymentProvider provider = new FileSystemDeploymentProvider();
- try {
- manager.map(container, provider);
- } catch (TeamException e) {
- ErrorDialog.openError(getShell(), "Error", "Mapping", e.getStatus());
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- IResource[] resources = getSelectedResources();
- if(resources.length == 1) {
- IResource resource = resources[0];
- IDeploymentProviderManager manager = Team.getDeploymentManager();
- if(manager.getMappedTo(resource, FileSystemDeploymentProvider.ID)) {
- return false;
- }
- }
- return true;
- }
-} \ No newline at end of file
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/FileSystemDeploymentProvider.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/FileSystemDeploymentProvider.java
deleted file mode 100644
index a983aced5..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/FileSystemDeploymentProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.deployment;
-
-import org.eclipse.team.core.DeploymentProvider;
-import org.eclipse.team.core.IMemento;
-
-public class FileSystemDeploymentProvider extends DeploymentProvider {
-
- public final static String ID = "org.eclipse.team.examples.filesystem.FileSystemDeploymentProvider";
-
- public String getID() {
- return ID;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.DeploymentProvider#init()
- */
- public void init() {
- // TODO Auto-generated method stub
- System.out.println("Initialized " + getName());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.DeploymentProvider#dispose()
- */
- public void dispose() {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.DeploymentProvider#saveState(org.eclipse.team.core.IMemento)
- */
- public void saveState(IMemento memento) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.DeploymentProvider#restoreState(org.eclipse.team.core.IMemento)
- */
- public void restoreState(IMemento memento) {
- // TODO Auto-generated method stub
-
- }
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/NullAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/NullAction.java
deleted file mode 100644
index 9216d190a..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/NullAction.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.examples.filesystem.deployment;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.team.core.IDeploymentProviderManager;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ui.actions.TeamAction;
-import org.eclipse.ui.IActionDelegate;
-
-public class NullAction extends TeamAction implements IActionDelegate {
-
- public void run(IAction action) {
- MessageDialog.openQuestion(getShell(), "Action Run", "Action Run");
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- IResource[] resources = getSelectedResources();
- if(resources.length == 1) {
- IResource resource = resources[0];
- IDeploymentProviderManager manager = Team.getDeploymentManager();
- if(! manager.getMappedTo(resource, FileSystemDeploymentProvider.ID)) {
- return false;
- }
- }
- return true;
- }
-} \ No newline at end of file
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/UnDeployAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/UnDeployAction.java
deleted file mode 100644
index 5466a25fc..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/deployment/UnDeployAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.deployment;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.team.core.DeploymentProvider;
-import org.eclipse.team.core.IDeploymentProviderManager;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ui.actions.TeamAction;
-import org.eclipse.ui.IActionDelegate;
-
-public class UnDeployAction extends TeamAction implements IActionDelegate {
-
- public void run(IAction action) {
- IContainer container = (IContainer)getSelectedResources()[0];
- IDeploymentProviderManager manager = Team.getDeploymentManager();
- try {
- DeploymentProvider[] providers = manager.getMappings(container, FileSystemDeploymentProvider.ID);
- for (int i = 0; i < providers.length; i++) {
- DeploymentProvider provider = providers[i];
- manager.unmap(container, provider);
- }
- } catch (TeamException e) {
- ErrorDialog.openError(getShell(), "Error", "Un-Mapping", e.getStatus());
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- IResource[] resources = getSelectedResources();
- if(resources.length == 1) {
- IResource resource = resources[0];
- IDeploymentProviderManager manager = Team.getDeploymentManager();
- if(! manager.getMappedTo(resource, FileSystemDeploymentProvider.ID)) {
- return false;
- }
- }
- return true;
- }
-} \ No newline at end of file
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 ccb68c1c3..000000000
--- 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/ui/ConfigurationWizard.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ConfigurationWizard.java
deleted file mode 100644
index bab78242b..000000000
--- 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 6fc051cdd..000000000
--- 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 e3a5da71f..000000000
--- 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 219ac80fc..000000000
--- 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 309f98030..000000000
--- 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 1c4ce852e..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/GetAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-import org.eclipse.team.examples.filesystem.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Action for getting the contents of the selected resources
- */
-public class GetAction extends FileSystemAction {
-
- public void run(IAction action) {
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- Map table = getRepositoryProviderMapping();
- monitor.beginTask(null, table.size() * 1000);
- monitor.setTaskName(Policy.bind("GetAction.working")); //$NON-NLS-1$
- for (Iterator iter = table.keySet().iterator(); iter.hasNext();) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- FileSystemProvider provider = (FileSystemProvider) iter.next();
- List list = (List) table.get(provider);
- IResource[] providerResources = (IResource[]) list.toArray(new IResource[list.size()]);
- provider.getSimpleAccess().get(providerResources, IResource.DEPTH_INFINITE, subMonitor);
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, Policy.bind("GetAction.problemMessage"), PROGRESS_DIALOG); //$NON-NLS-1$
- }
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.java
deleted file mode 100644
index 004b86517..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-import org.eclipse.team.examples.filesystem.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Action for checking in the selected resources
- */
-public class PutAction extends FileSystemAction {
-
- /*
- * Method declared on IActionDelegate.
- */
- public void run(IAction action) {
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- Map table = getRepositoryProviderMapping();
- monitor.beginTask(null, table.size() * 1000);
- monitor.setTaskName(Policy.bind("PutAction.working")); //$NON-NLS-1$
- for (Iterator iter = table.keySet().iterator(); iter.hasNext();) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- FileSystemProvider provider = (FileSystemProvider) iter.next();
- List list = (List) table.get(provider);
- IResource[] providerResources = (IResource[]) list.toArray(new IResource[list.size()]);
- provider.getSimpleAccess().checkin(providerResources, IResource.DEPTH_INFINITE, subMonitor);
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, Policy.bind("PutAction.problemMessage"), PROGRESS_DIALOG); //$NON-NLS-1$
- }
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java
deleted file mode 100644
index b35b59eef..000000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-import org.eclipse.team.examples.filesystem.FileSystemRemoteResource;
-import org.eclipse.team.examples.filesystem.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Action for replacing the contents of the selected resources with whatever is in the repository
- */
-public class ReplaceAction extends FileSystemAction {
-
- public void run(IAction action) {
- run(new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- Map table = getRepositoryProviderMapping();
- monitor.beginTask(null, table.size() * 1000);
- monitor.setTaskName(Policy.bind("ReplaceAction.working")); //$NON-NLS-1$
- for (Iterator iter = table.keySet().iterator(); iter.hasNext();) {
- IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
- FileSystemProvider provider = (FileSystemProvider) iter.next();
- List list = (List) table.get(provider);
- IResource[] providerResources = (IResource[]) list.toArray(new IResource[list.size()]);
- //Grab the remote counterparts of 'providerResources':
- FileSystemRemoteResource[] remote = new FileSystemRemoteResource[list.size()];
- for (int i = 0; i < remote.length; i++) {
- remote[i] = new FileSystemRemoteResource(provider.getRoot().append(providerResources[i].getProjectRelativePath()));
- }
- //copy the entire tree structure:
- IPath dropSpot = null;
- for (int i = 0; i < providerResources.length; i++) {
- if (providerResources[i].getType() == IResource.FILE) {
- IFile localFile = (IFile) providerResources[i];
- dropSpot = localFile.getLocation().removeLastSegments(1);
- } else if (providerResources[i].getType() == IResource.FOLDER||providerResources[i].getType() == IResource.PROJECT) {
- IContainer localDir = (IContainer) providerResources[i];
- dropSpot = localDir.getLocation().removeLastSegments(1);
- }
- if (remote[i].isContainer())
- remote[i].copyOver(dropSpot);
- else
- provider.getSimpleAccess().get(new IResource[] { providerResources[i] }, IResource.DEPTH_ONE, subMonitor);
- }
- }
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, Policy.bind("ReplaceAction.problemMessage"), PROGRESS_DIALOG); //$NON-NLS-1$
- }
-}
diff --git a/tests/org.eclipse.team.tests.core/.classpath b/tests/org.eclipse.team.tests.core/.classpath
deleted file mode 100644
index 065ac06e1..000000000
--- 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 ba077a403..000000000
--- 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 a33b3395d..000000000
--- 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 9db411aab..000000000
--- 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 9a16b11eb..000000000
--- 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 926d9a39d..000000000
--- 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 a99182bcb..000000000
--- a/tests/org.eclipse.team.tests.core/plugin.xml
+++ /dev/null
@@ -1,108 +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 1738eead5..000000000
--- 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 6d5afc53f..000000000
--- 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 c116ebec6..000000000
--- 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 772fadc12..000000000
--- 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 baa5a6327..000000000
--- 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 21c238e78..000000000
--- 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 fc5f34b08..000000000
--- 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 b7fcc06bd..000000000
--- 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 cbea79e20..000000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TeamTest.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-
-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.");
- }
- }
-
- // Assert that the two containers have equal contents
- protected void assertEquals(IRemoteResource container1, IResource container2) throws CoreException, TeamException {
- if (container2.getType() == IResource.FILE) {
- // Ignore .project file
- if (container2.getName().equals(".project"))
- return;
- assertTrue(compareContent(container1.getContents(DEFAULT_MONITOR), ((IFile) container2).getContents()));
- } else {
- IRemoteResource[] remoteResources = container1.members(DEFAULT_MONITOR);
- IResource[] localResources = ((IFolder) container2).members();
- for (int i = 0; i < localResources.length; i++) {
- assertEquals(remoteResources[i], localResources[i]);
- }
- }
- }
-
- 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/SyncInfoSetContentProviderTest.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/SyncInfoSetContentProviderTest.java
deleted file mode 100644
index 6cb46440f..000000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/SyncInfoSetContentProviderTest.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.*;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.core.subscribers.SyncInfo;
-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.SyncInfoDiffNode;
-
-/**
- * Tests for the SyncInfoSet content providers.
- */
-public class SyncInfoSetContentProviderTest extends TeamTest {
-
- public static final TestSubscriber subscriber = new TestSubscriber();
- private MutableSyncInfoSet set;
- private ContentProviderTestView view;
-
- /**
- * 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 junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception {
- super.setUp();
- set = new MutableSyncInfoSet();
- view = ContentProviderTestView.findViewInActivePage(null);
- view.setInput(set);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- set = null;
- super.tearDown();
- }
-
- /*
- * 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(MutableSyncInfoSet set, IProject project, String[] resourceStrings, int[] syncKind) throws TeamException {
- IResource[] resources = buildResources(project, resourceStrings);
- 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 = subscriber.getSyncInfo(resource, kind);
- if (set.getSyncInfo(resource) != null) {
- set.changed(newInfo);
- } else {
- set.add(newInfo);
- }
- }
- }
- set.endInput(new NullProgressMonitor());
- // Process any asyncs taht may be updating the view
- while (Display.getCurrent().readAndDispatch()) {}
- }
-
- /**
- * Ensure that the resource
- * @param resources
- */
- private 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];
- assertItemValid(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());
- }
-
- private void assertItemValid(Item item, List resources) {
- Object data = item.getData();
- if (data instanceof SyncInfoDiffNode) {
- IResource resource = ((SyncInfoDiffNode)data).getResource();
- if (resource.getType() == IResource.PROJECT) {
- assertProjectPresent((IProject)resource, resources);
- } else if (resource.getType() == IResource.FOLDER) {
- assertFolderPresent((IFolder)resource, resources);
- } else if (resource.getType() == IResource.FILE) {
- assertFilePresent(resource, resources);
- }
- }
- Item[] children = view.getViewer().getChildren(item);
- for (int i = 0; i < children.length; i++) {
- Item child = children[i];
- assertItemValid(child, resources);
- }
- }
-
- 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.");
- }
-
- public void testNestedCompressedFolder() 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();
- }
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.java
deleted file mode 100644
index cda04350e..000000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.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.team.tests.ui.synchronize;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-
-/**
- * @author Administrator
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class TestSubscriber extends TeamSubscriber {
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#getDescription()
- */
- public String getDescription() {
- return "Test Subscriber";
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#isSupervised(org.eclipse.core.resources.IResource)
- */
- public boolean isSupervised(IResource resource) throws TeamException {
- return true;
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#members(org.eclipse.core.resources.IResource)
- */
- public IResource[] members(IResource resource) throws TeamException {
- if (resource.getType() == IResource.FILE) {
- return new IResource[0];
- }
- try {
- return ((IContainer)resource).members();
- } catch (CoreException e) {
- throw TeamException.asTeamException(e);
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#roots()
- */
- public IResource[] roots() {
- return ResourcesPlugin.getWorkspace().getRoot().getProjects();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#getSyncInfo(org.eclipse.core.resources.IResource)
- */
- public SyncInfo getSyncInfo(IResource resource) throws TeamException {
- return getSyncInfo(resource, SyncInfo.IN_SYNC);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#refresh(org.eclipse.core.resources.IResource[], int, org.eclipse.core.runtime.IProgressMonitor)
- */
- public void refresh(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException {
- // Nothing to do
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#getDefaultComparisonCriteria()
- */
- public IComparisonCriteria getDefaultComparisonCriteria() {
- return new IComparisonCriteria() {
- public boolean compare(IResource local, ISubscriberResource remote) {
- return false;
- }
- public boolean compare(ISubscriberResource base, ISubscriberResource remote) {
- return false;
- }
- };
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.core.subscribers.TeamSubscriber#isThreeWay()
- */
- public boolean isThreeWay() {
- return false;
- }
-
- public SyncInfo getSyncInfo(IResource resource, int i) throws TeamException {
- return new TestSyncInfo(resource, i, this);
- }
-}
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 fa427612b..000000000
--- 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.subscribers.SyncInfo;
-
-public class TestSyncInfo extends SyncInfo {
-
- private int kind;
-
- public TestSyncInfo(IResource resource, int kind, TestSubscriber subscriber) throws TeamException {
- super(resource, null, null, subscriber);
- 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 a7a7a332a..000000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/ContentProviderTestView.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ui.views;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.SyncInfoSet;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.team.ui.synchronize.views.*;
-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);
- viewer.setContentProvider(new SyncInfoSetContentProvider());
- viewer.setLabelProvider(new SyncInfoLabelProvider());
- setInput(new SyncInfoSet(new SyncInfo[0]));
- }
-
- public void setInput(SyncInfoSet set) {
- CompressedFolderDiffNodeRoot root = new CompressedFolderDiffNodeRoot(set);
- viewer.setSorter(root.getSorter());
- viewer.setInput(root);
- }
-
- 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 de8dc2fab..000000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/views/TestTreeViewer.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.team.tests.ui.views;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.team.ui.synchronize.SyncInfoDiffNode;
-
-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(SyncInfoDiffNode 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 3418c9378..000000000
--- 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 065ac06e1..000000000
--- 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 77c5177b2..000000000
--- 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 610fd98e9..000000000
--- 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 9db411aab..000000000
--- 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 2e3f73e65..000000000
--- 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 6f64e0e00..000000000
--- 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 f5e8da229..000000000
--- 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 d783a1f6d..000000000
--- 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 04fd66137..000000000
--- 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 30732a995..000000000
--- 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 ae9310bab..000000000
--- 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 b53f09fb8..000000000
--- 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 f34ca5123..000000000
--- 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 d289b4e28..000000000
--- 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 13c0e27f9..000000000
--- 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 a2c69b959..000000000
--- 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 922e0ef30..000000000
--- 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 c92dab1f8..000000000
--- 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 139eb28a0..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/book.css
+++ /dev/null
@@ -1 +0,0 @@
-P.Code { display: block; text-align: left; text-indent: 0.00pt; margin-top: 0.000000pt; margin-bottom: 0.000000pt; margin-right: 0.000000pt; margin-left: 15pt; font-size: 10.000000pt; font-weight: medium; font-style: Regular; color: #4444CC; text-decoration: none; vertical-align: baseline; text-transform: none; font-family: "Courier New"; } H6.CaptionFigColumn { display: block; text-align: left; text-indent: 0.000000pt; margin-top: 3.000000pt; margin-bottom: 11.000000pt; margin-right: 0.000000pt; margin-left: 0.000000pt; font-size: 9.000000pt; font-weight: medium; font-style: Italic; color: #000000; text-decoration: none; vertical-align: baseline; text-transform: none; font-family: "Arial"; } P.Note { display: block; text-align: left; text-indent: 0pt; margin-top: 19.500000pt; margin-bottom: 19.500000pt; margin-right: 0.000000pt; margin-left: 30pt; font-size: 11.000000pt; font-weight: medium; font-style: Italic; color: #000000; text-decoration: none; vertical-align: baseline; text-transform: none; font-family: "Arial"; } EM.UILabel { font-weight: Bold; font-style: Regular; text-decoration: none; vertical-align: baseline; text-transform: none; } EM.CodeName { font-weight: Bold; font-style: Regular; text-decoration: none; vertical-align: baseline; text-transform: none; font-family:"Courier New"; } /* following font face declarations need to be removed for DBCS */ body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-family: Arial, Helvetica, sans-serif; color: #000000} pre { font-family: Courier, monospace} /* end font face declarations */ /* following font size declarations should be OK for DBCS */ body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-size: 10pt; } pre { font-size: 10pt} /* end font size declarations */ body { background: #FFFFFF} h1 { font-size: 18pt; margin-top: 5; margin-bottom: 1 } h2 { font-size: 14pt; margin-top: 25; margin-bottom: 3 } h3 { font-size: 11pt; margin-top: 20; margin-bottom: 3 } h4 { font-size: 10pt; margin-top: 20; margin-bottom: 3; font-style: italic } p { margin-top: 10px; margin-bottom: 10px } pre { margin-left: 6; font-size: 9pt } a:link { color: #0000FF } a:hover { color: #000080 } a:visited { text-decoration: underline } ul { margin-top: 0; margin-bottom: 10 } li { margin-top: 0; margin-bottom: 0 } li p { margin-top: 0; margin-bottom: 0 } ol { margin-top: 0; margin-bottom: 10 } dl { margin-top: 0; margin-bottom: 10 } dt { margin-top: 0; margin-bottom: 0; font-weight: bold } dd { margin-top: 0; margin-bottom: 0 } strong { font-weight: bold} em { font-style: italic} var { font-style: italic} div.revision { border-left-style: solid; border-left-width: thin; border-left-color: #7B68EE; padding-left:5 } th { font-weight: bold } \ No newline at end of file
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 ef6cbe55f..000000000
--- 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 df89da511..000000000
--- 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 e83ba16a1..000000000
--- 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 4b35dcc40..000000000
--- 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 74441500b..000000000
--- 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 2f8a8cc3b..000000000
--- 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 29343ae21..000000000
--- 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 971d5986f..000000000
--- 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 0c2c9e455..000000000
--- 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 ecdc16172..000000000
--- 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: 2003/12/04 21:43:57 $</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 da57e72b0..000000000
--- 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>
-
-Answer comes here.
-
-</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 083a763a2..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00009.html
+++ /dev/null
@@ -1,35 +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: 2003/12/04 21:43:57 $</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>
-<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>
-<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 1b71fc5e9..000000000
--- 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 4d24c4a88..000000000
--- 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: 2003/12/04 21:43:57 $</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 1b01caa93..000000000
--- 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 49667b242..000000000
--- 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: 2003/12/04 21:43:57 $</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 ff40a8d24..000000000
--- 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 0f882594c..000000000
--- 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 4689da8e7..000000000
--- 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: 2003/12/04 21:43:57 $</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 800d128eb..000000000
--- 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 7a2372c33..000000000
--- 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: 2003/12/04 21:43:57 $</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 0d8a148d8..000000000
--- 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: 2003/12/04 21:43:57 $</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 ecbd13cda..000000000
--- 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 481facab3..000000000
--- 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: 2003/12/04 21:43:57 $</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 34dc2acf1..000000000
--- 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: 2003/12/04 21:43:57 $</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 1dd4d2252..000000000
--- 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: 2003/12/04 21:43:57 $</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 0748ab05d..000000000
--- 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: 2003/12/04 21:43:57 $</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 cf2b61bac..000000000
--- 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: 2003/12/04 21:43:57 $</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 65c2c8ac6..000000000
--- 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: 2003/12/04 21:43:57 $</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 7048992cc..000000000
--- 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: 2003/12/04 21:43:57 $</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 4151a992e..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/html/00028.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<html><head><title>Reconnecting to existing</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 to existing</h2>
-<p>Since: 3.0 M6<br>
-Last Modified: $Date: 2003/12/15 21:44:59 $</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>
-<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 OK.</li>
- <li>You will be prompted that the project already exists. Click Yes to continue.
- In the next dialog that appears, select HEAD as the branch to share with.</li>
- <li>Click Finish. This will close the wizard and show the sync view.</li>
- <li>When the background job is completed, ensure that all folders (except new ones)
- are marked as in-sync and all files (except new ones) are conflicting additions.
- <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/00028a.html b/tests/org.eclipse.team.tests.cvs.core/html/00028a.html
deleted file mode 100644
index f6ba48671..000000000
--- 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 35920d4ad..000000000
--- 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: 2003/12/15 21:44:59 $</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 9f35b9e89..000000000
--- 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/08 17:01:17 $</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 9add72202..000000000
--- 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: 2003/12/15 21:44:59 $</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 017278eb3..000000000
--- 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/08 17:01:17 $</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 c8e9fcbbb..000000000
--- 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: 2004/01/08 17:01:17 $</p><body>
-
-You should be able to generate private/public keys in the SSH2 preference
-page. Here are some scenarios for testing:
-<ul>
-<li>open key generation preference page
-<li>
-</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 5f5029dd1..000000000
--- 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/08 17:01:17 $</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/launchConfigurations/CVS Core Tests.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Core Tests.launch
deleted file mode 100644
index 171163efc..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Core Tests.launch
+++ /dev/null
@@ -1,19 +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"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-</listAttribute>
-<stringAttribute key="vmargs" value="-Declipse.cvs.properties=c:\eclipse\repository.properties -Declipse.cvs.testName2=testFileAdditions"/>
-<booleanAttribute key="default" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<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"/>
-<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.coretestapplication"/>
-</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 fac8b26de..000000000
--- 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 f72687185..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/One CVS Test.launch
+++ /dev/null
@@ -1,20 +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.subscriber.CVSMergeSubscriberTest"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="default" value="true"/>
-<stringAttribute key="vmargs" value="-Declipse.cvs.properties=c:\eclipse\repository.properties -Declipse.cvs.testName2=testUpdateBinaryConflict"/>
-<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=""/>
-<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="application" value="org.eclipse.pde.junit.runtime.uitestapplication"/>
-<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 5a3281b3b..000000000
--- 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 792f2b6d3..000000000
--- 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 a4fbb37e1..000000000
--- 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 cbdd28eba..000000000
--- 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 09ea3e644..000000000
--- 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 d16695f8d..000000000
--- 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 8a0f9cf83..000000000
--- 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 ea3729efb..000000000
--- 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 a127ff3d7..000000000
--- 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 3ab59a67f..000000000
--- 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 8c7fe2111..000000000
--- 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 c88e4d621..000000000
--- 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 5ba54a8be..000000000
--- 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 547cc5e4f..000000000
--- 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 a3f314b05..000000000
--- 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 d45f90e27..000000000
--- 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 d45364ec8..000000000
--- 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 127506764..000000000
--- 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 c7078a38d..000000000
--- 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 4bf706a8b..000000000
--- 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 e9257ebb5..000000000
--- 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 0a9387496..000000000
--- 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 d2c43208e..000000000
--- 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 0df86a5ed..000000000
--- 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 7ea4fba13..000000000
--- 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 ad874ffd7..000000000
--- 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 ee409b1f0..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestSetup.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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;
-
-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)CVSProviderPlugin.getPlugin().getRepository(location);
- 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 8222b0c98..000000000
--- 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 ec6ff38d3..000000000
--- 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 3931795fa..000000000
--- 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 81722a202..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java
+++ /dev/null
@@ -1,911 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.TeamSubscriberSyncInfoCollector;
-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.team.tests.ccvs.ui.HeadlessCVSRunnableContext;
-
-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(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(TeamSubscriberSyncInfoCollector 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 {
- op.setCVSRunnableContext(new HeadlessCVSRunnableContext());
- op.run();
- } 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 a89cec5e1..000000000
--- 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 c8f4ad4af..000000000
--- 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 682c9b6ec..000000000
--- 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 d64a946ff..000000000
--- 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 576e44629..000000000
--- 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 12d4bc836..000000000
--- 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 207241341..000000000
--- 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 98f1dfbf0..000000000
--- 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 3dc2c59d0..000000000
--- 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 8c1f0b18b..000000000
--- 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 948cad490..000000000
--- 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 f769c0b28..000000000
--- 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 011c09238..000000000
--- 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 c60abc3ac..000000000
--- 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 f938909ea..000000000
--- 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 61ec86dd2..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncBytesTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.cvsresources;
-
-import java.text.ParseException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.CVSDateFormatter;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-import org.eclipse.team.tests.ccvs.core.TestConnection;
-
-public class ResourceSyncBytesTest extends EclipseTest {
-
- public ResourceSyncBytesTest() {
- super();
- }
-
- public ResourceSyncBytesTest(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(ResourceSyncBytesTest.class);
- return new CVSTestSetup(suite);
- }
-
- /**
- * Convert the input to bytes and get the bytes in the given slot delimited by slash (/).
- * Only retieve the bytes in the given slot and not the rest.
- * @param input
- * @param slot
- * @return
- */
- private byte[] getBytesForSlot(String input, int slot) {
- return getBytesForSlot(input, slot, false /* include rest */);
- }
-
- /**
- * Convert the input to bytes and get the bytes in the given slot delimited by slash (/).
- * @param input
- * @param slot
- * @return
- */
- private byte[] getBytesForSlot(String input, int slot, boolean includeRest) {
- byte[] result = Util.getBytesForSlot(input.getBytes(), (byte) '/', slot, includeRest);
- return result;
- }
-
- private void assertEqualBytes(String expected, byte[] actual) {
- assertEquals(expected, new String(actual));
- }
-
- public void testUtilGetBytesForSlot() {
- // test success cases
- String input = "zero/one/two";
- assertEqualBytes("zero", getBytesForSlot(input, 0));
- assertEqualBytes("one", getBytesForSlot(input, 1));
- assertEqualBytes("two", getBytesForSlot(input, 2));
- assertEqualBytes("one/two", getBytesForSlot(input, 1, true /* include rest */));
- assertEqualBytes("", getBytesForSlot("///", 0));
- assertEqualBytes("", getBytesForSlot("///", 1));
- assertEqualBytes("", getBytesForSlot("///", 2));
- assertEqualBytes("/", getBytesForSlot("///", 2, true /* include rest */));
-
- // test failure cases
- input = "zero/one/two";
- assertNull(getBytesForSlot(input, 3));
- assertNull(getBytesForSlot(input, 4));
- assertNull(getBytesForSlot(input, -1));
- }
-
- public void testSendEntry() throws CVSException, ParseException {
- ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(":test:user:password@host:/path");
- // disable version detemrination to reduce traffic
- CVSProviderPlugin.getPlugin().setDetermineVersionEnabled(false);
- // create and open a session
- Session session = new Session(location, CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot()));
- session.open(DEFAULT_MONITOR, 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 1e7d9ad4b..000000000
--- 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 594b6c78b..000000000
--- 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 31c55b716..000000000
--- 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 19e2aee45..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ConcurrencyTests.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.team.tests.ccvs.core.provider;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-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.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.team.core.TeamException;
-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;
-import org.eclipse.team.tests.ccvs.ui.HeadlessCVSRunnableContext;
-
-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 InterruptedException, TeamException, CoreException {
- 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;
- }
- };
-
- IJobChangeListener listener = new JobChangeAdapter() {
- public void done(IJobChangeEvent event) {
- done[0] = true;
- }
- };
- FetchMembersOperation operation = new FetchMembersOperation(null, folder, collector);
- operation.setCVSRunnableContext(new HeadlessCVSRunnableContext(listener));
- 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 c74dbd5d2..000000000
--- 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 fc73b503a..000000000
--- 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 76833fc6a..000000000
--- 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 d1a01d7be..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ModuleTest.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import junit.framework.Assert;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.internal.plugins.PluginDescriptor;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IPluginRegistry;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteModule;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * This class tests the Command framework using simple CVS commands
- */
-public class ModuleTest extends EclipseTest {
-
- public static final String RESOURCE_PATH = "resources/CommandTest/";
-
- public ModuleTest() {
- super(null);
- }
-
- public ModuleTest(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(ModuleTest.class);
- //return new CVSTestSetup(suite);
- return new CVSTestSetup(new ModuleTest("testAliasForFiles"));
- }
-
- private static boolean isSetUp = false;
-
- private static RemoteModule[] remoteModules;
-
- public void setUp() throws TeamException, CoreException, IOException {
- if (isSetUp) return;
-
- // upload the modules definitions file
- PluginDescriptor testPlugin = (PluginDescriptor)Platform.getPluginRegistry().getPluginDescriptor("org.eclipse.team.tests.cvs.core");
- String filePath = testPlugin.getLocation().concat(RESOURCE_PATH + "CVSROOT/modules");
- URL url = null;
- try {
- url = new URL (filePath);
- } catch (java.net.MalformedURLException e) {
- assertTrue("Bad URL for " + filePath, true);
- }
-
- waitMsec(1000);
-
- IProject cvsroot = checkoutProject(null, "CVSROOT", null);
- InputStream in = url.openStream();
- try {
- cvsroot.getFile("modules").setContents(in, false, false, DEFAULT_MONITOR);
- } finally {
- in.close();
- }
- commitProject(cvsroot);
-
- uploadProject("common");
-
- remoteModules = RemoteModule.getRemoteModules(getRepository(), null, DEFAULT_MONITOR);
-
- isSetUp = true;
- }
-
- protected void uploadProject(String projectName) throws TeamException, IOException, CoreException {
- // locate the test case contents in the plugin resources
- IPluginRegistry registry = Platform.getPluginRegistry();
- IPluginDescriptor descriptor = registry.getPluginDescriptor("org.eclipse.team.tests.cvs.core");
- URL baseURL = descriptor.getInstallURL();
- URL url = new URL(baseURL, RESOURCE_PATH + projectName);
- url = Platform.resolve(url);
- Assert.assertTrue(url.getProtocol().equals("file"));
- IPath path = new Path(url.getPath());
-
- // create a project rooted there
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IWorkspaceRoot workspaceRoot = workspace.getRoot();
- IProject project = workspaceRoot.getProject(projectName);
- IProjectDescription projectDescription = workspace.newProjectDescription(projectName);
- projectDescription.setLocation(path);
- project.create(projectDescription, null);
- project.open(null);
-
- // import the project into CVS
- Session s = new Session(getRepository(), CVSWorkspaceRoot.getCVSFolderFor(project));
- s.open(DEFAULT_MONITOR, 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);
- IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project1, CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project1), (ICVSResource)tree.getRemote(), false, false);
- RemoteModule module = getRemoteModule("project1");
- assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
- }
-
- /*
- * Test the following definition
- *
- * # checkout docs in flattened structure
- * docs -d docs common/docs
- * macros common/macros
- */
- public void testFlattenedStructure() throws TeamException, CoreException, IOException {
-
- IProject docs = checkoutProject("docs", null);
- IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(docs, CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(docs), (ICVSResource)tree.getRemote(), false, false);
- RemoteModule module = getRemoteModule("docs");
- assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-
- IProject macros = checkoutProject("macros", null);
- tree = CVSWorkspaceRoot.getRemoteSyncTree(macros, CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(macros), (ICVSResource)tree.getRemote(), false, false);
- module = getRemoteModule("macros");
- assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-
- }
-
- /*
- * Test the following definition
- *
- * # include docs with project
- * project2 project2 &docs
- * # only project2
- * project2-only project2
- */
- public void testIncludeAndExcludeDocs() throws TeamException, CoreException, IOException {
- uploadProject("project2");
- IProject project2 = checkoutProject("project2", null);
- IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project2, CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project2), (ICVSResource)tree.getRemote(), false, false);
-
- RemoteModule module = getRemoteModule("project2");
- assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-
- project2 = checkoutProject("project2-only", null);
- tree = CVSWorkspaceRoot.getRemoteSyncTree(project2, CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project2), (ICVSResource)tree.getRemote(), false, false);
-
- module = getRemoteModule("project2-only");
- assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-
- }
-
- /*
- * Test the following definition
- *
- * # a use of alias
- * project3-src project3/src
- * project3-src_file -a project3-src/file.c mc-src/file.h
- * project3-sub project3/sub &project3-src_file
- */
- public void testAliasForFiles() throws TeamException, CoreException, IOException {
- uploadProject("project3");
- IProject project3 = checkoutProject("project3-sub", null);
- IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project3, CVSTag.DEFAULT, DEFAULT_MONITOR);
-// assertEquals("Local does not match remote", Session.getManagedResource(project3), (ICVSResource)tree.getRemote(), false, false);
-
- project3 = checkoutProject("project3-src", null);
- tree = CVSWorkspaceRoot.getRemoteSyncTree(project3, CVSTag.DEFAULT, DEFAULT_MONITOR);
-// assertEquals("Local does not match remote", Session.getManagedResource(project3), (ICVSResource)tree.getRemote(), false, false);
-
- project3 = checkoutProject("project3-src_file", null);
- tree = CVSWorkspaceRoot.getRemoteSyncTree(project3, CVSTag.DEFAULT, DEFAULT_MONITOR);
-// assertEquals("Local does not match remote", Session.getManagedResource(project3), (ICVSResource)tree.getRemote(), false, false);
- }
-
- /*
- * Test the following definition
- *
- * # using aliases to provide packaging
- * project7-common -a project7/common
- * project7-pc -a project7-common project7/pc
- * project7-linux -a project7-common project7/linux
- */
- public void testAliases() throws TeamException, CoreException, IOException {
- uploadProject("project7");
- IProject project7 = checkoutProject("project7-common", null);
- IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project7, CVSTag.DEFAULT, DEFAULT_MONITOR);
-// assertEquals("Local does not match remote", Session.getManagedResource(project7), (ICVSResource)tree.getRemote(), false, false);
-
- project7 = checkoutProject("project7-pc", null);
- tree = CVSWorkspaceRoot.getRemoteSyncTree(project7, CVSTag.DEFAULT, DEFAULT_MONITOR);
-// assertEquals("Local does not match remote", Session.getManagedResource(project7), (ICVSResource)tree.getRemote(), false, false);
-
- project7 = checkoutProject("project7-linux", null);
- tree = CVSWorkspaceRoot.getRemoteSyncTree(project7, CVSTag.DEFAULT, DEFAULT_MONITOR);
-// assertEquals("Local does not match remote", Session.getManagedResource(project7), (ICVSResource)tree.getRemote(), false, false);
- }
-
-
- /*
- * Test the following definition
- *
- * # simple use of module alias
- * project8-alias -a project8 common
- */
- public void testSimpleAlias() throws TeamException, CoreException, IOException {
- uploadProject("project8");
-
- // XXX Module checkout will not work yet
- // IProject project8 = checkoutProject("project8-alias", null);
-
- RemoteModule module = getRemoteModule("project8-alias");
- }
-
- public RemoteModule getRemoteModule(String moduleName) {
- for (int i = 0; i < remoteModules.length; i++) {
- RemoteModule module = remoteModules[i];
- // XXX shouldn't be getName
- if (module.getName().equals(moduleName))
- return module;
- }
- return null;
- }
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java
deleted file mode 100644
index 6e32a158a..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.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.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.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolderTree;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolderTreeBuilder;
-import org.eclipse.team.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 {
- IRemoteResource[] children = folder.members(DEFAULT_MONITOR);
- if (deep) {
- for (int i=0;i<children.length;i++) {
- if (children[i].isContainer())
- getMembers((ICVSRemoteFolder)children[i], deep);
- }
- }
- }
-
- /**
- * RemoteFolderTreeBuilder test
- *
- * Perform some remote additions, changes and deletions
- */
- public void testSimpleChanges() throws TeamException, CoreException, IOException {
-
- // Create a test project and a copy of it
- IProject project = createProject("testRemoteTreeBuilder", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
- IProject copy = checkoutCopy(project, "-copy");
-
- // Make some changes to the copy and commit
- IResource[] newResources = buildResources(copy, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false);
- setContentsAndEnsureModified(copy.getFile("changed.txt"));
- CVSTeamProvider provider = getProvider(copy);
- provider.add(newResources, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
- provider.delete(new IResource[] {copy.getFile("deleted.txt")}, DEFAULT_MONITOR);
- provider.checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
- // Build the remote tree from the original and ensure it matches the copy
- RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertRemoteMatchesLocal("testSimpleChanges", tree, copy);
- }
-
- /**
- * RemoteFolderTreeBuilder test
- *
- * Create a remote tree from a local workspace with no remote changes.
- */
- public void testNoRemoteChanges() throws TeamException, CoreException, IOException {
- IProject project = createProject("testNoRemoteChanges", new String[] { "file1.txt", "file2.txt", "folder1/a.txt", "folder2/folder3/b.txt"});
- RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertRemoteMatchesLocal("testNoRemoteChanges", tree, project);
- }
-
- /**
- * RemoteFolderTreeBuilder test
- *
- * Create a base remote tree from a local workspace with no remote changes.
- */
- public void testGetBase() throws TeamException, CoreException, IOException {
- IProject project = createProject("testGetBase", new String[] { "file1.txt", "file2.txt", "folder1/a.txt", "folder2/folder3/b.txt"});
- RemoteFolderTree tree = RemoteFolderTreeBuilder.buildBaseTree(getRepository(), CVSWorkspaceRoot.getCVSFolderFor(project), CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertRemoteMatchesLocal("testGetBase", tree, project);
- }
-
- /**
- * RemoteFolderTreeBuilder test
- *
- * Add a nested folder structure remotely and build the remote tree
- * from the root.
- */
- public void testFolderAddition() throws TeamException, CoreException, IOException {
-
- // Create a test project
- IProject project = createProject("testFolderAddition", new String[] { "file1.txt", "file2.txt", "folder1/", "folder1/a.txt"});
-
- // Checkout and modify a copy
- IProject copy = checkoutCopy(project, "-copy");
- addResources(copy, new String[] { "folder2/folder3/b.txt" }, false);
- getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
- // Build the remote tree from the project
- RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertRemoteMatchesLocal("testFolderAddition", tree, copy);
- }
-
- /**
- * RemoteFolderTreeBuilder test
- *
- * Add a nested folder structure remotely and build the remote tree
- * from a child
- */
- public void testNonRootBuild() throws CoreException, TeamException, IOException {
-
- // Create a test project
- IProject project = createProject("testNonRootBuild", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-
- // Checkout and modify a copy
- IProject copy = checkoutCopy(project, "-copy");
- setContentsAndEnsureModified(copy.getFile("folder2/folder3/c.txt"));
- addResources(copy, new String[] { "folder2/folder3/add.txt" }, false);
- getProvider(copy).delete(new IResource[] {copy.getFile("folder2/folder3/b.txt")}, DEFAULT_MONITOR);
- getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
- // Build the remote tree from the project
- RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project.getFolder("folder2"), CVSTag.DEFAULT, DEFAULT_MONITOR);
- assertRemoteMatchesLocal("testNonRootBuild", tree, copy.getFolder("folder2"));
- }
-
- /**
- * RemoteResource test
- *
- */
- public void testGetRemoteResource() throws CoreException, TeamException, IOException {
- IProject project = createProject("testGetRemoteResource", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
- ICVSRemoteResource file = CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("folder1/a.txt"));
- assertTrue("File should exist remotely", file.exists(DEFAULT_MONITOR));
- assertEquals(Path.EMPTY, (ICVSResource)file, (ICVSResource)CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("folder1/a.txt")), false, false);
- ICVSRemoteResource folder = CVSWorkspaceRoot.getRemoteResourceFor(project.getFolder("folder2/folder3/"));
- getMembers((ICVSRemoteFolder)folder, true);
- assertTrue("Folder should exist remotely", folder.exists(DEFAULT_MONITOR));
- // XXX this didn't work right. I'll need to check into it later
-// assertEquals("Remote folder should match local folder", (ICVSResource)folder, (ICVSResource)Client.getManagedFolder(project.getFolder("folder2/folder3/").getLocation().toFile()));
- }
-
- /*
- * Test that the fetch of a tagged tree matches what is checked out for that tag
- */
- public void testVersionTag() throws TeamException, CoreException, IOException {
- // Create a test project and version it
- CVSTag v1Tag = new CVSTag("v1", CVSTag.VERSION);
- IProject project = createProject("testVersionTag", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/folder3/c.txt"});
- tagProject(project, v1Tag, false);
-
- // Make some changes, additions (including folders) and deletions and commit
- IFile file = project.getFile("folder1/a.txt");
- file.setContents(getRandomContents(), false, false, null);
- addResources(project, new String[] { "folder2/folder3/add.txt" }, false);
- deleteResources(project, new String[] {"folder1/b.txt"}, false);
- getProvider(project).checkin(new IResource[] {project}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
- // Fetch the remote tree for the version
- IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, v1Tag, DEFAULT_MONITOR);
-
- // Check out the project version
- project = checkoutCopy(project, v1Tag);
-
- // Compare the two
- assertEquals(Path.EMPTY, (ICVSResource)tree.getRemote(), (ICVSResource)CVSWorkspaceRoot.getCVSResourceFor(project), false, false);
- }
-
- /*
- * Test the fetching of the contents of an empty file
- */
- public void testEmptyFile() throws TeamException, CoreException, IOException {
-
- // Create a project with an empty file
- IProject project = createProject("testEmptyFile", new String[] { "file.txt"});
- IFile file = project.getFile("file.txt");
- setContentsAndEnsureModified(file, "");
- commitResources(project, new String[] {"file.txt"});
-
- ICVSRemoteResource remote = CVSWorkspaceRoot.getRemoteResourceFor(file);
- InputStream in = remote.getContents(DEFAULT_MONITOR);
- int count = 0;
- while(in.read() != -1) {
- count++;
- }
- assertTrue("Remote file should be empty", count==0);
- }
-
- /*
- * Test the fetching of the contents from multiple remote revisions of a file
- */
- public void testFileRevisions() throws TeamException, CoreException, IOException {
-
- // Create a project with an empty file
- IProject project = createProject("testFileRevisions", new String[] { "file.txt"});
- setContentsAndEnsureModified(project.getFile("file.txt"), "hi there");
- commitResources(project, new String[] {"file.txt"});
- setContentsAndEnsureModified(project.getFile("file.txt"), "bye there");
- commitResources(project, new String[] {"file.txt"});
-
- ICVSRemoteFile remote = (ICVSRemoteFile)CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("file.txt"));
- ILogEntry[] entries = remote.getLogEntries(DEFAULT_MONITOR);
- for (int i=0;i<entries.length;i++) {
- InputStream in = entries[i].getRemoteFile().getContents(DEFAULT_MONITOR);
-
- if (entries[i].getRevision().equals("1.2")) {
- int count = 0;
- byte[] buffer = new byte[1024];
- int c;
- while((c = in.read()) != -1) {
- buffer[count] = (byte)c;
- count++;
- }
- String contents = new String(buffer, 0, count);
- assertEquals("the contents of revision 1.2 are not equal", contents, "hi there");
- } else if (entries[i].getRevision().equals("1.3")) {
- int count = 0;
- byte[] buffer = new byte[1024];
- int c;
- while((c = in.read()) != -1) {
- buffer[count] = (byte)c;
- count++;
- }
- String contents = new String(buffer, 0, count);
- assertEquals("the contents of revision 1.3 are not equal", contents, "bye there");
- }
- }
- }
-
- public void testTag() throws TeamException, CoreException, IOException {
- IProject project = createProject("testTag", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-
- ICVSRemoteFolder remote = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project);
- CVSTag tag = new CVSTag("v1", CVSTag.VERSION);
- tagRemoteResource(remote, tag, false);
- ICVSRemoteFolder v1 = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteTree(project, tag, DEFAULT_MONITOR);
- assertEquals(Path.EMPTY, remote, v1, false);
-
- CVSTag tag2 = new CVSTag("v2", CVSTag.VERSION);
- tagRemoteResource(v1, tag2, false);
- ICVSRemoteFolder v2 = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteTree(project, tag2, DEFAULT_MONITOR);
- assertEquals(Path.EMPTY, remote, v2, false);
-
- // Test tag with existing
- setContentsAndEnsureModified(project.getFile("file1.txt"));
- commitProject(project);
- remote = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project);
- tagRemoteResource(remote, tag, true /* force */);
- v1 = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteTree(project, tag, DEFAULT_MONITOR);
- assertEquals(Path.EMPTY, remote, v1, false);
-
- // Test local tag with existing.
- setContentsAndEnsureModified(project.getFile("file1.txt"));
- commitProject(project);
- tagProject(project, tag2, true);
- IProject copy = checkoutCopy(project, tag2);
- assertEquals(project, copy, false, false);
- }
-
- public void testExists() throws TeamException, CoreException, IOException, InterruptedException {
- IProject project = createProject("testExists", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
- ICVSRemoteResource resource1 = CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("file1.txt"));
- assertTrue(resource1.exists(DEFAULT_MONITOR));
- ICVSRemoteResource resource2 = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project.getFolder("folder2/folder3/"));
- assertTrue(resource2.exists(DEFAULT_MONITOR));
- deleteResources(project, new String[] {"file1.txt", "folder2/folder3/b.txt", "folder2/folder3/c.txt" }, true);
- assertTrue( ! resource1.exists(DEFAULT_MONITOR));
- assertTrue(resource2.exists(DEFAULT_MONITOR));
- if (CVSTestSetup.INITIALIZE_REPO) {
- CVSTestSetup.executeRemoteCommand(getRepository(), "rm -rf " + ((ICVSFolder)resource2).getFolderSyncInfo().getRemoteLocation());
- assertTrue( ! resource2.exists(DEFAULT_MONITOR));
- }
- }
-
-// /**
-// * Test building a sync tree using the RemoteFolderTreeBuilder using a remote resource as the
-// * starting point instead of a local one.
-// */
-// public void testBuildRemoteTree() throws TeamException, CoreException, IOException, InterruptedException {
-// // Create a project and then delete it locally
-// IProject project = createProject("testBuildRemoteTree", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-// String name = project.getName();
-// project.delete(true, false, DEFAULT_MONITOR);
-// // Create a remote resource for the project and build a sync tree from it
-// RemoteFolder folder = new RemoteFolder(null, getRepository(), new Path(name), null);
-// RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)folder.getRepository(), folder, null, DEFAULT_MONITOR);
-// // Reload the project from the repository and ensure that the tree and project are equal.
-// checkoutProject(project, name, null);
-// assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project), tree, false, true);
-// }
-
- 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);
- ICVSRemoteFile remote = (ICVSRemoteFile)CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("file1.txt"));
- String fetchedContents = asString(remote.getBufferedStorage(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 8cdcea0bf..000000000
--- 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 ddade19ed..000000000
--- 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 86d9809b1..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/AllTestsTeamSubscriber.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.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(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/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 093248ef0..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSMergeSubscriberTest.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-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(TeamSubscriber subscriber, SyncInfo[] infos, boolean allowOverwrite) throws TeamException, InvocationTargetException, InterruptedException {
- TestMergeUpdateAction action = new TestMergeUpdateAction(allowOverwrite);
- action.getRunnable(new MutableSyncInfoSet(infos)).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});
- }
-
- 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 1e0405886..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSSyncSubscriberTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.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.sync.RemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSSyncTreeSubscriber;
-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 ITeamResourceChangeListener 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 TeamSubscriber getWorkspaceSubscriber() throws TeamException {
- TeamSubscriber 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(TeamSubscriber 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, TeamSubscriber subscriber, IContainer root, String[] resourcePaths, boolean refresh, int[] syncKinds) throws CoreException, TeamException {
- assertTrue(resourcePaths.length == syncKinds.length);
- if (refresh) refresh(subscriber, root);
- IResource[] resources = getResources(root, resourcePaths);
- for (int i=0;i<resources.length;i++) {
- assertSyncEquals(message, subscriber, resources[i], syncKinds[i]);
- }
-
- }
-
- protected void assertSyncEquals(String message, TeamSubscriber subscriber, IResource resource, int syncKind) throws TeamException {
- int conflictTypeMask = 0x0F; // ignore manual and auto merge sync types for now.
- SyncInfo info = 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 " +
- RemoteSyncElement.kindToString(kindOther) + " but was " +
- RemoteSyncElement.kindToString(kind), kind == kindOther);
- }
-
- protected SyncInfo getSyncInfo(TeamSubscriber subscriber, IResource resource) throws TeamException {
- return getSyncInfoSource().getSyncInfo(subscriber, resource);
- }
-
- /**
- * @param changes
- * @param resources
- */
- protected void assertSyncChangesMatch(TeamDelta[] changes, IResource[] resources) {
- // First, ensure that all the resources appear in the delta
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- boolean found = false;
- for (int j = 0; j < changes.length; j++) {
- TeamDelta delta = changes[j];
- if (delta.getResource().equals(resource)) {
- found = true;
- break;
- }
- }
- assertTrue("No change reported for " + resource, found);
- }
- // TODO: We'll worry about extra deltas later
-// // Next, ensure there are no extra deltas
-// List changedResources = new ArrayList(resources.length);
-// changedResources.addAll(Arrays.asList(resources));
-// for (int i = 0; i < changes.length; i++) {
-// TeamDelta change = changes[i];
-// IResource resource = change.getResource();
-// assertTrue("Unanticipated change reported for " + resource, changedResources.contains(resource));
-// }
- }
-
- /*
- * Assert that the named resources have no local resource or sync info
- */
- protected void assertDeleted(String message, IContainer root, String[] resourcePaths) throws CoreException, TeamException {
- IResource[] resources = getResources(root, resourcePaths);
- for (int i=0;i<resources.length;i++) {
- try {
- if (! resources[i].exists())
- break;
- } catch (AssertionFailedError e) {
- break;
- }
- assertTrue(message + ": resource " + resources[i] + " still exists in some form", false);
- }
- }
-
- public static class ResourceCondition {
- public boolean matches(IResource resource) throws CoreException, TeamException {
- return true;
- }
- }
-
- protected IResource[] collect(IResource[] resources, final ResourceCondition condition, int depth) throws CoreException, TeamException {
- final Set affected = new HashSet();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (resource.exists() || resource.isPhantom()) {
- resource.accept(new IResourceVisitor() {
- public boolean visit(IResource r) throws CoreException {
- try {
- if (condition.matches(r)) {
- affected.add(r);
- }
- } catch (TeamException e) {
- throw new CoreException(e.getStatus());
- }
- return true;
- }
- }, depth, true /* include phantoms */);
- } else {
- if (condition.matches(resource)) {
- affected.add(resource);
- }
- }
- }
- return (IResource[]) affected.toArray(new IResource[affected.size()]);
- }
-
- /**
- * @param resources
- * @param condition
- * @return
- */
- protected IResource[] collectAncestors(IResource[] resources, ResourceCondition condition) throws CoreException, TeamException {
- Set affected = new HashSet();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- while (resource.getType() != IResource.ROOT) {
- if (condition.matches(resource)) {
- affected.add(resource);
- } else {
- break;
- }
- resource = resource.getParent();
- }
- }
- return (IResource[]) affected.toArray(new IResource[affected.size()]);
- }
-
- protected TeamDelta[] deregisterSubscriberListener(TeamSubscriber subscriber) throws TeamException {
- subscriber.removeListener(listener);
- return (TeamDelta[]) accumulatedTeamDeltas.toArray(new TeamDelta[accumulatedTeamDeltas.size()]);
- }
-
- protected ITeamResourceChangeListener registerSubscriberListener(TeamSubscriber subscriber) throws TeamException {
- listener = new ITeamResourceChangeListener() {
- public void teamResourceChanged(TeamDelta[] deltas) {
- accumulatedTeamDeltas.addAll(Arrays.asList(deltas));
- }
- };
- accumulatedTeamDeltas.clear();
- subscriber.addListener(listener);
- return listener;
- }
-
- protected SyncInfo[] createSyncInfos(TeamSubscriber 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(TeamSubscriber 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);
- TestMarkAsMergedAction action = new TestMarkAsMergedAction();
- action.getRunnable(new MutableSyncInfoSet(infos)).run(DEFAULT_MONITOR);
- }
-}
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 6a572e29f..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSWorkspaceSubscriberTest.java
+++ /dev/null
@@ -1,1308 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.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.*;
-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.CVSSubscriberAction;
-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);
- TeamDelta[] changes = deregisterSubscriberListener();
- assertSyncChangesMatch(changes, (IResource[]) affected.toArray(new IResource[affected.size()]));
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (resource.getType() == IResource.FILE) {
- assertSyncEquals("Add", resource, SyncInfo.OUTGOING | SyncInfo.ADDITION);
- } else {
- // TODO: a folder should be in sync but isn't handled properly
- assertSyncEquals("Add", resource, SyncInfo.IN_SYNC);
- }
-
- }
- }
-
- private void registerSubscriberListener() throws TeamException {
- registerSubscriberListener(getSubscriber());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.tests.ccvs.core.EclipseTest#deleteResources(org.eclipse.core.resources.IResource[])
- */
- protected void deleteResources(IResource[] resources) throws TeamException, CoreException {
- IResource[] affected = collect(resources, new ResourceCondition(), IResource.DEPTH_INFINITE);
- registerSubscriberListener();
- super.deleteResources(resources);
- TeamDelta[] changes = deregisterSubscriberListener();
- assertSyncChangesMatch(changes, affected);
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- // 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 TeamDelta[] deregisterSubscriberListener() throws TeamException {
- return deregisterSubscriberListener(getSubscriber());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.tests.ccvs.core.EclipseTest#commitResources(org.eclipse.core.resources.IResource[])
- */
- protected void commitResources(IResource[] resources, int depth) throws TeamException, CVSException, CoreException {
- IResource[] affected = collect(resources, new ResourceCondition() {
- public boolean matches(IResource resource) throws CoreException, TeamException {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- return (!cvsResource.isFolder() && cvsResource.isManaged() && cvsResource.isModified(DEFAULT_MONITOR));
- }
- }, IResource.DEPTH_INFINITE);
- registerSubscriberListener();
- super.commitResources(resources, depth);
- TeamDelta[] changes = deregisterSubscriberListener();
- assertSyncChangesMatch(changes, affected);
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (resource.exists())
- assertSyncEquals("Commit", resource, SyncInfo.IN_SYNC);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.tests.ccvs.core.EclipseTest#unmanageResources(org.eclipse.core.resources.IResource[])
- */
- protected void unmanageResources(IResource[] resources) throws CoreException, TeamException {
- IResource[] affected = collect(resources, new ResourceCondition() {
- public boolean matches(IResource resource) throws CoreException, TeamException {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- return (cvsResource.isManaged());
- }
- }, IResource.DEPTH_INFINITE);
- registerSubscriberListener();
- super.unmanageResources(resources);
- TeamDelta[] changes = deregisterSubscriberListener();
- assertSyncChangesMatch(changes, affected);
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (resource.exists())
- assertSyncEquals("Unmanage", resource, SyncInfo.IN_SYNC);
- }
- }
-
- /******************************************************************
- * 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 {
- return runSubscriberAction(new TestUpdateAction(), container, hierarchy);
- }
-
- public IResource[] commit(IContainer container, String[] hierarchy) throws CoreException, TeamException {
- return runSubscriberAction(new TestCommitAction(), container, hierarchy);
- }
-
- public IResource[] overrideAndUpdate(IContainer container, String[] hierarchy, boolean shouldPrompt) throws CoreException, TeamException {
- TestOverrideAndUpdate action = new TestOverrideAndUpdate();
- IResource[] resources = runSubscriberAction(action, container, hierarchy);
- assertTrue(shouldPrompt == action.isPrompted());
- return resources;
- }
-
- public IResource[] overrideAndCommit(IContainer container, String[] hierarchy, boolean shouldPrompt) throws CoreException, TeamException {
- TestOverrideAndCommit action = new TestOverrideAndCommit();
- IResource[] resources = runSubscriberAction(action, container, hierarchy);
- assertTrue(shouldPrompt == action.isPrompted());
- return resources;
- }
-
- private IResource[] runSubscriberAction(CVSSubscriberAction action, IContainer container, String[] hierarchy) throws CoreException {
- IResource[] resources = getResources(container, hierarchy);
- SyncInfo[] syncResources = createSyncInfos(resources);
- try {
- action.getRunnable(new MutableSyncInfoSet(syncResources)).run(DEFAULT_MONITOR);
- return resources;
- } catch (InvocationTargetException e) {
- throw CVSException.wrapException(e);
- } catch (InterruptedException e) {
- fail("Operation was interupted");
- }
- return new IResource[0];
- }
-
- /******************************************************************
- * 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 ab4eb1028..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncInfoSource.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.subscriber;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-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.SyncInfo;
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSMergeSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-
-/**
- * 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();
-
- public CVSMergeSubscriber createMergeSubscriber(IProject project, CVSTag root, CVSTag branch) {
- CVSMergeSubscriber subscriber = new CVSMergeSubscriber(new IResource[] { project }, root, branch);
- mergeSubscribers.add(subscriber);
- return subscriber;
- }
-
- /**
- * Return the sync info for the given subscriber for the given resource.
- */
- public SyncInfo getSyncInfo(TeamSubscriber subscriber, IResource resource) throws TeamException {
- return subscriber.getSyncInfo(resource);
- }
-
- /**
- * Refresh the subscriber for the given resource
- */
- public void refresh(TeamSubscriber subscriber, IResource resource) throws TeamException {
- subscriber.refresh(new IResource[] { resource}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
- }
-
- protected void assertProjectRemoved(TeamSubscriber 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(TeamSubscriber 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 fc8e4fb0c..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/SyncSetTests.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.subscriber;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-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.subscribers.*;
-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 MutableSyncInfoSet set = new MutableSyncInfoSet();
- 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.getOutOfSyncDescendants(ResourcesPlugin.getWorkspace().getRoot());
- set.getSyncInfo(ResourcesPlugin.getWorkspace().getRoot());
- set.members();
- } 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.getOutOfSyncDescendants(ResourcesPlugin.getWorkspace().getRoot());
- set.getSyncInfo(ResourcesPlugin.getWorkspace().getRoot());
- set.members();
- 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/TestCommitAction.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestCommitAction.java
deleted file mode 100644
index bac0ed8a6..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestCommitAction.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.subscriber;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitAction;
-
-class TestCommitAction extends SubscriberCommitAction {
-
- public IRunnableWithProgress getRunnable(MutableSyncInfoSet syncSet) {
- return super.getRunnable(syncSet);
- }
-
- protected boolean canRunAsJob() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitAction#promptForComment(org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager, org.eclipse.core.resources.IResource[])
- */
- protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
- return "dummy comment";
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMarkAsMergedAction.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMarkAsMergedAction.java
deleted file mode 100644
index 0a5cd989c..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMarkAsMergedAction.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.tests.ccvs.core.subscriber;
-
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberConfirmMergedAction;
-
-
-class TestMarkAsMergedAction extends SubscriberConfirmMergedAction {
- public IRunnableWithProgress getRunnable(MutableSyncInfoSet syncSet) {
- return super.getRunnable(syncSet);
- }
- 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/TestMergeUpdateAction.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMergeUpdateAction.java
deleted file mode 100644
index 0e2f47724..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestMergeUpdateAction.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.subscriber;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.subscriber.MergeUpdateAction;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-
-class TestMergeUpdateAction extends MergeUpdateAction {
- boolean allowOverwrite = false;
-
- public TestMergeUpdateAction(boolean allowOverwrite) {
- this.allowOverwrite = allowOverwrite;
- }
-
- protected boolean promptForOverwrite(MutableSyncInfoSet syncSet) {
- if (allowOverwrite) return true;
- if (syncSet.isEmpty()) return true;
- IResource[] resources = syncSet.getResources();
- EclipseTest.fail(resources[0].getFullPath().toString() + " failed to merge properly");
- return false;
- }
-
- public IRunnableWithProgress getRunnable(MutableSyncInfoSet syncSet) {
- return super.getRunnable(syncSet);
- }
-
- 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/TestOverrideAndCommit.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndCommit.java
deleted file mode 100644
index 0ed622ac7..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndCommit.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.team.tests.ccvs.core.subscriber;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.team.internal.ccvs.ui.subscriber.OverrideAndCommitAction;
-
-public class TestOverrideAndCommit extends OverrideAndCommitAction {
-
- private boolean prompted = false;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitAction#promptForComment(org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager, org.eclipse.core.resources.IResource[])
- */
- protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
- return "test comments";
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitAction#promptForConflicts(org.eclipse.team.ui.sync.SyncInfoSet)
- */
- protected int promptForConflicts(MutableSyncInfoSet syncSet) {
- this.prompted = true;
- return 0; // ok to commit all conflicts
- }
-
- public boolean isPrompted() {
- return this.prompted;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#canRunAsJob()
- */
- protected boolean canRunAsJob() {
- return false;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndUpdate.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndUpdate.java
deleted file mode 100644
index b4ecdfeff..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestOverrideAndUpdate.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.eclipse.team.tests.ccvs.core.subscriber;
-
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.subscriber.OverrideAndUpdateAction;
-
-public class TestOverrideAndUpdate extends OverrideAndUpdateAction {
-
- private boolean prompted = false;
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#promptForOverwrite(org.eclipse.team.ui.sync.SyncInfoSet)
- */
- protected boolean promptForOverwrite(MutableSyncInfoSet syncSet) {
- this.prompted = true;
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#warnAboutFailedResources(org.eclipse.team.ui.sync.SyncInfoSet)
- */
- protected void warnAboutFailedResources(MutableSyncInfoSet syncSet) {
- return;
- }
-
- public boolean isPrompted() {
- return this.prompted;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#canRunAsJob()
- */
- protected boolean canRunAsJob() {
- return false;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestUpdateAction.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestUpdateAction.java
deleted file mode 100644
index ebcf0b468..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/TestUpdateAction.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.subscriber;
-
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.subscribers.MutableSyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceUpdateAction;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-class TestUpdateAction extends WorkspaceUpdateAction {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction#warnAboutFailedResources(org.eclipse.team.ui.sync.SyncInfoSet)
- */
- protected void warnAboutFailedResources(MutableSyncInfoSet syncSet) {
- return;
- }
-
- protected boolean promptForOverwrite(MutableSyncInfoSet syncSet) {
- EclipseTest.fail("Should never prompt on update, simply update nodes that are valid.");
- return false;
- }
-
- public IRunnableWithProgress getRunnable(MutableSyncInfoSet syncSet) {
- return super.getRunnable(syncSet);
- }
-
- protected boolean canRunAsJob() {
- 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 0dcdb67bf..000000000
--- 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 08b878252..000000000
--- 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 f54f50d75..000000000
--- 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 0d672a24b..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.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;
-
-public class CompareOperationTests extends CVSOperationTest {
-
- public class TestRemoteCompareOperation extends RemoteCompareOperation {
- private ICVSRemoteFolder leftTree, rightTree;
-
- public TestRemoteCompareOperation(Shell shell, ICVSRemoteResource resource, CVSTag tag) {
- super(shell, 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/HeadlessCVSRunnableContext.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/HeadlessCVSRunnableContext.java
deleted file mode 100644
index b36f43c8b..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/HeadlessCVSRunnableContext.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.ui;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.ui.operations.CVSNonblockingRunnableContext;
-import org.eclipse.team.internal.ccvs.ui.operations.ICVSRunnableContext;
-
-public class HeadlessCVSRunnableContext implements ICVSRunnableContext {
-
- private boolean background;
- private IJobChangeListener listener;
-
- public HeadlessCVSRunnableContext() {
- this(null);
- }
-
- public HeadlessCVSRunnableContext(IJobChangeListener listener) {
- this.listener = listener;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ICVSRunnableContext#run(java.lang.String, org.eclipse.core.runtime.jobs.ISchedulingRule, org.eclipse.jface.operation.IRunnableWithProgress)
- */
- public void run(
- String title,
- ISchedulingRule schedulingRule,
- boolean postponeBuild, IRunnableWithProgress runnable)
- throws InvocationTargetException, InterruptedException {
-
- if (listener != null) {
- new CVSNonblockingRunnableContext(listener).run("Headless Job", null, true, runnable);
- } else {
- runnable.run(new NullProgressMonitor());
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.ICVSRunnableContext#getShell()
- */
- public Shell getShell() {
- return null;
- }
-
-}
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 945f4fc11..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/MenuEnablementTest.java
+++ /dev/null
@@ -1,533 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-import org.eclipse.team.internal.ccvs.ui.actions.AddAction;
-import org.eclipse.team.internal.ccvs.ui.actions.BranchAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CommitAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CompareWithRemoteAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CompareWithRevisionAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CompareWithTagAction;
-import org.eclipse.team.internal.ccvs.ui.actions.GenerateDiffFileAction;
-import org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction;
-import org.eclipse.team.internal.ccvs.ui.actions.MergeAction;
-import org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithRemoteAction;
-import org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithTagAction;
-import org.eclipse.team.internal.ccvs.ui.actions.SetKeywordSubstitutionAction;
-import org.eclipse.team.internal.ccvs.ui.actions.ShowResourceInHistoryAction;
-import org.eclipse.team.internal.ccvs.ui.actions.SyncAction;
-import org.eclipse.team.internal.ccvs.ui.actions.TagLocalAction;
-import org.eclipse.team.internal.ccvs.ui.actions.UnmanageAction;
-import org.eclipse.team.internal.ccvs.ui.actions.UpdateAction;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-import org.eclipse.ui.IActionDelegate;
-
-/**
- * Test the menu enablement code for the CVS menus
- */
-public class MenuEnablementTest extends EclipseTest {
-
- private static final int MANAGED = 1;
- private static final int ADDED = 2;
- private static final int UNMANAGED = 4;
- private static final int IGNORED = 8;
- private static final int SINGLE_ONLY = 16;
- private static final int FOLDERS = 32;
- private static final int FILES = 64;
- private static final int UNMANAGED_PARENT = 128;
-
- /**
- * Constructor for CVSProviderTest
- */
- public MenuEnablementTest() {
- super();
- }
-
- /**
- * Constructor for CVSProviderTest
- */
- public MenuEnablementTest(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(MenuEnablementTest.class);
- return new CVSTestSetup(suite);
- //return new CVSTestSetup(new MenuEnablementTest("testReadOnly"));
- }
-
- /**
- * Create a test project for the given action delegate. The structure of
- * this test project is used by the get resource methods to return resources
- * of the proper type.
- *
- * @param actionDelegate
- * @throws CoreException
- * @throws TeamException
- */
- private IProject createTestProject(IActionDelegate actionDelegate) throws CoreException, TeamException {
- String actionName = getName(actionDelegate);
- return createProject(actionName, new String[] { "file.txt", "folder1/", "folder1/a.txt" });
- }
-
- private List getManagedResources(IProject testProject, boolean includeFolders, boolean multiple) {
- List result = new ArrayList();
- if (includeFolders) {
- result.add(testProject.getFolder("folder1"));
- } else {
- result.add(testProject.getFile("folder1/a.txt"));
- }
- if (multiple) {
- result.add(testProject.getFile("file.txt"));
- }
- return result;
- }
-
- private List getAddedResources(IProject testProject) throws CoreException, TeamException {
- List result = new ArrayList();
- IFile file = testProject.getFile("added.txt");
- if (!file.exists()) {
- addResources(testProject, new String[] {"added.txt"}, false);
- }
- result.add(file);
- return result;
- }
-
- private List getIgnoredResources(IProject testProject) throws CoreException, TeamException {
- List result = new ArrayList();
- IFile file = testProject.getFile("ignored.txt");
- if (!file.exists()) {
- file.create(getRandomContents(), false, null);
- }
- result.add(file);
- IFile ignoreFile = testProject.getFile(".cvsignore");
- InputStream contents = new ByteArrayInputStream("ignored.txt".getBytes());
- if (ignoreFile.exists()) {
- ignoreFile.setContents(contents, false, false, null);
- } else {
- ignoreFile.create(contents, false, null);
- }
- return result;
- }
-
- private List getUnmanagedResources(IProject testProject) throws CoreException, TeamException {
- List result = new ArrayList();
- IFile file = testProject.getFile("unmanaged.txt");
- if (!file.exists()) {
- file.create(getRandomContents(), false, null);
- }
- result.add(file);
- return result;
- }
-
- /**
- * Method getResourceWithUnmanagedParent.
- * @param project
- * @return Collection
- */
- private List getResourceWithUnmanagedParent(IProject project) throws CoreException {
- List result = new ArrayList();
- IFolder folder = project.getFolder("newFolder");
- if(!folder.exists()) folder.create(false, true, null);
- IFile file = folder.getFile("unmanaged.txt");
- if (!file.exists()) {
- file.create(getRandomContents(), false, null);
- }
- result.add(file);
- return result;
- }
-
- private List getOverlappingResources(IProject testProject, boolean includeFiles) {
- List result = new ArrayList();
- result.add(testProject);
- result.add(testProject.getFolder("folder1"));
- if (includeFiles) {
- result.add(testProject.getFile("folder1/a.txt"));
- }
- return result;
- }
-
- private ISelection asSelection(List resources) {
- return new StructuredSelection(resources);
- }
-
- private String getName(IActionDelegate actionDelegate) {
- return actionDelegate.getClass().getName();
- }
-
- /**
- * Assert that the enablement for the given IActionDelegate and ISelection
- * match that provided as expectedEnablement.
- *
- * @param actionDelegate
- * @param selection
- * @param expectedEnablement
- */
- private void assertEnablement(IActionDelegate actionDelegate, ISelection selection, boolean expectedEnablement) {
- IAction action = new Action() {};
- actionDelegate.selectionChanged(action, selection);
- assertEquals(getName(actionDelegate) + " enablement wrong!", expectedEnablement, action.isEnabled());
- }
-
- /**
- * Method assertEnablement.
- * @param action
- * @param project
- * @param IGNORED
- * @param b
- */
- private void assertEnablement(IActionDelegate action, IProject project, int kind, boolean expectedEnablement) throws CoreException, TeamException {
- List resources = new ArrayList();
- boolean multiple = (kind & SINGLE_ONLY) == 0;
- boolean includeFolders = ((kind & FOLDERS) > 0) || ((kind & FILES) == 0);
- if ((kind & MANAGED) > 0) {
- resources.addAll(getManagedResources(project, includeFolders, multiple));
- }
- if ((kind & UNMANAGED) > 0) {
- resources.addAll(getUnmanagedResources(project));
- }
- if ((kind & IGNORED) > 0) {
- resources.addAll(getIgnoredResources(project));
- }
- if ((kind & ADDED) > 0) {
- resources.addAll(getAddedResources(project));
- }
- if ((kind & UNMANAGED_PARENT) > 0) {
- resources.addAll(getResourceWithUnmanagedParent(project));
- }
- ensureAllSyncInfoLoaded(project);
- assertEnablement(action, asSelection(resources), expectedEnablement);
- }
-
- /**
- * Method ensureAllSyncInfoLoaded.
- * @param project
- */
- private void ensureAllSyncInfoLoaded(IProject project) throws CVSException {
- EclipseSynchronizer.getInstance().ensureSyncInfoLoaded(new IResource[] {project}, IResource.DEPTH_INFINITE);
- }
-
- /**
- * Assert that the action is disabled for the reasons common to all menu
- * actions.
- *
- * @param action
- * @param project
- */
- public void assertDisabledForCommonReasons(IActionDelegate action, IProject project) throws CoreException {
- assertDisabledForNoSelection(action);
- assertDisabledForFolderFileOverlap(action, project);
- assertDisabledForClosedProject(action, project);
- assertDisabledForNonCVSProject(action);
- }
-
- private void assertDisabledForNoSelection(IActionDelegate actionDelegate) {
- assertEnablement(actionDelegate, StructuredSelection.EMPTY, false /* expected enablement */);
- }
-
- private void assertDisabledForFolderFileOverlap(IActionDelegate action, IProject project) {
- List resources = getOverlappingResources(project, true /* include files */);
- assertEnablement(action, asSelection(resources), false /* enabled */);
- }
-
- private void assertDisabledForClosedProject(IActionDelegate action, IProject project) throws CoreException {
- project.close(null);
- List resources = new ArrayList();
- resources.add(project);
- assertEnablement(action, asSelection(resources), false /* enabled */);
- project.open(null);
- }
-
- private void assertDisabledForNonCVSProject(IActionDelegate action) throws CoreException {
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("Non-CVS");
- if (!project.exists())
- project.create(null);
- List resources = new ArrayList();
- resources.add(project);
- assertEnablement(action, asSelection(resources), false /* enabled */);
- }
-
- private void assertEnabledForFolderOnlyOverlap(IActionDelegate action, IProject project) {
- List resources = getOverlappingResources(project, false /* include files */);
- assertEnablement(action, asSelection(resources), true /* enabled */);
- }
-
- public void testAddAction() throws CoreException, TeamException {
- IActionDelegate action = new AddAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnablement(action, project, MANAGED, false /* expected enablement */);
- assertEnablement(action, project, ADDED, false /* expected enablement */);
- assertEnablement(action, project, IGNORED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | IGNORED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, true /* expected enablement */);
- }
-
- public void testBranchAction() throws CoreException, TeamException {
- IActionDelegate action = new BranchAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- }
-
- public void testCommitAction() throws CoreException, TeamException {
- IActionDelegate action = new CommitAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, true /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, true /* expected enablement */);
- }
-
- public void testCompareWithRemoteAction() throws CoreException, TeamException {
- IActionDelegate action = new CompareWithRemoteAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, true /* expected enablement */);
- // true is expected for ignored resources whose parent is not ignored
- assertEnablement(action, project, IGNORED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- // true is expected for ignored resources whose parent is not ignored
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, true /* expected enablement */);
- }
-
- public void testCompareWithRevison() throws CoreException, TeamException {
- IActionDelegate action = new CompareWithRevisionAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnablement(action, project, MANAGED | FILES | SINGLE_ONLY, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | FOLDERS | FILES, false /* expected enablement */);
- assertEnablement(action, project, MANAGED | FOLDERS | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, MANAGED | FILES, false /* expected enablement */);
- assertEnablement(action, project, ADDED | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, IGNORED | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- }
-
- public void testCompareWithTagAction() throws CoreException, TeamException {
- IActionDelegate action = new CompareWithTagAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- // true is expected for ignored resources whose parent is not ignored
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- }
-
- public void testGenerateDiffAction() throws CoreException, TeamException {
- IActionDelegate action = new GenerateDiffFileAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnablement(action, project, MANAGED | FILES | SINGLE_ONLY, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | FOLDERS | FILES, false /* expected enablement */);
- assertEnablement(action, project, MANAGED | FOLDERS | SINGLE_ONLY, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | FILES, false /* expected enablement */);
- assertEnablement(action, project, ADDED | SINGLE_ONLY, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, true /* expected enablement */);
- assertEnablement(action, project, IGNORED | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- }
-
- /*
- * Should be the same as testAdd
- */
- public void testIgnoreAction() throws CoreException, TeamException {
- IActionDelegate action = new IgnoreAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnablement(action, project, MANAGED, false /* expected enablement */);
- assertEnablement(action, project, ADDED, false /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, true /* expected enablement */);
- }
-
- public void testMergeAction() throws CoreException, TeamException {
- IActionDelegate action = new MergeAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- }
-
- public void testReplaceWithRemoteAction() throws CoreException, TeamException {
- IActionDelegate action = new ReplaceWithRemoteAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, false /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
- // true is expected for ignored resources whose parent is not ignored
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- // true is expected for ignored resources whose parent is not ignored
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- }
-
- /*
- * Should be the same as testCompareWithTagAction
- */
- public void testReplaceWithTagAction() throws CoreException, TeamException {
- IActionDelegate action = new ReplaceWithTagAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- // true is expected for ignored resources whose parent is not ignored
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- }
-
- public void testKeywordSubstitutionAction() throws CoreException, TeamException {
- IActionDelegate action = new SetKeywordSubstitutionAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- }
-
- public void testShowInHistory() throws CoreException, TeamException {
- IActionDelegate action = new ShowResourceInHistoryAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnablement(action, project, MANAGED | FILES | SINGLE_ONLY, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | FOLDERS | FILES, false /* expected enablement */);
- assertEnablement(action, project, MANAGED | FOLDERS | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, MANAGED | FILES, false /* expected enablement */);
- assertEnablement(action, project, ADDED | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, IGNORED | SINGLE_ONLY, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- }
-
- public void testSyncAction() throws CoreException, TeamException {
- IActionDelegate action = new SyncAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, true /* expected enablement */);
- // true is expected for ignored resources whose parent is not ignored
- assertEnablement(action, project, IGNORED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- // true is expected for ignored resources whose parent is not ignored
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, true /* expected enablement */);
- }
-
- public void testTagAction() throws CoreException, TeamException {
- IActionDelegate action = new TagLocalAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, false /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- }
-
- public void testUnmanageAction() throws CoreException, TeamException {
- IActionDelegate action = new UnmanageAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- List resources = new ArrayList();
- resources.add(project);
- ensureAllSyncInfoLoaded(project);
- assertEnablement(action, asSelection(resources), true);
- }
-
- public void testUpdateAction() throws CoreException, TeamException {
- IActionDelegate action = new UpdateAction();
- IProject project = createTestProject(action);
- assertDisabledForCommonReasons(action, project);
- assertEnabledForFolderOnlyOverlap(action, project);
- assertEnablement(action, project, MANAGED, true /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED, false /* expected enablement */);
- assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
- assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/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 505219ca8..000000000
--- 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 bd49a1e8b..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.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.ui;
-
-import junit.framework.AssertionFailedError;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.*;
-import org.eclipse.team.internal.ccvs.core.CVSMergeSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.subscriber.MergeSynchronizeParticipant;
-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.*;
-
-/**
- * SyncInfoSource that obtains SyncInfo from the SynchronizeView's SyncSet.
- */
-public class SynchronizeViewTestAdapter extends SyncInfoSource {
-
- public SynchronizeViewTestAdapter() {
- TeamUI.getSynchronizeManager().showSynchronizeViewInActivePage(null);
- }
-
- public SyncInfo getSyncInfo(TeamSubscriber subscriber, IResource resource) throws TeamException {
- SyncInfoSet set = getCollector(subscriber).getSyncInfoSet();
- SyncInfo info = set.getSyncInfo(resource);
- if (info == null) {
- info = subscriber.getSyncInfo(resource);
- if ((info != null && info.getKind() != SyncInfo.IN_SYNC)) {
- throw new AssertionFailedError();
- }
- }
- return info;
- }
-
- private TeamSubscriberParticipant getParticipant(TeamSubscriber 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 TeamSubscriberParticipant) {
- if(((TeamSubscriberParticipant)participant).getSubscriber() == subscriber) {
- return (TeamSubscriberParticipant)participant;
- }
- }
- }
- return null;
- }
-
- private TeamSubscriberSyncInfoCollector getCollector(TeamSubscriber subscriber) {
- TeamSubscriberParticipant participant = getParticipant(subscriber);
- if (participant == null) return null;
- TeamSubscriberSyncInfoCollector syncInfoCollector = participant.getTeamSubscriberSyncInfoCollector();
- 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(TeamSubscriber subscriber, IProject project) throws TeamException {
- super.assertProjectRemoved(subscriber, project);
- SyncInfoSet set = getCollector(subscriber).getSyncInfoSet();
- if (set.getOutOfSyncDescendants(project).length != 0) {
- 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();
- ISynchronizeParticipant participant = new MergeSynchronizeParticipant(mergeSubscriber);
- synchronizeManager.addSynchronizeParticipants(
- new ISynchronizeParticipant[] {participant});
- ISynchronizeView view = synchronizeManager.showSynchronizeViewInActivePage(null);
- view.display(participant);
- return mergeSubscriber;
- }
-
-
- /* (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.QUALIFIED_NAME)) {
- 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(TeamSubscriber subscriber, IResource resource) throws TeamException {
- super.refresh(subscriber, resource);
- EclipseTest.waitForSubscriberInputHandling(getCollector(subscriber));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource#reset()
- */
- public void reset(TeamSubscriber subscriber) throws TeamException {
- super.reset(subscriber);
- getCollector(subscriber).reset(DEFAULT_MONITOR);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/AllTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/AllTests.java
deleted file mode 100644
index 8b11d77fc..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/AllTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
- public static Test suite() {
- TestSuite suite = new TestSuite();
- suite.addTestSuite(SyncTests.class);
- suite.addTestSuite(WorkflowTests.class);
- //suite.addTestSuite(CommandTests.class);
- return new BenchmarkTestSetup(suite);
- }
-
- public AllTests(String name) {
- super(name);
- }
- public AllTests() {
- super();
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ArgumentParser.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ArgumentParser.java
deleted file mode 100644
index f206dbed4..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ArgumentParser.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-public class ArgumentParser {
- protected ArgumentParser() {
- }
-
- public boolean parse(String[] args) {
- int index = 0;
- String option = null;
- for (int i = 0; i < args.length; i++) {
- String arg = args[i];
- if (arg == null) continue;
- if (arg.charAt(0) == '-') {
- if (option != null && ! handleOption(option, null)) return false;
- option = arg;
- } else if (option != null) {
- if (! handleOption(option, arg)) return false;
- option = null;
- } else {
- if (! handleArgument(index++, arg)) return false;
- }
- }
- if (option != null && ! handleOption(option, null)) return false;
- return handleFinished();
- }
-
- protected boolean handleFinished() {
- return true;
- }
-
- protected boolean handleArgument(int index, String arg) {
- return false;
- }
-
- protected boolean handleOption(String option, String arg) {
- return false;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/BenchmarkTestSetup.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/BenchmarkTestSetup.java
deleted file mode 100644
index 0b9ef08ba..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/BenchmarkTestSetup.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-
-import junit.framework.Test;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IPluginRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-public class BenchmarkTestSetup extends CVSTestSetup {
- public static final File BIG_ZIP_FILE;
- public static final File SMALL_ZIP_FILE;
- public static final File TINY_ZIP_FILE;
-
- // Static initializer for constants
- static {
- try {
- BIG_ZIP_FILE = getTestFile("benchmarkBig.zip");
- SMALL_ZIP_FILE = getTestFile("benchmarkSmall.zip");
- TINY_ZIP_FILE = getTestFile("benchmarkTiny.zip");
- } catch (IOException e) {
- throw new Error(e.getMessage());
- }
- }
-
- public static File getTestFile(String name) throws IOException {
- IPluginRegistry registry = Platform.getPluginRegistry();
- IPluginDescriptor descriptor = registry.getPluginDescriptor("org.eclipse.team.tests.cvs.core");
- URL baseURL = descriptor.getInstallURL();
- URL url = new URL(baseURL, "resources/BenchmarkTest/" + name);
- url = Platform.asLocalURL(url);
- if (url.getProtocol().equals("file")) {
- return new File(url.getFile()).getAbsoluteFile();
- }
- throw new IOException("Cannot find test file: " + name);
- }
-
- public BenchmarkTestSetup(Test test) {
- super(test);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CVSUITestCase.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CVSUITestCase.java
deleted file mode 100644
index eb2381583..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CVSUITestCase.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.old;
-
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import junit.framework.Test;
-
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.team.internal.ccvs.ui.actions.*;
-import org.eclipse.team.internal.ccvs.ui.operations.ITagOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.TagOperation;
-import org.eclipse.team.internal.ccvs.ui.sync.CVSSyncCompareInput;
-import org.eclipse.team.internal.ccvs.ui.wizards.SharingWizard;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-import org.eclipse.team.internal.ui.sync.ITeamNode;
-import org.eclipse.team.internal.ui.sync.SyncView;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.ui.*;
-
-public class CVSUITestCase extends LoggingTestCase {
- protected static Set installedTrap = new HashSet();
- private List testWindows;
- protected IWorkbenchWindow testWindow;
- protected CVSRepositoryLocation testRepository;
- protected boolean USE_CONSOLE = System.getProperty("cvs.tests.use_console") != null;
- protected boolean SHOW_CONSOLE = System.getProperty("cvs.tests.show_console") != null;
-
- public CVSUITestCase(Test test) {
- super(test);
- testWindows = new ArrayList(3);
- }
-
- public void setUp() throws CoreException{
- super.setUp();
- testRepository = CVSTestSetup.repository;
- testWindow = openTestWindow();
-
- Display display = testWindow.getShell().getDisplay();
- if (! installedTrap.contains(display)) {
- installedTrap.add(display);
- Utils.waitForErrorDialog(display, 10000 /*ms*/, new Waiter() {
- public boolean notify(Object object) {
- Dialog dialog = (Dialog) object;
- printWarning("Encountered error dialog with title: " + dialog.getShell().getText(), null, null);
- dialog.close();
- return true;
- }
- });
- }
-
- // disable auto-build
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IWorkspaceDescription description = workspace.getDescription();
- description.setAutoBuilding(false);
- try {
- workspace.setDescription(description);
- } catch (CoreException e) {
- throw new CVSException(e);
- }
-
- // disable CVS GZIP compression
- IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- store.setValue(ICVSUIConstants.PREF_COMPRESSION_LEVEL, 0);
- CVSProviderPlugin.getPlugin().setCompressionLevel(0);
-
- // default case is to not show the console but don't disable it, this is
- // the typical user experience.
- if(SHOW_CONSOLE) {
- showConsole();
- } else if(!USE_CONSOLE) {
- CVSProviderPlugin.getPlugin().setConsoleListener(null);
- }
-
- // wait for UI to settle
- Utils.processEventsUntil(100);
- }
-
- public void tearDown() throws CVSException {
- // wait for UI to settle
- Utils.processEventsUntil(100);
- closeAllTestWindows();
- super.tearDown();
- }
-
- protected void showConsole() {
- try {
- IWorkbenchPage page = CVSUIPlugin.getActivePage();
- IViewPart consolePart = page.findView(Console.CONSOLE_ID);
- if (consolePart == null) {
- IWorkbenchPart activePart = page.getActivePart();
- consolePart = page.showView(Console.CONSOLE_ID);
- //restore focus stolen by the creation of the console
- if (activePart != null) page.activate(activePart);
- } else {
- page.bringToTop(consolePart);
- }
- } catch (PartInitException pe) {
- }
- }
-
- /**
- * Open a test window with the empty perspective.
- */
- protected IWorkbenchWindow openTestWindow() {
- try {
- IWorkbenchWindow win = PlatformUI.getWorkbench().openWorkbenchWindow(
- EmptyPerspective.PERSP_ID, ResourcesPlugin.getWorkspace());
- testWindows.add(win);
- return win;
- } catch (WorkbenchException e) {
- fail();
- return null;
- }
- }
-
- /**
- * Close all test windows.
- */
- protected void closeAllTestWindows() {
- Iterator iter = testWindows.iterator();
- IWorkbenchWindow win;
- while (iter.hasNext()) {
- win = (IWorkbenchWindow) iter.next();
- win.close();
- }
- testWindows.clear();
- }
-
- /**
- * Checks out the projects with the specified tags from the test repository.
- */
- protected void actionCheckoutProjects(String[] projectNames, CVSTag[] tags) throws Exception {
- ICVSRemoteFolder[] projects = lookupRemoteProjects(projectNames, tags);
- AddToWorkspaceAction action = new AddToWorkspaceAction() {
- protected IPromptCondition getOverwriteLocalAndFileSystemPrompt() {
- return new DummyPromptCondition();
- }
- };
- runActionDelegate(action, projects, "Repository View Checkout action");
- timestampGranularityHiatus();
- }
-
- /**
- * Replaces the specified resources with the remote contents using the action contribution.
- */
- protected void actionReplaceWithRemote(IResource[] resources) {
- ReplaceWithRemoteAction action = new ReplaceWithRemoteAction() {
- protected IPromptCondition getPromptCondition(IResource[] resources) {
- return new DummyPromptCondition();
- }
- };
- runActionDelegate(action, resources, "Replace with Remote action");
- timestampGranularityHiatus();
- }
-
- /**
- * Shares the specified project with the test repository.
- * @param project the project to share
- */
- protected void actionShareProject(IProject project) {
- final SharingWizard wizard = new SharingWizard();
- wizard.init(PlatformUI.getWorkbench(), project);
- Utils.waitForWizardToOpen(testWindow.getShell(), wizard, new Waiter() {
- public boolean notify(Object object) {
- WizardDialog dialog = (WizardDialog) object;
- startTask("set sharing, pop up sync viewer");
- wizard.performFinish();
- endTask();
- dialog.close();
- return false;
- }
- });
- timestampGranularityHiatus();
- }
-
- /**
- * Updates the specified resources using the action contribution.
- */
- protected void actionCVSCommit(IResource[] resources, final String comment) {
- assertNotNull(comment);
- CommitAction action = new CommitAction() {
- protected String promptForComment() {
- return comment;
- }
- };
- runActionDelegate(action, resources, "CVS Commit action");
- timestampGranularityHiatus();
- }
-
- /**
- * Tags the specified resources using the action contribution.
- */
- protected void actionCVSTag(IResource[] resources, final String name) {
- assertNotNull(name);
- ITagOperation op = new TagOperation(null, resources);
- op.setTag(new CVSTag(name, CVSTag.VERSION));
- try {
- op.run();
- } catch (InterruptedException e) {
- printWarning("Tag interrupted", e, null);
- } catch (CVSException e) {
- printWarning("Tag failed", e, null);
- }
- }
-
- /**
- * Updates the specified resources using the action contribution.
- */
- protected void actionCVSUpdate(IResource[] resources) {
- runActionDelegate(new UpdateAction(), resources, "CVS Update action");
- timestampGranularityHiatus();
- }
-
- /**
- * Pops up the synchronizer view for the specified resources.
- * @param resources the resources to sync
- * @return the compare input used
- */
- protected CVSSyncCompareInput syncResources(IResource[] resources) {
- startTask("Synchronize with Repository action");
- SyncView syncView = getSyncView();
- CVSSyncCompareInput input = new CVSSyncCompareInput(resources) {
- // overridden to prevent "nothing to synchronize" dialog from popping up
- public void run(IProgressMonitor monitor)
- throws InvocationTargetException, InterruptedException {
- super.run(monitor);
- DiffNode result = getDiffRoot(); // (DiffNode) getCompareResult()
- if (result == null || Utils.isEmpty(result)) throw new InterruptedException();
- }
- };
- syncView.showSync(input);
- endTask();
- return input;
- }
-
- /**
- * Commits the specified resources using the synchronizer view.
- * @param resources the resources to commit
- * @param input the compare input for the sync view, or null to create a new one
- * @param comment the comment string, or ""
- */
- protected void syncCommitResources(IResource[] resources, CVSSyncCompareInput input, String comment) {
- if (input == null) input = syncResources(resources);
- IDiffContainer diffRoot = input.getDiffRoot();
- if (Utils.isEmpty(diffRoot)) {
- startTask("Nothing to Commit");
- } else {
- ITeamNode[] nodes = getTeamNodesForResources(diffRoot, resources);
- startTask("Sync View Commit action");
- syncCommitInternal(input, nodes, comment);
- }
- endTask();
- timestampGranularityHiatus();
- }
-
- /**
- * Updates the specified resources using the synchronizer view.
- * @param resources the resources to update
- * @param input the compare input for the sync view, or null to create a new one
- * @param comment the comment string, or ""
- */
- protected void syncUpdateResources(IResource[] resources, CVSSyncCompareInput input) {
- if (input == null) input = syncResources(resources);
- IDiffContainer diffRoot = input.getDiffRoot();
- if (Utils.isEmpty(diffRoot)) {
- startTask("Nothing to Update");
- } else {
- ITeamNode[] nodes = getTeamNodesForResources(diffRoot, resources);
- startTask("Sync View Update action");
- syncGetInternal(input, nodes);
- }
- endTask();
- timestampGranularityHiatus();
- }
-
- /**
- * Creates and imports project contents from a zip file.
- */
- protected IProject createAndImportProject(String prefix, File zipFile) throws Exception {
- IProject project = Utils.createUniqueProject(prefix);
- Utils.importZip(project, zipFile);
- return project;
- }
-
- /**
- * Looks up handles for remote projects by name.
- */
- protected ICVSRemoteFolder[] lookupRemoteProjects(String[] projectNames, CVSTag[] tags) throws Exception {
- ICVSRemoteFolder[] folders = new ICVSRemoteFolder[projectNames.length];
- for (int i = 0; i < projectNames.length; ++i) {
- folders[i] = testRepository.getRemoteFolder(projectNames[i], tags[i]);
- }
- return folders;
- }
-
- /**
- * Gets an instance of the Synchronize view
- */
- protected SyncView getSyncView() {
- SyncView view = SyncView.findViewInActivePage(null);
- assertNotNull("Could not obtain a Sync View.", view);
- return view;
- }
-
- /**
- * Runs an IActionDelegate prototype instance on a given selection.
- */
- protected void runActionDelegate(IActionDelegate delegate, Object[] selection, String taskName) {
- Action action = new Action() { };
- if (delegate instanceof IObjectActionDelegate) {
- ((IObjectActionDelegate) delegate).setActivePart(action,
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService().getActivePart());
- }
- delegate.selectionChanged(action, new StructuredSelection(selection));
- startTask(taskName);
- delegate.run(action);
- endTask();
- }
-
- /**
- * Commits NON-CONFLICTING and CONFLICTING resources represented by an array of synchronizer nodes.
- */
- private void syncCommitInternal(CVSSyncCompareInput input, ITeamNode[] nodes, final String comment) {
-// FakeSelectionProvider selectionProvider = new FakeSelectionProvider(nodes);
-// // Commit ONLY NON-CONFLICTING changes
-// CommitSyncAction commitAction = new CommitSyncAction(input, selectionProvider, "Commit",
-// testWindow.getShell()) {
-// protected int promptForConflicts(SyncSet syncSet) {
-// return 0; // yes! sync conflicting changes
-// }
-// protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
-// return comment;
-// }
-// protected IResource[] promptForResourcesToBeAdded(RepositoryManager manager, IResource[] unadded) {
-// return unadded;
-// }
-// };
-// commitAction.run();
-// // Commit ONLY CONFLICTING changes
-// ForceCommitSyncAction forceCommitAction = new ForceCommitSyncAction(input, selectionProvider, "Force Commit",
-// testWindow.getShell()) {
-// protected int promptForConflicts(SyncSet syncSet) {
-// return 0; // yes! sync conflicting changes
-// }
-// protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
-// return comment;
-// }
-// protected IResource[] promptForResourcesToBeAdded(RepositoryManager manager, IResource[] unadded) {
-// return unadded;
-// }
-// };
-// forceCommitAction.run();
- }
-
- /**
- * Updates NON-CONFLICTING and CONFLICTING resources represented by an array of synchronizer nodes.
- */
- private void syncGetInternal(CVSSyncCompareInput input, ITeamNode[] nodes) {
-// FakeSelectionProvider selectionProvider = new FakeSelectionProvider(nodes);
-// // Update ONLY NON-CONFLICTING changes
-// UpdateSyncAction updateAction = new UpdateSyncAction(input, selectionProvider, "Update",
-// testWindow.getShell()) {
-// protected boolean promptForConflicts() {
-// return true;
-// }
-// protected int promptForMergeableConflicts() {
-// return 2;
-// }
-// };
-// updateAction.run();
-// // Update ONLY CONFLICTING changes
-// ForceUpdateSyncAction forceUpdateAction = new ForceUpdateSyncAction(input, selectionProvider, "Force Update",
-// testWindow.getShell()) {
-// protected boolean promptForConflicts() {
-// return true;
-// }
-// protected int promptForMergeableConflicts() {
-// return 2;
-// }
-// };
-// forceUpdateAction.run();
- }
-
- /**
- * Gets an array of synchronizer nodes corresponding to an array of resouces.
- */
- protected static ITeamNode[] getTeamNodesForResources(IDiffContainer root, IResource[] resources) {
- ITeamNode[] nodes = new ITeamNode[resources.length];
- for (int i = 0; i < resources.length; ++i) {
- nodes[i] = findTeamNodeForResource(root, resources[i]);
- assertNotNull(nodes[i]);
- }
- return nodes;
- }
-
- private static ITeamNode findTeamNodeForResource(IDiffElement root, IResource resource) {
- RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId());
- assertNotNull("Resource " + resource.getFullPath() + " must have an associated CVSProvider", provider);
-
- if (root instanceof ITeamNode) {
- ITeamNode node = (ITeamNode) root;
- if (resource.equals(node.getResource())) return node;
- // prune the backtracking tree
- IResource parent = resource.getParent();
- do {
- if (parent == null) return null; // can't possibly be child of this node
- } while (! resource.equals(parent));
- }
- if (root instanceof IDiffContainer) {
- IDiffContainer container = (IDiffContainer) root;
- if (container.hasChildren()) {
- IDiffElement[] children = container.getChildren();
- for (int i = 0; i < children.length; ++i) {
- ITeamNode node = findTeamNodeForResource(children[i], resource);
- if (node != null) return node;
- }
- }
- }
- return null;
- }
-
- /**
- * Waits for a small amount of time to compensate for file system time stamp granularity.
- */
- private void timestampGranularityHiatus() {
- //JUnitTestCase.waitMsec(1500);
- Utils.processEventsUntil(1500);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CaseEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CaseEntry.java
deleted file mode 100644
index 8b59e3153..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CaseEntry.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import org.xml.sax.Attributes;
-
-public class CaseEntry extends LogEntryContainer {
- private String className;
-
- public CaseEntry(LogEntryContainer parent, Attributes attributes) {
- this(parent, attributes.getValue("name"), attributes.getValue("class"));
- }
-
- public CaseEntry(LogEntryContainer parent, String name, String className) {
- super(parent, name);
- this.className = (className != null) ? className : "unknown";
- }
-
- public void accept(ILogEntryVisitor visitor) {
- visitor.visitCaseEntry(this);
- }
-
- /**
- * Returns the class name of the test case.
- */
- public String getClassName() {
- return className;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CommandTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CommandTests.java
deleted file mode 100644
index b850dd000..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/CommandTests.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.tests.ccvs.core.CommandLineCVSClient;
-import org.eclipse.team.tests.ccvs.core.EclipseCVSClient;
-import org.eclipse.team.tests.ccvs.core.ICVSClient;
-
-public class CommandTests extends CVSUITestCase {
- private String baseName;
- private IProject referenceProject;
- private IProject eclipseProject;
- private IProject uiProject;
-
- public CommandTests(Test test) {
- super(test);
- }
- public static Test suite() {
- return new BenchmarkTestSetup(new TestSuite(CommandTests.class));
- }
-
- public void setUp() throws CoreException {
- super.setUp();
- try {
- baseName = Utils.makeUniqueName(null, "thisproject", null);
- referenceProject = Utils.createProject(baseName + "-reference");
- eclipseProject = Utils.createProject(baseName + "-eclipse");
- uiProject = Utils.createProject(baseName);
- } catch (CoreException e) {
- throw new CVSException(e);
- }
- }
-
- public void testImportAddCommitCheckout() throws Throwable {
- // import a project using each client
- new ComparativeTest("import/add/commit big project") {
- protected void runCommandTest(final IContainer localRoot, ICVSClient client) throws Exception {
- // use the import command to create a new module
- IFolder folder = localRoot.getFolder(new Path("empty_folder"));
- folder.create(false /*force*/, true /*local*/, null);
- execute(client, "import empty module", folder, "import",
- new String[] { },
- new String[] { "-m", "initial import" },
- new String[] { localRoot.getName(), "vendor", "start" });
- folder.delete(false /*force*/, null);
-
- // checkout the project
- localRoot.delete(false /*force*/, null);
- execute(client, "checkout module", localRoot.getParent(), "co",
- new String[] { },
- new String[] { },
- new String[] { localRoot.getName() });
-
- // prepare contents
- prepareContents(localRoot);
-
- // determine the set of files and folders to be added
- final Map /* from KSubstOption to String */ files = new HashMap();
- final Set /* of String */ folders = new TreeSet();
- final int trim = localRoot.getProjectRelativePath().segmentCount();
- localRoot.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- if (! resource.equals(localRoot)) {
- String name = resource.getProjectRelativePath().removeFirstSegments(trim).toString();
- if (resource.getType() == IResource.FILE) {
- KSubstOption ksubst = KSubstOption.fromFile((IFile) resource);
- Set set = (Set) files.get(ksubst);
- if (set == null) {
- set = new HashSet();
- files.put(ksubst, set);
- }
- set.add(name);
- } else {
- folders.add(name);
- }
- }
- return true;
- }
- }, IResource.DEPTH_INFINITE, false);
-
- // add all folders
- if (!folders.isEmpty()) {
- executeInParts(client, "add folders", localRoot, "add",
- new String[] { },
- new String[] { },
- (String[])folders.toArray(new String[folders.size()]));
- }
- // add all files
- for (Iterator it = files.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Map.Entry) it.next();
- KSubstOption ksubst = (KSubstOption) entry.getKey();
- Set set = (Set) entry.getValue();
- executeInParts(client, "add files (" + ksubst.getShortDisplayText() + ")", localRoot, "add",
- new String[] { },
- new String[] { ksubst.toString() },
- (String[])set.toArray(new String[set.size()]));
- }
-
- // commit everything
- execute(client, "commit module", localRoot, "ci",
- new String[] { },
- new String[] { "-m", "dummy message" },
- new String[] { });
- }
- protected void runUITest(IContainer localRoot) throws Exception {
- prepareContents(localRoot);
- actionShareProject(uiProject);
- syncCommitResources(new IResource[] { uiProject }, null, "initial");
- }
- private void prepareContents(IContainer localRoot) throws Exception {
- Utils.importZip(localRoot, BenchmarkTestSetup.BIG_ZIP_FILE);
- }
- }.run();
-
- // check it out using each client
- new ComparativeTest("checkout big project") {
- protected void runCommandTest(IContainer localRoot, ICVSClient client) throws Exception {
- execute(client, "checkout module", localRoot.getParent(), "co",
- new String[] { },
- new String[] { "-P" },
- new String[] { localRoot.getName() });
- }
- protected void runUITest(IContainer localRoot) throws Exception {
- actionCheckoutProjects(new String[] { localRoot.getName() }, new CVSTag[] { CVSTag.DEFAULT });
- }
- protected void setUp(IContainer localRoot) throws Exception {
- // delete then recreate the container
- IProject project = (IProject) localRoot;
- Utils.deleteProject(project);
- project.create(null);
- project.open(null);
- // delete the .project file (avoid .project is in the way error)
- IFile file = project.getFile(".project");
- file.delete(false /*force*/, null);
- }
- }.run();
- }
-
- protected abstract class ComparativeTest {
- private String name;
- public ComparativeTest(String name) {
- this.name = name;
- }
- public void run() throws Exception {
- startGroup(name);
-
- startGroup("command line client");
- setUp(referenceProject);
- runCommandTest(referenceProject, CommandLineCVSClient.INSTANCE);
- tearDown(referenceProject);
- endGroup();
-
- startGroup("eclipse client");
- setUp(eclipseProject);
- runCommandTest(eclipseProject, EclipseCVSClient.INSTANCE);
- tearDown(eclipseProject);
- endGroup();
-
- startGroup("user interface");
- setUp(uiProject);
- runUITest(uiProject);
- tearDown(uiProject);
- endGroup();
-
- endGroup();
- }
- protected abstract void runCommandTest(IContainer localRoot, ICVSClient client) throws Exception ;
- protected abstract void runUITest(IContainer localRoot) throws Exception;
- protected void setUp(IContainer localRoot) throws Exception {
- }
- protected void tearDown(IContainer localRoot) throws Exception {
- }
- protected void execute(ICVSClient client, String taskname,
- IContainer localRoot, String command,
- String[] globalOptions, String[] localOptions, String[] arguments) throws CVSException {
- // The execution time for the client will include overhead associated with
- // computing the command to be run and cleaning up Eclipse state once it has
- // completed, including notifying resource delta listener. Since all clients
- // in the Eclipse environment are subject to this overhead, the theory is that
- // it will be a constant factor that we can neglect.
- startTask(taskname);
- client.executeCommand(testRepository, localRoot, command, globalOptions, localOptions, arguments);
- endTask();
- }
- protected void executeInParts(ICVSClient client, String taskname,
- IContainer localRoot, String command,
- String[] globalOptions, String[] localOptions, String[] arguments) throws CVSException {
- // There are problems executing commands with too many arguments
- // so we have to break them up into chunks.
- startTask(taskname);
- int i = 0;
- do {
- int len = Math.min(200, arguments.length - i);
- String[] args;
- if (i == 0 && len == arguments.length) {
- args = arguments;
- } else {
- args = new String[len];
- System.arraycopy(arguments, i, args, 0, len);
- }
- client.executeCommand(testRepository, localRoot, command, globalOptions, localOptions, args);
- i += len;
- } while (arguments.length - i > 0);
- endTask();
- }
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/DelimitedValuesWriter.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/DelimitedValuesWriter.java
deleted file mode 100644
index 2146320e7..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/DelimitedValuesWriter.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.io.PrintStream;
-
-public class DelimitedValuesWriter {
- private static final String BEGIN_QUOTE = "\"";
- private static final String END_QUOTE = "\"";
- private PrintStream ps;
- private String delimiter;
- private boolean quoted;
- private boolean firstField;
-
- public DelimitedValuesWriter(PrintStream ps, String delimiter, boolean quoted) {
- this.ps = ps;
- this.delimiter = delimiter;
- this.quoted = quoted;
- this.firstField = true;
- }
-
- public void printField(String field) {
- if (firstField) {
- firstField = false;
- } else {
- ps.print(delimiter);
- }
- if (quoted) ps.print(BEGIN_QUOTE);
- ps.print(field);
- if (quoted) ps.print(END_QUOTE);
- }
- public void printFields(String[] fields) {
- for (int i = 0; i < fields.length; i++) {
- printField(fields[i]);
- }
- }
- public void printRecord(String[] fields) {
- printFields(fields);
- endRecord();
- }
- public void endRecord() {
- ps.println();
- firstField = true;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/DummyPromptCondition.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/DummyPromptCondition.java
deleted file mode 100644
index 88985f7e7..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/DummyPromptCondition.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-
-public class DummyPromptCondition implements IPromptCondition {
- public boolean needsPrompt(IResource resource) {
- return false;
- }
- public String promptMessage(IResource resource) {
- // this method should never be called
- return resource.getName();
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/EmptyPerspective.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/EmptyPerspective.java
deleted file mode 100644
index 91435094b..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/EmptyPerspective.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api. It defines an initial
- * layout with no parts, just an editor area.
- *
- * Note: originally borrowed from org.eclipse.jdt.junit.eclipse.util
- */
-public class EmptyPerspective implements IPerspectiveFactory {
-
- /**
- * The perspective id.
- */
- public static final String PERSP_ID = "org.eclipse.team.tests.ccvs.ui.EmptyPerspective";
-
- /**
- * Constructs a new Default layout engine.
- */
- public EmptyPerspective() {
- super();
- }
-
- /**
- * Defines the initial layout for a perspective.
- *
- * Implementors of this method may add additional views to a
- * perspective. The perspective already contains an editor folder
- * with <code>ID = ILayoutFactory.ID_EDITORS</code>. Add additional views
- * to the perspective in reference to the editor folder.
- *
- * This method is only called when a new perspective is created. If
- * an old perspective is restored from a persistence file then
- * this method is not called.
- *
- * @param factory the factory used to add views to the perspective
- */
- public void createInitialLayout(IPageLayout layout) {
- //layout.addView( MockViewPart.ID, IPageLayout.BOTTOM, 0.5f, layout.getEditorArea() );
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/FakeSelectionProvider.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/FakeSelectionProvider.java
deleted file mode 100644
index dbae25df5..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/FakeSelectionProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-/**
- * Serves up fake selections.
- *
- * Note: originally borrowed from org.eclipse.jdt.ui.tests.actions
- */
-public class FakeSelectionProvider implements ISelectionProvider {
- private Object[] fElems;
- public FakeSelectionProvider(Object[] elements){
- fElems = elements;
- }
-
- public void addSelectionChangedListener(ISelectionChangedListener listener) {
- }
-
- public ISelection getSelection() {
- return new StructuredSelection(fElems);
- }
-
- public void removeSelectionChangedListener(ISelectionChangedListener listener) {
- }
-
- public void setSelection(ISelection selection) {
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/GroupEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/GroupEntry.java
deleted file mode 100644
index 094558c6c..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/GroupEntry.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import org.xml.sax.Attributes;
-
-public class GroupEntry extends LogEntryContainer {
- public GroupEntry(LogEntryContainer parent, Attributes attributes) {
- this(parent, attributes.getValue("name"));
- }
-
- public GroupEntry(LogEntryContainer parent, String name) {
- super(parent, name);
- }
-
- public void accept(ILogEntryVisitor visitor) {
- visitor.visitGroupEntry(this);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ICriteria.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ICriteria.java
deleted file mode 100644
index 3b84b7a67..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ICriteria.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-/**
- * Generic object filter mechanism.
- */
-public interface ICriteria {
- /**
- * Returns true if the candidate object satisfies the specified
- * criteria value according to a particular algorithm.
- */
- public boolean test(Object candidate, Object value);
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ILogEntryVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ILogEntryVisitor.java
deleted file mode 100644
index e9842b2c5..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/ILogEntryVisitor.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-public interface ILogEntryVisitor {
- public void visitRootEntry(RootEntry entry);
- public void visitCaseEntry(CaseEntry entry);
- public void visitGroupEntry(GroupEntry entry);
- public void visitTaskEntry(TaskEntry entry);
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogEntry.java
deleted file mode 100644
index 8e854ecd1..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogEntry.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-import junit.framework.Assert;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-public abstract class LogEntry {
- LogEntryContainer parent;
- String name;
-
- /**
- * Creates a new log entry with the specified parent.
- * @param parent the parent container
- * @param name the name of the entry
- */
- public LogEntry(LogEntryContainer parent, String name) {
- this.parent = parent;
- this.name = name != null ? name : "unknown";
- if (parent != null) parent.addEntry(this);
- }
-
- /**
- * Accepts a visitor.
- * @param visitor the visitor
- */
- public abstract void accept(ILogEntryVisitor visitor);
-
- /**
- * Returns the name of this entry.
- */
- public String getName() {
- return name;
- }
-
- /**
- * Returns the parent container of this entry, or null if none.
- */
- public LogEntryContainer getParent() {
- return parent;
- }
-
- /**
- * Reads an array of log entries from a file.
- * @return the log entries
- */
- public static RootEntry readLog(File file) throws IOException, SAXException {
- XMLReader reader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
- LogContentHandler contentHandler = new LogContentHandler();
- reader.setContentHandler(contentHandler);
- reader.parse(new InputSource(new FileInputStream(file)));
- return contentHandler.getLogEntries();
- }
-
- private static class LogContentHandler extends DefaultHandler implements ContentHandler {
- private RootEntry root = null;
- private LogEntry current = null;
-
- public RootEntry getLogEntries() {
- return root;
- }
- public void startElement(String uri, String localName, String qName, Attributes attributes)
- throws SAXException {
- if ("log".equals(localName)) {
- Assert.assertNull(current);
- current = root = new RootEntry(null, attributes);
- } else if ("case".equals(localName)) {
- Assert.assertNotNull(current);
- Assert.assertTrue(current instanceof RootEntry);
- current = new CaseEntry((LogEntryContainer) current, attributes);
- } else if ("group".equals(localName)) {
- Assert.assertNotNull(current);
- Assert.assertTrue(current instanceof CaseEntry || current instanceof GroupEntry);
- current = new GroupEntry((LogEntryContainer) current, attributes);
- } else if ("task".equals(localName)) {
- Assert.assertNotNull(current);
- Assert.assertTrue(current instanceof CaseEntry || current instanceof GroupEntry);
- current = new TaskEntry((LogEntryContainer) current, attributes);
- } else if ("result".equals(localName)) {
- Assert.assertNotNull(current);
- Assert.assertTrue(current instanceof TaskEntry);
- ((TaskEntry) current).addResult(new Result(attributes));
- } else if ("abort".equals(localName)) {
- // currently we ignore failure entries
- // XXX need a good way to represent failures
- } else if ("trace".equals(localName)) {
- // currently we ignore stack frames associated with failure entries
- } else if ("status".equals(localName)) {
- // currently we ignore status associated with failure entries
- } else {
- throw new SAXException("Unrecognized element: " + localName);
- }
- }
- public void endElement(String uri, String localName, String qName)
- throws SAXException {
- Assert.assertNotNull(current);
- if ("result".equals(localName) || "abort".equals(localName) ||
- "trace".equals(localName) || "status".equals(localName)) {
- // nothing to do
- } else {
- current = current.getParent();
- }
- }
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogEntryContainer.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogEntryContainer.java
deleted file mode 100644
index aca48e393..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogEntryContainer.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-public abstract class LogEntryContainer extends LogEntry {
- private List /* of LogEntry */ list = new ArrayList();
-
- public LogEntryContainer(LogEntryContainer parent, String name) {
- super(parent, name);
- }
-
- /**
- * Accepts a visitor for each child in the order in which they are listed.
- * @param visitor the visitor
- */
- public void acceptChildren(ILogEntryVisitor visitor) {
- Iterator it = list.iterator();
- while (it.hasNext()) {
- LogEntry entry = (LogEntry) it.next();
- entry.accept(visitor);
- }
- }
-
- /**
- * Returns the list of children in this container.
- */
- public LogEntry[] members() {
- return (LogEntry[]) list.toArray(new LogEntry[list.size()]);
- }
-
- /**
- * Returns the member with the specified name and class.
- */
- public LogEntry findMember(String name, Class clazz) {
- Iterator it = list.iterator();
- while (it.hasNext()) {
- LogEntry entry = (LogEntry) it.next();
- if (name.equals(entry.getName()) &&
- clazz.isAssignableFrom(entry.getClass())) return entry;
- }
- return null;
- }
-
- /*
- * Adds the specified entry to the end of the list.
- */
- void addEntry(LogEntry entry) {
- list.add(entry);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogFormatterUIMain.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogFormatterUIMain.java
deleted file mode 100644
index a7ce8a74c..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LogFormatterUIMain.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Quick and dirty UI frontend for the log formatters.
- */
-public class LogFormatterUIMain {
-
- public LogFormatterUIMain() {
- }
-
- public static void main(String[] args) {
- new LogFormatterUIMain().run();
- }
-
- public void run() {
- Display display = new Display();
- Shell shell = new Shell(display);
-
- shell.setText("Log Formatter UI");
- createContents(shell);
-
- shell.setSize(500, 300);
- shell.open();
- while (! shell.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- shell.dispose();
- display.dispose();
- }
-
- protected void createContents(Composite parent) {
- parent.setLayout(new FillLayout());
- TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
- createSummaryTabContents(new TabItem(tabFolder, SWT.NONE));
- createDiffTabContents(new TabItem(tabFolder, SWT.NONE));
- }
-
- protected void createSummaryTabContents(TabItem item) {
- Composite top = new Composite(item.getParent(), SWT.NONE);
- item.setControl(top);
- item.setText("Create Log Summary");
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- top.setLayout(layout);
-
- final Text logFileText = createFileSelector(top, "Log file path: ");
- final Text outputFileText = createFileSelector(top, "Output file path: ");
-
- final Button csvCheckButton = new Button(top, SWT.CHECK);
- csvCheckButton.setText("Produce comma separated values data");
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER);
- data.horizontalSpan = 3;
- csvCheckButton.setLayoutData(data);
-
- final Button rawCheckButton = new Button(top, SWT.CHECK);
- rawCheckButton.setText("Do not merge results from successive iterations");
- data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER);
- data.horizontalSpan = 3;
- rawCheckButton.setLayoutData(data);
-
- createRunButton(top, new Runnable() {
- public void run() {
- PrintSummaryMain.main(new String[] {
- logFileText.getText(),
- "-out", outputFileText.getText(),
- csvCheckButton.getSelection() ? "-csv" : null,
- rawCheckButton.getSelection() ? "-raw" : null });
- }
- });
- }
-
- protected void createDiffTabContents(TabItem item) {
- Composite top = new Composite(item.getParent(), SWT.NONE);
- item.setControl(top);
- item.setText("Create Log Diff");
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- top.setLayout(layout);
-
- final Text newerLogFileText = createFileSelector(top, "Newer log file path: ");
- final Text olderLogFileText = createFileSelector(top, "Older log file path: ");
- final Text outputFileText = createFileSelector(top, "Output file path: ");
-
- Label label = new Label(top, SWT.NONE);
- label.setText("Threshold %");
- label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER));
-
- final Text thresholdText = new Text(top, SWT.BORDER);
- thresholdText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER));
- thresholdText.setText("0");
-
- new Label(top, SWT.NONE);
-
- final Button csvCheckButton = new Button(top, SWT.CHECK);
- csvCheckButton.setText("Produce comma separated values data");
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER);
- data.horizontalSpan = 3;
- csvCheckButton.setLayoutData(data);
-
- final Button ignoreCheckButton = new Button(top, SWT.CHECK);
- ignoreCheckButton.setText("Ignore negligible changes in results");
- data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER);
- data.horizontalSpan = 3;
- ignoreCheckButton.setLayoutData(data);
-
- createRunButton(top, new Runnable() {
- public void run() {
- PrintDiffMain.main(new String[] {
- newerLogFileText.getText(),
- olderLogFileText.getText(),
- "-out", outputFileText.getText(),
- "-t", thresholdText.getText(),
- csvCheckButton.getSelection() ? "-csv" : null,
- ignoreCheckButton.getSelection() ? "-i" : null });
- }
- });
- }
-
- protected Text createFileSelector(Composite parent, String labelText) {
- Label label = new Label(parent, SWT.NONE);
- label.setText(labelText);
- label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER));
-
- final Text text = new Text(parent, SWT.BORDER);
- text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER));
-
- Button browseButton = new Button(parent, SWT.PUSH);
- browseButton.setText("Browse...");
- browseButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- FileDialog dialog = new FileDialog(text.getShell(), SWT.OPEN);
- dialog.setFileName(text.getText());
- String name = dialog.open();
- if (name != null) {
- text.setText(name);
- }
- }
- });
- browseButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- return text;
- }
-
- protected Button createRunButton(Composite parent, final Runnable runnable) {
- Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_END | GridData.GRAB_VERTICAL);
- data.horizontalSpan = 3;
- separator.setLayoutData(data);
-
- final Button runButton = new Button(parent, SWT.PUSH);
- runButton.setText("Run");
- data = new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_FILL);
- data.horizontalSpan = 3;
- runButton.setLayoutData(data);
- runButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- runButton.getDisplay().asyncExec(runnable);
- }
- });
- return runButton;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestCase.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestCase.java
deleted file mode 100644
index b5a389d20..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestCase.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.ccvs.ui.old;
-
-
-import junit.framework.Assert;
-import junit.framework.Test;
-import junit.framework.TestResult;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-public class LoggingTestCase extends CVSTestSetup {
- private LoggingTestResult logResult;
- private int disableLogStack;
-
- /**
- * Creates a new logging test case.
- */
- public LoggingTestCase(Test test) {
- super(test);
- }
-
- /**
- * Runs a test.
- * @param result the result object
- */
- public void run(TestResult result) {
- // run the garbage collector now to improve benchmark precision
- for (int i = 0; i < 4; ++i) {
- System.runFinalization();
- System.gc();
- }
- if (result instanceof LoggingTestResult) {
- logResult = (LoggingTestResult) result;
- disableLogStack = 0;
- } else {
- logResult = null;
- disableLogStack = 1;
- }
- super.run(result);
- }
-
- /**
- * Marks the beginning of a new task group.
- * @param groupName the name for the group
- */
- protected void startGroup(String groupName) {
- if (disableLogStack == 0) logResult.startGroup(groupName);
- }
-
- /**
- * Marks the ends of the active task group.
- */
- protected void endGroup() {
- if (disableLogStack == 0) logResult.endGroup();
- }
-
- /**
- * Marks the beginning of a new task.
- * @param taskName the name for the task
- */
- protected void startTask(String taskName) {
- if (disableLogStack == 0) logResult.startTask(taskName);
- }
-
- /**
- * Marks the ends of the active task.
- */
- protected void endTask() {
- if (disableLogStack == 0) logResult.endTask();
- }
-
- /**
- * Disables logging until re-enabled. (this call nests)
- */
- protected void disableLog() {
- disableLogStack += 1;
- }
-
- /**
- * Enables logging when all previous calls to disableLog are matched.
- */
- protected void enableLog() {
- Assert.assertTrue(disableLogStack > 0);
- disableLogStack -= 1;
- Assert.assertTrue(disableLogStack != 0 || logResult != null);
- }
-
- /**
- * Prints a warning message to the log.
- * @param message the message, or null
- * @param error an exception with a stack trace, or null
- * @param status a status code, or null
- */
- protected void printWarning(String message, Throwable error, IStatus status) {
- if (disableLogStack == 0) logResult.printWarning(message, error, status);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestResult.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestResult.java
deleted file mode 100644
index dad409d66..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestResult.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.io.PrintStream;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Stack;
-import java.util.StringTokenizer;
-
-import junit.framework.Assert;
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.runner.BaseTestRunner;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.TeamException;
-
-public class LoggingTestResult extends TestResult {
- protected Stack groupStack;
- protected PerformanceTimer currentTask;
- protected PrintStream logStream;
- protected Stack /* of String */ elements;
- protected String indent;
-
- /**
- * Creates a logging test result.
- * @param logStream the output stream, or null to disable logging
- */
- public LoggingTestResult(PrintStream logStream) {
- this.logStream = logStream;
- this.elements = new Stack();
- this.indent = "";
- groupStack = new Stack();
- currentTask = null;
- }
-
- /**
- * Marks the beginning of a series of log entries.
- */
- public void startLog(long timestamp, String sdkBuild) {
- println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
- startXMLElement("log", new String[] { "timestamp", "sdkbuild" }, new String[] {
- new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss").format(new Date(timestamp)),
- sdkBuild });
- }
-
- /**
- * Marks the end of a series of log entries.
- */
- public void endLog() {
- endXMLElement();
- }
-
- /**
- * Prints a warning message to the log file.
- * @param message the message, or null
- * @param error an exception with a stack trace, or null
- * @param status a status code, or null
- */
- public void printWarning(String message, Throwable error, IStatus status) {
- printAbort("warning", message, error, status);
- }
-
- /**
- * Called by the JUnit framework when an error occurs.
- * @param test the test
- * @param error the exception that occurred
- */
- public void addError(Test test, Throwable error) {
- printAbort("error", null, error, null);
- super.addError(test, error);
- }
-
- /**
- * Called by the JUnit framework when an assertion failure occurs.
- * @param test the test
- * @param error the exception that occurred
- */
- public void addFailure(Test test, AssertionFailedError error) {
- printAbort("failure", null, error, null);
- super.addFailure(test, error);
- }
-
- /**
- * Called by the JUnit framework to mark the beginning of a test case.
- * @param test the test
- */
- public void startTest(Test test) {
- if (test instanceof TestCase) {
- TestCase testCase = (TestCase) test;
- startXMLElement("case", new String[] { "class", "name" },
- new String[] { testCase.getClass().getName(), testCase.getName() });
- groupStack.clear();
- currentTask = null;
- }
- super.startTest(test);
- }
-
- /**
- * Called by the JUnit framework to mark the end of a test case.
- * @param test the test
- */
- public void endTest(Test test) {
- if (test instanceof TestCase) {
- TestCase testCase = (TestCase) test;
- if (currentTask != null) endTask();
- while (! groupStack.isEmpty()) endGroup();
- endXMLElement();
- }
- super.endTest(test);
- }
-
- /**
- * Marks the beginning of a new task group.
- * @param groupName the name for the group
- */
- public void startGroup(String groupName) {
- Assert.assertNull(currentTask);
- startXMLElement("group", new String[] { "name" }, new String[] { groupName });
- groupStack.push(groupName);
- }
-
- /**
- * Marks the end of the active task group.
- */
- public void endGroup() {
- Assert.assertNull(currentTask);
- Assert.assertTrue(! groupStack.empty());
- endXMLElement();
- groupStack.pop();
- }
-
- /**
- * Marks the beginning of a new task.
- * @param taskName the name for the task
- */
- public void startTask(String taskName) {
- Assert.assertNull(currentTask);
- startXMLElement("task", new String[] { "name" }, new String[] { taskName });
- currentTask = new PerformanceTimer(taskName);
- currentTask.start();
- }
-
- /**
- * Marks the end of the active task.
- */
- public void endTask() {
- Assert.assertNotNull(currentTask);
- currentTask.stop();
- printXMLElement("result", new String[] { "elapsed" },
- new String[] { Integer.toString(currentTask.getTotalMillis()) });
- endXMLElement();
- currentTask = null;
- }
-
- protected void startXMLElement(String name, String[] attributes, String[] values) {
- println(formatXMLElement(name, attributes, values, false));
- elements.push(name);
- indent += " ";
- }
-
- protected void printXMLElement(String name, String[] attributes, String[] values) {
- println(formatXMLElement(name, attributes, values, true));
- }
-
- protected String formatXMLElement(String name, String[] attributes, String[] values, boolean quickEnd) {
- // XXX need to escape certain characters in attribute values
- StringBuffer buffer = new StringBuffer("<");
- buffer.append(name);
- if (attributes != null && values != null) {
- for (int i = 0; i < attributes.length; ++i) {
- buffer.append(' ');
- buffer.append(attributes[i]);
- buffer.append("=\"");
- buffer.append(values[i]);
- buffer.append('"');
- }
- }
- if (quickEnd) buffer.append('/');
- buffer.append('>');
- return buffer.toString();
- }
-
- protected void endXMLElement() {
- indent = indent.substring(2);
- String name = (String) elements.pop();
- println("</" + name + ">");
- }
-
- protected void printXMLElementData(String line) {
- // XXX need to escape certain characters in element data
- println(line);
- }
-
- protected void printAbort(String type, String message, Throwable error, IStatus status) {
- if (status == null && error != null) {
- if (error instanceof CoreException) {
- status = ((CoreException) error).getStatus();
- } else if (error instanceof TeamException) {
- status = ((TeamException) error).getStatus();
- }
- }
- if (message == null && error != null) {
- message = error.getMessage();
- if (message == null) {
- message = error.getClass().getName();
- }
- }
- if (message == null && status != null) {
- message = status.getMessage();
- }
- if (message == null) message = "";
- startXMLElement("abort", new String[] { "type", "message" },
- new String[] { type, message });
- if (status != null) printStatus(status);
- if (error != null) printStackTrace(error);
- endXMLElement();
- }
-
- protected void printStatus(IStatus status) {
- startXMLElement("status", new String[] { "severity", "code", "plugin", "message" },
- new String[] {
- Integer.toString(status.getSeverity()),
- Integer.toString(status.getCode()),
- status.getPlugin(), status.getMessage() });
- if (status.isMultiStatus()) {
- IStatus[] children = status.getChildren();
- for (int i = 0; i < children.length; ++i) {
- printStatus(children[i]);
- }
- }
- endXMLElement();
- }
-
- protected void printStackTrace(Throwable error) {
- // XXX need a better way to serialize the stack trace
- String trace = BaseTestRunner.getFilteredTrace(error);
- StringTokenizer tok = new StringTokenizer(trace, "\r\n");
- if (! tok.hasMoreTokens()) return; // empty trace?
- tok.nextToken(); // skip message line
- startXMLElement("trace", null, null);
- while (tok.hasMoreTokens()) {
- String frame = tok.nextToken();
- printXMLElementData(frame);
- }
- endXMLElement();
- }
-
- protected void println(String line) {
- if (logStream != null) logStream.println(indent + line);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestRunner.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestRunner.java
deleted file mode 100644
index 9d2e5714b..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/LoggingTestRunner.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.textui.TestRunner;
-
-public class LoggingTestRunner extends TestRunner {
- protected LoggingTestResult logResult;
-
- protected TestResult createTestResult() {
- TestResult result = logResult;
- logResult = null;
- if (result == null) result = new LoggingTestResult(null);
- return result;
- }
-
- /**
- * Runs a logging test suite.
- * @param suite the test suite
- * @param logResult the result object to use, or null to create a new one
- * @param wait if true, pauses between test runs
- */
- public void doRun(Test suite, LoggingTestResult logResult, boolean wait) {
- this.logResult = logResult;
- super.doRun(suite, wait);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/MergeRunsVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/MergeRunsVisitor.java
deleted file mode 100644
index 22b58dc46..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/MergeRunsVisitor.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-public class MergeRunsVisitor implements ILogEntryVisitor {
- private RootEntry defaultRoot;
- private RootEntry root;
- private LogEntryContainer parent;
-
- /**
- * Creates a new visitor to merge series of log entries.
- * @param root the root of an existing log to merge into, or null
- */
- public MergeRunsVisitor(RootEntry root) {
- this.defaultRoot = root;
- this.parent = null;
- }
-
- /**
- * Returns the root of the newly merged log, or null if none.
- */
- public RootEntry getMergedRoot() {
- return root;
- }
-
- public void visitRootEntry(RootEntry entry) {
- root = defaultRoot;
- if (root == null) {
- root = new RootEntry(null, entry.getName(), entry.getSDKBuildId(), entry.getTimestamp());
- }
- parent = root;
- entry.acceptChildren(this);
- }
-
- public void visitCaseEntry(CaseEntry entry) {
- LogEntryContainer oldParent = parent;
- CaseEntry newEntry = (CaseEntry) parent.findMember(entry.getName(), CaseEntry.class);
- if (newEntry == null) {
- newEntry = new CaseEntry(parent, entry.getName(), entry.getClassName());
- }
- parent = newEntry;
- entry.acceptChildren(this);
- parent = oldParent;
- }
-
- public void visitGroupEntry(GroupEntry entry) {
- LogEntryContainer oldParent = parent;
- GroupEntry newEntry = (GroupEntry) parent.findMember(entry.getName(), GroupEntry.class);
- if (newEntry == null) {
- newEntry = new GroupEntry(parent, entry.getName());
- }
- parent = newEntry;
- entry.acceptChildren(this);
- parent = oldParent;
- }
-
- public void visitTaskEntry(TaskEntry entry) {
- TaskEntry newEntry = (TaskEntry) parent.findMember(entry.getName(), TaskEntry.class);
- if (newEntry == null) {
- newEntry = new TaskEntry(parent, entry.getName());
- }
- Result[] results = entry.getResults();
- for (int i = 0; i < results.length; i++) {
- newEntry.addResult(results[i]);
- }
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PerformanceTimer.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PerformanceTimer.java
deleted file mode 100644
index ddf7a359e..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PerformanceTimer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-public class PerformanceTimer {
- private long startTime;
- private int totalMillis;
- private String name;
-
- /**
- * Creates a timer, initially not running.
- */
- public PerformanceTimer(String name) {
- this.totalMillis = 0;
- this.name = name;
- }
-
- /**
- * Starts the timer. Timer must not be running.
- */
- public void start() {
- startTime = System.currentTimeMillis();
- }
-
- /**
- * Stops the timer. Timer must be running.
- */
- public void stop() {
- totalMillis += System.currentTimeMillis() - startTime;
- startTime = 0;
- }
-
- /**
- * Returns the total number of milliseconds elapsed over all measured intervals.
- */
- public int getTotalMillis() {
- return totalMillis;
- }
-
- /**
- * Returns the name of this timer.
- */
- public String getName() {
- return name;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintCSVDiffVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintCSVDiffVisitor.java
deleted file mode 100644
index a05f9c0bb..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintCSVDiffVisitor.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-public class PrintCSVDiffVisitor extends PrintDiffVisitor {
- private static final String GROUP_DELIMITER = " / ";
- private DelimitedValuesWriter writer;
- private String caseName;
- private String groupName;
-
- /**
- * Creates a diff visitor that generates CSV output.
- *
- * @param writer the delimited values writer
- * @see PrintDiffVisitor
- */
- public PrintCSVDiffVisitor(DelimitedValuesWriter writer, RootEntry olderRoot, int threshold, boolean ignoreNegligible) {
- super(olderRoot, threshold, ignoreNegligible);
- this.writer = writer;
- }
-
- protected void visitRootEntry(RootEntry entry, RootEntry olderEntry) {
- entry.acceptChildren(this);
- }
-
- protected void visitCaseEntry(CaseEntry entry, CaseEntry olderEntry) {
- caseName = entry.getName();
- groupName = null;
- entry.acceptChildren(this);
- }
-
- protected void visitGroupEntry(GroupEntry entry, GroupEntry olderEntry) {
- String oldGroupName = groupName;
- if (groupName == null) {
- groupName = entry.getName();
- } else {
- groupName += GROUP_DELIMITER + entry.getName();
- }
- entry.acceptChildren(this);
- groupName = oldGroupName;
- }
-
- protected void visitTaskEntry(TaskEntry entry, TaskEntry olderEntry) {
- writer.printFields(new String[] {
- caseName, // case
- groupName, // group
- entry.getName() // task
- });
- printTaskEntry(entry);
- printTaskEntry(olderEntry);
- if (entry.getTotalRuns() != 0 && olderEntry.getTotalRuns() != 0) {
- int olderMean = olderEntry.getAverageMillis();
- int diff = entry.getAverageMillis() - olderMean;
- if (isDifferenceUncertain(entry, olderEntry)) {
- writer.printField("UNCERTAIN");
- } else if (isDifferenceNegligible(entry, olderEntry)) {
- writer.printField("NEGLIGIBLE");
- } else {
- writer.printField(diff > 0 ? "SLOWER" : "FASTER"); // change type
- }
- writer.printField(Integer.toString(Math.abs(diff))); // change
- if (olderMean != 0) {
- writer.printField(Util.formatPercentageRatio(Math.abs(diff), olderMean)); // % change
- } else {
- writer.printField("");
- }
- } else {
- writer.printFields(new String[] { "", "", "" });
- }
- writer.endRecord();
- }
-
- protected void printTaskEntry(TaskEntry entry) {
- if (entry.getTotalRuns() != 0) {
- int mean = entry.getAverageMillis();
- writer.printFields(new String[] {
- Integer.toString(entry.getTotalRuns()), // runs
- Integer.toString(mean) // average
- });
- if (entry.getTotalRuns() > 1 && mean != 0) {
- int confidence = entry.getConfidenceInterval();
- writer.printFields(new String[] {
- Integer.toString(confidence), // 95% confidence interval
- Util.formatPercentageRatio(confidence, mean) // 95% c.i. as a percentage
- });
- } else {
- writer.printFields(new String[] { "", "" });
- }
- } else {
- writer.printFields(new String[] { "0", "", "", "" });
- }
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintCSVSummaryVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintCSVSummaryVisitor.java
deleted file mode 100644
index 1bde78ace..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintCSVSummaryVisitor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-public class PrintCSVSummaryVisitor implements ILogEntryVisitor {
- private static final String GROUP_DELIMITER = " / ";
- private DelimitedValuesWriter writer;
- private String caseName;
- private String groupName;
-
- /**
- * Creates a visitor to print a log as comma-separated values.
- * @param writer the delimited values writer
- */
- public PrintCSVSummaryVisitor(DelimitedValuesWriter writer) {
- this.writer = writer;
- }
-
- public void visitRootEntry(RootEntry entry) {
- entry.acceptChildren(this);
- }
-
- public void visitCaseEntry(CaseEntry entry) {
- caseName = entry.getName();
- groupName = null;
- entry.acceptChildren(this);
- }
-
- public void visitGroupEntry(GroupEntry entry) {
- String oldGroupName = groupName;
- if (groupName == null) {
- groupName = entry.getName();
- } else {
- groupName += GROUP_DELIMITER + entry.getName();
- }
- entry.acceptChildren(this);
- groupName = oldGroupName;
- }
-
- public void visitTaskEntry(TaskEntry entry) {
- writer.printFields(new String[] {
- caseName, // case
- groupName, // group
- entry.getName() // task
- });
- if (entry.getTotalRuns() != 0) {
- int mean = entry.getAverageMillis();
- writer.printFields(new String[] {
- Integer.toString(entry.getTotalRuns()), // runs
- Integer.toString(mean) // average
- });
- if (entry.getTotalRuns() > 1 && mean != 0) {
- int confidence = entry.getConfidenceInterval();
- writer.printFields(new String[] {
- Integer.toString(confidence), // 95% confidence interval
- Util.formatPercentageRatio(confidence, mean) // 95% c.i. as a percentage
- });
- } else {
- writer.printFields(new String[] { "", "" });
- }
- } else {
- writer.printFields(new String[] { "0", "", "", "" });
- }
- // append the result fields (ms)
- Result[] results = entry.getResults();
- for (int i = 0; i < results.length; i++) {
- Result result = results[i];
- if (result.getRuns() == 0) continue;
- writer.printField(Integer.toString(result.getMillis() / result.getRuns()));
- }
- writer.endRecord();
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintDiffMain.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintDiffMain.java
deleted file mode 100644
index f4dfd60be..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintDiffMain.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.xml.sax.SAXException;
-
-public class PrintDiffMain {
- public static void main(String[] args) {
- Parser parser = new Parser();
- if (! parser.parse(args)) {
- System.err.println("Usage: <newer log> <older log> [-out <file>] [-csv] [-t <thresh>] [-i]");
- System.err.println(" -out <file> : specify the output file, default is console");
- System.err.println(" -csv : produce comma separated values data");
- System.err.println(" -t <thresh> : minimum non-negligible absolute % change");
- System.err.println(" -i : ignore negligible changes in results");
- return;
- }
- try {
- PrintStream ps = System.out;
- try {
- if (parser.outputFile != null) ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(parser.outputFile)));
- printDiff(ps, parser.newerLogFile, parser.olderLogFile, parser.csv, parser.thresh, parser.ignore);
- } finally {
- if (ps != System.out) ps.close();
- }
- } catch (Exception e) {
- System.err.println("An error occurred:");
- e.printStackTrace();
- return;
- }
- }
-
- private static void printDiff(PrintStream ps, File newerLogFile, File olderLogFile,
- boolean csv, int thresh, boolean ignore) throws IOException, SAXException {
- // read and merge newer log
- RootEntry newerRoot = LogEntry.readLog(newerLogFile);
- MergeRunsVisitor mergeVisitor = new MergeRunsVisitor(null);
- newerRoot.accept(mergeVisitor);
- newerRoot = mergeVisitor.getMergedRoot();
-
- // read and merge older log
- RootEntry olderRoot = LogEntry.readLog(olderLogFile);
- olderRoot.accept(mergeVisitor);
- olderRoot = mergeVisitor.getMergedRoot();
-
- // format options
- StringBuffer options = new StringBuffer();
- if (thresh != 0) {
- options.append("-t ");
- options.append(Integer.toString(thresh));
- options.append(" ");
- }
- if (ignore) options.append("-i ");
-
- // format log file
- if (csv) {
- DelimitedValuesWriter writer = new DelimitedValuesWriter(ps, ",", true /*quoted*/);
- // print header
- writer.printRecord(new String[] { "", "Newer", "Older" });
- writer.printRecord(new String[] { "Log File", newerLogFile.toString(), olderLogFile.toString() });
- writer.printRecord(new String[] { "Generated", newerRoot.getTimestamp(), olderRoot.getTimestamp() });
- writer.printRecord(new String[] { "SDK Build", newerRoot.getSDKBuildId(), olderRoot.getSDKBuildId() });
- writer.endRecord();
- writer.printRecord(new String[] { "Options", "'" + options.toString() });
- writer.endRecord();
- writer.printRecord(new String[] { "", "", "",
- "Newer", "", "", "",
- "Older", "", "", "",
- "", "", "" });
- writer.printRecord(new String[] { "Case", "Group", "Task",
- "Runs", "Avg. (ms)", "95% C.I. (ms)", "95% C.I. (%)",
- "Runs", "Avg. (ms)", "95% C.I. (ms)", "95% C.I. (%)",
- "Change", "Diff (ms)", "Diff (%)" });
- // print quoted CSV data
- PrintCSVDiffVisitor diffVisitor = new PrintCSVDiffVisitor(writer, olderRoot, thresh, ignore);
- newerRoot.accept(diffVisitor);
- } else {
- // print header
- ps.println("=== LOG DIFF ===");
- ps.println("Newer File: " + newerLogFile);
- ps.println(" Generated: " + newerRoot.getTimestamp());
- ps.println(" SDK Build: " + newerRoot.getSDKBuildId());
- ps.println("Older File: " + olderLogFile);
- ps.println(" Generated: " + olderRoot.getTimestamp());
- ps.println(" SDK Build: " + olderRoot.getSDKBuildId());
- ps.println("Options: " + options.toString());
- ps.println();
- // compute and print the differences
- PrintTextDiffVisitor diffVisitor = new PrintTextDiffVisitor(ps, olderRoot, thresh, ignore);
- newerRoot.accept(diffVisitor);
- }
- }
-
- private static class Parser extends ArgumentParser {
- public File newerLogFile = null;
- public File olderLogFile = null;
- public File outputFile = null;
- public boolean csv = false;
- public int thresh = 0;
- public boolean ignore = false;
-
- protected boolean handleFinished() {
- return newerLogFile != null && olderLogFile != null;
- }
- protected boolean handleArgument(int index, String arg) {
- if (index == 0) {
- newerLogFile = new File(arg);
- } else if (index == 1) {
- olderLogFile = new File(arg);
- } else {
- return false;
- }
- return true;
- }
- protected boolean handleOption(String option, String arg) {
- if ("-out".equals(option)) {
- if (arg == null) return false;
- outputFile = new File(arg);
- } else if ("-csv".equals(option)) {
- if (arg != null) return false;
- csv = true;
- } else if ("-t".equals(option)) {
- if (arg == null) return false;
- try {
- thresh = Integer.parseInt(arg, 10);
- } catch (NumberFormatException e) {
- return false;
- }
- if (thresh < 0) return false;
- } else if ("-i".equals(option)) {
- if (arg != null) return false;
- ignore = true;
- } else {
- return false;
- }
- return true;
- }
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintDiffVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintDiffVisitor.java
deleted file mode 100644
index ab2d2443e..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintDiffVisitor.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-public abstract class PrintDiffVisitor implements ILogEntryVisitor {
- protected RootEntry olderRoot;
- protected int threshold; // threshold for negligible changes
- protected boolean ignoreNegligible; // if true, ignores negligible changes
- protected LogEntryContainer olderParent; // corresponding parent in older root
-
- /**
- * Creates a visitor to print a summary of the changes between a log
- * and an older one. Optionally ignores differences within a certain threshold.
- * Does not print older entries for which there are no corresponding newer ones.
- *
- * @param olderRoot the root of the older log
- * @param threshold the minimum non-negligible % change
- * @param ignoreNegligible if true, does not display negligible changes
- */
- public PrintDiffVisitor(RootEntry olderRoot, int threshold, boolean ignoreNegligible) {
- this.olderRoot = olderRoot;
- this.olderParent = null;
- this.threshold = threshold;
- this.ignoreNegligible = ignoreNegligible;
- }
-
- protected abstract void visitRootEntry(RootEntry entry, RootEntry olderEntry);
- protected abstract void visitCaseEntry(CaseEntry entry, CaseEntry olderEntry);
- protected abstract void visitGroupEntry(GroupEntry entry, GroupEntry olderEntry);
- protected abstract void visitTaskEntry(TaskEntry entry, TaskEntry olderEntry);
-
- public void visitRootEntry(RootEntry entry) {
- olderParent = olderRoot;
- visitRootEntry(entry, olderRoot);
- }
-
- public void visitCaseEntry(CaseEntry entry) {
- LogEntryContainer prevOlderParent = olderParent;
- if (olderParent != null) {
- olderParent = (LogEntryContainer) olderParent.findMember(entry.getName(), CaseEntry.class);
- }
- visitCaseEntry(entry, (CaseEntry) olderParent);
- olderParent = prevOlderParent;
- }
-
- public void visitGroupEntry(GroupEntry entry) {
- LogEntryContainer prevOlderParent = olderParent;
- if (olderParent != null) {
- olderParent = (LogEntryContainer) olderParent.findMember(entry.getName(), GroupEntry.class);
- }
- visitGroupEntry(entry, (GroupEntry) olderParent);
- olderParent = prevOlderParent;
- }
-
- public void visitTaskEntry(TaskEntry entry) {
- TaskEntry olderEntry = null;
- if (olderParent != null) {
- olderEntry = (TaskEntry) olderParent.findMember(entry.getName(), TaskEntry.class);
- }
- if (ignoreNegligible && isDifferenceNegligible(entry, olderEntry)) return;
- visitTaskEntry(entry, olderEntry);
- }
-
- protected boolean isDifferenceNegligible(TaskEntry newerEntry, TaskEntry olderEntry) {
- if (newerEntry.getTotalRuns() == 0 || olderEntry.getTotalRuns() == 0) return false;
- int olderMean = olderEntry.getAverageMillis();
- if (olderMean == 0) return false;
- int newerMean = newerEntry.getAverageMillis();
- int diff = Math.abs(newerMean - olderMean);
- return diff * 100 / olderMean < threshold;
- }
-
- protected boolean isDifferenceUncertain(TaskEntry newerEntry, TaskEntry olderEntry) {
- if (newerEntry.getTotalRuns() == 0 || olderEntry.getTotalRuns() == 0) return false;
- int olderMean = olderEntry.getAverageMillis();
- int newerMean = newerEntry.getAverageMillis();
- int diff = Math.abs(newerMean - olderMean);
- int diffCI = newerEntry.getConfidenceInterval() + olderEntry.getConfidenceInterval();
- return diff < diffCI;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintSummaryMain.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintSummaryMain.java
deleted file mode 100644
index fbdf96960..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintSummaryMain.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.xml.sax.SAXException;
-
-public class PrintSummaryMain {
- public static void main(String[] args) {
- Parser parser = new Parser();
- if (! parser.parse(args)) {
- System.err.println("Usage: <log file> [-out <file>] [-csv] [-raw]");
- System.err.println(" -out <file> : specify the output file, default is console");
- System.err.println(" -csv : produce comma separated values data");
- System.err.println(" -raw : do not merge results from successive iterations");
- return;
- }
- try {
- PrintStream ps = System.out;
- try {
- if (parser.outputFile != null) ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(parser.outputFile)));
- printLog(ps, parser.logFile, parser.csv, parser.raw);
- } finally {
- if (ps != System.out) ps.close();
- }
- } catch (Exception e) {
- System.err.println("An error occurred:");
- e.printStackTrace();
- return;
- }
- }
-
- private static void printLog(PrintStream ps, File logFile, boolean csv, boolean raw)
- throws IOException, SAXException {
- // read and merge the log
- RootEntry root = LogEntry.readLog(logFile);
- if (! raw) {
- MergeRunsVisitor mergeVisitor = new MergeRunsVisitor(null);
- root.accept(mergeVisitor);
- root = mergeVisitor.getMergedRoot();
- }
-
- // format options
- StringBuffer options = new StringBuffer();
- if (raw) options.append("-raw ");
-
- // format log file
- if (csv) {
- DelimitedValuesWriter writer = new DelimitedValuesWriter(ps, ",", true /*quoted*/);
- // print header
- writer.printRecord(new String[] { "Log File", logFile.toString() });
- writer.printRecord(new String[] { "Generated", root.getTimestamp() });
- writer.printRecord(new String[] { "SDK Build", root.getSDKBuildId() });
- writer.endRecord();
- writer.printRecord(new String[] { "Options", "'" + options.toString() });
- writer.endRecord();
- writer.printRecord(new String[] { "Case", "Group", "Task",
- "Runs", "Avg. (ms)", "95% C.I. (ms)", "95% C.I. (%)", "Results (ms)" });
- // print quoted CSV data
- PrintCSVSummaryVisitor visitor = new PrintCSVSummaryVisitor(writer);
- root.accept(visitor);
- } else {
- // print header
- ps.println("=== LOG SUMMARY ===");
- ps.println("File: " + logFile);
- ps.println(" Generated: " + root.getTimestamp());
- ps.println(" SDK Build: " + root.getSDKBuildId());
- ps.println("Options: " + options.toString());
- ps.println();
- // print the log summary
- root.accept(new PrintTextSummaryVisitor(ps));
- }
- }
-
- private static class Parser extends ArgumentParser {
- public File logFile = null;
- public File outputFile = null;
- public boolean csv = false;
- public boolean raw = false;
-
- protected boolean handleFinished() {
- return logFile != null;
- }
- protected boolean handleArgument(int index, String arg) {
- if (index == 0) {
- logFile = new File(arg);
- } else {
- return false;
- }
- return true;
- }
- protected boolean handleOption(String option, String arg) {
- if ("-out".equals(option)) {
- if (arg == null) return false;
- outputFile = new File(arg);
- } else if ("-csv".equals(option)) {
- if (arg != null) return false;
- csv = true;
- } else if ("-raw".equals(option)) {
- if (arg != null) return false;
- raw = true;
- } else {
- return false;
- }
- return true;
- }
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintTextDiffVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintTextDiffVisitor.java
deleted file mode 100644
index 4572a8734..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintTextDiffVisitor.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.io.PrintStream;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-public class PrintTextDiffVisitor extends PrintDiffVisitor {
- private PrintStream os;
- private List diffText; // list of things to print
- private String indent;
-
- /**
- * Creates a diff visitor that generates text output.
- *
- * @param os the output stream
- * @see PrintDiffVisitor
- */
- public PrintTextDiffVisitor(PrintStream os, RootEntry olderRoot, int threshold, boolean ignoreNegligible) {
- super(olderRoot, threshold, ignoreNegligible);
- this.os = os;
- this.diffText = null;
- this.indent = "";
- }
-
- protected void visitRootEntry(RootEntry entry, RootEntry olderEntry) {
- entry.acceptChildren(this);
- }
-
- protected void visitCaseEntry(CaseEntry entry, CaseEntry olderEntry) {
- String oldIndent = indent;
- indent += " ";
- StringBuffer line = new StringBuffer(indent);
- line.append("%%% ");
- line.append(entry.getName());
- line.append(", class=");
- line.append(entry.getClassName());
- line.append(':');
- os.println(line);
- diffText = null;
- entry.acceptChildren(this);
- if (diffText != null) {
- Iterator it = diffText.iterator();
- while (it.hasNext()) os.println((String) it.next());
- }
- diffText = null;
- os.println();
- indent = oldIndent;
- }
-
- protected void visitGroupEntry(GroupEntry entry, GroupEntry olderEntry) {
- String oldIndent = indent;
- List oldDiffText = diffText;
- indent += " ";
- diffText = null;
- entry.acceptChildren(this);
- indent = oldIndent;
- if (diffText != null) {
- StringBuffer line = new StringBuffer(indent);
- line.append("+ ");
- line.append(entry.getName());
- line.append(':');
- diffText.add(0, line.toString());
- if (oldDiffText != null) diffText.addAll(0, oldDiffText);
- } else {
- diffText = oldDiffText;
- }
- }
-
- protected void visitTaskEntry(TaskEntry entry, TaskEntry olderEntry) {
- // print task description
- if (diffText == null) diffText = new LinkedList(); // using a list for speedy prepending
- StringBuffer line = new StringBuffer(indent);
- line.append("- ");
- line.append(entry.getName());
- line.append(": ");
- diffText.add(line.toString());
-
- // print new entry performance
- printTaskEntry(" newer: ", entry);
-
- // print older entry performance
- if (olderEntry == null) return;
- printTaskEntry(" older: ", olderEntry);
-
- // print difference
- if (entry.getTotalRuns() == 0 || olderEntry.getTotalRuns() == 0) return;
- int olderMean = olderEntry.getAverageMillis();
- int diff = entry.getAverageMillis() - olderMean;
- line = new StringBuffer(indent);
- line.append(" diff : ");
-
- if (isDifferenceUncertain(entry, olderEntry)) {
- line.append("UNCERTAIN");
- } else if (isDifferenceNegligible(entry, olderEntry)) {
- line.append("NEGLIGIBLE");
- } else {
- line.append(diff > 0 ? "SLOWER" : "FASTER");
- line.append(" by ");
- line.append(Integer.toString(Math.abs(diff)));
- line.append(" ms");
- if (olderEntry.getAverageMillis() != 0) {
- line.append(" = ");
- line.append(Util.formatPercentageRatio(Math.abs(diff), olderMean));
- }
- line.append(" avg.");
- }
- diffText.add(line.toString());
- }
-
- protected void printTaskEntry(String prefix, TaskEntry task) {
- StringBuffer line = new StringBuffer(indent);
- line.append(prefix);
- if (task.getTotalRuns() != 0) {
- int averageTime = task.getAverageMillis();
- line.append(Integer.toString(averageTime));
- line.append(" ms");
- if (task.getTotalRuns() > 1) {
- line.append(" avg. over ");
- line.append(Integer.toString(task.getTotalRuns()));
- line.append(" runs");
- if (averageTime != 0) {
- int confidence = task.getConfidenceInterval();
- line.append(" (95% C.I. +/- ");
- line.append(Integer.toString(confidence));
- line.append(" ms = ");
- line.append(Util.formatPercentageRatio(confidence, averageTime));
- line.append(")");
- }
- }
- } else {
- line.append("skipped!");
- }
- diffText.add(line.toString());
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintTextSummaryVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintTextSummaryVisitor.java
deleted file mode 100644
index a2d91ab06..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/PrintTextSummaryVisitor.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.io.PrintStream;
-
-public class PrintTextSummaryVisitor implements ILogEntryVisitor {
- private PrintStream os;
- private String indent;
- private int totalAverageTime;
-
- /**
- * Creates a visitor to print a summary of all entries contained in a log.
- * @param os the output stream
- */
- public PrintTextSummaryVisitor(PrintStream os) {
- this.os = os;
- this.indent = "";
- this.totalAverageTime = 0;
- }
-
- protected void visitContainer(LogEntryContainer container) {
- int oldTotalAverageTime = totalAverageTime;
- indent += " ";
- container.acceptChildren(this);
- int averageTime = totalAverageTime - oldTotalAverageTime;
- StringBuffer line = new StringBuffer(indent);
- line.append("* total: ");
- line.append(Integer.toString(averageTime));
- line.append(" ms");
- os.println(line);
- indent = indent.substring(2);
- }
-
- /**
- * Prints the root entry information.
- */
- public void visitRootEntry(RootEntry entry) {
- entry.acceptChildren(this);
- }
-
- /**
- * Prints the total average time spent by all subgroups and subtasks.
- */
- public void visitCaseEntry(CaseEntry entry) {
- StringBuffer line = new StringBuffer(indent);
- line.append("%%% ");
- line.append(entry.getName());
- line.append(", class=");
- line.append(entry.getClassName());
- line.append(':');
- os.println(line);
- visitContainer(entry);
- os.println();
- }
-
- /**
- * Prints the total average time spent by all subtasks.
- */
- public void visitGroupEntry(GroupEntry entry) {
- StringBuffer line = new StringBuffer(indent);
- line.append("+ ");
- line.append(entry.getName());
- line.append(':');
- os.println(line);
- visitContainer(entry);
- }
-
- /**
- * Prints the average amount of time spent by a task.
- */
- public void visitTaskEntry(TaskEntry task) {
- StringBuffer line = new StringBuffer(indent);
- line.append("- ");
- line.append(task.getName());
- line.append(": ");
- if (task.getTotalRuns() != 0) {
- int averageTime = task.getAverageMillis();
- totalAverageTime += averageTime;
- line.append(Integer.toString(averageTime));
- line.append(" ms");
- if (task.getTotalRuns() > 1) {
- line.append(" avg. over ");
- line.append(Integer.toString(task.getTotalRuns()));
- line.append(" runs");
- if (averageTime != 0) {
- int confidence = task.getConfidenceInterval();
- line.append(" (95% C.I. +/- ");
- line.append(Integer.toString(confidence));
- line.append(" ms = ");
- line.append(Util.formatPercentageRatio(confidence, averageTime));
- line.append(")");
- }
- }
- } else {
- line.append("skipped!");
- }
- os.println(line);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Result.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Result.java
deleted file mode 100644
index 0755d5e70..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Result.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import org.xml.sax.Attributes;
-
-/**
- * Holds the result of one iteration of tests.
- * Note that a test might be run multiple times per iteration, particularly if it
- * is of very short duration to reduce sampling error. This behaviour is not supported
- * at this time, but will likely be of value in the future.
- */
-public class Result {
- private int runs;
- private int millis;
-
- public Result(Attributes attributes) {
- this(1, Integer.parseInt(attributes.getValue("elapsed")));
- }
- public Result(int runs, int millis) {
- this.runs = runs;
- this.millis = millis;
- }
- public int getRuns() {
- return runs;
- }
- public int getMillis() {
- return millis;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/RootEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/RootEntry.java
deleted file mode 100644
index 1d1452eb2..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/RootEntry.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import org.xml.sax.Attributes;
-
-public class RootEntry extends LogEntryContainer {
- private String sdkBuildId;
- private String timestamp;
-
- public RootEntry(LogEntryContainer parent, Attributes attributes) {
- this(parent, attributes.getValue("name"),
- attributes.getValue("sdkbuild"), attributes.getValue("timestamp"));
- }
-
- public RootEntry(LogEntryContainer parent, String name, String sdkBuildId, String timestamp) {
- super(parent, name);
- this.sdkBuildId = (sdkBuildId != null) ? sdkBuildId : "unknown";
- this.timestamp = (timestamp != null) ? timestamp : "unknown";
- }
-
- public void accept(ILogEntryVisitor visitor) {
- visitor.visitRootEntry(this);
- }
-
- /**
- * Returns the SDK Build id.
- */
- public String getSDKBuildId() {
- return sdkBuildId;
- }
-
- /**
- * Returns the class name of the test case.
- */
- public String getTimestamp() {
- return timestamp;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/SequenceGenerator.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/SequenceGenerator.java
deleted file mode 100644
index 1b76b1a63..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/SequenceGenerator.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.util.Random;
-
-/**
- * Encapsulates algorithms and state for generating deterministic sequences.
- * The sequence of numbers generated will always follow the same pattern,
- * regardless of the time, place, or platform.
- */
-public class SequenceGenerator {
- private static long globalSeqNum = System.currentTimeMillis() * 1000;
- private final Random random;
- private int uniqueInt;
-
- /**
- * Constructs a new sequence generator with a known seed.
- */
- public SequenceGenerator() {
- random = new Random(3141592653589793238L); // a known constant
- uniqueInt = 1000000;
- }
-
- /**
- * Returns a globally unique long integer.
- */
- public static long nextGloballyUniqueLong() {
- return globalSeqNum++;
- }
-
- /**
- * Returns a unique 7-digit integer.
- */
- public int nextUniqueInt() {
- return uniqueInt++;
- }
-
- /**
- * Returns a pseudo-random integer between 0 and n-1.
- * @see Random#nextInt(int)
- */
- public int nextInt(int n) {
- return random.nextInt(n);
- }
-
- /**
- * Returns a pseudo-random real number following a gaussian distribution.
- * @see Random#nextGaussian()
- */
- public double nextGaussian() {
- return random.nextGaussian();
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/SyncTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/SyncTests.java
deleted file mode 100644
index a74b46604..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/SyncTests.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.old;
-
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-
-public class SyncTests extends CVSUITestCase {
- private static final int FILE_SIZE_MEAN = 16384;
- private static final int FILE_SIZE_VARIANCE = 0;
- private static final int PROB_BINARY = 0;
-
- public SyncTests(Test test) {
- super(test);
- }
-
- public static Test suite() {
- return new BenchmarkTestSetup(new TestSuite(SyncTests.class));
- }
-
- public void testSync0() throws Exception {
- // test sync on project with no changes
- IProject project = setupOutProject();
- startGroup("test sync with no changes");
- syncCommitResources(new IResource[] { project }, null, "");
- endGroup();
- }
-
- public void testSync1() throws Exception {
- runTestSync(1);
- }
-
- public void testSync10() throws Exception {
- runTestSync(10);
- }
-
- public void testSync100() throws Exception {
- runTestSync(100);
- }
-
- protected IProject setupOutProject() throws Exception {
- IProject project = createAndImportProject("testSync", BenchmarkTestSetup.SMALL_ZIP_FILE);
- disableLog();
- actionShareProject(project);
- syncCommitResources(new IResource[] { project }, null, "initial");
- enableLog();
- return project;
- }
-
- /**
- * Runs a sequence of operations for the synchronizer tests.
- * A parallel project is used to generate incoming changes.
- */
- protected void runTestSync(int size) throws Exception {
- final SequenceGenerator gen = new SequenceGenerator();
-
- // setup out project then move it out of the way
- IProject outProject = setupOutProject();
- String moduleName = outProject.getName();
- Utils.renameResource(outProject, moduleName + "out");
- outProject = Utils.getProject(moduleName + "out");
-
- // setup in project
- disableLog();
- actionCheckoutProjects(new String[] { moduleName }, new CVSTag[] { new CVSTag() });
- enableLog();
- IProject inProject = Utils.getProject(moduleName);
-
- /*** outgoing and incoming changes ***/
- startGroup("synchronize " + size + " added file(s)");
- Utils.createRandomDeepFiles(gen, outProject, size, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY);
- startGroup("as outgoing changes");
- syncCommitResources(new IResource[] { outProject }, null, "");
- endGroup();
- startGroup("as incoming changes");
- syncUpdateResources(new IResource[] { inProject }, null);
- endGroup();
- endGroup();
-
- startGroup("synchronize " + size + " modified file(s)");
- Utils.modifyRandomDeepFiles(gen, outProject, size);
- startGroup("as outgoing changes");
- syncCommitResources(new IResource[] { outProject }, null, "");
- endGroup();
- startGroup("as incoming changes");
- syncUpdateResources(new IResource[] { inProject }, null);
- endGroup();
- endGroup();
-
- startGroup("synchronize " + size + " removed file(s)");
- Utils.deleteRandomDeepFiles(gen, outProject, size);
- startGroup("as outgoing changes");
- syncCommitResources(new IResource[] { outProject }, null, "");
- endGroup();
- startGroup("as incoming changes");
- syncUpdateResources(new IResource[] { inProject }, null);
- endGroup();
- endGroup();
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/TaskEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/TaskEntry.java
deleted file mode 100644
index 666b40914..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/TaskEntry.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.xml.sax.Attributes;
-
-public class TaskEntry extends LogEntry {
- private List /* of Result */ results = new ArrayList();
-
- public TaskEntry(LogEntryContainer parent, Attributes attributes) {
- this(parent, attributes.getValue("name"));
- }
-
- public TaskEntry(LogEntryContainer parent, String name) {
- super(parent, name);
- }
-
- public void accept(ILogEntryVisitor visitor) {
- visitor.visitTaskEntry(this);
- }
-
- /**
- * Returns the average number of milliseconds elapsed, or -1 if unknown.
- */
- public int getAverageMillis() {
- int totalMillis = 0;
- int totalRuns = 0;
- for (Iterator it = results.iterator(); it.hasNext();) {
- Result result = (Result) it.next();
- totalMillis += result.getMillis();
- totalRuns += result.getRuns();
- }
- if (totalRuns == 0) return -1;
- return totalMillis / totalRuns;
- }
-
- /**
- * Returns the standard deviation of the sample.
- * sqrt((n * sum(X^2) - sum(X)^2) / (n * (n-1)))
- */
- public double getStandardDeviation() {
- double sumOfSquares = 0.0, sum = 0.0;
- int totalRuns = 0;
- for (Iterator it = results.iterator(); it.hasNext();) {
- Result result = (Result) it.next();
- if (result.getRuns() == 0) continue;
- totalRuns += result.getRuns();
- sum += result.getMillis();
- double average = (double)result.getMillis() / result.getRuns();
- sumOfSquares += average * average * result.getRuns();
- }
- if (totalRuns == 0) return 0;
- return Math.sqrt((sumOfSquares * totalRuns - sum * sum) / (totalRuns * (totalRuns - 1)));
- }
-
- /**
- * Returns a 95% confidence interval from the mean represented by getAverageMillis()
- * Uses the formula:
- * 1.960 * stdev() / sqrt(n)
- */
- public int getConfidenceInterval() {
- return (int) (1.960 * getStandardDeviation() / Math.sqrt(getTotalRuns()));
- }
-
- /**
- * Returns the number of times this task was run.
- */
- public int getTotalRuns() {
- int totalRuns = 0;
- for (Iterator it = results.iterator(); it.hasNext();) {
- Result result = (Result) it.next();
- totalRuns += result.getRuns();
- }
- return totalRuns;
- }
-
- /**
- * Returns an array of all Results for this task.
- */
- public Result[] getResults() {
- return (Result[]) results.toArray(new Result[results.size()]);
- }
-
- /**
- * Adds a result.
- * @param result the result
- */
- public void addResult(Result result) {
- results.add(result);
- }
-
-
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Util.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Util.java
deleted file mode 100644
index ac0f2bd75..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Util.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-
-public class Util {
- private static final NumberFormat percentageFormat = new DecimalFormat("####0.00%");
-
- public static String formatPercentageRatio(int numerator, int denominator) {
- return percentageFormat.format((double)numerator / denominator);
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Utils.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Utils.java
deleted file mode 100644
index 4ef55baba..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Utils.java
+++ /dev/null
@@ -1,774 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.old;
-
-
-import java.io.*;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.*;
-import java.util.List;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-
-import junit.framework.Assert;
-
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.ui.internal.ide.dialogs.InternalErrorDialog;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-import org.eclipse.ui.wizards.datatransfer.ZipFileStructureProvider;
-
-/**
- * Provides helpers for:
- * <ul>
- * <li>Resource manipulation</li>
- * <li>Diff trees</li>
- * <li>UI automation</li>
- * <li>Parallel development simulation</li>
- * </ul>
- *
- * Note: This class is referenced from the VCM 1.0 performance tests.
- */
-public class Utils {
- /*** RESOURCE MANIPULATION SUPPORT ***/
-
- /**
- * Gets a handle for a project of a given name.
- * @param name the project name
- * @return the project handle
- */
- public static IProject getProject(String name) throws CoreException {
- return ResourcesPlugin.getWorkspace().getRoot().getProject(name);
- }
-
- /**
- * Creates a new project.
- * @param name the project name
- * @return the project handle
- */
- public static IProject createProject(String name) throws CoreException {
- IProject project = getProject(name);
- if (!project.exists()) project.create(null);
- if (!project.isOpen()) project.open(null);
- return project;
- }
-
- /**
- * Deletes a project.
- * @param project the project
- */
- public static void deleteProject(IProject project) throws CoreException {
- project.delete(false /*force*/, null);
- }
-
- /**
- * Deletes a file and prunes empty containing folders.
- * @param file the file to delete
- */
- public static void deleteFileAndPrune(IFile file) throws CoreException {
- file.delete(false /*force*/, null);
- IContainer container = file.getParent();
- while (container != null && container instanceof IFolder &&
- isFolderEmpty((IFolder) container)) {
- deleteFolder((IFolder) container);
- container = container.getParent();
- }
- }
-
- /**
- * Deletes a folder.
- */
- public static void deleteFolder(IFolder folder) throws CoreException {
- try {
- folder.delete(false /*force*/, null);
- } catch (CoreException e) {
- IStatus status = e.getStatus();
- // ignore errors caused by attempting to delete folders that CVS needs to have around
- if (findStatusByCode(status, CVSStatus.FOLDER_NEEDED_FOR_FILE_DELETIONS) == null) {
- throw e;
- }
- }
- }
-
- /**
- * Finds an IStatus instance in a multi-status by status code.
- */
- public static IStatus findStatusByCode(IStatus status, int code) {
- if (status.getCode() == code) return status;
- IStatus[] children = status.getChildren();
- for (int i = 0; i < children.length; i++) {
- IStatus found = findStatusByCode(children[i], code);
- if (found != null) return found;
- }
- return null;
- }
-
- /**
- * Creates a uniquely named project.
- * @param prefix a string prepended to the generated name
- * @return the new project
- */
- public static IProject createUniqueProject(String prefix) throws CoreException {
- return createProject(makeUniqueName(null, prefix, null));
- }
-
- /**
- * Creates a uniquely named file in the parent folder or project with random contents.
- * @param gen the sequence generator
- * @param parent the parent IFolder or IProject for the new file
- * @param meanSize the mean size of file to create (in bytes)
- * @param variance 69% of files with be within this amount of the mean
- * @param probBinary the probability of a new file being binary as a percentage
- * @return the new file
- */
- public static IFile createUniqueFile(SequenceGenerator gen, IContainer parent,
- int meanSize, int variance, int probBinary) throws IOException, CoreException {
- int fileSize;
- do {
- fileSize = (int) Math.abs(gen.nextGaussian() * variance + meanSize);
- } while (fileSize > meanSize + variance * 4); // avoid huge files
-
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- String fileName;
- if (gen.nextInt(100) < probBinary) {
- fileName = makeUniqueName(gen, "file", "class"); // binary
- writeRandomBytes(gen, os, fileSize);
- } else {
- fileName = makeUniqueName(gen, "file", "txt"); // text
- writeRandomText(gen, os, fileSize);
- }
- IFile file = parent.getFile(new Path(fileName));
- file.create(new ByteArrayInputStream(os.toByteArray()), true, null);
- os.close();
- return file;
- }
-
- /**
- * Creates a uniquely named folder in the parent folder.
- * @param gen the sequence generator
- * @param parent the parent IFolder or IProject for the new folder
- * @return the new folder
- */
- public static IFolder createUniqueFolder(SequenceGenerator gen, IContainer parent) throws CoreException {
- IFolder folder = parent.getFolder(new Path(Utils.makeUniqueName(gen, "folder", null)));
- folder.create(false /*force*/, true /*local*/, null);
- return folder;
- }
-
- /**
- * Renames a resource.
- * The resource handle becomes invalid.
- * @param resource the existing resource
- * @param newName the new name for the resource
- */
- public static void renameResource(IResource resource, String newName) throws CoreException {
- switch (resource.getType()) {
- case IResource.PROJECT: {
- IProject project = (IProject) resource;
- IProjectDescription desc = project.getDescription();
- desc.setName(newName);
- project.move(desc, false /*force*/, true /*keepHistory*/, null);
- } break;
- case IResource.FOLDER: {
- try {
- resource.move(new Path(newName), false /*force*/, null);
- } catch (CoreException e) {
- IStatus status = e.getStatus();
- // ignore errors caused by attempting to delete folders that CVS needs to have around
- if (findStatusByCode(status, CVSStatus.FOLDER_NEEDED_FOR_FILE_DELETIONS) == null) {
- throw e;
- }
- }
- } break;
- default:
- resource.move(new Path(newName), false /*force*/, null);
- break;
- }
- }
-
- /**
- * Modified a resource.
- * @param gen the sequence generator
- * @param file the file to modify
- */
- public static void modifyFile(SequenceGenerator gen, IFile file)
- throws IOException, CoreException {
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- try {
- InputStream is = file.getContents(true);
- try {
- byte[] buffer = new byte[8192];
- int rsize;
- boolean changed = false;
- while ((rsize = is.read(buffer)) != -1) {
- double gaussian;
- do {
- gaussian = gen.nextGaussian() * 0.5; // large changes are less likely than small ones
- } while (gaussian > 1.0 || gaussian < -1.0);
- int changeSize = (int) (gaussian * rsize);
- changed = changed || changeSize != 0;
- os.write(buffer, 0, changeSize < 0 ? - changeSize : rsize); // shrink file
- writeRandomText(gen, os, changeSize); // enlarge file
- }
- if (! changed) os.write('!'); // make sure we actually did change the file
- file.setContents(new ByteArrayInputStream(os.toByteArray()), false /*force*/, true /*keepHistory*/, null);
- } finally {
- is.close();
- }
- } finally {
- os.close();
- }
- }
-
- /**
- * Creates a unique name.
- * Ensures that a deterministic sequence of names is generated for all files
- * and folders within a project, though not across sessions.
- *
- * @param gen the generator, or null if this name is to be globally unique
- * @param prefix a string prepended to the generated name
- * @param extension the file extension not including the period, null if none
- * @return the new name
- */
- public static String makeUniqueName(SequenceGenerator gen, String prefix, String extension)
- throws CoreException {
- StringBuffer name = new StringBuffer(prefix);
- name.append('-');
- if (gen == null) {
- name.append(SequenceGenerator.nextGloballyUniqueLong());
- } else {
- name.append(gen.nextUniqueInt());
- }
- if (extension != null) {
- name.append('.');
- name.append(extension);
- }
- return name.toString();
- }
-
- /**
- * Imports a .zip file into a container's root folder.
- * @param container the container
- * @param file the path of the .zip file
- */
- public static void importZip(IContainer container, File file)
- throws IOException, ZipException, InterruptedException, InvocationTargetException {
- ZipFile zipFile = new ZipFile(file);
- ZipFileStructureProvider provider = new ZipFileStructureProvider(zipFile);
- ImportOperation importOperation = new ImportOperation(container.getFullPath(),
- provider.getRoot(), provider, null);
- importOperation.setOverwriteResources(true); // don't ask
- importOperation.run(new NullProgressMonitor());
- Assert.assertTrue(importOperation.getStatus().isOK());
- }
-
- /**
- * Writes random text to an output stream.
- * @param gen the sequence generator
- */
- public static void writeRandomText(SequenceGenerator gen, OutputStream os, int count) throws IOException {
- while (count-- > 0) {
- int c = gen.nextInt(99);
- os.write((c >= 95) ? '\n' : c + ' ');
- }
- }
-
- /**
- * Writes random bytes to an output stream.
- * @param gen the sequence generator
- */
- public static void writeRandomBytes(SequenceGenerator gen, OutputStream os, int count) throws IOException {
- while (count-- > 0) {
- os.write(gen.nextInt(256));
- }
- }
-
- /**
- * Creates a random folder deeply below the root folder.
- * @param gen the sequence generator
- * @param root the root IFolder or IProject for the operation
- * @return the new folder
- */
- public static IFolder createRandomDeepFolder(SequenceGenerator gen, IContainer root) throws CoreException {
- IContainer container = pickRandomDeepContainer(gen, root);
- for (;;) {
- IFolder folder = createUniqueFolder(gen, container);
- container = folder;
- // 12.5% chance of creating a nested folder
- if (gen.nextInt(8) != 0) return folder;
- }
- }
-
- /**
- * Creates several random files deeply below the root folder.
- * @param gen the sequence generator
- * @param root the root IFolder or IProject for the operation
- * @param count the number of files to create
- * @param meanSize the mean size of file to create (in bytes)
- * @param probBinary the probability of a new file being binary as a percentage
- */
- public static void createRandomDeepFiles(SequenceGenerator gen, IContainer root, int count,
- int meanSize, int variance, int probBinary) throws IOException, CoreException {
- while (count-- > 0) {
- createUniqueFile(gen, pickRandomDeepContainer(gen, root), meanSize, variance, probBinary);
- }
- }
-
- /**
- * Deletes several random files deeply below the root folder.
- * @param gen the sequence generator
- * @param root the root IFolder or IProject for the operation
- * @param count the number of files to delete
- */
- public static void deleteRandomDeepFiles(SequenceGenerator gen, IContainer root, int count) throws CoreException {
- while (count-- > 0) {
- IFile file = pickRandomDeepFile(gen, root);
- if (file == null) break;
- deleteFileAndPrune(file);
- }
- }
-
- /**
- * Modifies several random files deeply below the root folder.
- * @param gen the sequence generator
- * @param root the root IFolder or IProject for the operation
- * @param count the number of files to modify
- */
- public static void modifyRandomDeepFiles(SequenceGenerator gen, IContainer root, int count)
- throws IOException, CoreException {
- // perhaps we can add a parameter for the "magnitude" of the change
- while (count-- > 0) {
- IFile file = pickRandomDeepFile(gen, root);
- if (file == null) break;
- modifyFile(gen, file);
- }
- }
-
- /**
- * Touches several random files deeply below the root folder.
- * @param gen the sequence generator
- * @param root the root IFolder or IProject for the operation
- * @param count the number of files to touch
- */
- public static void touchRandomDeepFiles(SequenceGenerator gen, IContainer root, int count) throws CoreException {
- while (count-- > 0) {
- IFile file = pickRandomDeepFile(gen, root);
- if (file == null) break;
- file.touch(null);
- }
- }
-
- /**
- * Renames several random files deeply below the root folder.
- * @param gen the sequence generator
- * @param root the root IFolder or IProject for the operation
- * @param count the number of files to touch
- */
- public static void renameRandomDeepFiles(SequenceGenerator gen, IContainer root, int count) throws CoreException {
- IProject project = root.getProject();
- while (count-- > 0) {
- IFile file = pickRandomDeepFile(gen, root);
- if (file == null) break;
- renameResource(file, makeUniqueName(gen, "file", file.getFileExtension()));
- }
- }
-
- /**
- * Picks a random file from the parent folder or project.
- * @param gen the sequence generator
- * @param parent the parent IFolder or IProject for the operation
- * @return the file that was chosen, or null if no suitable files
- */
- public static IFile pickRandomFile(SequenceGenerator gen, IContainer parent) throws CoreException {
- IResource[] members = filterResources(parent.members());
- for (int size = members.length; size != 0; --size) {
- int elem = gen.nextInt(size);
- if (members[elem] instanceof IFile) return (IFile) members[elem];
- System.arraycopy(members, elem + 1, members, elem, size - elem - 1);
- }
- return null;
- }
-
- /**
- * Picks a random folder from the parent folder or project.
- * @param gen the sequence generator
- * @param parent the parent IFolder or IProject for the operation
- * @return the folder, or null if no suitable folders
- */
- public static IFolder pickRandomFolder(SequenceGenerator gen, IContainer parent) throws CoreException {
- IResource[] members = filterResources(parent.members());
- for (int size = members.length; size != 0; --size) {
- int elem = gen.nextInt(size);
- if (members[elem] instanceof IFolder) return (IFolder) members[elem];
- System.arraycopy(members, elem + 1, members, elem, size - elem - 1);
- }
- return null;
- }
-
- /**
- * Picks a random file deeply from the root folder or project.
- * @param gen the sequence generator
- * @param root the root IFolder or IProject for the operation
- * @return the file that was chosen, or null if no suitable files
- */
- public static IFile pickRandomDeepFile(SequenceGenerator gen, IContainer root) throws CoreException {
- IResource[] members = filterResources(root.members());
- for (int size = members.length; size != 0; --size) {
- int elem = gen.nextInt(size);
- IResource resource = members[elem];
- if (resource instanceof IFile) return (IFile) resource;
- if (resource instanceof IFolder) {
- IFile file = pickRandomDeepFile(gen, (IFolder) resource);
- if (file != null) return file;
- }
- System.arraycopy(members, elem + 1, members, elem, size - elem - 1);
- }
- return null;
- }
-
- /**
- * Picks a random folder deeply from the root folder or project.
- * May pick the project's root container.
- * @param gen the sequence generator
- * @param root the root IFolder or IProject for the operation
- * @return the container that was chosen, never null
- */
- public static IContainer pickRandomDeepContainer(SequenceGenerator gen, IContainer root) throws CoreException {
- if (gen.nextInt(6) == 0) {
- IResource[] members = filterResources(root.members());
- for (int size = members.length; size != 0; --size) {
- int elem = gen.nextInt(size);
- IResource resource = members[elem];
- if (resource instanceof IFolder) {
- return pickRandomDeepContainer(gen, (IFolder) resource);
- }
- System.arraycopy(members, elem + 1, members, elem, size - elem - 1);
- }
- }
- Assert.assertTrue(isValidContainer(root));
- return root;
- }
-
- /**
- * Returns true if the folder does not contain any real files.
- */
- public static boolean isFolderEmpty(IFolder folder) throws CoreException {
- IResource[] members = folder.members();
- for (int i = 0; i < members.length; ++i) {
- if (isValidFile(members[i]) || isValidFolder(members[i])) return false;
- }
- return true;
- }
-
- /**
- * Returns true iff file is a valid IFile (that should not be ignored).
- */
- public static boolean isValidFile(IResource file) throws CoreException {
- String name = file.getName();
- return file instanceof IFile
- && ! file.isPhantom()
- && ! name.equals(".classpath")
- && ! name.equals(".project")
- && ! name.equals(".vcm_meta");
- }
-
- /**
- * Returns true iff folder is a valid IFolder (that should not be ignored).
- */
- public static boolean isValidFolder(IResource folder) throws CoreException {
- String name = folder.getName();
- return folder instanceof IFolder
- && ! folder.isPhantom()
- && ! name.equals("CVS")
- && ! name.equals("bin");
- }
-
- /**
- * Returns true iff container is a valid IFolder or IProject (that should not be ignored).
- */
- public static boolean isValidContainer(IResource container) throws CoreException {
- return container instanceof IProject || isValidFolder(container);
- }
-
- /**
- * Returns true iff resource is a valid IFile, IFolder or IProject (that should not be ignored).
- */
- public static boolean isValidResource(IResource resource) throws CoreException {
- return isValidFile(resource) || isValidContainer(resource);
- }
-
- /**
- * Filters and sorts an array of resources to ensure deterministic behaviour across
- * sessions. The general idea is to guarantee that given a known sequence of
- * pseudo-random numbers, we will always pick the same sequence of files and
- * folders each time we repeat the test.
- */
- public static IResource[] filterResources(IResource[] resources) throws CoreException {
- List list = new ArrayList(resources.length);
- for (int i = 0; i < resources.length; ++i) {
- if (isValidResource(resources[i])) list.add(resources[i]);
- }
- if (list.size() != resources.length) {
- resources = (IResource[]) list.toArray(new IResource[list.size()]);
- }
- Arrays.sort(resources, new Comparator() {
- public int compare(Object a, Object b) {
- return ((IResource) a).getName().compareTo(((IResource) b).getName());
- }
- });
- return resources;
- }
-
- /*** DIFF SUPPORT ***/
-
- public static boolean isEmpty(IDiffContainer node) {
- if (node == null) return true;
- if (node.getKind() != 0) return false;
- IDiffElement[] children = node.getChildren();
- for (int i = 0; i < children.length; i++) {
- if (!isEmpty(children[i])) return false;
- }
- return true;
- }
- public static boolean isEmpty(IDiffElement element) {
- if (element == null) return true;
- if (element.getKind() != 0) return false;
- if (element instanceof IDiffContainer) {
- IDiffElement[] children = ((DiffNode)element).getChildren();
- for (int i = 0; i < children.length; i++) {
- if (!isEmpty(children[i])) return false;
- }
- }
- return true;
- }
-
- /*** UI SUPPORT ***/
-
- /**
- * Opens the specified wizard, then notifies the waiter.
- * The WizardDialog instance is passed as argument to notify() in the waiter.
- */
- public static void waitForWizardToOpen(Shell parent, IWizard wizard, final Waiter waiter) {
- WizardDialog dialog = new WizardDialog(parent, wizard) {
- public int open() {
- // create the window's controls
- create();
- // hook into the event loop so we get called back when the wizard is up and running
- final Display display = getContents().getDisplay();
- final WizardDialog dialog = this;
- display.asyncExec(new Runnable() {
- public void run() {
- while (display.readAndDispatch()); // process any other pending messages first
- waiter.notify(dialog);
- }
- });
- // call open (does not create the window's controls a second time)
- return super.open();
- }
- };
- dialog.open();
- }
-
- /**
- * Notifies the waiter when a Shell matching the specified criteria opens.
- * The Shell instance is passed as argument to notify() in the waiter.
- *
- * @param display the root display
- * @param pollingPeriod the number of milliseconds to wait between polls
- * @param value a value used for matching
- * @param criteria a strategy for matching the controls with a value,
- * or null to match any Shell.
- * @param waiter the waiter to be notified
- */
- public static void waitForShellToOpen(final Display display, final int pollingPeriod,
- final Object value, final ICriteria criteria, final Waiter waiter) {
- final Runnable hook = new Runnable() {
- public void run() {
- if (display.isDisposed()) return;
- Shell[] shells = display.getShells();
- for (int i = 0; i < shells.length; ++i) {
- Shell shell = shells[i];
- if (criteria != null && ! criteria.test(shell, value)) continue;
- if (! waiter.notify(shell)) return;
- }
- // poll again as soon as possible
- if (waiter.keepWaiting()) {
- display.timerExec(pollingPeriod, this);
- }
- }
- };
- hook.run();
- }
-
-
- /**
- * Installs a watchdog for JFace error dialogs for the current display.
- * The Dialog instance is passed as argument to notify() in the waiter.
- * Recognized dialogs:
- * - ErrorDialog
- * - InternalErrorDialog
- *
- * @param display the root display
- * @param pollingPeriod the number of milliseconds to wait between polls
- * @param waiter the waiter to be notified
- */
- public static void waitForErrorDialog(Display display, int pollingPeriod, final Waiter waiter) {
- ICriteria criteria = new ICriteria() {
- public boolean test(Object candidate, Object value) {
- Shell shell = (Shell) candidate;
- if (shell.isDisposed()) return false;
- Object data = shell.getData();
- if (data == null) return false;
- return data instanceof ErrorDialog || data instanceof InternalErrorDialog;
- }
- };
- waitForShellToOpen(display, pollingPeriod, null, criteria, new Waiter() {
- public boolean keepWaiting() {
- return waiter.keepWaiting();
- }
-
- public boolean notify(Object object) {
- return waiter.notify(((Shell) object).getData());
- }
- });
- }
-
- /**
- * Finds a Control in a Composite hierarchy matching the specified criteria.
- *
- * @param root the root of the hierarchy to search
- * @param clazz the Class representing the precise type of Control to find
- * @param value a value used for matching
- * @param criteria a strategy for matching the controls with a value,
- * or null to match anything of the right class.
- * @return the first matching Control, or null if none found.
- */
- public static Control findControl(Composite root, Class clazz, Object value, ICriteria criteria) {
- if (clazz.isAssignableFrom(root.getClass())) {
- if (criteria == null || criteria.test(root, value)) return root;
- }
- Control[] children = root.getChildren();
- for (int i = 0; i < children.length; ++i) {
- final Control candidate = children[i];
- if (candidate instanceof Composite) {
- Control c = findControl((Composite) candidate, clazz, value, criteria);
- if (c != null) return c;
- } else {
- if (clazz.isAssignableFrom(candidate.getClass())) {
- if (criteria == null || criteria.test(candidate, value)) return candidate;
- }
- }
- }
- return null;
- }
-
- /**
- * Finds a Control in a Composite hierarchy with the specified text string.
- * Note: clazz must specify a Control subclass that defines getText()
- *
- * @param root the root of the hierarchy to search
- * @param clazz the Class representing the precise type of Control to find
- * @param text the text string to find
- * @return the first matching Control, or null if none found.
- */
- public static Control findControlWithText(Composite root, Class clazz, String text) {
- return findControl(root, clazz, text, new ICriteria() {
- public boolean test(Object control, Object value) {
- // getText is only defined on certain subclasses of Composite
- // so we must use reflection to find the method
- try {
- Method m = control.getClass().getMethod("getText", new Class[0]);
- String text = (String) m.invoke(control, new Object[0]);
- return value.equals(stripMnemonicEscapes(text));
- } catch (Exception e) {
- e.printStackTrace();
- Assert.fail("Could not invoke method getText()");
- }
- return false;
- }
- });
- }
-
- /**
- * Posts a fake event to the queue.
- * Fills in the event type and widget fields.
- * @param event the Event
- */
- public static void postEvent(final Widget widget, final int eventType, final Event event) {
- Display display = widget.getDisplay();
- event.type = eventType;
- event.widget = widget;
- display.asyncExec(new Runnable() {
- public void run() {
- widget.notifyListeners(eventType, event);
- }
- });
- }
-
- /**
- * Strips mnemonic escapes from a text label.
- */
- public static String stripMnemonicEscapes(String label) {
- StringBuffer buf = new StringBuffer();
- int length = label.length();
- for (int i = 0; i < length; ++i) {
- char c = label.charAt(i);
- if (c == '&') {
- i += 1;
- if (i < length) c = label.charAt(i);
- }
- buf.append(c);
- }
- return buf.toString();
- }
-
- /**
- * Process pending events for the current display, until at least the
- * specified number of milliseconds elapses.
- */
- public static void processEventsUntil(int hiatus) {
- Display display = Display.getCurrent();
- Assert.assertNotNull(display);
- final boolean done[] = new boolean[] { hiatus == 0 };
- if (hiatus != 0) display.timerExec(hiatus, new Runnable() {
- public void run() { done[0] = true; }
- });
- for (;;) {
- while (display.readAndDispatch());
- if (done[0]) return;
- display.sleep();
- }
- }
-
- /**
- * Process pending events for the current display, until resumed by the user.
- * Very useful for inspecting intermediate results while debugging.
- */
- public static void processEventsUntilResumed(String title) {
- Display display = Display.getCurrent();
- Assert.assertNotNull(display);
- Shell shell = new Shell(display, SWT.CLOSE);
- shell.setText("Close me to resume: " + title);
- shell.setBounds(0, 0, 500, 30);
- shell.open();
- while (! shell.isDisposed()) {
- while (! display.readAndDispatch()) display.sleep();
- }
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Waiter.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Waiter.java
deleted file mode 100644
index 91dd75672..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/Waiter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.old;
-
-
-
-/**
- * Abstract listener used for the generic problem of waiting for
- * something to happen and retrieving some related information.
- * e.g. Waiting for a window with a given title to open and getting its handle.
- */
-public abstract class Waiter {
- /**
- * Called when the desired event has occurred.
- * @param object an object related to the event, type depends on the context
- * @return true to keep waiting, otherwise false
- */
- public abstract boolean notify(Object object);
-
- /**
- * Called after each unsuccessful poll for the event.
- * @return true to keep waiting, otherwise false
- */
- public boolean keepWaiting() {
- return true;
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/WorkflowTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/WorkflowTests.java
deleted file mode 100644
index e5fee208a..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/old/WorkflowTests.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies 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.old;
-
-
-import java.io.File;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-
-public class WorkflowTests extends CVSUITestCase {
- private int FILE_SIZE_MEAN = 16384;
- private int FILE_SIZE_VARIANCE = 12288;
- private int PROB_BINARY = 5;
- public WorkflowTests(Test test) {
- super(test);
- }
-
- public static Test suite() {
- return new BenchmarkTestSetup(new TestSuite(WorkflowTests.class));
- //return new BenchmarkTestSetup(new WorkflowTests("testTinyWorkflow"));
- }
-
- public void testBigWorkflow() throws Exception {
- runWorkflowTests("testBig", BenchmarkTestSetup.BIG_ZIP_FILE);
- }
-
- public void testSmallWorkflow() throws Exception {
- runWorkflowTests("testSmall", BenchmarkTestSetup.SMALL_ZIP_FILE);
- }
-
- public void testTinyWorkflow() throws Exception {
- runWorkflowTests("testTiny", BenchmarkTestSetup.TINY_ZIP_FILE);
- }
-
- /**
- * Runs a series of incoming and outgoing workflow-related tests.
- */
- protected void runWorkflowTests(String name, File initialContents) throws Exception {
- final SequenceGenerator gen = new SequenceGenerator();
- IProject outProject = createAndImportProject(name, initialContents);
-
- // test project sharing
- startGroup("test project sharing");
- actionShareProject(outProject);
- endGroup();
-
- // test initial project commit
- startGroup("test initial project commit");
- syncCommitResources(new IResource[] { outProject }, null, "initial");
- endGroup();
-
- // move the project out of the way
- String moduleName = outProject.getName();
- Utils.renameResource(outProject, moduleName + "out");
- outProject = Utils.getProject(moduleName + "out");
-
- // test initial project checkout
- startGroup("test initial project checkout");
- actionCheckoutProjects(new String[] { moduleName }, new CVSTag[] { new CVSTag() });
- endGroup();
- IProject inProject = Utils.getProject(moduleName);
-
- // test scenarios
- startGroup("test incoming and outgoing change scenarios");
- startGroup("adding a new component - localized additions and some changes");
- Utils.modifyRandomDeepFiles(gen, outProject, 5);
- Utils.touchRandomDeepFiles(gen, outProject, 2);
- IFolder componentRoot = Utils.createRandomDeepFolder(gen, outProject);
- Utils.createRandomDeepFiles(gen, componentRoot, 12, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY);
- syncCommitResources(new IResource[] { outProject }, null, "");
- endGroup();
-
- startGroup("catching up to a new component - localized additions and some changes");
- syncUpdateResources(new IResource[] { inProject }, null);
- endGroup();
-
- startGroup("fixing a bug - localized changes");
- Utils.modifyRandomDeepFiles(gen, componentRoot, 2);
- Utils.touchRandomDeepFiles(gen, componentRoot, 2);
- syncCommitResources(new IResource[] { outProject }, null, "");
- endGroup();
-
- startGroup("catching up to a bug fix - localized changes");
- syncUpdateResources(new IResource[] { inProject }, null);
- endGroup();
-
- startGroup("moving a package - scattered changes, files moved");
- Utils.modifyRandomDeepFiles(gen, outProject, 5); // a few scattered changes
- Utils.modifyRandomDeepFiles(gen, componentRoot, 12); // changes to "package" stmt
- Utils.renameResource(componentRoot, Utils.makeUniqueName(gen, "folder", null));
- syncCommitResources(new IResource[] { outProject }, null, "");
- endGroup();
-
- startGroup("catching up to a moved package - scattered changes, files moved");
- syncUpdateResources(new IResource[] { inProject }, null);
- endGroup();
-
- startGroup("big refactoring - scattered changes, files renamed and balanced additions/deletions");
- Utils.deleteRandomDeepFiles(gen, outProject, 4); // some stuff deleted
- Utils.modifyRandomDeepFiles(gen, outProject, 20); // many scattered changes
- Utils.renameRandomDeepFiles(gen, outProject, 5); // renamed some stuff
- Utils.createRandomDeepFiles(gen, outProject, 4, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY); // some new stuff added
- syncCommitResources(new IResource[] { outProject }, null, "");
- endGroup();
-
- startGroup("catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions");
- syncUpdateResources(new IResource[] { inProject }, null);
- endGroup();
- endGroup();
-
- // test tagging a project
- startGroup("tag project");
- actionCVSTag(new IResource[] { outProject }, "v101");
- endGroup();
-
- // replace with remote contents
- startGroup("test replace with remote contents scenarios");
- startGroup("no local dirty files, no remote changes");
- actionReplaceWithRemote(new IResource[] { inProject });
- endGroup();
-
- startGroup("abandoning some local work, no remote changes");
- Utils.deleteRandomDeepFiles(gen, inProject, 4); // some stuff locally deleted
- Utils.modifyRandomDeepFiles(gen, inProject, 6); // a few unimportant changes to forget
- Utils.createRandomDeepFiles(gen, inProject, 4, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY); // some new work to abandon
- actionReplaceWithRemote(new IResource[] { inProject });
- endGroup();
-
- startGroup("no local dirty files, many remote changes");
- // e.g. returning from a long vacation
- Utils.deleteRandomDeepFiles(gen, outProject, 10); // some components obsoleted
- Utils.modifyRandomDeepFiles(gen, outProject, 42); // many changes
- Utils.renameRandomDeepFiles(gen, outProject, 8); // evidence of some refactoring
- Utils.createRandomDeepFiles(gen, outProject, 10, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY); // a few new components added
- disableLog();
- syncCommitResources(new IResource[] { outProject }, null, "");
- enableLog();
- actionReplaceWithRemote(new IResource[] { inProject });
- endGroup();
- endGroup();
- }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/test.xml b/tests/org.eclipse.team.tests.cvs.core/test.xml
deleted file mode 100644
index 21fbf7854..000000000
--- 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="core-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties"/>
- <property name="data-dir" value="${location}"/>
- <property name="plugin-name" value="org.eclipse.team.tests.cvs.core"/>
- <property name="classname" value="org.eclipse.team.tests.ccvs.core.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 c7dbb75e7..000000000
--- a/tests/org.eclipse.team.tests.cvs.core/toc.xml
+++ /dev/null
@@ -1,64 +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>
- <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>
- <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 to existing" href="html/00028.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>
-</toc>

Back to the top