[darcs-users] UI consistency

Ben Franksen benjamin.franksen at bessy.de
Fri Aug 24 21:51:02 UTC 2012


Hi Florent

thanks for your reply. You raise a number of interesting issues. And, BTW, 
let me make it clear that a lot of work has already been done during the 
last years (for instance that push and pull no longer --set-default), 
something I much appreciate.

Florent Becker wrote:
> Benjamin Frankes wrote:
>> Apropos, some UI changes I'd like to propose to make the darcs experience 
>> more predictable and even more useful than it already is:
>> 
>> changes:
>>   --interactive should be the default; displaying the complete history of 
a
>>   repository in one big rush is almost never what you want, except for
>>   scripts that analyse the repo, and the default UI should always be
>>   optimized for the interactive user.
>> 
> +1, but the hunks within each patch should be shown one by one, like we
> do now.
Florent Becker wrote:
> Of course, I mean all at once, *not* one by one.

Agreed, since that is a different issue (see below on whatsnew command, the 
'i' keybinding would apply here, too, of course).

>> whatsnew:
>>   should have a --interactive option (which should be the default),
>>   the idea is hunks (and replaces, etc) are displayed one at a time;
>>   I'd also like to have an option to select the type of change that
>>   whatsnew reports, e.g --replace-only or --hunk-only.
>> 
> 
> having --interactive is probably a good idea, making it the default
> probably not: unrecorded changes tend not to be too numerous (at least
> in my use), and interactive prompting when there's no input to be had
> from the user is an annoyance.

I had the situation in mind where you /do/ have lots of unrecorded changes. 
I like to avoid that, too, but sometimes it is hard to find a good point 
where to stop, so to speak, because a change may need major and wide-spread 
refactoring and I like my project history clean.

I can live well with whatsnew --interactive not being the default as long as 
the switch is there and I can /make/ it my default.

> For consistency, within 'pull', 'changes' and other commands which
> display patches, we could add a 'i' keybinding for listing hunks
> interactively. Would you find that useful?

This is an excellent idea. I almost never use 'v', the output is just too 
much most of the time. However, once inside the hunk-level view we'd need 
yet another binding to return back to the patch-level view ('r' for 'return' 
comes to mind). And interaction with the -v (--verbose) command line switch 
must be considered, too. I think we'd need --verbose-interactive or some 
such to specify that 'i' should apply by default (for the current command), 
just as --verbose means to apply 'v' by default.

>> send:
>>   --interactive should be the default; furthermore, it should *ask* 
whether
>>   you want to edit the description, just as record does with the long
>>   comment.
>> 
> 
> --interactive is already the default, as far as I can tell. Maybe you're
> referring to something else.

No, you are right, sorry. It wasn't the default some versions ago and I 
still had it in my preferences.

> I'm not sure about asking whether to edit, it's yet another prompt, and
> you can simply quit your editor if you don't want to modify it

It is exactly the need to quit my editor that annoys me. Hitting 'n' is 
faster and less disruptive of my work flow, compared to a large window 
popping up that I have to close before I can continue.

According to my proposal users who wish to be asked less questions can avoid 
it simply by adding either 'send edit-description' or 'send no-edit-
description' to their preferences. And they can still override their default 
on a case-by-case basis by explicitly giving the opposite command line 
switch.

Finally, this is where IMO consistency wins over all other considerations, 
so if the new policy is 'avoid prompting the user if it can be helped' then 
'darcs record' should be changed in the same way.

>> diff:
>>   do not wait for the user to "Hit return to move on..."; I already 
ordered
>>   darcs to do what I told it to do, so why do I have to confirm? If the 
idea
>>   is to guard against (potentially destructive) errors in the 
configuration
>>   file, why not rather add a --dry-run option, so I can try any changes 
out
>>   and see what would be executed?
>> 
> 
> This is when using --diff-command, right? 

Yes.

> I think this prompt is used in
> case the diff-command exits before the user is done (some graphical
> diffs do so, I think).

You mean programs that start the actual viewer as a background task (or send 
the file or directory names to an already running demon task) and then exit, 
so darcs thinks the user is done and deletes the temporary files/directories 
it created for the diff... yeah, that's a problem. I see. For the same 
reason you should not set DARCS_EDITOR to a GUI editor that just opens 
another window of an already running editor process and then exits. I 
actually made that mistake when I started working with darcs and kept 
wondering why my long comments didn't make it into the repo...

Cheers
-- 
Ben Franksen
()  ascii ribbon campaign - against html e-mail 
/\  www.asciiribbon.org   - against proprietary attachments



More information about the darcs-users mailing list