[PATCH] Fixes git-cherry algorithmic flaws
From: Ilpo Järvinen <hidden>
Date: 2016-06-15 22:42:36
Old algorithm:
- printed IDs of identical patches with minus (-) sign; they
should not be printed at all
- did not print anything from the changes in the upstream
Signed-off-by: Ilpo Järvinen <redacted>
---
git-cherry.sh | 26 +++++++++++++++++++++++++-
1 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/git-cherry.sh b/git-cherry.sh
index f0e8831..fdf3de7 100755
--- a/git-cherry.sh
+++ b/git-cherry.sh@@ -74,7 +74,8 @@ do then if test -f "$patch/$2" then - sign=- + rm -rf "$patch/$2" + continue else sign=+ fi
@@ -88,6 +89,29 @@ do esac fi done + +for c in $inup +do + set x `git-diff-tree -p $c | git-patch-id` + if test "$2" != "" + then + if test -f "$patch/$2" + then + sign=- + else + continue + 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" ;; + esac + fi +done + case "$O" in '') ;; *) echo "$O" ;;
--
1.4.1