Dan Pascu wrote: > On 5 Oct 2009, at 22:51, Ganesh Sittampalam wrote: >>> If they are mutually exclusive, I assume that the program will >>> decide what option to use before it starts to do anything. So if I >>> have skip-conflicts in the defaults file but I give --dont-allow- >>> conflicts on the command line, then indeed I expect that skip- >>> conflicts (specified in the defaults) is completely suppressed and >>> ignored. >> >> Right, and I am saying that this behaviour, while straightforward to >> implement, might be rather confusing. > > Here is where we view things differently. I find it straight forward > to see them as mutually exclusive, because then I know that the last > one specified is the one that has an effect. Otherwise I would have > to keep in mind the relations between them as well as what options > was set in every place (internal defaults, global and local defaults > file and command line) and to mentally compute the result of their > combination. This is hardly something I want to do or find it to be > simple/intuitive.
I've been thinking about this a bit more and I agree that tacking on an orthogonal --skip-conflicts to the existing situation would be wrong. Right now, we have the mutually exclusive set of options --mark-conflicts, --allow-conflicts and --don't-allow-conflicts, and the orthogonal option --external-merge, which can still affect the conflict handling behaviour as I think you were complaining about previously. I think that we should either make the entire set of options mutually exclusive. Another possibility, which I have not worked out fully, is to factor them into a hierarchy of orthogonal options where certain settings further up the chain implicitly make some of the options lower down the chain irrelevant, as suggested by Eric in a previous mail. >>> I feel like I'm missing something here. >> >> The problem is not with the implementation, but with the user >> confusion that might result from the addition of --dont-allow- >> conflicts causing conflicting patches to be offered in interactive >> selection when they weren't previously. > > But this I do not understand. Why do you say that if I specify > --dont- allow-conflicts on the command line and the options are > mutually exclusive, so --dont-allow-conflicts actually wins and > discards whatever else default is in the defaults file, still I get > conflicting patches being offered? Because that's the current behaviour of --don't-allow-conflicts: it offers you all the patches, and then fails if any turn out to conflict. The main technical part of my work on --skip-conflicts was precisely to add a pre-filtering step for the list of potential patches. Ganesh =============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html =============================================================================== _______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
