<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Eclipse CVS Plugin - Build notes</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
</head>
<body bgcolor="#ffffff" text="#000000">
 
<table border="0" cellspacing="5" cellpadding="2" width="100%">
   <tbody>
    <tr>
      <td align="left" width="72%"> <font class="indextop"> Eclipse CVS</font><br><font class="indexsub"> build notes</font></td>
   </tr>
  </tbody>
</table>
 
<table border="0" cellspacing="5" cellpadding="2" width="100%">
  <tbody>
  <tr><td>Here are the build notes for the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-vcm-home/main.html">CVS Plugin</a> 
  which includes changes to <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.core/">org.eclipse.team.cvs.core</a>, 
  <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ui/">org.eclipse.team.cvs.ui</a>, 
  <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.cvs.ssh/">org.eclipse.team.cvs.ssh</a>.
</td></tr>

<tr><td align="left" valign="top" colspan="2" bgcolor="#0080c0" width="100%"><b><font face="Arial,Helvetica"><font color="#ffffff">3.1 Builds</font></font></b></td>
</tr><tr>
      <td> 
	          <!-- ####### START OF 3.1 BUILD SUBMISSIONS BLOCK -->
        <h4>September 23rd 2004 - 3.1 M2</h4>
        <h4>Interesting changes</h4>
        <ul>
          <li>The CVS decorator now allows for color and font decorations to be 
            specified for ignored and modified resources. Also, the CVS Decorator 
            preference page has been improved to show how the selected decorations 
            in an example tree viewer.</li>
          <li>Enabling and disabling of Commit Sets in the Synchronize view is 
            now done using a toolbar button. Commit sets also use the selected 
            layout as the sub-layout to be used in each commit set.</li>
          <li>The ability to assign outgoing changes to commit sets has also been 
            added to the Synchronize view. The comment associated with such a 
            commit set is used when the files are committed.</li>
        </ul>
        <h4>Fixed bugs</h4>
        <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=CVS&target_milestone=3.1+M2&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0.1&newqueryname=&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a> 
          bugzilla query to list all fixed bugs in this build.</p>
	  </td>
