Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > c92510584fd710384970429bf5ec0aaa > files > 70

darcs-2.2.0-1mdv2009.1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<!--Converted with LaTeX2HTML 2008 (1.71)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Repository formats</TITLE>
<META NAME="description" CONTENT="Repository formats">
<META NAME="keywords" CONTENT="darcs">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="darcs.css">

<LINK REL="next" HREF="node8.html">
<LINK REL="previous" HREF="node6.html">
<LINK REL="up" HREF="darcs.html">
<LINK REL="next" HREF="node8.html">
</HEAD>

<BODY >
<!--Navigation Panel-->
<A NAME="tex2html453"
  HREF="node8.html">
<IMG WIDTH="22" HEIGHT="22" title="Next"  ALIGN="BOTTOM" BORDER="0" ALT="next"
 SRC="./next.png"></A> 
<A NAME="tex2html449"
  HREF="darcs.html">
<IMG WIDTH="22" HEIGHT="22" title="Up"  ALIGN="BOTTOM" BORDER="0" ALT="up"
 SRC="./up.png"></A> 
<A NAME="tex2html443"
  HREF="node6.html">
<IMG WIDTH="22" HEIGHT="22" title="Previous"  ALIGN="BOTTOM" BORDER="0" ALT="previous"
 SRC="./prev.png"></A> 
<A NAME="tex2html451"
  HREF="node1.html">
<IMG WIDTH="22" HEIGHT="22" title="Contents"  ALIGN="BOTTOM" BORDER="0" ALT="contents"
 SRC="./contents.png"></A>  
<BR>
<B> Next:</B> <A NAME="tex2html454"
  HREF="node8.html">Darcs commands</A>
<B> Up:</B> <A NAME="tex2html450"
  HREF="darcs.html">Darcs 2.2.0 (release) Darcs</A>
<B> Previous:</B> <A NAME="tex2html444"
  HREF="node6.html">Best practices</A>
 &nbsp; <B>  <A NAME="tex2html452"
  HREF="node1.html">Contents</A></B> 
<BR>
<BR>
<!--End of Navigation Panel-->
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>

<UL>
<LI><A NAME="tex2html455"
  HREF="node7.html#SECTION00710000000000000000">Introduction</A>
<LI><A NAME="tex2html456"
  HREF="node7.html#SECTION00720000000000000000">Darcs 1 format</A>
<LI><A NAME="tex2html457"
  HREF="node7.html#SECTION00730000000000000000">Hashed format</A>
<LI><A NAME="tex2html458"
  HREF="node7.html#SECTION00740000000000000000">Darcs 2 format</A>
</UL>
<!--End of Table of Child-Links-->
<HR>

<H1><A NAME="SECTION00700000000000000000">
Repository formats</A>
</H1>

<P>

<H1><A NAME="SECTION00710000000000000000">
Introduction</A>
</H1>

<P>
Darcs 2 introduces a couple of new repository formats and this chapter
is intended to serve as brief introduction to them and as an overview of
inter-operation between them.

<P>

<H1><A NAME="SECTION00720000000000000000">
Darcs 1 format</A>
</H1>

<P>
Darcs 1 format is the only format supported by 1.0.x versions of darcs.
Darcs 2 is capable of entirely interacting with darcs 1 format and still
defaults to darcs 1 format, but to take full advantage of new
capabilities of darcs 2 it be will necessary to upgrade to the newer
formats.

<P>
<code>old-fashioned-inventory</code> is now deprecated and should be avoided if at
all possible.

<P>

<H1><A NAME="SECTION00730000000000000000">
Hashed format</A>
</H1>

<P>
Hashed repository format is an intermediate format that interoperates
well with darcs 1 repositories.  Darcs 2 can push/pull between darcs 1
format and hashed format repositories and can easily convert from one to
the other.  Among its benefits, one of the most user obvious changes is
that the hashed format provides a more robust pristine format, that is
less susceptible to corruption from IDEs and automated tools. It also
enables the use of a global patch cache (see the Best Practices section
for more).

<P>
Hashed format is recommend for all repositories used with darcs 2 that
need to interoperate with darcs 1 branches or darcs 1 developers.  

<P>
To convert an existing darcs 1 repository to hashed format simply
<code>get</code> a new copy with the hashed flag:

<P>
<PRE>
$ darcs get --hashed old-repo new-repo
</PRE>

<P>
<code>hashed</code> Offers several features while still being compatible with old-fashioned repositories. The specific features are:

<P>

