darcs

Issue 2630 wish: new command 'darcs traverse'

Title wish: new command 'darcs traverse'
Priority wishlist Status unknown
Milestone Resolved in
Superseder Nosy List bfrk
Assigned To
Topics

Created on 2019-07-16.18:13:55 by bfrk, last changed 2019-07-16.18:16:08 by bfrk.

Messages
msg20956 (view) Author: bfrk Date: 2019-07-16.18:13:54
I like the interactive mode of Darcs very much. It would be even better
if I didn't always have to decide up front what I want to do, but
instead could base that decision on what I find.

We could add some kind of generic 'traverse' command. By default it
would show me patches, like 'darcs log -i'. But I would also have the
ability to do other things with a patch: obliterate, amend, unrecord,
suspend. Of course I wouldn't be able to do some of these things if I
have passed other patches by that depend on the current patch, but
that's okay, darcs would tell me that... or ask me if I (really?) want
to do it with all the dependencies, too, listing them all (for
obliterate, unrecord, and rebase suspend).

Similarly, when I have suspended patches I want to be able to traverse
them, deciding whether to unsuspend, reify, obliterate or just view
them. And again, when there are unrecorded changes, I might want to
either record or revert them.

Alternative names: 'view', 'select'.

It could even be the 'default command' i.e. what it does when you just
issue 'darcs'. We could even make it guess what you want to do: if there
are unrecorded changes, it could first ask you want to record or revert
them, otherwise... you get the idea.

I think this could prompt casual users to explore the interactive mode,
which IME they are often completely unaware of. The (IMHO ill-advised)
decision to make darcs log non-interactive by default "helped" with that.

We should also display the available options more prominently when
traversing interactively.
History
Date User Action Args
2019-07-16 18:13:55bfrkcreate
2019-07-16 18:15:14bfrksetstatus: unknown -> given-up
2019-07-16 18:16:08bfrksetpriority: wishlist
status: given-up -> unknown