[
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