</tr>
<tr><td align="left" valign="top" colspan="2" bgcolor="#0080c0" width="100%"><b><font face="Arial,Helvetica"><font color="#ffffff">3.0 Builds</font></font></b></td>
</tr><tr>
      <td> 
        <!-- ####### START OF 3.0 BUILD SUBMISSIONS BLOCK -->
        <h4>September 23rd 2003 - 3.0 (I20030923)</h4>
        <h4>Interesting changes</h4>
        <ul>
          <li>CVS operations performed from the Synchronize View are run in the 
            background. Depending on the operation, the resources affected by 
            the CVS command are locked for modification and other operations run 
            may block (e.g. saving a file or creating a new file) until the background 
            job is done. The use-case of a background job blocking annother operation 
            is being addressed by an improved progress monitor that is yet to 
            be released.</li>
          <li>A CVS repository location can be configured to use different locations 
            for <strong>reading</strong> and <strong>writing</strong>. This can 
            speed up CVS operations for which most of the time is consumed by 
            costly extssh authentication and only read access is required (e.g. 
            opening remote files, browsing a remote repository, opening a compare 
            editor). To configure a read and write locations, first create a read 
            location (e.g. for Eclipse developers, a useful read location would 
            be the anonymous pserver location), then from the CVS Repositories 
            View select the Properties page of a location and configure the read 
            or write locations.</li>
          <li>The CVS History View can now be linked to the active editor. The 
            linking is enabled for editors with the following inputs: IFileEditorInput, 
            RemoteFileInput (e.g. created when browing remote CVS files), and 
            SyncInfoEditorInput (e.g. created when browing changes in a compare 
            editor from the Synchronize View).</li>
          <li>The CVS synchronize action now opens the new Synchronize View.</li>
        </ul>
        <h4>Fixed bugs</h4>
        <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-09-01&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a> 
          bugzilla query to list all fixed bugs in this build.</p>
        <h4><img src="http://dev.eclipse.org/images/Adarrow.gif" nosave="" border=0 height=16 width=16 alt=""> 
          August 6th 2003 - 3.0 (I20030806)</h4>
        <h4>Interesting changes</h4>
        <ul>
          <li>Annotate view action switches to the CVS perspective. This allows 
            the command to layout the views (history, editor, annotate) for linking.</li>
          <li>Update and Commit actions in the new Synchronize View no longer 
            prompt for overwriting changes. Instead, an <strong>Override and Commit</strong> 
            action has been added. To override local changes use the <strong>Replace 
            With</strong> CVS actions.</li>
          <li>The new Synchronize View can be activated via a <strong>CVS &gt; 
            Work In Progress</strong> preference. When this is enabled, the new 
            Synchronize View will restrict the resources it handles based on a 
            working set created when ever a <strong>Team &gt; Synchronize view 
            Repository</strong> is run. This will allow large workspaces with 
            many CVS projects to be responsive.</li>
          <li>To help debug problems with the CVS plugin a preference has been 
            added to enable/disable the CVS protocol trace to stdout. Previously 
            you had to create an options file and restart Eclipse.</li>
        </ul>
        <h4>Fixed bugs (27 fixed)</h4>
        <p>See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Platform&component=VCM&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfield=resolution&chfieldfrom=2003-07-18&chfieldto=Now&chfieldvalue=&cmdtype=doit&namedcmd=3.0%2BM3%2BFixed&newqueryname=&order=Reuse%2Bsame%2Bsort%2Bas%2Blast%2Btime&field0-0-0=noop&type0-0-0=noop&value0-0-0=">this</a> 
          bugzilla query to list all fixed bugs in this build.</p>
        <!-- ####### END OF 3.0 BUILD SUBMISSIONS BLOCK -->
        <br>
        <br> </td>
    </tr>

<tr><td align="left" valign="top" colspan="2" bgcolor="#0080c0" width="100%"><b><font face="Arial,Helvetica"><font color="#ffffff">
Archive for 2.0 and 2.1 Builds</font></font></b></td>
</tr><tr><td>
          
<p class="MsoNormal">Build submission for Integration Build 20021116</p>
               
<h2>What's new in this build</h2>

<p>Eclipse now supports CVS Watch/Edit. There is a CVS preference for indicating that projects should 
be checked out as read-only and there are Edit and Unedit actions available in the Team menu. Also,
Eclipse will automatically perform a "cvs edit" on files that are modified in an open editor.

<p>The CVS Repositories view has undergone a few more changes. Modules now appear as folders 
under HEAD with their own icon to differentiate them from regular 
folders. Also, refreshing the tags for a module may not work properly because this feature requires the use of an 
auto-refresh file. If your modules are not appearing in the version or branch categories, perform
a "Configure Branches and Versions" on the module and assign the tags to the module and/or set the 
auto-refresh file.

<p>Several optimizations have also been performed on the CVS plugin. CVS now uses the new light-weight
decorators provided by Platform UI. Also, the determination of a folder's dirty status has been optimized
using caching. The caching scheme uses a combination of persistant and session properties (facilities
provided by Platform Core). Persistant properties have a certain overhead so that the first query of 
the dirty status of a folder will be longer running then subsequent queries.

<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
 </p>
 
<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
<p class="MsoNormal">CVS build I20021112 Nov 12, 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20021112</p>
               
<h2>What's new in this build</h2>
 
