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 <>
> > > > ---
> > > 
> > > 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

'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
More majordomo info at

Reply via email to