threads / patch / 3003

patch, 7 partsAdd an optional limit to git-rebase

Subject: [PATCH 7/7] Add an optional limit to git-rebase

## tl;dr

5 messages between Jan 8, 2006 and Jan 8, 2006. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Yann Dirson· Jan 8, 2006, 00:41 UTC · lore
This patch adds a limit to restrict the list of patches to rebase.

This is useful when a set of patches were done against a given head, but needs to be ported to a different head, as opposed to being ported to a descendant of the original head. In such a case we only want to port our own patches, not those that make the two branches different upstream.

Signed-off-by: Yann Dirson <ydirson@altern.org>
---
 git-rebase.sh |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)
bf833136c7c4cc17e7e45b959b56cda11528c33a
Show changes to git-rebase.sh +11 −3
diff --git a/git-rebase.sh b/git-rebase.sh
index 16d4359..06c7e1a 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -3,10 +3,10 @@
 # Copyright (c) 2005 Junio C Hamano.
 #
 
-USAGE='<upstream> [<head>]'
+USAGE='<upstream> [<head>] [<limit>]'
 . git-sh-setup
 
-case $# in 1|2) ;; *) usage ;; esac
+case $# in 1|2|3) ;; *) usage ;; esac
 
 # Make sure we do not have .dotest
 if mkdir .dotest
@@ -36,6 +36,14 @@ other=$(git-rev-parse --verify "$1^0") |
 # Make sure the branch to rebase is valid.
 head=$(git-rev-parse --verify "${2-HEAD}^0") || exit
 
+# Set limit
+case "$#" in
+3)
+	limit=$(git-rev-parse --verify "$3^0") || usage ;;
+*)
+	limit= ;;
+esac
+
 # If the branch to rebase is given, first switch to it.
 case "$#" in
 2)
@@ -62,5 +70,5 @@ then
 	exit 0
 fi
 
-git-format-patch -k --stdout --full-index "$other" ORIG_HEAD |
+git-format-patch -k --stdout --full-index "$other" ORIG_HEAD $limit |
 git am --binary -3 -k
-- 
1.0.6-g8ecb

-- 
Yann Dirson    <ydirson@altern.org> |
Debian-related: <dirson@debian.org> |   Support Debian GNU/Linux:
                                    |  Freedom, Power, Stability, Gratis
     http://ydirson.free.fr/        | Check <http://www.debian.org/>
Yann Dirson· Jan 8, 2006, 10:11 UTC · re: Junio C Hamano · lore

Re: [PATCH 7/7] Add an optional limit to git-rebase

On Sat, Jan 07, 2006 at 06:25:46PM -0800, Junio C Hamano wrote:
> Patches 5, 6, and 7 in the series sound useful, but could they
> come with documentation updates please?
Right, that sounds reasonable :)

However, since my initial motivation was patch 7, and you correctly pointed out that 5 and 6 are not needed for 7, I'm not sure what to do about those 5 and 6. I'll have to let your comments about patch 6 settle in my mind first :)

Best regards,
-- 
Yann Dirson    <ydirson@altern.org> |
Debian-related: <dirson@debian.org> |   Support Debian GNU/Linux:
                                    |  Freedom, Power, Stability, Gratis
     http://ydirson.free.fr/        | Check <http://www.debian.org/>
Junio C Hamano· Jan 8, 2006, 09:30 UTC · re: Yann Dirson · lore

Re: [PATCH 7/7] Add an optional limit to git-rebase

Yann Dirson <ydirson@altern.org> writes:
Show 7 quoted lines
> This patch adds a limit to restrict the list of patches to rebase.
>
> This is useful when a set of patches were done against a given head,
> but needs to be ported to a different head, as opposed to being ported
> to a descendant of the original head.  In such a case we only want to
> port our own patches, not those that make the two branches different
> upstream.

This usage makes sense, independent from your git-format-patch "limit" patch. The patched argument to git-format-patch does not match your git-format-patch changes AFAICT ;-).

> -git-format-patch -k --stdout --full-index "$other" ORIG_HEAD |
> +git-format-patch -k --stdout --full-index "$other" ORIG_HEAD $limit |

If all you want to do is to move the cut-off point more recent than the merge base is, how about (without your git-format-patch changes) doing something stupid like this instead?

  git-format-patch -k --stdout --full-index ${limit:-"$other"} ORIG_HEAD
Yann Dirson· Jan 8, 2006, 10:06 UTC · re: Junio C Hamano · lore

Re: [PATCH 7/7] Add an optional limit to git-rebase

On Sun, Jan 08, 2006 at 01:30:20AM -0800, Junio C Hamano wrote:
Show 13 quoted lines
> Yann Dirson <ydirson@altern.org> writes:
> 
> > This patch adds a limit to restrict the list of patches to rebase.
> >
> > This is useful when a set of patches were done against a given head,
> > but needs to be ported to a different head, as opposed to being ported
> > to a descendant of the original head.  In such a case we only want to
> > port our own patches, not those that make the two branches different
> > upstream.
> 
> This usage makes sense, independent from your git-format-patch
> "limit" patch.  The patched argument to git-format-patch does
> not match your git-format-patch changes AFAICT ;-).

D'oh, I knew I should always written a testsuite when changing the implementation of a feature at such a late time in night.

Show 8 quoted lines
> > -git-format-patch -k --stdout --full-index "$other" ORIG_HEAD |
> > +git-format-patch -k --stdout --full-index "$other" ORIG_HEAD $limit |
> 
> If all you want to do is to move the cut-off point more recent
> than the merge base is, how about (without your git-format-patch
> changes) doing something stupid like this instead?
> 
>   git-format-patch -k --stdout --full-index ${limit:-"$other"} ORIG_HEAD

Right, that would even be closer to the version that had indeed been tested - it does have the advantage of passing t3401, though :)

-- 
Yann Dirson    <ydirson@altern.org> |
Debian-related: <dirson@debian.org> |   Support Debian GNU/Linux:
                                    |  Freedom, Power, Stability, Gratis
     http://ydirson.free.fr/        | Check <http://www.debian.org/>

← back to recent threads