[darcs-users] annotate output

Petr Rockai me at mornfall.net
Tue Sep 14 12:12:13 UTC 2010

Dave Love <d.love at liverpool.ac.uk> writes:

> I think the annotations should be on each line because it makes it a bit
> easier to process and it helps for reading the output when you've paged
> ahead, if the output hasn't been post-processed.  I think there should
> be an option to use the date too (maybe author and/or date), as you may
> be more interested in the history than the authorship, and it would
> make, say, Emacs VC mode easier.

Well, I started out with that, but it's much easier on my eyes to see
which chunks go together. Of course, without a GUI this can't be
perfect, in a GUI I would expect the label on the block to float down
instead of scrolling away.

> I'd want to make sure it's reliably distinguishable from the current
> format, and know the rules to be able to determine the end of the tag
> reliably -- I assume it's fixed-width and that `|' can't appear in it.

It is fixed width (the mails are cut at the right side and everything is
padded at left). Nevertheless, I would advise against parsing it.

>> Machine readable
>> ----------------
>> 14:49:11 | morn at twi:~/dev/haskell/filepath -> darcs-ADV annotate --machine filepath.cabal 
>> 20070401142502-b47d3-741d8cb0c9aa440d8cc603014e1c32ab1b96148a.gz | Name:           filepath 
> I wouldn't use that in the Emacs mode since it would mean getting the
> changes separately with darcs in order to put help-echo/hyperlink
> properties on the tag.  (Currently the buffer displays the timestamp
> before each line and has help-echo text which provides the author and
> patch name, but no hyperlink; I wasn't sure whether to link to the
> source or the change log.)

Instead, I could offer a list of key->info mapping as part of the
machine format at the start or end (probably end). I imagine it could
look like:

<the annotation>

<patch info>

<patch info>


I did not include before because I only had feedback from Lele who said
it is redundant in his case (since he already maintains a <hash> ->
<info> map internally). I don't think it'd be too costly to add the map
for anyone (if the infos are not interesting, you can simply cut off at
the first empty line).

If you find that acceptable, I can work out the winkles and patch up
annotate to do that.


More information about the darcs-users mailing list