Difference between revisions of "CVS Development"

From Eclipsepedia

Jump to: navigation, search
(Running the CVS Automated Tests using JUnit: Req'd: org.eclipse.compare.tests)
(Running the CVS Automated Tests using JUnit)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Plug-ins ==
+
== Plug-ins ==
  
The CVS component contains the following plug-ins:
+
The CVS component contains the following plug-ins, which are located under the /cvsroot/eclipse [http://wiki.eclipse.org/CVS_Howto CVS repository]:  
  
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.core org.eclipse.team.cvs.core] - contains implementations of Team/Core API along with classes related to the Core component of the CVS functionality. Here is a summary by package:
+
*[http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.core '''org.eclipse.team.cvs.core'''] - contains implementations of Team/Core API along with classes related to the Core component of the CVS functionality. Here is a summary by package:  
** org.eclipse.team.internal.ccvs.core - contains the CVS repository provider (CVSTeamProvider) and related classes along with the various Subscriber implementations (workspace, compare and merge). It also contains several interfaces related to CVS functionality.
+
**org.eclipse.team.internal.ccvs.core - contains the CVS repository provider (CVSTeamProvider) and related classes along with the various Subscriber implementations (workspace, compare and merge). It also contains several interfaces related to CVS functionality.  
** org.eclipse.team.internal.ccvs.core.client - contains the classes related to running low level CVS commands (e.g update, commit).
+
**org.eclipse.team.internal.ccvs.core.client - contains the classes related to running low level CVS commands (e.g update, commit).  
** org.eclipse.team.internal.ccvs.core.client.listeners - contains listeners that enhance the features of various commands.
+
**org.eclipse.team.internal.ccvs.core.client.listeners - contains listeners that enhance the features of various commands.  
** org.eclipse.team.internal.ccvs.core.connection - contains the code responsible for making server connections.
+
**org.eclipse.team.internal.ccvs.core.connection - contains the code responsible for making server connections.  
** org.eclipse.team.internal.ccvs.core.filehistory - contains implementations related to the Team file history API.
+
**org.eclipse.team.internal.ccvs.core.filehistory - contains implementations related to the Team file history API.  
** org.eclipse.team.internal.ccvs.core.filesystem - contains an implementation of a CVS remote EFS.
+
**org.eclipse.team.internal.ccvs.core.filesystem - contains an implementation of a CVS remote EFS.  
** org.eclipse.team.internal.ccvs.core.mapping - contains the CVS Change Set related classes.
+
**org.eclipse.team.internal.ccvs.core.mapping - contains the CVS Change Set related classes.  
** org.eclipse.team.internal.ccvs.core.resources - contains implementations of the CVS resource API for both local and remote resource trees.
+
**org.eclipse.team.internal.ccvs.core.resources - contains implementations of the CVS resource API for both local and remote resource trees.  
** org.eclipse.team.internal.ccvs.core.syncinfo - contains the code related to synchronization information management (e.g. CVS meta-data).
+
**org.eclipse.team.internal.ccvs.core.syncinfo - contains the code related to synchronization information management (e.g. CVS meta-data).  
** org.eclipse.team.internal.ccvs.core.util - contains varius utilities classes
+
**org.eclipse.team.internal.ccvs.core.util - contains varius utilities classes  
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ui org.eclipse.team.cvs.ui] - contains implementations of the Team/UI API along with classes for CVS specific functionality. Here is a summary by package:
+
*[http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ui '''org.eclipse.team.cvs.ui'''] - contains implementations of the Team/UI API along with classes for CVS specific functionality. Here is a summary by package:  
** org.eclipse.team.internal.ccvs.ui - contains various UI related classes.
+
**org.eclipse.team.internal.ccvs.ui - contains various UI related classes.  
** org.eclipse.team.internal.ccvs.ui.actions - contains the main CVS actions.
+
**org.eclipse.team.internal.ccvs.ui.actions - contains the main CVS actions.  
** org.eclipse.team.internal.ccvs.ui.console - contains the code related to the CVS console.
+
**org.eclipse.team.internal.ccvs.ui.console - contains the code related to the CVS console.  
** org.eclipse.team.internal.ccvs.ui.mappings - contains the actions, participants, etc. related to the logical model support.
+
**org.eclipse.team.internal.ccvs.ui.mappings - contains the actions, participants, etc. related to the logical model support.  
** org.eclipse.team.internal.ccvs.ui.model - contains the UI model used in the Repositories view and other CSV views and dialogs.
+
**org.eclipse.team.internal.ccvs.ui.model - contains the UI model used in the Repositories view and other CSV views and dialogs.  
** org.eclipse.team.internal.ccvs.ui.operations - contains the main CVS operations that correspond to the Core level commands found in the org.eclipse.team.internal.ccvs.core.client package.
+
**org.eclipse.team.internal.ccvs.ui.operations - contains the main CVS operations that correspond to the Core level commands found in the org.eclipse.team.internal.ccvs.core.client package.  
** org.eclipse.team.internal.ccvs.ui.repo - contains the classes related to the Repositories view.
+
**org.eclipse.team.internal.ccvs.ui.repo - contains the classes related to the Repositories view.  
** org.eclipse.team.internal.ccvs.ui.subscriber - contains the code (actions, participants, etc.) for the non-model based Syncyhronizations.
+
**org.eclipse.team.internal.ccvs.ui.subscriber - contains the code (actions, participants, etc.) for the non-model based Syncyhronizations.  
** org.eclipse.team.internal.ccvs.ui.tags - contains the code related to tag management
+
**org.eclipse.team.internal.ccvs.ui.tags - contains the code related to tag management  
** org.eclipse.team.internal.ccvs.ui.wizards - contains the code for various wizards
+
**org.eclipse.team.internal.ccvs.ui.wizards - contains the code for various wizards  
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ssh org.eclipse.team.cvs.ssh] - contains an implementation of SSH version 1 which is kept for compatibility with SSH 1 servers.
+
*[http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ssh org.eclipse.team.cvs.ssh] - contains an implementation of SSH version 1 which is kept for compatibility with SSH 1 servers.  
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ssh2 org.eclipse.team.cvs.ssh2] - provides the SSH version 2 (extssh) connection method. This plug-in uses the Jsch SSH2 library to provide SSH support.
+
*[http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ssh2 org.eclipse.team.cvs.ssh2] - provides the SSH version 2 (extssh) connection method. This plug-in uses the Jsch SSH2 library to provide SSH support.  
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.tests.cvs.core org.eclipse.team.tests.cvs.core] - contains the automated CVS tests
+
*[http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.tests.cvs.core org.eclipse.team.tests.cvs.core] - contains the automated CVS tests
  
