<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="en">
<HEAD>

<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2015. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<title>Replacing resources in the Workbench</title>
<meta name="keyword" content="team">
</HEAD>

<BODY BGCOLOR="#ffffff">
<H1 CLASS="Head">Replacing resources in the Workbench</H1>

<p>To replace Workbench resources with versions in the repository:
</p>

<ol>
  <li>Select a resource in one of the navigation views.</li>
  <li>From the resource's pop-up menu, select one of the following menu items: 
    <UL>
      <LI><b>Replace With &gt; Latest From &lt;Branch Name&gt;</b> or <strong>&lt;Version&gt;</strong> 
        - replace the Workbench resource with the latest resources currently committed 
        to the branch that the local project is shared with or if the local project 
        is checked out as a version then replace with the same version.</LI>
      <LI><b>Team &gt; Revert to Base</b> 
        - replace the Workbench resource with the last checked out revision. 
        Deleted files are restored. </LI>  
      <LI><b>Replace With &gt; Another Branch or Version</b> - replace the Workbench 
        resource with a specific version or branch that you select in the repository. 
        When you select this option, another window opens, so that you can browse 
        through the branch and version tags in the repository and select the one 
        that you want.</LI>
      <LI><b>Replace With &gt; History...</b> - (available only on a file) replace 
        the Workbench file with another revision of the file. Based on your preference settings,
        either the History view or a dialog will open. The History view (or dialog) 
        will contain a table of all available revisions of the selected file.
        Selecting one of the revisions will show the differences between the workspace 
        revision and the selected revision. To replace the workspace revision, you
        should select the revision that you want and choose 'Get Contents' from the 
        context menu. This will replace the contents of the workspace file with those
        of the selected revision.</LI>
      <LI><strong>Team &gt; Switch to Another Branch or Version</strong> - this 
        update will replace Workbench resources with those on the tag specified 
        in the Update dialog. The behavior differs from the above replace operations 
        in that uncommitted modifications in the Workbench are not replaced but 
        instead are &quot;moved&quot; to the resources from the selected tag. 
        For more details on the specifics of this operation, see the CVS documentation 
        at <a href="https://directory.fsf.org/wiki/CVS">https://directory.fsf.org/wiki/CVS</a> relating to the 
        use of the <em>-r </em>option with <em>cvs update</em>.</LI>
    </UL>
  </li>
</ol>
<p><em>Tip</em>: When replacing with a branch or version or when updating, you 
  can specify a particular date instead of a a version or branch tag. This can 
  be done by right clicking on the <strong>Dates</strong> category in the tag 
  selection list and choosing <strong>Add Date</strong>. A Date Tag dialog is 
  displayed that allows you to specify a date and optionally a time. After you 
  click <strong>Ok</strong>, the date tag will appear in the tag selection list.</p>
<p><img border="0" src="../images/ngrelc.png" alt="Related concepts" ><br>
<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
<a href="../concepts/concepts-27b.htm">Branches</a><br>
<a href="../concepts/concepts-27.htm">Versions</a><br>
<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
</p>

<p><img border="0" src="../images/ngrelt.png" alt="Related tasks" ><br>
<a href="tasks-96.htm">Checking out a project from a CVS repository</a><br>
<a href="tasks-117.htm">Sharing a new project using CVS</a><br>
<a href="tasks-119.htm">Viewing a file's revision history</a><br>
<a href="tasks-100a.htm">Branching</a><br>
<a href="tasks-115.htm">Synchronizing with the repository</a>
</p>



</BODY>
</HTML>
