Re: [PATCH 1/3] Prepare for non-interactive merge-preserving rebase

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Stephen Haberman
Date: Wednesday, October 15, 2008 - 1:07 am

> The following DAG is created by the commands below:

Following up on this old thread, I can't get M' to have the old parent
D. I always see D change to D' and then topic is fast fowarded to D'
instead of an M' showing up. (I've tried 1.6.0.2, my rebase-i-p changes,
and sp/maint.)


Yes, I think it just takes the following patch:

--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -251,7 +251,7 @@ pick_one_preserving_merges () {
                                GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
                                GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
                                output git merge $STRATEGY -m "$msg" \
-                                       $new_parents
+                                       --no-ff $new_parents

Applying this to either sp/maint or my rebase-i-p changes gets your
desired output.

With the only caveat being that the subtopic branch stays pointing at
the old D--since you are rebasing topic, it does not change where
subtopic points when rewriting D -> D'.

Musing, I could see moving subtopic being possible, definitely with git
sequencer, but also with a --other-branches-follow-rewrites flag of some
sort that, after rewriting hash1->hash2, just finds any local branches
pointing at hash1 and updates their refs to be hash2. Not that I'm
really suggesting it, but I don't think it would be that hard.

Anyway, subtopic still pointing at D aside, I think your desired output
makes sense, given you've explicitly told rebase to preserve merges. If
you wanted a non-ff M in the first place, I think passing along a
--no-ff to keep M' around is reasonable. And would otherwise be harmless.

I can write a test/patch for this unless you beat me to it or other
think it is unreasonable.

- Stephen



--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH 1/3] Prepare for non-interactive merge-preservi ..., Andreas Ericsson, (Wed Sep 24, 12:13 am)
Re: [PATCH 1/3] Prepare for non-interactive merge-preservi ..., Andreas Ericsson, (Sat Sep 27, 10:55 am)
Re: [PATCH 1/3] Prepare for non-interactive merge-preservi ..., Stephen Haberman, (Sat Sep 27, 12:20 pm)
Re: [PATCH 1/3] Prepare for non-interactive merge-preservi ..., Stephen Haberman, (Wed Oct 15, 1:07 am)