[darcs-users] Re: [wish] interactive selection should not hide dependent of declined one automagically

Junio C Hamano junkio at cox.net
Tue Apr 5 09:13:09 UTC 2005


>>>>> "TZ" == Thomas Zander <zander at kde.org> writes:

TZ> I remember such an argument from SuSEs usability department when
TZ> I asked why apt-get is soo much easier to use.

Sorry, I cannot parse the above.  Much easier to use than what?
Did you think apt-get (you mean aptitude I guess?) was nice, or
did you think it was confusing?

I presume you are talking about the aptitude package selection
interface.  I found it funny that you mention it here, because I
was thinking about bringing it up as one of the nicer interface
among the interfaces that let you pick n among m things, which
have interdependencies.

For people who do not know about the tool we are talking about,
the aptitude is used to pick which packages to install on your
system on Debian (for brevity, I won't talk about selecting
packages for removal here).  You are given a full-screen list of
packages to pick from, you can scroll to the package you are
interested in and say "install this one".  When you say so it
also automatically selects all the ones the package you just
selected depends upon.  One nice thing about it is that you can
later change your mind and say "Earlier I said I want this but I
actually don't", and the ones automatically added earlier by the
dependency tracking is automatically unselected, unless you
explicitly selected one of them.  So most of the time you pick
only the ones you are interested in (e.g. an application) and
the ones required by them (e.g. the run-time libraries) are
pulled by dependencies without your explicit action.  Nicer
still, it has the final verification step to show you the list
of things you explicitly chose, and the list of things
automatically added by dependencies.

This final step is essential for using aptitude since the
dependencies can pull quite a many packages (one application can
depend on a dozen libraries).  For "darcs record" hunk selection
it would not be such a big issue because there would not be so
many dependencies, but for "darcs pull/push" and "darcs record
--ask-deps" patch selection, it would be an issue to some
degree.

TZ> The counterintuitive you mention is actually not true; its
TZ> taking away a feeling of control that you are feeling bad
TZ> about.

Not showing the ones whose requirements are not satisfied is not
nice, not because it takes away my control, but because it is
done without explaining why they are not shown.  The
alternative, verbose way I dreamt about is just explaining "Oh
if you really want to have patch 2 then you have to have patch 1
which is depended upon so I'll add that for you".  Neither is
giving me an extra control to pull patch 2 without patch 1, nor
I would want that kind of control to override the dependencies.
If there is something I am feeling bad about, it is the lack of
explanation.

But I think I now know how to use the darcs selection interface
better after discussing with you.  Earlier somebody said 'W' is
for experts, but I think 'W' is for everybody.  'W' is like
leaving things untouched in the aptitude interface.  I should
just keep saying 'W' until I encounter the ones I am really
interested in (at which time I say 'Y'), and let darcs pull the
required ones automatically.  There is even no need to
explicitly say 'N'.  Do you think that would be the correct
mental model to work under?

If that is the case then I think I *understand* why the current
selection interface works the way it does.  If there is a way to
see some warning/info message that says "In addition to what you
explicitly selected, these things you answered 'W' will also be
selected for you because of dependency" before actually
performing the task then the interface would be perfect
(almost ;-)).





More information about the darcs-users mailing list