git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Igor Djordjevic <igor.d.djordjevic@gmail.com>
To: Junio C Hamano <gitster@pobox.com>, Joshua Phillips <jphillips@imap.cc>
Cc: git@vger.kernel.org, Laszlo Kiss <kisslas.git@gmail.com>
Subject: Re: Possible bug: git pull --rebase discards local commits
Date: Fri, 10 Mar 2017 01:23:13 +0100	[thread overview]
Message-ID: <85fefe0a-fe0e-cf1b-78c3-a8e2e85f53c2@gmail.com> (raw)
In-Reply-To: <xmqqvayruvwk.fsf@gitster.mtv.corp.google.com>

Hi Junio,

On 23/08/2016 21:28, Junio C Hamano wrote:
> Joshua Phillips <jphillips@imap.cc> writes:
> > I've found a case where git pull --rebase discards commits in my branch
> > if the remote-tracking branch was rewound (and the remote tracking
> > branch's reflog contains my branch's latest commit). This is due to
> > git-pull's usage of git merge-base --fork-point.
> >
> > On one hand, this behaviour might be correct since the remote repository
> > essentially removed that commit from master by 'reset --hard'. On the
> > other hand, I was surprised that git pull --rebase discarded a commit in
> > my branch.
> 
> Yup, that sounds like a bad way to handle the situation.  After all,
> the upstream may have first accepted your first attempt, and then
> decided that it was premature and rewound it, expecting you to give
> an improved reroll.  But I also agree with you that it may be
> correct to drop it because the upstream already rejected it.
> 
> Since Git cannot tell between these two cases, we should play safer
> than what the current code does, I would think.

Were there any news in this regards so far? Would it be (more) 
sensible/safe to report the dropped commits, too? Something like:

  Dropping: Commit B
  Applying: Commit X
  Applying: Commit Y

... where "Applying: *" are standard "git rebase" output lines, and 
"Dropping: *" a newly proposed one (example graphs (1.1) to (1.3) 
shown below[1]).

That said, applied commits might even be considered pretty 
uninteresting here (as they`re kept/transferred over anyway), a noise 
drowning what otherwise might be really important - the dropped/lost 
ones...?

It does feel a bit scary learning that you may _silently_ lose 
commits, especially as --fork-point is used by default for both 
vanilla `git rebase` and `git pull --rebase`.

P.S. As a relatively new user, I actually just got aware of this 
behavior from another, recently posted e-mail[2], having me 
investigate further, yet thought replying here might be better as it 
got some attention already (adding author of that other e-mail, 
Laszlo Kiss, to Cc).

Regards,
Buga

[1] Example graphs:

  (1.1) ---A---B (master)
                \
                 X---Y (topic)

  (1.2)      C---D (master)
            /
        ---A---B
                \
                 X---Y (topic)

  (1.3)            X'---Y' (topic)
                  /
             C---D (master)
            /
        ---A

  Note that I didn`t use "origin/master" but just "master" on purpose, 
  as the branch being tracked doesn`t have to be a remote one, making 
  the lost local commits confusion even greater.

[2] https://public-inbox.org/git/CAO0LFki4PN8zz2xpoSpjTHJGS=NG_suQYR27EcmzEMiaCw9kuA@mail.gmail.com/

      reply	other threads:[~2017-03-10  0:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-23 16:24 Possible bug: git pull --rebase discards local commits Joshua Phillips
2016-08-23 19:28 ` Junio C Hamano
2017-03-10  0:23   ` Igor Djordjevic [this message]

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=85fefe0a-fe0e-cf1b-78c3-a8e2e85f53c2@gmail.com \
    --to=igor.d.djordjevic@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jphillips@imap.cc \
    --cc=kisslas.git@gmail.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).