[darcs-users] Moving toward 1.0 (was: Default binary masks)

David Roundy droundy at abridgegame.org
Mon Nov 24 00:47:01 UTC 2003

On Sun, Nov 23, 2003 at 03:09:00PM -0500, Sean E. Russell wrote:
> On Sunday 23 November 2003 14:49, David Roundy wrote:
> > I want to get a reasonable way of browsing the repository working.
> > Currently the only good way to browse the repo is with the darcs cgi
> ...
> > it.  An actual implementation of a browser (either via a cgi script or
> > statically generated web pages) is important, since it'll mean that
> > I've actually made enough information available to implement such a
> > browser.
> Can you define the requirements for this browsing system?  What do you
> want it to be able to do... view patch logs?  View individual patches?
> Generate a file with a given set of patches?
> Generate an ordered list of what you tasks you'd like the browsing system
> to be capable of.

1) I want to be able to view the patch logs.

2) I want to be able to view the repository contents (i.e. listing of files
and directories) at any time in the history.

2a) I'd also like to be able to see which of files or directories have were
touched by a given patch.

3) I want to be able to view the file contents at any point in the

3a) I want to be able to see which patch generated any given line in the

3b) I'd like to also be able to view (possibly optionally) what changes
were made to the file by a given patch.

(Note that all of the above is currently done by the existing darcs cgi
script, see for example http://abridgegame.org/cgi-bin/darcs)

4) It would be nice to be able to (perhaps optionally) display patches in a
patch-like (or diff-like) format as well.

5) A search capability would be great:  searching for patches that modified
a given file, for example.

As I see it, the changes command give (1).  (2) and (3) require a darcs
command to ask for the contents of a repo.  I'm imagining something like

darcs annotate -t "0.9.13" ./

to get a listing of all files present in darcs version 0.9.13, and

darcs annotate -t "0.9.13" darcs.lhs

to get a copy of the darcs.lhs from version 0.9.13, marked up with listings
of which patch modified each line, along with which patch next modified
each line (assuming a later patch has since modified it).

(4) seems a bit less important to me, but might be nice.  I could pretty
easily get a "darcs whatsnew -u" version of the patch--and actually a
"darcs whatsnew --summary" version might be even more useful.

(5) would be the most complex (and there's no way I'd delay 1.0 for (5)),
but would be very nice to have.  The hard part would be a language for
describing the search terms.

Another thing that probably all the above would require would be the
ability to select patches by hash as well as by name (so that hyperlinks
could use the fixed-length hash rather than the arbitrary-length (and
non-unique) name.  This would make for a trio of patch selection flags: -t
(--tag-name), -m (--patch-name) and -h?  (--patch-hash).  If we implemented
the searching idea, we would probably want one more patch selection flag,
which would allow you to specify the patch by a search term.  For
consistency, all these options would be available in any of the commands
(such as pull, push, unpull, etc) that currently accept a patch-name
David Roundy

More information about the darcs-users mailing list