[PATCH] Possible cleanups for local-pull.c
[gitweb.git] / git-cherry
index f14f017efeacdeef01ff871f4f2ff1949463ee90..fe8c1090e97faa0fd0a34c2a12d748916aaa6b05 100755 (executable)
@@ -5,7 +5,7 @@
 
 . git-sh-setup-script || die "Not a git archive."
 
-usage="usage: $0 "'<upstream> [<head>]
+usage="usage: $0 "'[-v] <upstream> [<head>]
 
              __*__*__*__*__> <upstream>
             /
@@ -14,21 +14,13 @@ usage="usage: $0 "'<upstream> [<head>]
 
 Each commit between the fork-point and <head> is examined, and
 compared against the change each commit between the fork-point and
-<upstream> introduces.  If the change does not seem to be in the
-upstream, it is shown on the standard output.
-
-The output is intended to be used as:
-
-    OLD_HEAD=$(git-rev-parse HEAD)
-    git-rev-parse upstream >${GIT_DIR-.}/HEAD
-    git-cherry upstream $OLD_HEAD |
-    while read commit
-    do
-        GIT_EXTERNAL_DIFF=git-apply-patch-script git-diff-tree -p "$commit" &&
-       git-commit-script -C "$commit"
-    done
+<upstream> introduces.  If the change seems to be in the upstream,
+it is shown on the standard output with prefix "+".  Otherwise
+it is shown with prefix "-".
 '
 
+case "$1" in -v) verbose=t; shift ;; esac 
+
 case "$#,$1" in
 1,*..*)
     upstream=$(expr "$1" : '\(.*\)\.\.') ours=$(expr "$1" : '.*\.\.\(.*\)$')
@@ -83,6 +75,10 @@ do
                else
                        sign=+
                fi
+               case "$verbose" in
+               t)
+                       c=$(git-rev-list --pretty=oneline --max-count=1 $c)
+               esac
                case "$O" in
                '')     O="$sign $c" ;;
                *)      O="$sign $c$LF$O" ;;