<chapter id="cvs-access">


<chapterinfo>
	<author>
		<affiliation>
			<orgname>Samba Team</orgname>
		</affiliation>
	</author>
	
		
	<pubdate> (22 May 2001) </pubdate>
</chapterinfo>

<title>HOWTO Access Samba source code via CVS</title>

<sect1>
<title>Introduction</title>

<para>
Samba is developed in an open environment.  Developers use CVS
(Concurrent Versioning System) to "checkin" (also known as 
"commit") new source code.  Samba's various CVS branches can
be accessed via anonymous CVS using the instructions
detailed in this chapter.
</para>

<para>
This document is a modified version of the instructions found at
<ulink url="http://samba.org/samba/cvs.html">http://samba.org/samba/cvs.html</ulink>
</para>

</sect1>


<sect1>
<title>CVS Access to samba.org</title>

<para>
The machine samba.org runs a publicly accessible CVS 
repository for access to the source code of several packages, 
including samba, rsync and jitterbug. There are two main ways of 
accessing the CVS server on this host.
</para>

<sect2>
<title>Access via CVSweb</title>

<para>
You can access the source code via your 
favourite WWW browser. This allows you to access the contents of 
individual files in the repository and also to look at the revision 
history and commit logs of individual files. You can also ask for a diff 
listing between any two versions on the repository.
</para>

<para>
Use the URL : <ulink
url="http://samba.org/cgi-bin/cvsweb">http://samba.org/cgi-bin/cvsweb</ulink>
</para>
</sect2>

<sect2>
<title>Access via cvs</title>

<para>
You can also access the source code via a 
normal cvs client.  This gives you much more control over you can 
do with the repository and allows you to checkout whole source trees 
and keep them up to date via normal cvs commands. This is the 
preferred method of access if you are a developer and not
just a casual browser.
</para>

<para>
To download the latest cvs source code, point your
browser at the URL : <ulink url="http://www.cyclic.com/">http://www.cyclic.com/</ulink>.
and click on the 'How to get cvs' link. CVS is free software under 
the GNU GPL (as is Samba).  Note that there are several graphical CVS clients
which provide a graphical interface to the sometimes mundane CVS commands.
Links to theses clients are also available from http://www.cyclic.com.
</para>

<para>
To gain access via anonymous cvs use the following steps. 
For this example it is assumed that you want a copy of the 
samba source code. For the other source code repositories 
on this system just substitute the correct package name
</para>

<orderedlist>
<listitem>
	<para>
	Install a recent copy of cvs. All you really need is a 
	copy of the cvs client binary. 
	</para>
</listitem>


<listitem>
	<para>
	Run the command 
	</para>

	<para>
	<command>cvs -d :pserver:cvs@samba.org:/cvsroot login</command>
	</para>
	
	<para>
	When it asks you for a password type <userinput>cvs</userinput>.
	</para>
</listitem>


<listitem>
	<para>
	Run the command 
	</para>
	
	<para>
	<command>cvs -d :pserver:cvs@samba.org:/cvsroot co samba</command>
	</para>
	
	<para>
	This will create a directory called samba containing the 
	latest samba source code (i.e. the HEAD tagged cvs branch). This 
	currently corresponds to the 3.0 development tree. 
	</para>
	
	<para>
	CVS branches other HEAD can be obtained by using the <parameter>-r</parameter>
	and defining a tag name.  A list of branch tag names can be found on the
	"Development" page of the samba web site.  A common request is to obtain the
	latest 2.2 release code.  This could be done by using the following command.
	</para>
	
	<para>
	<command>cvs -d :pserver:cvs@samba.org:/cvsroot co -r SAMBA_2_2 samba</command>
	</para>
</listitem>

<listitem>
	<para>
	Whenever you want to merge in the latest code changes use 
	the following command from within the samba directory: 
	</para>
	
	<para>
	<command>cvs update -d -P</command>
	</para>
</listitem>
</orderedlist>
	
</sect2>
</sect1>

</chapter>
