[darcs-devel] first thoughts on a revision grapher

David Roundy droundy at abridgegame.org
Fri Apr 1 05:33:10 PST 2005


On Wed, Mar 23, 2005 at 08:42:09PM -0800, Kannan Goundan wrote:
> 
> Sean Perry <shaleh at speakeasy.net> wrote:
> 
> > Most revision systems I have used store an internal version number
> > with  a change. Doesn't seem like darcs does, instead it uses the 
> > date and perhaps a hash.
> 
> [Someone please correct me if I'm wrong...]
> 
> I think the fundamental difference between Darcs and other version
> control systems is that Darcs doesn't care about time.  It doesn't
> matter *when* a certain patch was created or applied to your
> repository.
> 
> The only ordering comes from dependencies.  If patch X depends on
> patch Y, then you can see that as saying "patch Y is applied before
> patch Z".  Dependency ordering is the most obvious thing your tool
> could do.  This is a little bit better than CVS because it'll do a
> better job of showing parallel development (even in the same
> repository).  So the development lines wont be based on
> branches/developers; they'll correspond more to the development lines
> of particular features (ideally).

Agreed, I would find a dependency graph extremely interesting, but it
wouldn't represent the actual lines of development.

> I'm not sure how to get those dependencies out of Darcs.
[...]
> Hopefully, someone else knows how to get dependencies out of Darcs. 
> If not, I don't think it would be difficult to add.

A hokey trick to get the dependencies is to use pull --dry-run into an
empty repository.

$ darcs initialize 
$ darcs pull --dry-run -p 'Wrote docs for the record command' ~/darcs-unstable
Pulling from "/home/droundy/darcs-unstable"...
Would pull the following changes:
Sun Oct 20 20:01:05 EDT 2002  droundy at abridgegame.org
  * Initial version of darcs.

Sun Oct 20 20:11:12 EDT 2002  droundy at abridgegame.org
  * Wrote docs for the record command.

Making no changes:  this is a dry run.

I'm not sure how slow this will be when run on a patch with many
dependencies.

Note to me: I need to introduce an optimize command to convert those pesky
merger 0.9s into patches that a modern darcs can commute...
-- 
David Roundy
http://www.darcs.net




More information about the darcs-devel mailing list