Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipse-dev] Team/CVS Synchronize Changes in the next I-Build.

Over the last week we've been reviewing the Team synchronize workflows for 
usability, ease of migration from 2.1, performance, and footprint. Based 
on our findings we have made some changes that will be available in the 
next integration. So that we don't have to answer all the questions within 
bugzilla bug reports, I will attempt to highlight the changes here.

To get started, there has been two motivating reasons for the 3.0 work 
relating to the Team Synchronize support: (1) to enhance workflows, (2) to 
provide an API for other plug-ins to use. Note that synchronization 
support doesn't exclusively imply that the Synchronize View is used to 
display and manipulate the synchronization states. Instead, it is our 
intention to provide a framework for creating, managing, and then finally 
displaying this synchronization state. The presentation of the synchronize 
states can be flexible, and could be then shown in either the Synchronize 
View, or in other more appropriate places (e.g. editors, dialogs, 
wizards). This new support can be seen in action with the current CVS 
plugin, the releng tool, and the FTP and Dav suport.

Ok, so now let's review some of the visible changes:

+ No more default CVS Workspace synchronization: we used to pre-create a 
CVS synchronization for the entire workspace and this was available by 
default when the Synchronize View was opened. Although the new 3.0 
synchronize support allows tracking all workspace changes easily, we have 
found that for large workspaces it doesn't make sense for this to be the 
default behavior. Also, for users who are only interested in synchronizing 
portions of the workspace, this was overkill. For users who like 
synchronizing their entire workspace you now have to create an explicit 
CVS workspace synchronization. To do this open the synchronize view, click 
on the synchronize button, select the CVS type, and then on the final page 
ensure that Workspace is selected. Voila!

+ Behavior of 'Team > Synchronize with Repository': for users coming from 
2.1 the synchronize support was based around selecting resources and 
performing the synchronize action. This was useful because it allowed 
priming the synchronize view with the synchronization defined by the 
selected resources, nothing more, nothing less. So far in 3.0, since we 
have always had the entire workspace synchronization states available, we 
would simply synchronize the selected projects and then show the 
synchronize view containing the changes for the entire workspace. This was 
confusing because more than simply the selected resources were shown. From 
now on, this action will show only the selected resources in the 
synchronize view. This provides an easy migration path for 2.1 users and 
3.0 users that only synchronize portions of the workspace.

+ CVS Compares and Merges are now in the Synchronize View: compare and 
merges will now be shown in the synchronize view instead of in a modal 
dialog. Now that these operations are typically run in the background and 
show incremental changes, it makes it easier to work with them this way. 
You can browse the changes while the operation is still in progress.

+ Synchronization history and pinning: The synchronize view has support 
for showing multiple synchronizations. As described above, you will see 
CVS merges, CVS compares, FTP, and other ISVs support in the view. 
Synchronizations are categorized into types, for example the CVS plugin 
defines three types: CVS, CVS Merge, and CVS Compare. You can switch 
between synchronizations using the drop-down menu in the sync view. When 
you create a new synchronization it will replace the first existing 
synchronization of the same type unless it is pinned. Pinning allows you 
to manage the synchronizations that are of interest to you and ensure that 
they remain easily accessible. This should provide for easy management of 
multiple synchronizations.

+ Synchronize button moved: the drop-down action in the synchronize view 
(e.g. the first button in the toolbar) that allowed switching between 
synchronizations has never had an associated click action (e.g. the action 
run when the button is clicked instead of the drop-down menu). We have 
removed the synchronize button (e.g. the one to the right) and made it the 
drop-downs action.

+ Remove from View: for those who cared, the action is back :) It will 
remove an item from a synchronization temporarily. If the elements sync 
state changes (e.g. modified locally or remotely) it will be added again. 
This is similar to the 2.1 action.

Again, sorry for the changes this late in the cycle, but we really felt 
that it was better that we address the footprint, performance, and 
usability issues now instead of post-3.0.

Cheers,
Jean-Michel and Michael


Back to the top