[darcs-devel] A forwarded darcs patch

Juliusz Chroboczek jch at pps.jussieu.fr
Fri Jun 25 12:33:37 PDT 2004


The following patch was either unsigned, or signed by a non-allowed
key, or there was a gpg failure.

>From jch at pps.jussieu.fr Fri Jun 25 15:33:36 2004
Return-path: <jch at pps.jussieu.fr>
Envelope-to: droundy at abridgegame.org
Delivery-date: Fri, 25 Jun 2004 15:33:36 -0400
Received: from shiva.jussieu.fr ([134.157.0.129])
	by www.abridgegame.org with esmtp (Exim 3.35 #1 (Debian))
	id 1BdwS8-0005Dz-00
	for <droundy at abridgegame.org>; Fri, 25 Jun 2004 15:33:36 -0400
Received: from helium.pps.jussieu.fr (helium.pps.jussieu.fr [134.157.168.2])
          by shiva.jussieu.fr (8.12.11/jtpda-5.4) with ESMTP id i5PJXZdH035853
          for <droundy at abridgegame.org>; Fri, 25 Jun 2004 21:33:35 +0200 (CEST)
X-Ids: 166
Received: from lanthane (lanthane.pps.jussieu.fr [134.157.168.57])
          by helium.pps.jussieu.fr (8.11.6/jtpda-5.3.2) with ESMTP id i5PJXYO14697
          for <droundy at abridgegame.org>; Fri, 25 Jun 2004 21:33:34 +0200 (CEST)
Received: from jch by lanthane with local (Exim 4.32)
	id 1BdwS6-0002yi-7j
	for droundy at abridgegame.org; Fri, 25 Jun 2004 21:33:34 +0200
To: Davids Darcs Repo <droundy at abridgegame.org>
Subject: darcs patch
DarcsURL: http://abridgegame.org/repos/darcs
Content-Type: multipart/mixed; boundary="aaack"
Message-Id: <E1BdwS6-0002yi-7j at lanthane>
Sender: Juliusz Chroboczek <jch at pps.jussieu.fr>
Date: Fri, 25 Jun 2004 21:33:34 +0200
X-Miltered: at shiva.jussieu.fr with ID 40DC7E0F.002 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)!
X-Antivirus: scanned by sophie at shiva.jussieu.fr

--aaack


Fri Jun 25 21:32:59 CEST 2004  Juliusz Chroboczek <jch at pps.jussieu.fr>
  * Documentation update: comparison with CVS and Arch.


--aaack
Content-Type: text/x-darcs-patch
Content-Description: A darcs patch for your repository!


New patches:

