Browse Source

Add an optional limit to git-cherry

This allows to use another commit than the merge base as a limit for
scanning patches.

[jc: part about t3500 test omitted.]

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Yann Dirson 19 years ago committed by Junio C Hamano
parent
commit
77f1055ca7
  1. 20
      git-cherry.sh

20
git-cherry.sh

@ -3,17 +3,17 @@
# Copyright (c) 2005 Junio C Hamano. # Copyright (c) 2005 Junio C Hamano.
# #


USAGE='[-v] <upstream> [<head>]' USAGE='[-v] <upstream> [<head>] [<limit>]'
LONG_USAGE=' __*__*__*__*__> <upstream> LONG_USAGE=' __*__*__*__*__> <upstream>
/ /
fork-point fork-point
\__+__+__+__+__+__+__+__> <head> \__+__+__+__+__+__+__+__> <head>


Each commit between the fork-point and <head> is examined, and Each commit between the fork-point (or <limit> if given) and <head> is
compared against the change each commit between the fork-point and examined, and compared against the change each commit between the
<upstream> introduces. If the change seems to be in the upstream, fork-point and <upstream> introduces. If the change seems to be in
it is shown on the standard output with prefix "+". Otherwise the upstream, it is shown on the standard output with prefix "+".
it is shown with prefix "-".' Otherwise it is shown with prefix "-".'
. git-sh-setup . git-sh-setup


case "$1" in -v) verbose=t; shift ;; esac case "$1" in -v) verbose=t; shift ;; esac
@ -28,9 +28,15 @@ esac
case "$#" in case "$#" in
1) upstream=`git-rev-parse --verify "$1"` && 1) upstream=`git-rev-parse --verify "$1"` &&
ours=`git-rev-parse --verify HEAD` || exit ours=`git-rev-parse --verify HEAD` || exit
limit="$upstream"
;; ;;
2) upstream=`git-rev-parse --verify "$1"` && 2) upstream=`git-rev-parse --verify "$1"` &&
ours=`git-rev-parse --verify "$2"` || exit ours=`git-rev-parse --verify "$2"` || exit
limit="$upstream"
;;
3) upstream=`git-rev-parse --verify "$1"` &&
ours=`git-rev-parse --verify "$2"` &&
limit=`git-rev-parse --verify "$3"` || exit
;; ;;
*) usage ;; *) usage ;;
esac esac
@ -38,7 +44,7 @@ esac
# Note that these list commits in reverse order; # Note that these list commits in reverse order;
# not that the order in inup matters... # not that the order in inup matters...
inup=`git-rev-list ^$ours $upstream` && inup=`git-rev-list ^$ours $upstream` &&
ours=`git-rev-list $ours ^$upstream` || exit ours=`git-rev-list $ours ^$limit` || exit


tmp=.cherry-tmp$$ tmp=.cherry-tmp$$
patch=$tmp-patch patch=$tmp-patch

Loading…
Cancel
Save