Krzysztof Mazur wrote: > On Mon, Oct 14, 2013 at 04:35:50PM -0500, Felipe Contreras wrote: > > Krzysztof Mazur wrote: > > > On Sat, Oct 12, 2013 at 02:04:45AM -0500, Felipe Contreras wrote: > > > > So that we can specify general modes of operation, specifically, add the > > > > 'next' mode, which makes Git pre v2.0 behave as Git v2.0. > > > > > > > > Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> > > > > --- > > > > > > I don't think that single option it's a good idea. From the user's > > > point of view I think that the way push.default was introduced and > > > will be changed is much better. So maybe it's better to just add > > > "core.addremove" option instead? > > > > Maybe, but what happens when we start doing changes for v3.0? As a user, I > > don't and to figure out which are the new configurations that will turn v3.0 > > behavior on, I just want to be testing that mode, even if I'm not following Git > > development closely. If I find something annoying with core.mode = next, I > > report the problem to the mailing list, which is good, we want to know problems > > with the backward-incompatible changes that will be introduced before it's too > > late, don't we? > > But with core.mode = next after upgrade you may experience incompatible > change without any warning. Yes, and that is actually what the user wants. I mean, why would the user set core.mode=next, if the user doesn't want to experencie incompatible changes? A user that sets this mode is expecting incompatible changes, and will be willing to test them, and report back if there's any problem with them. > I think it's better to keep the old behavior by default and warn the user if > with new behavior the result might be different. So the user: > > a) knows about the change > > b) may set appropriate option to enable the new default or keep > the old behavior and disable the warning > > c) may report that he does not like that change But that's what we are doing already. Look at the test I wrote, it's testing the warnings for the current version of Git. > > I'd be fine with having *both* a fine-tuned option to trigger each specific > > behavior, and another one that turns all those fine-tuned options on that are > > meant for v2.0. > > > > Unfortunately, I don't see much interest from Git developers in either. > > I think that most users have already set the push.default, so "git add" > is the only problem. If Junio really wants to change "git add" he should > be interested in allowing user to use it now. I agree, but he really wants the change, and proof of that is that the warning is already there, and every Git release since then has an annoying message about that at the top. > I don't see the change in "git add" as an improvement, because > removing files with "git add" IMHO is more confusing than ignoring > such files. Maybe introducing new command - "git update" for instance - > which is equivalent to new "git add" and teaching new users to use it > instead of "git add" is better. I agree. At first I simply ignored the changes because I didn't have the patience to figure out what exactly did they mean. Now I was forced to understand them to write this patch, and I'm also forcing myself to use this behavior. 'git add' removing files is counter-intutive, 'git stage' (currently an alias to 'git add') might make more sense. But even better would be to use my proposed changes to 'git stage', which add subcommands, for example: * git stage all (git add --all) * git stage update (git add --update) But it doesn't seem that patch is going to be applied by Junio, so most likely we would have to deal with yet anotyer counter-intuitive behavior in Git. -- Felipe Contreras -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html