git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [BUG] [git 2.16.1] yeeek ... my files are gone .. by git pull <otherRepositoryUrl>

From
Jeff King <peff@peff.net>
Date
Mar 5, 2018, 15:46 UTC
Message-ID
<20180305154626.GA26740@sigill.intra.peff.net>
In-Reply-To
<nycvar.QRO.7.76.6.1803051546200.20700@ZVAVAG-6OXH6DA.rhebcr.pbec.zvpebfbsg.pbz>
On Mon, Mar 05, 2018 at 03:49:13PM +0100, Johannes Schindelin wrote:
Show 9 quoted lines
> > I think that is doing the right thing for half of the problem. But
> > there's something else funny where we do not include the "upstream"
> > commits from the split history (i.e., we rebase onto nothing,
> > whereas a normal "git rebase" with a split history will graft the two
> > together).
> 
> Let me ask to make sure I am understanding you correctly. Are you
> referring to "split history" as the case where the commit graph has *two*
> root commits?

Yes, I mean two root commits. But especially when one is in the history to be rebased, and the other is in the "upstream" history.

So as a concrete example, if I have this repo:
  git init
  >one && git add one && git commit -m one
  git checkout --orphan other
  git mv one two && git commit -m two
and I do this:
  git rebase master

I end up with a two-commit history, with "two" on top of "one". That makes sense to me. Similarly if I instead do:

  git rebase -i master

the todo list has "pick two", and if I leave it as-is then I get the same history. But if I do:

  git rebase --preserve-merges master

I end up with a single-commit history, with only commit "one". That's wrong, because it threw away the history on the "other" branch.

If I apply the patch I showed earlier, then I get a single-branch history, but this time it contains only "two". That also seems wrong, because we didn't build on top of "master". I'd expect this command to give the same results as a non-merge-preserving rebase.

Does that make more sense?
-Peff
Previous: Johannes Schindelin
Message 8 of 8 in “[BUG] [git 2.16.1] yeeek ... my files are gone .. by git pull <otherRepositoryUrl>”
  1. Marcel 'childNo͡.de' TrautweinFeb 22, 2018
  2. Jonathan NiederFeb 22, 2018
  3. Marcel 'childNo͡.de' TrautweinFeb 23, 2018
  4. Jeff KingFeb 23, 2018
  5. Johannes SchindelinFeb 26, 2018
  6. Jeff KingFeb 28, 2018
  7. Johannes SchindelinMar 5, 2018
  8. Jeff KingMar 5, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.