[darcs-users] Programmatic invocation
Jonathon Mah
me at JonathonMah.com
Fri Nov 4 15:48:35 UTC 2005
On 2005-11-04, at 23:07, David Roundy wrote:
>>> The key is that the a user-friendly input to darcs is almost
>>> trivially
>>> machine-friendly (as long as it comes through stdin). Machine-
>>> friendly
>>> input is a subset of human-friendly input.
>>
>> Assuming of course that nobody changes letter shortcuts on darcs
>> questions to make it more userfriendly. This would ofcourse break
>> existing applications.
>
> Changing letter shortcuts is very human-unfriendly. We aren't as
> flexible
> as computers when it comes to supporting different interfaces.
> There are a
> few rarely-used keys that we might change (like the recently
> introduced 'c'
> for "count the changes"), but it's highly unlikely we'll change any
> of the
> main commands. And in the process of extending the interface so
> that it
> can be used effectively by machines we'd formalize which commands
> should be
> kept fixed.
There could be a character such as ':' that would trigger a "machine-
input" or "long-input" mode, which accepts long command names which
never change. So something like this:
Shall I record this patch? (etc.): :accept
(user input starts here) ^
Other commands could
be :reject, :wait, :rejectfile, :acceptfile, :rejectremaining, :acceptre
maining, and so on. This would allow the human shortcuts to change
whilst maintaining compatibility with scripts.
When machine-friendliness is implemented (with whichever method), one
thing _must_ be present right from the beginning: a version flag.
That is, 'darcs record --command-set=1'. This will allow two things:
1) The command set can be changed in the future whilst retaining
backward compatibility with existing scripts (by keeping
compatibility code for old command sets).
2) Backward compatibility could be broken (I'm thinking very far
into the future), and asking for an old command set would generate an
error. This is obviously infinitely more desirable than accepting
some old commands and silently failing on others.
Jonathon Mah
me at JonathonMah.com
More information about the darcs-users
mailing list