<p>The CVS Repositories view has undergone some changes. Here is a summary of the changes:</p>
<ul>
<li>Users can now define working sets which will limit the number of projects shown in the view.
<li>Branches only contain projects that are "known" to be in the branch. Similarly, the Versions category
has been changed and now displayes all the "known" projects in a version (as opposed to providing a list of
verions).
<li>The version and branch items will start out empty and must be populated by the user. This can be
done by performing a "Refresh Branches and Versions" from the popup menu of a repository location or
by using "Configure Branches and Tags". The user should define a working set before refreshing the tags
of the repository location since the refresh operation will search each project in the working set (or
each project in the repository if no working set is defined).
<li>Comparing multiple versions of the same project can be done by choosing  "Compare With..." from
popup menu of any folder or file in the view.
<li>There is no longer a "Show Modules" mode. Instead, there is a Modules category under HEAD which can
be expanded to see the modules defined in the CVSROOT/modules file.
</ul>
<p>Further work will be done on this view to fine-tune the tag discovery mechanisms.
</p>

<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
 </p>
 
<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
<p class="MsoNormal">CVS build I20021015 Oct 15, 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20021015</p>
               
<h2>What's new in this build</h2>
 
<p>Deleted files can now be queried and restored from the repository using the "Team > Restore from Repository..."
command, which is available on CVS projects and folders.
</p>

<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
 </p>
 
<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
<p class="MsoNormal">CVS build I20021008 Oct 8, 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20021008</p>
               
<h2>What's new in this build</h2>
 
<p>Several improvements related to support of CVS modules have been added. 
<ul>
<li>"Checkout Into..."
can be used from the CVS Repositories view to check out a folder into an existing project.</li>
<li>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.</li>
<li>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").
</ul>
</p>

<p>Also, "Tag with Existing" can now be performed in the resource history view.</p>
<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
 </p>
 
<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
<p class="MsoNormal">CVS build I20020917 Sept 17, 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20020917</p>
               
<h2>What's new in this build</h2>
 
<p>A "quick sync" button has been added to the CVS action set which will display the list
of all projects shared with CVS and allow the user to choose which projects to sync, either 
directly or by working set.
</p>
<p>Performing a commit in the sync view or the navigator will present the user with a
dialog that shows the user any new resources that are not yet under version control or not yet
ignored. The user can select which resources they would like to add before the commit
is performed.
</p>
<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
 </p>
 
<h1 style="">Eclipse Platform Build Notes &#8211; CVS Support</h1>
<p class="MsoNormal">CVS build I20020909 Sept 09, 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20020910</p>
               
<h2>What's new in this build</h2>
 
<p>When using the EXT connection method, the parameter format can be specified
on the EXT Connection Method preference page. The parameter list can include
variables representing the corresponding values from the location. The variables 
are user, password, host and port. The default parameter list is "{host} -l {user}".
</p>
<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
 </p>
 
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
<p class="MsoNormal">CVS build I20020517 May 17 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20020517</p>
               
<h2>What's new in this build</h2>
 
<p>Starting with this build, if you "Check Out As..." on a project from the
repository which has no .project file, you will be prompted to specify what
type of project you would like to create. (A typical example is to create
a Java project at this point).<br>
</p>
<p>Also new in this build is the ability to select "Share Project..." on
a project for which remote content already exists. Previously, sharing the
project would automatically try to import your files into the repository;
now, it detects that remote files already exists and opens the sync view
for you to reconcile the differences.<br>
</p>
<p>Numerous other bugs are fixed. As always, you can check in Bugzilla.<br>
 </p>
 
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                
<p class="MsoNormal">CVS build I20020430 April 30 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20020430</p>
               
<h2>What's new in this build</h2>
 
<p>Added support for moving CVS tags. Ths fuctionality is available in the 
Repositories view under "Tag with Existing Tag". This allows one to change 
a version lineup.<br>
 </p>
 
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                
<p class="MsoNormal">CVS build I20020423 April 23 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20020423</p>
               
<h2>What's new in this build</h2>
       
<p class="MsoNormal">Branching/Merging changes:<br>
   </p>
     
<ul>
     <li>merge allowed on multiple selection of non-overlapping resources,
 merge results show in same merge editor (e.g. you no longer need X editors
 to merge X projects). We should do the same for compare.</li>
     
</ul>
     
<p class="MsoNormal"></p>
     
<ul>
     <li>merge allowed on all resource types</li>
     
