<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [

  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
  <!ENTITY dhfirstname "<firstname>Iustin</firstname>">
  <!ENTITY dhsurname   "<surname>Pop</surname>">
  <!-- Please adjust the date whenever revising the manpage. -->
  <!ENTITY dhdate      "<date>October 30, 2005</date>">
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
       allowed: see man(7), man(1). -->
  <!ENTITY dhsection   "<manvolnum>5</manvolnum>">
  <!ENTITY dhemail     "<email>iusty@k1024.org</email>">
  <!ENTITY dhusername  "Iustin Pop">
  <!ENTITY dhucpackage "<refentrytitle>CFVERS.CONF</refentrytitle>">
  <!ENTITY conf         "cfvers.conf">

  <!ENTITY cfvers      "<productname>cfvers</productname>">
  <!ENTITY gnu         "<acronym>GNU</acronym>">
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">

  <!ENTITY client-local-sqlite SYSTEM "examples/client-local-sqlite.sample">
  <!ENTITY client-local-postgresql SYSTEM "examples/client-local-postgresql.sample">
  <!ENTITY client-remote SYSTEM "examples/client-remote.sample">

]>

<refentry>
  <refentryinfo>
    <address>
      &dhemail;
    </address>
    <author>
      &dhfirstname;
      &dhsurname;
    </author>
    <copyright>
      <year>2003</year>
      <year>2004</year>
      <year>2005</year>
      <holder>&dhusername;</holder>
    </copyright>
    &dhdate;
  </refentryinfo>
  <refmeta>
    &dhucpackage;

    &dhsection;
  </refmeta>
  <refnamediv>
    <refname>&conf;</refname>

    <refpurpose>&conf; configuration file for the cfv/cfvadmin command line tools</refpurpose>
  </refnamediv>
  <refsect1>
    <title>DESCRIPTION</title>

    <para>This manual page documents the <filename>/etc/cfvers/cfvers.conf</filename> and <filename>~/.cfvers</filename> configuration files for the &cfvers; system version 0.5.4.</para>

    <para>&cfvers; is a version control system designed for the management of configuration files in Unix-like operating systems..</para>
    <para><filename>&conf;</filename> is the configuration file for the command-line clients <command>cfv</command> and <command>cfvadmin</command>.</para>

    <para>The filename structure is that of an .ini file (it's parsed by Python's ConfigParser module):
      <screen>[section1]
key1=value1
key2=value2
[section2]
</screen>
    </para>
    <refsect2>
      <title>Available sections</title>
      <para>The only available section is <command>server</command>. It hols the configuration data needed for connecting to the server.</para>
    </refsect2>
    <refsect2>
      <title>server section keys</title>
      <para>The <option>area</option> key selects the default area to work on after connecting to the repository.</para>
      <para>The <option>server_type</option> key selects between the two kinds of servers in &cfvers;: <replaceable>local</replaceable> server (in-process) and <replaceable>remote</replaceable> server (through Pyro remote objects). Examples:
        <screen>[server]
server_type=local</screen> or: <screen>[server]
server_type=remote
</screen>
      </para>
      
    </refsect2>
    <refsect2>
      <title>Local server configuration</title>
      <para>In a local server configuration, there are only two items to configure: the repository type and the connect information:
        <variablelist>
          <varlistentry>
            <term>repo_meth</term>
            <listitem>
              <para>This is the repository type. Currently, the <option>sqlite</option> and <option>postgresql</option> options are available.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>repo_data</term>
            <listitem>
              <para>This is the connect information and depends on the repository type. For sqlite, it is the name of a (writeable) file. For postgresql, it is the connect information to the database, in the following format: <computeroutput>dbname=<replaceable>mydb</replaceable> user=<replaceable>myuser</replaceable> password=<replaceable>mypassword</replaceable>...</computeroutput>. The available keys/value pairs are:
                <variablelist>
                  <varlistentry>
                    <term>dbname</term>
                    <listitem>
                      <para>the name of the database to connect to (required);</para>
                    </listitem>
                  </varlistentry>
                  <varlistentry>
                    <term>user</term>
                    <listitem>
                      <para>the username to use when connecting to the database; not required (in which case the connection will use your login name);</para>
                    </listitem>
                  </varlistentry>
                  <varlistentry>
                    <term>password</term>
                    <listitem>
                      <para>the password for the database; not required if you use the <option>trust</option> authentication method;</para>
                    </listitem>
                  </varlistentry>
                  <varlistentry>
                    <term>host</term>
                    <listitem>
                      <para>the IP address or name of the database server; if not given, the connection will be on localhost through UNIX sockets;</para>
                    </listitem>
                  </varlistentry>
                </variablelist>
                For more options possible, please consult the Postgresql documentation.
              </para>
            </listitem>
          </varlistentry>
        </variablelist>
      </para>
    </refsect2>

    <refsect2>
      <title>Remote server configuration</title>
      <para>The remote server configuration is more complex. The possible values are:
        <variablelist>
          <varlistentry>
            <term>host</term>
            <listitem>
              <para>the hostname or ip address of the machine on which the <command>cfversd</command> server is running;</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>port</term>
            <listitem>
              <para>the port number on which the server is listening;</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>username</term>
            <listitem>
              <para>the username used to connect;</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>client_password</term>
            <listitem>
              <para>the password used to authenticate (the client) to the server;</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>server_password</term>
            <listitem>
              <para>the password used to authenticate the server (to the client);</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </para>
    </refsect2>
    
  </refsect1>

  <refsect1>
    <title>EXAMPLES</title>
    <refsect2>
      <title>Local server with sqlite</title>
      <screen>&client-local-sqlite;</screen>
    </refsect2>
    <refsect2>
      <title>Local server with postgresql</title>
      <screen>&client-local-postgresql;</screen>
    </refsect2>
    <refsect2>
      <title>Remote server</title>
      <screen>&client-remote;</screen>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>SEE ALSO</title>
    <para>
      <citerefentry>
	<refentrytitle>cfv</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>cfvadmin</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>cfversd</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>cfversd.conf</refentrytitle>
	<manvolnum>5</manvolnum>
      </citerefentry>,
      <citetitle>cfvers user manual</citetitle>
    </para>
    <para>
      <citerefentry>
	<refentrytitle>cvs</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>svn</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>
    </para>

  </refsect1>
  <refsect1>
    <title>AUTHOR</title>

    <para>This manual page was written by &dhusername; &dhemail; </para>

    <para>The manual pages <citerefentry>
	<refentrytitle>cvs</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry> and <citerefentry>
	<refentrytitle>svn</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry> were used as sources of inspiration (and copy-paste in some cases), since these are real versioning programs :-), with proper man pages.
    </para>

  </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
