[darcs-users] darcs patch: Rewrite "darcs trackdown" help.

Trent W. Buck twb at cybersource.com.au
Tue Oct 6 01:00:35 UTC 2009


Eric Kow <kowey at darcs.net> writes:

> On Sat, Oct 03, 2009 at 18:32:32 +1000, Trent W.Buck wrote:
>> Sat Oct  3 18:23:08 EST 2009  Trent W. Buck <trentbuck at gmail.com>
>>   * Rewrite "darcs trackdown" help.
>
> I think my first comment may be grounds for some amendments.
> Could you have a look?
>
> I'll take this opportunity to mention
>   http://bugs.darcs.net/issue1208
>
> which asks for darcs trackdown --bisect
> David mentioned Delta Debugging, which sounds interesting, but we need
> somebody to give a more concrete idea on how this would fit into Darcs.
>
> Rewrite "darcs trackdown" help.
> -------------------------------
>> - "Trackdown tries to find the most recent version in the repository which\n"++
>> - "passes a test.  Given no arguments, it uses the default repository test.\n"++
>
>> + "The `darcs trackdown' command finds which patch made a test succeed.\n" ++
>> + "Without arguments, the default repository test is used (see `darcs\n" ++
>
> COMMENT: I think the old phrasing is more accurate that the new one.
>
> The new phrasing sounds like the patch you are referring to is one which
> is in the "keep" side of the history, whereas what I think you're saying
> is that darcs trackdown finds the one patch in the "discard" side of the
> history that you have to unpull to make the test pass.
>
> The old phrasing also talks about the "keep" side of the history, but it
> talks about the repository state, which makes sense.  I agree that
> talking about patches may be more useful, but then we also have to
> change perspectives.

I'll work on this some more next weekend.

I particularly want to avoid "most recent version", because it's not
standard terminology and obliges me to immediately explain the implied
ordering (instead of mentioning it later).

>> + "To benchmark successive versions of a project, the test command might\n" ++
>> + "be `make benchmarks; false'.  The `; false' causes the test to always\n" ++
>> + "fail, resulting in benchmarks for each version.\n" ++
>
> COMMENT: Is this really a reasonable thing to use darcs trackdown for?
>
> It may be useful to have a wiki page somewhere with darcs trackdown
> examples

IMO it is a abuse (not use) of trackdown; I kept mention of it only
because I thought you might object to its deletion ;-)

>> + "This command unapplies one patch at a time.  Bisecting (performing a\n" ++
>> + "binary search) over the set of patches would reduce the mean number of\n" ++
>> + "tests from O(n) to O(log n).  Bisection is not yet implemented.\n" ++
>
> COMMENT: Talking too much about bisection may confuse skimmers.  Maybe
> Bisection (performing a binary search) is not yet implemented.

+1; will do.

The "Limitations" section within trackdown and replace are mainly
grumbling, but I think they're also useful to say "hey, these are
problems we know about, and one day we intend to fix them."  IOW, full
disclosure.



More information about the darcs-users mailing list