[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Tighter integration of CVS components into Team API

From: Gunnar Wagenknecht <G.Wagenknecht_at_intershop.de>
Date: 2005-01-03 07:55:45 CET

Tighter integration of CVS components into Team API
https://bugs.eclipse.org/bugs/show_bug.cgi?id=82074

Team/CVS Developers,

I'm a contributor to the open source ClearCase plug-ins for Eclipse and
recently started using the subclipse plug-ins. I noticed a lot of code
duplications during the ClearCase development and I found a lof of
similarities in the subclipse plug-ins.

IMHO the CVS compontent contains a lot code that should be generalized
and moved to the team component. Currently the development of new team
plug-ins is extremly time consuming. Developers has to implement a lot
of components themself and need a high level knowledge of Eclipse
development.

They need to implement a lot of things themself:
* repository provider
* move/delete hook
* modification listener
* preference pages
* decorator with preference page
* repository view
* history view
* diff/merge view
* version tree
* synchonrization participants

This a very expensive path. It's time consuming and prone to errors.

When speaking of the open source ClearCase integration, all this can be
generalized by providing all these components through a the team
component and simply moving the SCM dependen API to a single interface.
Thus, team plug-in providers only need to implement ONE simle interface
and register it as extension. I expect also the Subversion plug-ins to
benefit from this. New features (such as the preview for the label
decorator) would be available to all plug-ins immediately.

The interface could look like:

public interface ISCMInterface {
    
    /**
     * Adds a file to the repository the parent container belongs to.
     *
     * @param file
     * the file to add
     * @param pm
     * the progress monitor (maybe <code>null</code> if not
cancelable)
     * @param comment
     * the changelog comment (maybe <code>null</code>)
     * @param hints
     * HINTS for performing the operation
     * <ul>
     * <li>FORCE</li> - force the operation (will also add
parents if necessary)
     * <li>COMMIT</li> - commit after successful add
     * </ul>
     * @return resource status containing the new resource information
(such as version info, modification state) of all changed resources.
     * @throws TeamException if the operation failed
     */
    ISCMResourceStatus[] addFile(IFile file, IProgressMonitor pm, int
hints) throws TeamException;
    
    ....
}
Received on Mon Jan 3 17:55:45 2005

This is an archived mail posted to the Subclipse Dev mailing list.