Subject: Re: bug#20292: 24.5; Saving Git-controlled file with merge conflicts after "stash pop" stages the file

From: Eli Zaretskii <[email-masked]>
Date: Fri, 15 May 2015 23:19:35 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Fri, 15 May 2015 16:02:03 -0400
> 
> >> > That's not the use case we were discussing, though.  We were
> >> > discussing a use case where the user merged from another repository,
> >> > and then wants her uncommitted changes restored.  Leaving them staged
> >> > will trip the naive users.
> >> But Emacs is not the main culprit: Git itself will stage all the
> >> non-conflicting changes, so why should this not trip the user similarly?
> > The users I have in mind expect Emacs to save them from Git
> > idiosyncrasies.
> 
> I don't see how that's relevant.

Strange.

> By behaving differently from the rest of Git, I'm afraid we'll just
> introduce more problems.

I'm not afraid of that.

> >> IOW if the user gets tripped by Emacs doing "git add" after resolving
> >> a unstash conflict, why would that same user not already be tripped
> >> identically by Git doing this "git add" on the non-conflicted files?
> > Because they don't use Git from the shell, or at least try not to.
> 
> Feel free to change the behavior of vc-git-resolve-when-done for the
> case where the unstash was done from within Emacs after you've changed
> this unstash to behave the way you want it, rather than the way Git
> does it.
> 
> In my case, the unstash is done by Git with no Emacs involvement, and in
> that case it seems that "git add" is just the only sane thing to do.

Then I guess the only way to stop this endless and futile argument is
to have an option that will control whether we "add" or "reset".