File: git-cherry-pick-recursive

package info (click to toggle)
git-stuff 11-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 468 kB
  • sloc: sh: 1,072; perl: 152; makefile: 128
file content (27 lines) | stat: -rwxr-xr-x 671 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

## Copyright (C) 2006-2011 Daniel Baumann <daniel.baumann@progress-technologies.net>
##
## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
## This is free software, and you are welcome to redistribute it
## under certain conditions; see COPYING for details.


set -e

_BRANCH="${1}"
_ID="${2}"

if [ -z "${_BRANCH}" ] || [ -z "${_ID}" ]
then
	echo "Usage: $0 BRANCH ID"
	exit 1
fi

_COMMITS="$(git log ${_BRANCH} -- | awk '/^commit / { print $2 }')"
_COMMITS="$(echo ${_COMMITS} | sed -e "s|${_ID}.*$|${_ID}|" | awk '{ a[NR]=$0 } END { for(i=NR; i; --i) print a[i] } ')"

for _COMMIT in ${_COMMITS}
do
	git cherry-pick ${_COMMIT}
done