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

Re: Find successor of common ancestor

From
Johan Herland <johan@herland.net>
Date
Jul 16, 2010, 12:19 UTC
Message-ID
<201007161419.39469.johan@herland.net>
In-Reply-To
<20100716090613.GB22894@nibiru.local>
On Friday 16 July 2010, Enrico Weigelt wrote:
> * Santi Béjar <santi@agolina.net> wrote:
> > On Fri, Jul 16, 2010 at 10:29 AM, Enrico Weigelt <weigelt@metux.de> 
wrote:
Show 16 quoted lines
> > > Hi folks,
> > >
> > >
> > > suppose the following situation:
> > >
> > > I've forked some branch A into B, now A and B have evolved
> > > independently for quite some time into A' and B'. Now I'd like
> > > to rebase B' along A' history line step by step - first on A+1,
> > > then A+3, ... until A' (that's what I'd call zip-rebase).
> >
> > This is just what "git rebase"  does:
> >
> > $ git checkout B'
> > $ git rebase A'
>
> Yes, but I need to find out A+1 for my zip-rebase.
IINM you have the following situation
A0---A1---A2---A3---A4  <-- A'
  \
   B1---B2---B3--B4  <-- B'

...and you want to rebase B' (i.e. B1 through B4), first onto A1, then onto A2, the onto A3, and finally onto A4. I have no idea WHY you would want to do this (rebasing directly onto A4 (like Santi suggests) is much cheaper), but you can certainly coax Git into doing it, anyway.

To list commits A1, A2, A3, A4 (in that order), do:
  git rev-list --reverse B'..A'
You can now loop over the results like this:
  git checkout B'
  for a in $(git rev-list --reverse ..A'); do
      git rebase $a
  done
Hope this helps,
...Johan
-- 
Johan Herland, <johan@herland.net>
www.herland.net
Previous: Enrico WeigeltNext: Enrico Weigelt
Message 4 of 7 in “Find successor of common ancestor”
  1. Enrico WeigeltJul 16, 2010
  2. Santi BéjarJul 16, 2010
  3. Enrico WeigeltJul 16, 2010
  4. Johan HerlandJul 16, 2010
  5. Enrico WeigeltJul 16, 2010
  6. Andreas SchwabJul 16, 2010
  7. Avery PennarunJul 16, 2010

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.