</ul>
     
<p class="MsoNormal"></p>
     
<ul>
     <li>branching allowed on all resource types</li>
     
</ul>
     
<p class="MsoNormal"></p>
     
<ul>
     <li>"replace with" allowed on all resource types with multiple selection</li>
     
</ul>
     
<p class="MsoNormal"></p>
     
<ul>
     <li>warning dialog added when ever a user creates a project with mixed 
 tags. It warns about the implied CVS behavior. Can be turned off.</li>
     
</ul>
     
<p class="MsoNormal"></p>
     
<ul>
     <li>tags only shown if different than parent tag (reduces tag clutter
 and makes it more obvious when a tag is different)<br>
     </li>
     
</ul>
     
<p class="MsoNormal"></p>
     
<ul>
     <li>get revision for files allowed from history/replace/compare dialogs, 
 to revert from a sticky revision use "replace with tag" and select the branch 
 you are working on<br>
     </li>
     
</ul>
     
<p class="MsoNormal"></p>
     
<ul>
     <li>CVS text decorations consolidated and as a result the text decorations 
 in the sync view will follow the users preferences (except for the dirty 
flag which is not shown in the sync view.</li>
        
</ul>
               
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                
<p class="MsoNormal">CVS build I20020409 April 9 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20020409</p>
               
<h2>What's new in this build</h2>
         
<p class="MsoNormal">GZIP compression support for CVS communication has been 
  introduced in this build. It is turned on by default and can be configured 
  on the CVS preference page.<br>
     </p>
         
<p class="MsoNormal"><br>
     Support for communicating with CVS NT servers has been improved. Note
 that  CVS NT is still not a supported platform. CVS support should now work
 much  better with CVS NT versions 1.11.1.1 and higher, including 1.11.1.3.<br>
     </p>
         
<p class="MsoNormal"><br>
     Support for branch and version tags in the UI has been improved. See 
the   "Configure Tags" dialog, which is available nearly anywhere in the UI
where   tags are needed. (e.g. in the Compare With Tag action, Replace With
Tag action,  and in the Repositories View).<br>
     </p>
         
<p class="MsoNormal"><br>
     Cancellation and progress have been greatly improved. For example, it
 should  be possible to cancel connections to unresponsive servers without
 waiting  for operations to time out.<br>
     </p>
         
<p class="MsoNormal"><br>
     The CVS Console is much more usable. Output from different actions is
 easily  distinguished, and color coding of server responses has been added.<br>
     </p>
           <br>
           
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                
<p class="MsoNormal">CVS build I20020402 April 2 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20020402</p>
               
<h2>What's new in this build</h2>
           
<p class="MsoNormal">The CVS plug-ins are now turned on by default. The old
    VCM plug-ins are still included in the build but are turned off by default.<br>
      <br>
      </p>
           
<p class="MsoNormal">Additions, deletions and moved resorces are handled
differently in this build:</p>
           
<p class="MsoNormal"><br>
      </p>
           
<p class="MsoNormal">1) The user will be prompted with a warning on deletion
   of files to<br>
      indicate that the file will be marked as an outgoing deletion. An<br>
      information marker will appear in the task view which indicates this. 
 The<br>
      user can use the Auto Fix item in the task's context menu to restore
 the<br>
      file (from the server or local history) or commit the deletion. The 
user<br>
      can also commit the deletion as before (Commit on ancestor in Team
menu   or<br>
      Sync view) as well.<br>
      <br>
      2) A similar warning will appear for folder deletions. However, the 
folders<br>
      themselves will not be deleted and files in the folders will appear 
as<br>
      outgoing deletions. On commit, any empty folders that contained outgoing<br>
      deletions will be pruned.<br>
      <br>
      3) When files are added to a folder shared with CVS, an information 
marker<br>
      will appear in the task view until the file is either added to CVS
control<br>
      or ignored (Autofix items are available for this).<br>
      <br>
      Options are available in the CVS preferences page to disable both the<br>
      prompting and markers.<br>
      </p>
           