It also consists of a feature project
+
PSFs ([http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-cvs-project-set.htm ?]):
  
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cvs-feature org.eclipse.cvs-feature]
+
*[http://www.eclipse.org/eclipse/platform-team/psf/cvs.psf anonymous access]
 +
*[http://www.eclipse.org/eclipse/platform-team/psf/cvs_extssh.psf committer access]
  
There is also a CVS mailing list
+
It also consists of a feature project
  
* [http://dev.eclipse.org/mailman/listinfo/platform-cvs-dev platform-cvs-dev@eclipse.org] ([mailto:platform-cvs-dev@eclipse.org post], [http://dev.eclipse.org/mhonarc/lists/platform-cvs-dev/maillist.html archives])
+
*[http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cvs-feature org.eclipse.cvs-feature]
 +
 
 +
There is also a CVS mailing list
 +
 
 +
*[http://dev.eclipse.org/mailman/listinfo/platform-cvs-dev platform-cvs-dev@eclipse.org] ([mailto:platform-cvs-dev@eclipse.org post], [http://dev.eclipse.org/mhonarc/lists/platform-cvs-dev/maillist.html archives])
  
 
== Bugs ==
 
== Bugs ==
Line 52: Line 57:
 
#* ''org.eclipse.test''
 
#* ''org.eclipse.test''
 
#* ''org.eclipse.test.performance''
 
#* ''org.eclipse.test.performance''
 +
#* ''org.eclipse.compare/plugins/org.eclipse.compare''
 +
#* ''org.eclipse.compare/plugins/org.eclipse.compare.core''
 
#* ''org.eclipse.compare.tests''
 
#* ''org.eclipse.compare.tests''
 
#* ''org.eclipse.core.tests.harness''
 
#* ''org.eclipse.core.tests.harness''

Latest revision as of 22:49, 9 March 2010

Contents

[edit] Plug-ins

The CVS component contains the following plug-ins, which are located under the /cvsroot/eclipse CVS repository:

  • org.eclipse.team.cvs.core - contains implementations of Team/Core API along with classes related to the Core component of the CVS functionality. Here is a summary by package:
    • org.eclipse.team.internal.ccvs.core - contains the CVS repository provider (CVSTeamProvider) and related classes along with the various Subscriber implementations (workspace, compare and merge). It also contains several interfaces related to CVS functionality.
    • org.eclipse.team.internal.ccvs.core.client - contains the classes related to running low level CVS commands (e.g update, commit).
    • org.eclipse.team.internal.ccvs.core.client.listeners - contains listeners that enhance the features of various commands.
    • org.eclipse.team.internal.ccvs.core.connection - contains the code responsible for making server connections.
    • org.eclipse.team.internal.ccvs.core.filehistory - contains implementations related to the Team file history API.
    • org.eclipse.team.internal.ccvs.core.filesystem - contains an implementation of a CVS remote EFS.
    • org.eclipse.team.internal.ccvs.core.mapping - contains the CVS Change Set related classes.
    • org.eclipse.team.internal.ccvs.core.resources - contains implementations of the CVS resource API for both local and remote resource trees.
    • org.eclipse.team.internal.ccvs.core.syncinfo - contains the code related to synchronization information management (e.g. CVS meta-data).
    • org.eclipse.team.internal.ccvs.core.util - contains varius utilities classes
  • org.eclipse.team.cvs.ui - contains implementations of the Team/UI API along with classes for CVS specific functionality. Here is a summary by package:
    • org.eclipse.team.internal.ccvs.ui - contains various UI related classes.
    • org.eclipse.team.internal.ccvs.ui.actions - contains the main CVS actions.
    • org.eclipse.team.internal.ccvs.ui.console - contains the code related to the CVS console.
    • org.eclipse.team.internal.ccvs.ui.mappings - contains the actions, participants, etc. related to the logical model support.
    • org.eclipse.team.internal.ccvs.ui.model - contains the UI model used in the Repositories view and other CSV views and dialogs.
    • org.eclipse.team.internal.ccvs.ui.operations - contains the main CVS operations that correspond to the Core level commands found in the org.eclipse.team.internal.ccvs.core.client package.
    • org.eclipse.team.internal.ccvs.ui.repo - contains the classes related to the Repositories view.
    • org.eclipse.team.internal.ccvs.ui.subscriber - contains the code (actions, participants, etc.) for the non-model based Syncyhronizations.
    • org.eclipse.team.internal.ccvs.ui.tags - contains the code related to tag management
    • org.eclipse.team.internal.ccvs.ui.wizards - contains the code for various wizards
  • org.eclipse.team.cvs.ssh - contains an implementation of SSH version 1 which is kept for compatibility with SSH 1 servers.
  • org.eclipse.team.cvs.ssh2 - provides the SSH version 2 (extssh) connection method. This plug-in uses the Jsch SSH2 library to provide SSH support.
  • org.eclipse.team.tests.cvs.core - contains the automated CVS tests

PSFs (?):

It also consists of a feature project

There is also a CVS mailing list

[edit] Bugs

The bug management for the CVS component is described on the Workspace Bugs page

[edit] Testing

The 3.2 test plan provides many manual test scenarios.

[edit] Running the CVS Automated Tests using JUnit

Follow these steps to run the CVS tests:

  1. To load the Team/CVS test plug-ins, check out the following plug-ins from :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse repository:
    • org.eclipse.test
    • org.eclipse.test.performance
    • org.eclipse.compare/plugins/org.eclipse.compare
    • org.eclipse.compare/plugins/org.eclipse.compare.core
    • org.eclipse.compare.tests
    • org.eclipse.core.tests.harness
    • org.eclipse.core.tests.resources
    • org.eclipse.team.tests.core
    • org.eclipse.team.tests.cvs.core
  2. The CVS tests require a repository to test with so you will need to set up a test repository.
    • You can obtain the Linux flavour of CVS from here.
    • You can obtain the Windows flavour of CVS from here. Please refer to the this wiki entry on configuring CVSNT to work with Eclipse.
  3. The org.eclipse.team.tests.cvs.core contains a couple of sample launch configurations:
    • CVS UI Tests: runs the tests related to the CVS/UI plug-in configured for windows
    • CVS UI Tests (Linux): same as above but configured for Linux
    • CVS Core Tests: runs the tests related to the CVS/Core plug-in
  4. Open the repository.properties file and modify the repository property to contain the location string that identifies your test repository. This string should be of the format :method:user:password@host:/repo/path (the other fields are used to tailor the tests in other ways but the defaults should work fine).
  5. Windows: This configuration is set up to use C:\eclipse as the test area. To configure the tests to use your test repository, perform the following steps:
    • copy the repository.properties file from the org.eclipse.team.tests.cvs.core plug-in to the C:\eclipse.
  6. Linux: This configuration currently uses absolute paths. To run the tests put the following in the launch configuration:
    • Main (tab) -> Location : ${workspace_loc}/../runtime-test-workspace
    • Arguments (tab) -> VM arguments : -Declipse.cvs.properties=${workspace_loc}/org.eclipse.team.tests.cvs.core/repository.properties -Xmx256M
  7. From the Run menu, choose Run.. and then select CVS UI Tests{ (Linux)} to run the tests.

[edit] Working with the Manual Test Plan

The test plan is kept in the org.eclipse.team.tests.cvs.core plug-in as a set of HTML pages link together using a table of contents in the Eclipse Help format. The table of contents file (toc.xml) is managed using a modified version of the Help TOC viewer plug-in from the Eclipse 3.0 FAQ book.

To install the TOC viewer plug-in and the test plan files:

  1. Download the modified viewer plug-in from here.
  2. Put the plug-in in the plugins directory of your Eclipse install.
  3. Restart Eclipse
  4. Load the org.eclipse.team.tests.cvs.core from dev.eclipse.org:/cvsroot/eclipse

To edit entries in the test plan:

  1. Open the Toc.xml Explorer view using CTRL-3 or go to Window>Show View>Other and Expand the Documentation Support folder to find the view.
  2. Expand the CVS Testing and other folders to find the entry you want to edit.
  3. Double-click on the entry to open it in a text editor. (Note that folder entries can also have a page associated with them)
  4. Edit the html as desired and save

To create a new entry:

  1. Select the entry to act as the parent of the new entry (this can be a folder that already has children or a leaf node, which will subsequently become a folder).
  2. From the context menu, choose Create New Topic
  3. You will be prompted for the title. Enter the title for the new topic and click OK
  4. You will then be prompted for the file name prefix. Enter something appropriate and click OK.
  5. A new topic will be created with the name <prefix>0001.html and a text editor on the topic will be opened
  6. edit the html and save when done

To generate a new test plan:

  1. Select the top level entry CVS Testing and choose Generate PDF from the context menu.
  2. Refresh the org.eclipse.team.tests.cvs.core project so the new file appears
  3. Contrary to the action name, this actually creates a file named toc.html at the root of the project.
  4. Open the file to confirm that your changes were included

[edit] Links