Subject: Re: [PATCH 4/4] git-rebase -i: New option to support rebase with merges

From: Jörg Sommer <[email-masked]>
Date: Mon, 24 Mar 2008 12:14:13 +0100

Hi Johannes,

Johannes Schindelin schrieb am Sun 23. Mar, 23:41 (+0100):
> On Sun, 23 Mar 2008, Jörg Sommer wrote:
> 
> > @@ -150,7 +152,18 @@ pick_one () {
> >  		sha1=$(git rev-parse --short $sha1)
> >  		output warn Fast forward to $sha1
> >  	else
> > -		output git cherry-pick "$@"
> > +		if test t = "$LINEAR_HISTORY" &&
> > +			other_parents="$(parents_of_commit $sha1 | cut -s -d' ' -f2-)" &&
> > +			test -n "$other_parents"
> > +		then
> > +			if test a"$1" = a-n
> > +			then
> > +				merge_opt=--no-commit
> > +			fi
> > +			redo_merge $sha1 $no_commit $other_parents
> > +		else
> > +			output git cherry-pick "$@"
> > +		fi
> 
> Now, that is funny.  In case of --preserve-merges, I would have expected 
> you to touch pick_one_preserving_merges(), not pick_one().
> 
> I would find it highly illogical to try to redo merges _without_ -p.

Me too, but I think it's not possible to do what I want with -p. -p
misses a definition of the (new) parent of a commit. It tries to preserve
all commits from all branches. But going through the _list_ of commands
couldn't preserve this structure.

o--A--B
 \     \
  C--D--M--E

How should the graph look like after these commands:

pick A
pick C
squash E
# pick D
pick B
pick M

Should

pick A
pick B
pick C
pick D
pick M
pick E

give a same graph like

pick C
pick A
pick D
pick B
pick M
pick E

Bye, Jörg.
-- 
< Mr X.> jo: contact an admin to mount it for you
< jo> The admin is not, well how should I say it, he isn't very familiar with
      the system. What should I tell my admin, what he should do?
< Mr X.> taking a sun solaris administration course.