[darcs-users] Command line options

Dan Pascu dan at ag-projects.com
Wed Dec 15 18:34:44 UTC 2010

I noticed there is some inconsistency with the command line options.  
We have so called 'positive' switches that describe an action/ 
condition, like --set-default or --allow-conflicts and then we have  
the so called 'negative' switches that are the opposite of the  
'positive' switches. The 'negative' switches are not very consistent.  
For example we have --dont-allow-conflicts and --no-set-default as  
counterparts for the aforementioned 'positive' switches.

I think some of them may benefit from a review and some adjusting.  
Those that describe a negated action should use --dont-something when  
something is an actiob. In my example --no-set-default could benefit  
from that.

Of course there are 'negative' options that negate a state, not an  
action and in that case --no-option works just fine (like for example  
--no-ssh-cm or --no-summary).

I guess the rule here would be to use --dont-something when something  
is an action and --no-something when something is a state/entity.

I see some have dual versions, like --dont-allow-conflicts and --no- 
allow-conflicts. I guess the later was preserved for backward  
compatibility reasons. Probably a similar thing can be done for --no- 
set-default, though I don't like the idea of having multiple option  
aliases, but I understand the need for preserving backward  

Maybe the --no-something when something is an action, can be slowly  
deprecated. In the 1st state, they coexist with --dont-something as  
aliases. In the 2nd stage, they are still supported, but not  
advertised anymore in the docs or shown by --help. And in the 3rd  
stage they are removed.


More information about the darcs-users mailing list