[Documentation update: comparison with CVS and Arch.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040625193259] {
hunk ./switching.tex 3
-[FIXME: sections in brackets in this file are notes to myself or
-explanatory notes indicating something that is incomplete.  I must work
-more on this.]
+Darcs is very different from CVS.
hunk ./switching.tex 5
-[Note: this section is incomplete, but is intended to orient CVS users as
-to how darcs is different, and how to do with darcs what they would have
-done with CVS.]
+CVS keeps version controlled data in a central repository, and
+requires that users check out a working directory whenever they wish
+to access the version-controlled sources.  In order to modify the
+central repository, a user needs to have write access to the central
+repository; if he doesn't, CVS merely becomes a tool to get the latest
+sources.
hunk ./switching.tex 12
-Darcs is very different from CVS.
+In darcs there is no distinction between working directories and
+repositories.  In order to work on a project, a user makes a local
+copy of the repository he wants to work in; he may then harness the
+full power of version control locally.  In order to distribute his
+changes, a user who has write access can {\em push\/} them to the
+remote repository; one who doesn't can simply send them by e-mail in a
+format that makes them easy to apply on the remote system.
hunk ./switching.tex 20
-CVS breaks the users into two categories: those who can commit and those
-who can't.  For those who can't, CVS is just a way of getting the latest
-version.  If they want to contribute to the project, they have to use a
-different tool (probably patch/diff).  Darcs doesn't have this clear
-distinction between those who can commit and those who can't.  With darcs,
-any contributer can take advantage of darcs to make changes and share those
-changes with others--either with a central repository, or simply with other
-users who might like to have those improvements.  Since it is easy to apply
-a darcs patch from an email, and easy to use darcs to push patches via
-email, there is less need to give contributors write access to a
-centralized repository.
+\paragraph{Darcs commands for CVS users}
+Because of the different models used by arch and darcs, it is
+difficult to provide a complete equivalence between arch and darcs.
+A rough correspondence for the everyday commands follows:\\
+\begin{tabular}{lll}
+{\tt cvs get} & {\tt darcs get} \\
+{\tt cvs update} & {\tt darcs pull} \\
+{\tt rm; cvs update} & {\tt darcs revert} \\
+{\tt cvs diff} & {\tt darcs whatsnew} & (if checking local changes) \\
+{\tt cvs diff} & {\tt darcs diff} & (if checking recorded changes) \\
+{\tt cvs commit} & {\tt darcs record} & (if committing locally) \\
+{\tt cvs commit} & {\tt darcs tag} & (if marking a version for later use) \\
+{\tt cvs commit} & {\tt darcs push} or {\tt darcs send} &
+                                        (if committing remotely) \\
+{\tt cvs diff | mail} & {\tt darcs send} \\
+{\tt cvs add} & {\tt darcs add} \\
+{\tt cvs tag -b} & {\tt darcs get} \\
+{\tt cvs tag} & {\tt darcs tag}.
+\end{tabular}
hunk ./switching.tex 42
-[Note: this section is incomplete, but is intended to orient arch users as
-to how darcs is different, and how to do with darcs what they would have
-done with arch.]
-
hunk ./switching.tex 44
-essential organization is very different---perhaps more so than the
-differences between darcs and CVS.  But hopefully the biggest difference
-that arch users will find is that darcs is much simpler and easier to use.
+essential organization is very different.
hunk ./switching.tex 46
-Like CVS, arch has a two level system---there are repositories, and in
-order to modify a repository one must check out a working directory.  This
-leads to ``interesting'' possibilities such as checking out a working
-directory from one repository and then committing to a different
-repository.  On top of this, arch has a rather arcane system for dealing with
-branches and versioning within each repository.  Darcs uses a much simpler
-scheme, in which each working directory has an associated repository
-carrying just one brach.  Every repository (and every working directory) is
-a branch.
+Like CVS, arch keeps data in two types of data structures:
+repositories (called ``archives'') and working directories.  In order
+to modify a repository, one must first check out a corresponding
+working directory. This requires that users remember a number of
+different ways of pushing data around --- \verb|tla| \verb|get|,
+\verb|update|, \verb|commit|, \verb|archive-mirror| and so on.
hunk ./switching.tex 53
-Unlike darcs, arch is fully capable of running in a truly centralized
-manner, and when used in that manner (i.e.\ with only one repository) is
-roughly feature-equivalent (and complexity-equivalent?) with CVS.
+In darcs, on the other hand, there is no distinction between working
+directories and repositories, and just checking out your sources
+creates a local copy of a repository.  This allows you to harness the
+full power of version control in any scratch copy of your sources, and
+also means that there are just two ways to push data around:
+\verb|darcs| \verb|record|, which stores edits into your local
+repository, and \verb|pull|, which moves data between repositories.
+(\verb|darcs| \verb|push| is merely the opposite of \verb|pull|;
+\verb|send| and \verb|apply| are just the two halves of \verb|push|).
hunk ./switching.tex 63
-When using arch in a \emph{distributed} manner, each contributer creates a
-repository to store his or her modifications.  Getting those modifications
-into a central repository then is a two step process.  First you do a
-commit to your repository, and then either you or someone with write
-permissions on the central repository runs a [I don't recall what command]
-to move the patchset from your repository to the central one.  An analagous
-process is used in darcs.  First you use ``record'' to record your changes
-locally (this is like committing to your local arch repository).  Then
-either you or someone with write access either pull to the central
-repository, or use push to send your changes to it (or to its maintainer,
-if you don't have write access).
+\paragraph{Darcs commands for arch users}
hunk ./switching.tex 65
-
+Because of the different models used by arch and darcs, it is
+difficult to provide a complete equivalence between arch and darcs.
+A rough correspondence for the everyday commands follows:\\
+\begin{tabular}{lll}
+{\tt tla init-tree} & {\tt darcs initialize} \\
+{\tt tla get} & {\tt darcs get} \\
+{\tt tla update} & {\tt darcs pull} \\
+{\tt tla file-diffs f | patch -R } & {\tt darcs revert} \\
+{\tt tla changes --diffs} & {\tt darcs whatsnew} \\
+{\tt tla logs} & {\tt darcs changes} \\
+{\tt tla file-diffs} & {\tt darcs diff -u} \\
+{\tt tla add} & {\tt darcs add} \\
+{\tt tla mv} & {\tt darcs mv} & (not {\tt tla move}) \\
+{\tt tla commit} & {\tt darcs record} & (if committing locally)\\
+{\tt tla commit} & {\tt darcs tag} & (if marking a version for later use)\\
+{\tt tla commit} & {\tt darcs push} or {\tt darcs send} & 
+                                                  (if committing remotely)\\
+{\tt tla archive-mirror} & {\tt darcs pull} or {\tt darcs push} \\
+{\tt tla tag} & {\tt darcs get} & (if creating a branch) \\
+{\tt tla tag} & {\tt darcs tag} & (if creating a tag).
+\end{tabular}
}



Context:

[optimize pull and apply in case where there are no local changes.
David Roundy <droundy at abridgegame.org>**20040625093851] 
[Make initialize success message consistent with command name
schaffner at gmx.li**20040623215157] 
[Minor performance tweak to coalesce.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040624134747] 
[Don't rely on CSE in patchinfo.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040624122947
 There's no guarantee that the compiler will perform common subexpression
 elimination.  Don't rely on it in patchinfo.
] 
[Refactor withPermDir and withTempDir.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040624113545] 
[need PatchBundle in darcs_cgi also...
David Roundy <droundy at abridgegame.org>**20040624114242] 
[add --context option to changes and get.
David Roundy <droundy at abridgegame.org>**20040624111521] 
[fix warnings in Rollback.
David Roundy <droundy at abridgegame.org>**20040624110429] 
[fix a couple of rm_recursive-related bugs.
David Roundy <droundy at abridgegame.org>**20040624103400] 
[add documentation for the --pipe option.
David Roundy <droundy at abridgegame.org>**20040624081720] 
[fix warnings in Unrecord.
David Roundy <droundy at abridgegame.org>**20040623122206] 
[fix warning in FastPackedString.hs.
David Roundy <droundy at abridgegame.org>**20040623113231] 
[Use the right current directory during darcs diff.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040624104628] 
[Restore FILENAME_SIZE to previous size.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040623174128] 
[Fix lock filename for systems with large pids.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040623173711] 
[Little fix to the xml output of changes command
lele at seldati.it**20040622123151] 
[terminate move tag in XML summary output.
David Roundy <droundy at abridgegame.org>**20040622112327] 
[simplify and probably speed up handling of pending.
David Roundy <droundy at abridgegame.org>**20040622112125] 
[update ChangeLog.
David Roundy <droundy at abridgegame.org>**20040622101647] 
[fix file modification time bug.
David Roundy <droundy at abridgegame.org>**20040622094615] 
[show moves in summary format.
David Roundy <droundy at abridgegame.org>**20040622092818
 Note: XML folks should take a look at the xml representation of moves.  It
 may be stinky.
] 
[Don't prepend parent directories when displaying.
Jim Marshall <jmarshall99 at qwest.net>**20040622012458
 The existing indentation seems to make parents clear enough.
] 
[Don't splat nested directory names together in darcs_cgi
Jim Marshall <jmarshall99 at qwest.net>**20040622012021
 cgi/xslt, for example, was being displayed as "./cgixslt"
] 
[Bug fix: Make patch reversal happen later in with_any_selected_changes
Ian Lynagh <igloo at earth.li>**20040622012747] 
[Tidy up selection a bit
Ian Lynagh <igloo at earth.li>**20040620190308] 
[add hash of patch bundles.
David Roundy <droundy at abridgegame.org>**20040621102255
 Also, reorganize patch bundle code a bit.
] 
[Make capitalization and punctuation consistent for help lines
schaffner at gmx.li**20040619172824] 
[fix failure to run test on darcs record.
David Roundy <droundy at abridgegame.org>**20040620003115] 
[fix failure to run test in darcs check.
David Roundy <droundy at abridgegame.org>**20040620002450] 
[possibly speed up takePS and dropPS a tad.
David Roundy <droundy at abridgegame.org>**20040620001216
 This just eliminates a couple of adds and subtracts from each.
] 
[actually get FILENAME_SIZE right.
David Roundy <droundy at abridgegame.org>**20040619104147] 
[increase FILENAME_SIZE (fixes some errors with locking).
droundy at abridgegame.org**20040619103451] 
[fix warnings in Test.lhs.
droundy at abridgegame.org**20040619103433] 
[add extra-informative error messages in careful_atomic_create.
David Roundy <droundy at abridgegame.org>**20040619095620] 
[mention command-specific help in generic help.
David Roundy <droundy at abridgegame.org>**20040619094234] 
[Tiny tidyup
Ian Lynagh <igloo at earth.li>**20040616180606] 
[don't need use_mmap in Repository.lhs.
David Roundy <droundy at abridgegame.org>**20040618112000] 
[make optimize --checkpoint give nicer formatted message.
David Roundy <droundy at abridgegame.org>**20040618111941] 
[fix bug in optimize --checkpoint.
David Roundy <droundy at abridgegame.org>**20040618111904] 
[fix bug in rm_recursive.
David Roundy <droundy at abridgegame.org>**20040618102014] 
[add vertical space between explanations in --extended-help
schaffner at gmx.li**20040617202923] 
[properly support --verbose and --quiet in add.
David Roundy <droundy at abridgegame.org>**20040617105614] 
[replace binary web page links with single link to wiki.
David Roundy <droundy at abridgegame.org>**20040617101920] 
[adjust nomenclature in --extended-help and command overview table.
David Roundy <droundy at abridgegame.org>**20040617100354] 
[reorder commands in --help and --extended-help.
David Roundy <droundy at abridgegame.org>**20040617094142] 
[darcs-server should recommend xsltproc.
David Roundy <droundy at abridgegame.org>**20040617091533] 
[Merge debian/ directory with 0.9.20-1
Gabriel Ebner <ge at gabrielebner.at>**20040616140614] 
[don't display binary data to screen.
David Roundy <droundy at abridgegame.org>**20040616110333
 Note that if you pipe the output of whatsnew, you will actually get the
 binary data.  The reason is that you aren't printing to a screen, so the
 print code doesn't "know" that you don't want the actual patch.
] 
[allow --tag in match_several.
David Roundy <droundy at abridgegame.org>**20040616100541] 
[add comments regarding wait_a_moment.
David Roundy <droundy at abridgegame.org>**20040616100528] 
[stop creating the is_converted files... they aren't needed any more.
David Roundy <droundy at abridgegame.org>**20040616094647] 
[be smarter about finding tags.
David Roundy <droundy at abridgegame.org>**20040615111311
 This fixes bugs in --partial repositories, and speeds up full
 repositories.
] 
[switch from IO.bracket to Control.Exception.bracket.
David Roundy <droundy at abridgegame.org>**20040615111254] 
[DARCS_EDITOR rather than DARCSEDITOR
peter.maxwell at anu.edu.au**20040615080155] 
[Use withCurrentDirectory.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040614225821
 Replace setCurrentDirectory usages with withCurrentDirectory, which
 ensures bracketing.  This does not replace all uses, just the more
 obvious ones.
] 
[Implement withCurrentDirectory.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040614221212] 
[when given a --patches flag with --dry-run, display only what would actually get pulled.
David Roundy <droundy at abridgegame.org>**20040614104532] 
[fix bug in selecting patches by pattern.
David Roundy <droundy at abridgegame.org>**20040614104446] 
[fix bug in force_matching_last.
David Roundy <droundy at abridgegame.org>**20040614104432] 
[mention in docs that you don't need to run autoconf manually.
David Roundy <droundy at abridgegame.org>**20040614101757] 
[update docs on contributing patches.
David Roundy <droundy at abridgegame.org>**20040614101435] 
[don't cause an error when pulling a change creating a dir that's already in workin dir.
David Roundy <droundy at abridgegame.org>**20040614095656] 
[Make locks work on non-POSIX filesystems.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040613225300
 Probably Linux-specific.
] 
[Better error reporting for lockfile creation.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20040613223236] 
[mention darcs-devel on website.
David Roundy <droundy at abridgegame.org>**20040613111107] 
[fix bug when specifying logfile in a subdirectory.
David Roundy <droundy at abridgegame.org>**20040613110227
 Darcs wasn't correcting the relative path of the logfile, and thus was
 losing the logfile.
] 
[web page fixes.
David Roundy <droundy at abridgegame.org>**20040613104246] 
[give nice error message when adding a file to a directory that isn't in the repo.
David Roundy <droundy at abridgegame.org>**20040613103521] 
[support backslashes for directory separators in windows.
David Roundy <droundy at abridgegame.org>**20040613101834] 
[make windows link go to wiki page.
David Roundy <droundy at abridgegame.org>**20040613095337] 
[fix make install-server problem with darcs.cgi when making debs.
David Roundy <droundy at abridgegame.org>**20040613095307] 
[Avoid unpacking PackedStrings in the printer.
jch at pps.jussieu.fr**20040613000234
 Darcs reads file data into PackedStrings, but unpacks them when
 printing out a patch.
       
 The fix is to make the printer able to grok streams of arbitrary
 tokens, not just Haskell strings (streams of Char).  See the type
 class Printer.Printable and the instance Printer.PChar.  See also the
 type synonim PrintPatch.PrinterType, which is what gets actually used.
 
 The net effect is that darcs whatsnew is more than twice as fast, and
 darcs pull of large patches uses 10 (!) times less memory.  On the
 other hand, darcs pull of many small patches uses up a few percent
 more CPU time, which I don't understand.
] 
[Install xslt files with appropriate perms
Nigel Rowe <rho at swiftdsl.com.au>**20040612113632] 
[TAG 0.9.21
David Roundy <droundy at abridgegame.org>**20040612105625] 

Patch bundle hash:
3f31d81df9c025b81b69237ac66eef668e19c243

--aaack

--aaack--





More information about the darcs-devel mailing list