2.1 Development Effort - Milestone
5 (February 7, 2003)

To see how bugs are prioritized and categorized for VCM, check out
VCM Bug Tracking

2.1 and beyond

This is a list of areas that we have identified as potential work items
for CVS in Eclipse 2.1 and beyond. Please note that this list is what
has been identified so far as potential work areas and does not represent
a commitment from the VCM team. See milestone
planning for curent work items.

2.1 Items

CVS folder appearing: we have cases where the CVS folders
are appearing. This can happen if someone uses an external CVS client
then refreshes in Eclipse and our plugin isn't loaded. However, it
seems there are other cases.

Issue: we currently rely on pre-build delta notification to
mark the resources are team-private but this puts us in a race
condition with other listeners.

Issue: once a resource is known to the views, marking it as
team-private doesn't remove it since there is no delta.

Status: We have done all we can without delta notification
support. There is an org.eclipse.team.cvs.delta plugin available here
that loads on startup and marks CVS folders as hidden. We are investigating
the possibility of obtaining the required delta notification support.

Config maps: there has been interest from the community
here, and one group who are willing to contribute the work to Eclipse.

Status: We have received a contribution from the community
in this area. Will need to investigate how to best make this available.

Performance: some operations can probably still be improved.
Decorators can be improved a bit.

Status: Here is a list of specific performance improvements:

Use of lightweight decorators.

Reduced memory usage by CVS plugin.

Reduce startup time (still to be completed)

Several localized optimizations.

Better modules support:

Status: Several improvements related to support of CVS modules
have been added.

"Checkout Into..." can be used from the CVS Repositories view
to check out a folder into an existing project.

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.

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").

Repository view: current one is barely useful

Status: Without changing the organization of the view, we have
added some improvements. For instance, the view supports working sets
and only shows projects under a branch that are known to be in the
branch.

CVS working sets - queries (investigate): we are interested
in being able to create working sets for CVS usage, eg. to show all
the dirty resources. We haven't thought this through far. The 2.1
work item is to investigate this.

Status: The working sets provided by the workbench are inappropriate
for this use. A new mechanism that would be able to filter the resources
in a view by criteria provided by other plugins is required.

Items that may be 2.1 or 3.0

Useability: some CVS dialogs and wizards, for example the
Tag Configution dialog and Set Keyword Mode Wizard, whose usability
could be improved. We'll try to do what we can in 2.1 but most work
will probably be done in 3.0.

Status: Not addressed in 2.1

Sync info and dirty decorators: We discussed this in 2.0
but didn't go forward with it. The problem is that to determine if
a project is dirty we must read in the sync info for every subfolder.
This is expensive, defeats late caching of sync info, and doesn't
scale for large projects or slow drives (e.g. network drives).

Status: A cache was added to improve dirty foilder and file
determination

Watch/Edit: we will proceed on this for 2.1 if we have community
involvement (we are not familiar with the usual workflows so have
asked for community guidance). Otherwise its 3.0.

Status: Low-level support for this was added along with Team>Edit
and Team>Unedit menu items. Further work is being contributed by the
community.

3.0 Items

Split the sync view: We've talked about splitting it up
so that the sync part is a view, the edit area is an editor, and the
resource outline is an outliner view.

End-user customization of CVS strings: This refers to the
strings we receive from the server and match against to determine
what is going on. Sometimes CVS users will customize their CVS server
and this can change the messages it sends us. Our pattern matching
then fails. Usually the changes are innocuous (ie. the semantics are
the same, we just fail the string matching). Idea is to externalize
these so clients can customize them to match their server. This assumes
that all required customization can be achieved against regular expression
patterns - we don't have enough experience with server customization
to know if this is sufficient.