<p class="MsoNormal"><br>
      </p>
           
<p class="MsoNormal"><br>
      The CVS support now takes advantage of the new Core facilities for
private    resources. As such, CVS/ folders will be marked as private and
should not    show up anywhere in the UI. Also, if you copy or move a folder
structure   in the workspace, the CVS/ folders will be removed from the destination.<br>
      </p>
           
<p class="MsoNormal"><br>
      In order for the CVS/ folders to be marked as private, you will need
 to  delete the projects in your workspace and check them out from the repository 
  again. Failure to do so will simply result in CVS/ folders showing up in 
 the UI.<br>
      </p>
           
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                
<p class="MsoNormal">CVS build I20020312 &#8211; March 12, 2002</p>
               
<p class="MsoNormal">Build submission for Integration Build 20020312</p>
               
<h2>What's new in this build</h2>
               
<p class="MsoNormal">The CVS plug-ins are now turned on by default. The old
    VCM plug-ins are still included in the build but are turned off by default.<br>
        More performance improvements for the decorators.</p>
               
<p class="MsoNormal">The actions in the Sync view have been changed. A summary:</p>
               
<p class="MsoNormal"><br>
        Incoming mode:<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Update from Repository 
(operates    ONLY on incoming nodes that are not conflicting)<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override and Update (operates
    on conflicts)<br>
        Outgoing mode:<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Commit (operates only
on  outgoing   nodes that are not conflicting)<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override and Commit (operates
    on conflicts)<br>
        Both mode:<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Update from Repository 
(operates    ONLY on incoming nodes that are not conflicting)<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override and Update (operates
    on conflicts *and* on outgoing <br>
        changes)<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Commit (operates only
on  outgoing   nodes that are not conflicting)<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override and Commit (operates
    on conflicts *and* on incoming <br>
        changes)</p>
               
<p class="MsoNormal"> </p>
               
<p class="MsoNormal"><br>
        </p>
               
<p class="MsoNormal">A preference was added that allows the user to more
accurately determine how files are compared.</p>
               
<p class="MsoNormal">A new action was added to the merge view which allows
    the user to correctly merge conflicting files automatically (previously
  we  had a bug which prevented this).</p>
               
<p class="MsoNormal"><br>
          Resolved 54 bugs.</p>
               
<p class="MsoNormal"><br>
        <a
 href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;resolution=FIXED&amp;resolution=INVALID&amp;resolution=WONTFIX&amp;resolution=DUPLICATE&amp;resolution=WORKSFORME&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfield=resolution&amp;chfieldfrom=2002-03-06+&amp;chfieldto=2002-03-12&amp;chfieldvalue=&amp;product=Platform&amp;component=VCM&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;namedcmd=Bugs+I%27ve+Logged&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">
             Click here</a> to see the bugs that were fixed.</p>
               
<p class="MsoNormal"><br>
        </p>
               
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                      
<p class="MsoNormal">CVS build I20020305 &#8211; March 5, 2002</p>
                     
<p class="MsoNormal">Build submission for Integration Build 20020305</p>
                     
<h2>What's new in this drop</h2>
                            
<p class="MsoNormal">CVS Decorators have been greatly improved - images are 
     now cached and disposed. </p>
                     
<p class="MsoNormal">  Resolved 74 bugs, fixing 47.</p>
                     
<p class="MsoNormal"><br>
           <a
 href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;resolution=FIXED&amp;resolution=INVALID&amp;resolution=WONTFIX&amp;resolution=DUPLICATE&amp;resolution=WORKSFORME&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfield=resolution&amp;chfieldfrom=2002-02-26+&amp;chfieldto=2002-03-06&amp;chfieldvalue=&amp;product=Platform&amp;component=VCM&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;namedcmd=Bugs+I%27ve+Logged&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">
             Click here</a> to see the bugs that were fixed.</p>
                     
