<title>Source Code</title>

<p>
  Follow these steps to obtain the latest (i.e. unreleased) source code for the
  System.Data.SQLite project.  To obtain the latest officially released source
  code instead, refer to the [./downloads.wiki | downloads page].  Unless
  otherwise noted, all steps need to be performed in the order specified.
</p>

<a name="assumptions"></a>
<h2>Assumptions &amp; Prerequisites</h2>

<p>
  The string &quot;<b>&lt;root&gt;</b>&quot; represents the directory where the
  local working copy of the source tree (a.k.a. the working check-out directory)
  for the System.Data.SQLite project is to reside.  This should be a completely
  empty directory.
</p>

<p>
  The string &quot;<b>&lt;repositories&gt;</b>&quot; represents the directory
  where the local clone of the repository for the System.Data.SQLite project
  (and potentially other projects) is to reside.
</p>

<a name="fossil"></a>
<h2>Obtain &amp; Install Fossil Itself</h2>

<p>
  The [http://www.fossil-scm.org | Fossil] open-source
  [http://en.wikipedia.org/wiki/Distributed_revision_control | distributed version control]
  system is a computer program that must be installed on your machine before you use it.
  Fortunately, installing Fossil is very easy.  Fossil consists of a single
  executable file that you simply download and run.  For convenience, the Fossil
  executable file should be placed in a directory present in your
  [http://en.wikipedia.org/wiki/PATH_%28variable%29 | PATH].  To uninstall
  Fossil, simply delete the executable file.
  [http://www.fossil-scm.org/index.html/doc/tip/www/quickstart.wiki | Detailed instructions]
  for installing and getting started with Fossil are available on the
  [http://www.fossil-scm.org/ | Fossil website].
</p>

<a name="clone"></a>
<h2>Clone Repository (Windows)</h2>

<ol>
  <li>Open a Windows command prompt using &quot;<b>cmd.exe</b>&quot;.</li>

  <li>
    Change the current directory to &quot;<b>&lt;root&gt;</b>&quot; using a
    command similar to:
    <br />
    <br />
    <b>cd&nbsp;/D&nbsp;&lt;root&gt;</b>
  </li>

  <li>
    Enter the following command to create a complete clone (i.e. local copy) of
    the entire source code repository for the System.Data.SQLite project,
    including the entire check-in history:
    <br />
    <br />
    <b>fossil&nbsp;[http://www.fossil-scm.org/index.html/help/clone | clone]&nbsp;http://system.data.sqlite.org/&nbsp;&lt;repositories&gt;/sds.fossil</b>
  </li>

  <li>
    Please note that the repository itself uses an
    [http://www.fossil-scm.org/index.html/doc/trunk/www/fileformat.wiki | enduring file format]
    stored in a single
    [http://www.fossil-scm.org/index.html/doc/trunk/www/tech_overview.wiki | SQLite database file]
    with a particular schema.
  </li>

  <li>
    In this case, after executing the
    [http://www.fossil-scm.org/index.html/help/clone | clone] command, the local
    clone of the repository will be placed into the &quot;<b>sds.fossil</b>&quot;
    file in the <b>&lt;repositories&gt;</b> directory.
  </li>
</ol>

<a name="working"></a>
<h2>Working Copy (Windows)</h2>

<ol>
  <li>Open a Windows command prompt using &quot;<b>cmd.exe</b>&quot;.</li>

  <li>
    Change the current directory to &quot;<b>&lt;root&gt;</b>&quot; using a
    command similar to:
    <br />
    <br />
    <b>cd&nbsp;/D&nbsp;&lt;root&gt;</b>
  </li>

  <li>
    Enter the following command to create a local working copy of all the files
    that are currently part of the System.Data.SQLite project:
    <br />
    <br />
    <b>fossil&nbsp;[http://www.fossil-scm.org/index.html/help/open | open]&nbsp;&lt;repositories&gt;/sds.fossil</b>
  </li>

  <li>
    The local source tree should now be ready for use as described in the
    [./build.wiki | build procedures] and/or [./test.wiki | test procedures].
  </li>

  <li>
    In the future, to update the local working copy with the latest changes from
    the official System.Data.SQLite repository (i.e. instead of having to
    re-clone the entire thing), enter the following command from the same
    directory where the working copy is located:&nbsp;
    <b>fossil&nbsp;[http://www.fossil-scm.org/index.html/help/update | update]</b>
  </li>
</ol>