<UL>
<LI>The hashed format allows for greater atomicity of operations. This makes for greater safety and simultaneously greater efficiency. These benefits, however, have not been fully realized in this release. For instance, with a hashed repository, there is no need for darcs push to require a repository lock, so you could record patches while waiting for a push to finish (for instance, if it's waiting on the test suite).

<P>
</LI>
<LI>The <code>_darcs/pristine</code> directory no longer holds the pristine
cache. This disallows certain hackish short-cuts, but also dramatically
reduces the danger of third-party programs (e.g. DreamWeaver) recursing
into the pristine cache and corrupting darcs repositories.

<P>
</LI>
<LI>Darcs get can optionally operate in a much faster ``lazy''
fashion, meaning that patches are downloaded only when they are
needed. This gives us much of the benefits of -partial repositories,
without most of their disadvantages. This approach, however, does have
several new dangers. First, some operations may unexpectedly require the
download of large numbers of patches, which could be slow (but you could
always interrupt with <code>^C</code>). Secondly, if the source repository disappears,
or you lose network connectivity, some operations may fail.

<P>
</LI>
<LI>Darcs now supports caching of patches and file contents to reduce bandwidth and save disk space. It greatly speeds up a number of operations, and is essentially transparent.

<P>
</LI>
</UL>

<P>

<H1><A NAME="SECTION00740000000000000000">
Darcs 2 format</A>
</H1>

<P>
Darcs 2 format is the successor to darcs 1 format.  It makes use of the
various improvements of the hashed repository format, with additional
benefits including an increased efficiency and robustness when dealing
with conflicting patches.

<P>
Darcs 2 format is recommended for projects that do not need to
interoperate with darcs 1 repositories or developers with versions of
darcs less than 2.0.0 installed.  

<P>
Initialize a new repository in darcs 2 format:

<P>
<PRE>
$ darcs init --darcs-2
</PRE>

<P>
Projects in darcs 1 format ready to move all development to darcs 2 can
convert an existing repository to darcs 2 format.  This should be done
only once per family tree of related repositories, as converting each
branch separately may result in inter-repository corruption that can
lead to subtle and hard to diagnose problems when attempting to exchange
patches between seperately converted repositories.  The recommendation
is to convert the branch of a project with the largest superset of
patches in the project and then recreate the branches from this superset
repository via <code>darcs get</code>, particularly with the usage of its
selection flags such as <code>--context</code>, <code>--tag</code> and
<code>--to-match</code>, and <code>darcs obliterate</code>, which can be used to
interactively remove patches that are not intended in the recreated
branch.

<P>
The command for conversion:

<P>
<PRE>
$ darcs convert d1repo d2repo
</PRE>

<P>
<code>darcs-2</code> Is the default.  It enables all available features, and
requiring that all repos for a project use the same format. In addition to the
features of the <code>hashed</code> format described above, the <code>darcs-2</code> format
also enables the following:

<P>

<UL>
<LI>It should no longer be possible to confuse darcs or freeze it indefinitely by merging conflicting changes. 

<P>
</LI>
<LI>Identical primitive changes no longer conflict. This is a long-requested feature, and has far-reaching implications. 

<P>
</LI>
</UL>

<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html453"
  HREF="node8.html">
<IMG WIDTH="22" HEIGHT="22" title="Next"  ALIGN="BOTTOM" BORDER="0" ALT="next"
 SRC="./next.png"></A> 
<A NAME="tex2html449"
  HREF="darcs.html">
<IMG WIDTH="22" HEIGHT="22" title="Up"  ALIGN="BOTTOM" BORDER="0" ALT="up"
 SRC="./up.png"></A> 
<A NAME="tex2html443"
  HREF="node6.html">
<IMG WIDTH="22" HEIGHT="22" title="Previous"  ALIGN="BOTTOM" BORDER="0" ALT="previous"
 SRC="./prev.png"></A> 
<A NAME="tex2html451"
  HREF="node1.html">
<IMG WIDTH="22" HEIGHT="22" title="Contents"  ALIGN="BOTTOM" BORDER="0" ALT="contents"
 SRC="./contents.png"></A>  
<BR>
<B> Next:</B> <A NAME="tex2html454"
  HREF="node8.html">Darcs commands</A>
<B> Up:</B> <A NAME="tex2html450"
  HREF="darcs.html">Darcs 2.2.0 (release) Darcs</A>
<B> Previous:</B> <A NAME="tex2html444"
  HREF="node6.html">Best practices</A>
 &nbsp; <B>  <A NAME="tex2html452"
  HREF="node1.html">Contents</A></B> 
<!--End of Navigation Panel-->
<ADDRESS>

2009-01-22
</ADDRESS>
</BODY>
</HTML>