<p class="MsoNormal"><br>
             All Team plug-ins are turned off by default. If you wish to
use   Team   support,</p>
                     
<ol style="margin-top: 0in;" start="1" type="1">
             <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.ui/plugin.xml.off
   to plugins/org.eclipse.team.ui/plugin.xml          </li>
             <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ui/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ui/plugin.xml      </li>
             <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.core/plugin.xml.off
   to      plugins/org.eclipse.team.core/plugin.xml      </li>
             <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.core/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.core/plugin.xml     </li>
             <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ssh/plugin.xml     </li>
                     
</ol>
                     
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                          
<p class="MsoNormal">CVS build I20020226 &#8211; February 26, 2002</p>
                         
<p class="MsoNormal">Build submission for Integration Build 20020226</p>
                         
<h2>What's new in this drop</h2>
                         
<p class="MsoNormal">Added :ext: support, similar to the support that was 
      in 1.0. See the CVS-&gt;Ext Connection Method preferences page to configure
      ext support.</p>
                         
<p class="MsoNormal"><br>
             Fixed 25 bugs.</p>
                         
<p class="MsoNormal"><br>
             <a
 href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;resolution=FIXED&amp;resolution=INVALID&amp;resolution=WONTFIX&amp;resolution=DUPLICATE&amp;resolution=WORKSFORME&amp;email1=&amp;emailtype1=substring&amp;email2=&amp;emailtype2=substring&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfield=resolution&amp;chfieldfrom=2002-02-15+&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Platform&amp;version=2.0&amp;component=VCM&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;namedcmd=Fixed+since+last+date&amp;newqueryname=Fixed+since+last+date&amp;order=Reuse+same+sort+as+last+time">
             Click here</a> to see the bugs that were fixed.</p>
                                    
<p class="MsoNormal"><br>
             All Team plug-ins are turned off by default. If you wish to
use   Team   support,</p>
                         
<ol style="margin-top: 0in;" start="1" type="1">
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.ui/plugin.xml.off
   to plugins/org.eclipse.team.ui/plugin.xml          </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ui/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ui/plugin.xml      </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.core/plugin.xml.off
   to      plugins/org.eclipse.team.core/plugin.xml      </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.core/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.core/plugin.xml     </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ssh/plugin.xml     </li>
                         
</ol>
             <!--[if !supportEmptyParas]-->             
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                            
<p class="MsoNormal">CVS build I20020214 &#8211; February 14, 2002</p>
                            
<p class="MsoNormal">Build submission for Integration Build 20020214</p>
                            
<h2>What's new in this drop</h2>
                            
<p class="MsoNormal">Bug fixes:</p>
                            
<p class="MsoNormal">Outgoing changes show up in Merge editor (9746)</p>
                            
<p class="MsoNormal">Incoming additions from another branch have wrong timestamp
       (9748)</p>
                            
<p class="MsoNormal">Bin folders show up as outgoing additions! (9788)</p>
                            
<p class="MsoNormal">Create<span style="">&nbsp; </span>       branch dialog
   says "Name must not be null" for a project version, even   if  the version
   option is disabled (9691)</p>
                            
<p class="MsoNormal">Should not ignore managed resources (9502)</p>
                            
<p class="MsoNormal">Directory named core ignored!!! (9486)</p>
                            
<p class="MsoNormal">Change in semantics to validateEdit (9802)</p>
                            
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
                            
<p class="MsoNormal">All Team plug-ins are turned off by default. If you wish
to use Team support,</p>
                            
<ol style="margin-top: 0in;" start="1" type="1">
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.ui/plugin.xml.off
   to plugins/org.eclipse.team.ui/plugin.xml          </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ui/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ui/plugin.xml      </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.core/plugin.xml.off
   to      plugins/org.eclipse.team.core/plugin.xml      </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.core/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.core/plugin.xml     </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ssh/plugin.xml     </li>
                           
</ol>
                            
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
                            
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                            
<p class="MsoNormal">CVS build V2_0_6 &#8211; February 12, 2002</p>
                            
