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