[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