<p class="MsoNormal">Build submission for Integration Build 20020212</p>
                            
<h2>What's new in this drop</h2>
                            
<p class="MsoNormal">48 bugs fixed.</p>
                            
<p class="MsoNormal">Global ignore facility added.</p>
                            
<p class="MsoNormal">Extensive sync view rewrite. Workflow has been improved, 
      and in incoming/outgoing mode the user can override the direction of 
 any    change. Auto-merging of conflicts is now supported as well.</p>
                            
<p class="MsoNormal">User can add files/directories to .cvsignore automatically
       from the sync view or navigator by right clicking and selecting &#8220;Ignore&#8221;.</p>
                            
<p class="MsoNormal">Many bug fixes and improvements.</p>
                            
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
                            
<p class="MsoNormal">All Team plug-ins are turned off by default. If you wish
to use Team support,</p>
                            
<ol style="margin-top: 0in;" start="6" type="1">
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.ui/plugin.xml.off
   to plugins/org.eclipse.team.ui/plugin.xml          </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ui/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ui/plugin.xml      </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.core/plugin.xml.off
   to      plugins/org.eclipse.team.core/plugin.xml      </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.core/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.core/plugin.xml     </li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ssh/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ssh/plugin.xml     </li>
                           
</ol>
                            
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
                            
<h1 style="">Eclipse Platform Build     Notes &#8211; CVS Support</h1>
                            
<p class="MsoNormal">CVS build V2_0_2 &#8211; January 15, 2002</p>
                            
<p class="MsoNormal">Build submission for Integration Build 20020115</p>
                            
<h2>What's new in this drop</h2>
                            
<p class="MsoNormal">This is the initial release for the CVS support plug-ins.</p>
                            
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
                            
<p class="MsoNormal">The plug-ins are turned off by default. If you wish to
use CVS support,</p>
                            
<ol style="margin-top: 0in;" start="11" type="1">
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.ui/plugin.xml.off
   to plugins/org.eclipse.team.ui/plugin.xml</li>
               <li class="MsoNormal" style="">       Rename      plugins/org.eclipse.team.cvs.ui/plugin.xml.off
   to      plugins/org.eclipse.team.cvs.ui/plugin.xml</li>
                           
</ol>
                            
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
                            
<p class="MsoNormal">Please report any problems to the VCM team, and use the
VCM component for bug tracking.</p>
                            
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
                            
<p class="MsoNormal">The following features are operating near their 1.0 level
of functionality:</p>
                            
<ul style="margin-top: 0in;" type="disc">
               <li class="MsoNormal" style="">       The      Synchronize 
view</li>
               <li class="MsoNormal" style="">       The      Resource History
   view</li>
               <li class="MsoNormal" style="">       The      Repositories
 view</li>
                           
</ul>
                            
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]-->&lt;&gt;</p>
                            
<p class="MsoNormal">The following features differ from the 1.0 functionality:</p>
                            
<ul style="margin-top: 0in;" type="disc">
               <li class="MsoNormal" style="">       Decorators.      To
see   version  history in the Navigator, use Window-&gt;Decorators-&gt;CVS</li>
               <li class="MsoNormal" style="">       CVS      metadata. The 
 metadata  now resides in CVS/ folders in every  shared   folder.      These 
 folders  are hidden by default in the Navigator.  If you   copy entire  
   directories  from within the Navigator, you MUST  remove the  CVS/   
  directories from  the target after copying, otherwise  CVS operations 
 will      behave unexpectedly.</li>
                           
</ul>
                            
<p class="MsoNormal"></p>
                            
<p class="MsoNormal">Run <a
 href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;resolution=FIXED&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;priority=P4&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugi%20">
             this</a> query to determine which bugs have been fixed since 
January     7<sup>    th</sup>. If you wish to narrow the search, edit the 
query and    change the  dates.</p>
                            

</td>
</tr>
 </tbody>                            
</table>
</body>
</html>
