blob: eb0d4497fec51858e823fd6a1e508d04b0027792 [file] [log] [blame]
<!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>Running the CVS command-line client outside of Eclipse</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">Running the CVS command-line client outside of Eclipse</H1>
<h2>Compatibility</h2>
<p>Because the Eclipse CVS plug-in stores its meta information in a format that
is compatible with the command-line CVS client you should be able to use a CVS
command line client against Eclipse workspace files on disk. The metadata is
stored in CVS/ sub-directories but you rarely see them within Eclipse. They are
marked as private which causes them to be hidden from view. If you open a (non-Eclipse)
file explorer you will see that these directories and their contents appear
on the file system.</p>
<h2> Don't forget to refresh!</h2>
<p>Whenever you use external tools to modify workspace files, you must perform
a <strong>Refresh</strong> from within Eclipse to make the workspace aware of
the changes. If you get a <em>resource out of sync</em> error in Eclipse it
is a sign that there are resources in Eclipse that have been modified outside
of Eclipse. One solution is to perform a refresh (available from a resource's
popup menu) on any resources or projects that where modified outside of Eclipse.
There is also a preference to refresh automatically.</p>
<h3>Caveats</h3>
<p><strong>1. Deleted folders</strong></p>
<p>You may encounter unexpected behavior when using the command-line CVS client
in conjunction with deleted folders. Eclipse's CVS support keeps track of deleted
folders and their contents so that, on the next synchronization, the Synchronize
view can properly report on the changes. This information is kept outside of
the CVS meta folder structure. This is because in CVS you normally inform the
repository of deletions prior to deleting them locally, which is a different
workflow than we like to support in the Synchronization view. Thus it is recommended
that you do not use the command-line CVS client while you have pending deletions
to commit. In some circumstances it could cause the Synchronize view to display
incorrect contents, although it will not cause any lost work. </p>
<p><strong>2. CVS directories appear in the workbench</strong></p>
<p>When you use the command-line CVS the CVS folders can sometimes appear
in one of the navigation views. There are some cases where CVS folders are not hidden from the
UI as you would expect. For instance, CVS folders will appear if a user
imports a CVS project into Eclipse before the CVS plug-in is loaded. To avoid
this, open the CVS Repositories view (thus loading the CVS plug-in) before importing
CVS projects into Eclipse. </p>
<p><strong>3. The 'extssh' connection method</strong></p>
<p>The <em>extssh</em> connection method is unique to Eclipse CVS and doesn't
exist in the command-line CVS client. If you are using <em>extssh</em> to connect
to a SSH2 repository and would like to use the command line client for some
CVS operations you can configure the <em>ext</em> connection method to use <em>extssh</em>
when inside Eclipse.</p>
<ol>
<li>Create a new repository location that uses the <em>ext</em> connection method.
The repository path, host, and user should be identical to those in the <em>extssh</em>
location.</li>
<li>Open the
<a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.team.cvs.ui.ExtMethodPreferencePage)")'>
<img src="PLUGINS_ROOT/org.eclipse.help/command_link.svg" alt="command link">
<strong>Team &gt; CVS &gt; Ext Connection Method</strong></a> preference page.</li>
<li>Enable<strong> Use another connection method type to connect</strong> and
choose <em>extssh</em>.</li>
<li>Now when you use the <em>ext</em> connection method inside Eclipse, <em>extssh</em>
will be used instead of an external client.</li>
</ol>
<p><img border="0" src="../images/ngrelt.png" alt="Related tasks" ><br>
<a href="tasks-95.htm">Changing the properties of a CVS repository location</a><br>
<a href="tasks-92.htm">Creating a CVS repository location</a><br>
<a href="tasks-117a.htm">Using projects checked out with another CVS tool</a>
</p>
</BODY>
</HTML>