<meta http-equiv="REFRESH" content="10;url=http://wiki.services.openoffice.org/wiki/Documentation/FAQ">
<h3>This page is outdated. You will be redirected to <a href="http://wiki.services.openoffice.org/wiki/Documentation/FAQ">http://wiki.services.openoffice.org
/wiki/Documentation/FAQ</a> shortly.</h3>
<div style="margin-bottom: 10em;"></div>
<p><a href="../../index.html">Documentation</a> / <a href="../index.html">User FAQ</a> / <a href="index.html">Maintainers' FAQ</a> / <a href="027.html" accesskey="p">Previous</a>-<a href="029.html" accesskey="n">Next</a></p>
<h3>How can I use the CVS template?</h3>
<p>A template pops up by default if you use the second method, with no -m "comments" in the commit command. That template can be setup with placemarkers for information or with instructions.
<ol>
  <li>After you establish a tunnel, minimize that first terminal. Use it to close the tunnel when you are done moving files to or from the site. You will not work in the terminal where you established the tunnel. Open a second working terminal to perform your work in CVS.</li>
  <li>Type <code>pwd</code> in the working terminal to verify that you are in your home directory.</li>
  <li>Use the <i>change directory</i> <code>cd</code> command in the second terminal to move to the directory of the file or folder you wish to commit.</li>
  <li>To allow a more formatted description of the change, use a modified version of this same command to pull up a CVS template. Type<br/>
    <code>cvs -d :pserver:username@projectname.domain.net:/cvs commit [projectname]</code>
    <br/>in the working terminal, where:
    <ul>
      <li><code>username</code> is your openoffice.org user login,</li>
      <li><code>projectname.domain.net</code> is the path to where the file lives, and</li>
      <li><code>[projectname]</code> is the name of a file or directory in the CVS file server.</li>
    </ul>
    <p>After you press enter, a cvs template will pop up in vi, a Unix text editor. Type <kbd>A</kbd> to begin the <b>Insert</b> mode at the end of the first line. Notice <b>Insert</b> shows at the bottom of the form during this mode. Add your entry. Use the arrow keys to drive around the template. The lines that begin with CVS are informative, and will not show as part of your commits. When your edits are complete, press the <code>Esc</code> key to leave the Insert mode. Type <code>:wq</code> to write and quit the cvs template. The template closes and the commit process continues in the working terminal window.</p>
    </li>
  <li>The commit is complete when your cursor comes back in the working terminal.</li>
</ol>
<p><b>Examples</b> of the commit command for user zzzzzz, (assuming pwd = /home/zzzzzz) that will pull up and use the template that resides in each CVS directory.</p>
<ul>
  <li>Type<br/>
    <code>cd documentation/www/faqs</code>
    <br/>Type<br/>
    <code>cvs -d :pserver:zzzzzz@localhost:/cvs commit index.html</code>
    <br/> in the second terminal to update only the index page from faqs directory.</li>
  <li>Type<br/>
    <code>cd marketing/www</code>
    <br/>Type<br/>
    <code>cvs -d :pserver:zzzzzz@localhost:/cvs commit index.html</code>
    <br/>in the second terminal to update only the index page from marketing project directory.</li>
  <li>Type<br/>
    <code>cd qa/www</code>
    <br/>Type<br/>
    <code>cvs -d :pserver:zzzzzz@localhost:/cvs commit index.html</code>
    <br/>in the second terminal to update only the index page from qa project directory.</li>
</ul>
<p><b>For more information:</b></p>
<ul>
  <li><a href="025.html">Is there a place where I can see the CVS directory tree?</a></li>
  <li><a href="025.html">Is there a place where I can see the CVS directory tree?</a></li>
</ul>
<p><a href="../../index.html">Documentation</a> / <a href="../index.html">User FAQ</a> / <a href="index.html">Maintainers' FAQ</a> / <a href="027.html" accesskey="p">Previous</a>-<a href="029.html" accesskey="n">Next</a></p>
