<!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, 2011. 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>Versioning projects in the repository</title>
<meta name="keyword" content="team">
<script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"> </script>
</HEAD>

<BODY BGCOLOR="#ffffff">
<H1 CLASS="Head">Versioning projects in the repository</H1>

<P> You can version a project in the repository without adding the project to 
  the Workbench.
</P>

<ol>
  <li>Switch to the
  <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.team.cvs.ui.cvsPerspective)")'>
  <img src="PLUGINS_ROOT/org.eclipse.help/command_link.svg" alt="command link">
  CVS Repository Exploring</a> perspective or add the
  <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.team.ccvs.ui.RepositoriesView)")'>
  <img src="PLUGINS_ROOT/org.eclipse.help/command_link.svg" alt="command link">
  CVS Repositories</a> view to the current perspective.</li>
  <li>In the CVS Repositories view, expand a repository location and find the 
    project you wish to version.</li>
  <li>Right-click on the project and select <b>Tag as Version</b>.</li>
  <li>Enter the name of the version you wish to create.</li>
  <li>Click <b>OK</b> to close the dialog and create the version.</li>
</ol>

<p><em>Tip:</em> You can browse existing versions of your project by clicking 
  on the <b>Details</b> button in the Tag Resources dialog. Clicking <b>Refresh 
  from Repository</b> should populate the Existing Versions list. It is sometimes 
  helpful to see existing versions before naming your new version.
</p>

<p><em>Tip:</em> If the version tag you wish to apply already exists on some of 
  the resources to be versioned, you can perform a <b>Tag with Existing</b> instead. 
  This operation will move an existing tag to the selected resources and can be 
  used to move both version and branch tags. If the tag you wish to apply is not 
  show in the list, you can click <b>Refresh from Repository</b>. If this doesn't 
  find the tag, you can click <b>Configure Tags</b> which opens a dialog that 
  allows you to search for tags on specific files in the repository.
</p>

<p><img border="0" src="../images/ngrelc.png" alt="Related concepts" ><br>
<a href="../concepts/concepts-27b.htm">Branches</a>
</p>

<p><img border="0" src="../images/ngrelt.png" alt="Related tasks" ><br>
<a href="tasks-100.htm">Creating a version of a project</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>
</p>

<p><img border="0" src="../images/ngrelr.png" alt="Related reference" ><br>
<a href="../reference/ref-47.htm">CVS</a>
</p>



</BODY>
</HTML>
