Re: Add --rebase option to git-pull?

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Johannes Schindelin <Johannes.Schindelin@...>
Cc: <git@...>
Date: Thursday, August 30, 2007 - 11:10 am

On 8/30/07, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:

The following is my first naive attempt, is this the kind of thing you
were thinking of?

In addition to running the rebase, I changed the merge script to
prevent the update-ref as this is (it seems) inappropriate as it
wasn't really a merge we did.

I'm not sure if any of the other arguments (other than remotes) to the
merge script are applicable here.

-Tom

commit b68df7b3c31953216a03b8f34ffbc6d0c0927ea3
Author: Tom Clarke <tom@u2i.com>
Date:   Thu Aug 30 17:06:21 2007 +0200

    adding rebase merge strategy

diff --git a/.gitignore b/.gitignore
index 63c918c..dd1aa22 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,6 +74,7 @@ git-merge-tree
 git-merge-octopus
 git-merge-one-file
 git-merge-ours
+git-merge-rebase
 git-merge-recursive
 git-merge-resolve
 git-merge-stupid
diff --git a/Makefile b/Makefile
index 4eb4637..f6adca2 100644
--- a/Makefile
+++ b/Makefile
@@ -210,7 +210,7 @@ SCRIPT_SH = \
        git-sh-setup.sh \
        git-am.sh \
        git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
-       git-merge-resolve.sh git-merge-ours.sh \
+       git-merge-resolve.sh git-merge-ours.sh git-merge-rebase.sh \
        git-lost-found.sh git-quiltimport.sh git-submodule.sh \
        git-filter-branch.sh \
        git-stash.sh
diff --git a/git-merge-rebase.sh b/git-merge-rebase.sh
new file mode 100755
index 0000000..6140d38
--- /dev/null
+++ b/git-merge-rebase.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+# Resolve two trees with rebase
+
+# The first parameters up to -- are merge bases; the rest are heads.
+bases= head= remotes= sep_seen=
+for arg
+do
+       case ",$sep_seen,$head,$arg," in
+       *,--,)
+               sep_seen=yes
+               ;;
+       ,yes,,*)
+               head=$arg
+               ;;
+       ,yes,*)
+               remotes="$remotes$arg "
+               ;;
+       *)
+               bases="$bases$arg "
+               ;;
+       esac
+done
+
+# Give up if we are given more than two remotes -- not handling octopus.
+case "$remotes" in
+?*' '?*)
+       exit 2 ;;
+esac
+
+git update-index --refresh 2>/dev/null
+
+git rebase $remotes || exit 2
diff --git a/git-merge.sh b/git-merge.sh
index 3a01db0..02611f3 100755
--- a/git-merge.sh
+++ b/git-merge.sh
@@ -16,11 +16,12 @@ test -z "$(git ls-files -u)" ||
 LF='
 '

-all_strategies='recur recursive octopus resolve stupid ours subtree'
+all_strategies='recur recursive octopus resolve stupid ours subtree rebase'
 default_twohead_strategies='recursive'
 default_octopus_strategies='octopus'
 no_fast_forward_strategies='subtree ours'
 no_trivial_strategies='recursive recur subtree ours'
+no_update_ref='rebase'
 use_strategies=

 allow_fast_forward=t
@@ -81,11 +82,18 @@ finish () {
                        echo "No merge message -- not updating HEAD"
                        ;;
                *)
-                       git update-ref -m "$rlogm" HEAD "$1" "$head" || exit 1
+                       case " $wt_strategy " in
+                       *" $no_update_ref "*)
+                               ;;
+                       *)
+                               git update-ref -m "$rlogm" HEAD "$1"
"$head" || exit 1
+                               ;;
+                       esac
                        ;;
                esac
                ;;
        esac
+
        case "$1" in
        '')
                ;;
-
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:
Add --rebase option to git-pull?, Tom Clarke, (Thu Aug 30, 8:40 am)
Re: Add --rebase option to git-pull?, Johannes Schindelin, (Thu Aug 30, 9:16 am)
Re: Add --rebase option to git-pull?, Tom Clarke, (Thu Aug 30, 11:10 am)
Re: Add --rebase option to git-pull?, Alex Riesen, (Thu Aug 30, 4:22 pm)
Re: Add --rebase option to git-pull?, Tom Clarke, (Thu Aug 30, 4:36 pm)
Re: Add --rebase option to git-pull?, Tom Clarke, (Thu Aug 30, 4:44 pm)
Re: Add --rebase option to git-pull?, Johannes Schindelin, (Thu Aug 30, 11:23 am)
Re: Add --rebase option to git-pull?, Tom Clarke, (Thu Aug 30, 11:26 am)
Re: Add --rebase option to git-pull?, Andreas Ericsson, (Thu Aug 30, 9:07 am)
Re: Add --rebase option to git-pull?, Tom Clarke, (Thu Aug 30, 9:17 am)