Web lists-archives.com

Re: why does "git revert" commit even if i try to bail with ":q!"?




On Tue, Mar 12, 2019 at 11:01 AM Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote:
>
> On Tue, 12 Mar 2019, Bryan Turner wrote:
>
> > On Tue, Mar 12, 2019 at 10:23 AM Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote:
> > >
> > >   never noticed this before ... when i do a regular "git commit" and
> > > enter my "vi" edit session and change my mind, i can bail with ":q!",
> > > regardless of what i've set up as a commit message, and i'll see:
> > >
> > >   Aborting commit due to empty commit message.
> > >
> > > however, i was just playing with "git revert" and, after i ran:
> > >
> > >   $ git revert <commit SHA>
> > >
> > >   again, simulating that i changed my mind, i just typed ":q!", but
> > > the revert went ahead, anyway. i tried again, this time completely
> > > deleting all the lines from the commit msg (as the template
> > > suggested), but the revert *still* completed after typing ":q!".
> > >
> > >   it was only after deleting all the lines and using ":wq" that the
> > > revert was cancelled:
> > >
> > >   Aborting commit due to empty commit message.
> > >
> > > that seems ... inconsistent. am i misunderstanding something?
> >
> > When you're doing a fresh commit, the .git/COMMIT_MSG is "empty". It
> > has whitespace and comments, but no _usable_ lines. So when you :q!,
> > the commit is aborted because nothing Git can use as a commit
> > message was saved to the file and so it's still "empty".
>
>   no, if i enter the commit edit session, type some _usable_ lines,
> then type ":q!", it *still* aborts the commit because of an empty
> commit message. try it and tell me if it behaves differently for you.

Sorry, perhaps I was unclear. Even if you _type_ something, unless you
:w it's not _written_. So using :q! at that point is the same as if
you typed nothing.

But if you type something, then :w, then _as a separate command_, do
:q!, the commit _will_ be done.

Is that more clear, I hope?
Bryan