cilium

Форк
0
/
cherry-pick 
49 строк · 1.0 Кб
1
#!/usr/bin/env bash
2
set -e
3

4
source $(dirname $(readlink -ne $BASH_SOURCE))/common.sh
5

6
require_linux
7

8
ORG=${ORG:-"cilium"}
9
REPO=${REPO:-"cilium"}
10
BRANCH=${BRANCH:-"main"}
11

12
cleanup () {
13
  if [ -n "$TMPF" ]; then
14
    rm $TMPF
15
  fi
16
}
17

18
trap cleanup EXIT
19

20
cherry_pick () {
21
  CID=$1
22
  if ! commit_in_upstream "$CID" "$BRANCH" "${ORG}" "${REPO}"; then
23
    echo "Commit $CID not in $REM/$BRANCH!"
24
    exit 1
25
  fi
26
  TMPF=`mktemp cp.XXXXXX`
27
  FROM=`git show --pretty=email $CID | head -n 2 | grep "From: "`
28
  FULL_ID=`git show $CID | head -n 1 | cut -f 2 -d ' '`
29
  git format-patch -1 $FULL_ID --stdout | sed '/^$/Q' > $TMPF
30
  echo "" >> $TMPF
31
  echo "[ upstream commit $FULL_ID ]" >> $TMPF
32
  git format-patch -1 $FULL_ID --stdout | sed -n '/^$/,$p' >> $TMPF
33
  echo "Applying: $(git log -1 --oneline $FULL_ID)"
34
  git am --quiet -3 --signoff $TMPF
35
}
36

37
main () {
38
  REM="$(get_remote "${ORG}" "${REPO}")"
39
  for CID in "$@"; do
40
    cherry_pick "$CID"
41
  done
42
}
43

44
if [ $# -lt 1 ]; then
45
  echo "Usage: $0 <commit-id> [commit-id ...]"
46
  exit 1
47
fi
48

49
main "$@"
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.