All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Ben Wijen <ben@wijen.net>,
	git@vger.kernel.org, Pratik Karki <predatoramigo@gmail.com>,
	Phillip Wood <phillip.wood123@gmail.com>,
	Eric Sunshine <sunshine@sunshineco.com>
Subject: Re: [PATCH v4 1/1] rebase.c: make sure the active branch isn't moved when autostashing
Date: Wed, 28 Aug 2019 08:34:01 -0700	[thread overview]
Message-ID: <xmqqh8611eza.fsf@gitster-ct.c.googlers.com> (raw)
In-Reply-To: <nycvar.QRO.7.76.6.1908281454070.46@tvgsbejvaqbjf.bet> (Johannes Schindelin's message of "Wed, 28 Aug 2019 14:56:03 +0200 (CEST)")

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> FWIW I disagree with the decision to mingle a bug fix with a change of
> behavior. Resetting to the correct OID is of course the bug fix.
> Dropping the message is a change of behavior.

In general I strongly advocate that a patch should fix one thing and
one thing well without breaking other things, so we are on the same
page.

As I said in <xmqqftltqjy1.fsf@gitster-ct.c.googlers.com>, I think
the message that is leaked from "reset --hard" was reporting an
incorrect thing, iow, showing the message itself is another bug.

IIUC, the bug is twofold:

 - When --autostash creats a stash entry, the command attempts to
   reset the working tree and the tip of the current branch to where
   it should be (i.e. HEAD).  As we know, this attempt is faulty and
   resets to a wrong commit, not to HEAD.  This is the primary bug
   the patch under discussion fixes.

 - A message is given only when the above happens.  When rebasing
   from a clean working tree, we do not report "HEAD is now at..."
   at all.  And when autostash happens, the message is still not
   correct even after fixing to which commit we reset to.  "HEAD is
   now at ..." is misleading in that it implies that we changed to
   something else, but in reality, we have been on the same commit
   all the time since the command started, created a stash and wiped
   the working tree clean after doing so, when the message is given.
   That "reset --hard" is done only to clean the index and the
   working tree and talking about "HEAD is now..." is a bug in its
   context.

So, from the purist point of view, I see it may make sense to update
this patch to add logic to give a pointless and misleading "HEAD is
now at..." message so that we will report the location of HEAD where
the "rebase --autostash" command started at, to fix only the first
bug.  We still need a follow up patch that removes the message to
fix the other bug, perhaps with a follow-up to update the "first
rewinding..."  message, which is shown whether autostash kicks in or
not, so that it reports which commit we are rebuilding the history.

Thans.

  reply	other threads:[~2019-08-28 15:34 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-18  9:53 [PATCH 0/2] git rebase: Make sure upstream branch is left alone Ben Wijen
2019-08-18  9:53 ` [PATCH 1/2] t3420: never change upstream branch Ben Wijen
2019-08-19 21:55   ` Junio C Hamano
2019-08-20  8:58   ` Phillip Wood
2019-08-18  9:53 ` [PATCH 2/2] rebase.c: make sure current branch isn't moved when autostashing Ben Wijen
2019-08-20  9:00   ` Phillip Wood
2019-08-20 19:53     ` Ben
2019-08-20 20:12   ` [PATCH v2 0/1] git rebase: Make sure upstream branch is left alone Ben Wijen
2019-08-20 20:12     ` [PATCH v2 1/1] rebase.c: make sure current branch isn't moved when autostashing Ben Wijen
2019-08-20 20:24       ` Eric Sunshine
2019-08-20 20:58       ` Junio C Hamano
2019-08-21 18:29     ` [PATCH v3 0/1] rebase.c: make sure the active " Ben Wijen
2019-08-21 18:29       ` [PATCH v3 1/1] " Ben Wijen
2019-08-22 12:27         ` Johannes Schindelin
2019-08-22 15:49           ` Junio C Hamano
2019-08-26 16:45       ` [PATCH v4 " Ben Wijen
2019-08-26 16:45         ` Ben Wijen
2019-08-26 17:10           ` SZEDER Gábor
2019-08-28 12:56         ` Johannes Schindelin
2019-08-28 15:34           ` Junio C Hamano [this message]
2019-08-28 16:03             ` Junio C Hamano
2019-08-29 16:47         ` [PATCH v5 0/2] rebase.c: make sure current " Ben Wijen
2019-08-29 16:47           ` [PATCH v5 1/2] builtin/rebase.c: make sure the active " Ben Wijen
2019-08-29 16:47           ` [PATCH v5 2/2] builtin/rebase.c: Remove pointless message Ben Wijen
2019-08-30 15:16           ` [PATCH v6 0/2] rebase.c: make sure current branch isn't moved when autostashing Ben Wijen
2019-08-30 15:16             ` [PATCH v6 1/2] builtin/rebase.c: make sure the active " Ben Wijen
2019-08-30 20:15               ` Junio C Hamano
2019-08-31  7:17                 ` Ben
2019-09-01 16:01                   ` Junio C Hamano
2019-09-01 16:27                     ` Ben
2019-09-02 17:33                       ` Junio C Hamano
2019-08-30 15:16             ` [PATCH v6 2/2] builtin/rebase.c: Remove pointless message Ben Wijen
2019-08-30 20:16               ` Junio C Hamano
2019-08-31  7:17                 ` Ben
2019-08-30 15:16             ` [PATCH " Ben Wijen
2019-08-19  9:26 ` [PATCH 0/2] git rebase: Make sure upstream branch is left alone Phillip Wood
2019-08-19 15:33   ` Ben
2019-08-19 18:21     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqh8611eza.fsf@gitster-ct.c.googlers.com \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=ben@wijen.net \
    --cc=git@vger.kernel.org \
    --cc=phillip.wood123@gmail.com \
    --cc=predatoramigo@gmail.com \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.