-
Notifications
You must be signed in to change notification settings - Fork 83
/
Copy pathsubtree-sync.sh
executable file
·52 lines (41 loc) · 1.34 KB
/
subtree-sync.sh
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
set -eou pipefail
git fetch origin
pushd $2
git fetch origin
popd
if [ "$(git rev-parse --show-prefix)" != "" ]; then
echo "Run this script from the git root" >&2
exit 1
fi
if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/master)" ]; then
echo "$(pwd) is not at origin/master" >&2
exit 1
fi
if [ ! -f library/portable-simd/git-subtree.sh ]; then
curl -sS https://raw.githubusercontent.com/bjorn3/git/tqc-subtree-portable/contrib/subtree/git-subtree.sh -o library/portable-simd/git-subtree.sh
chmod +x library/portable-simd/git-subtree.sh
fi
today=$(date +%Y-%m-%d)
case $1 in
"push")
upstream=rust-upstream-$today
merge=sync-from-rust-$today
pushd $2
git checkout master
git pull
popd
library/portable-simd/git-subtree.sh push -P library/portable-simd $2 $upstream
pushd $2
git checkout -B $merge origin/master
git merge $upstream
popd
echo "Branch \`$merge\` created in \`$2\`. You may need to resolve merge conflicts."
;;
"pull")
branch=sync-from-portable-simd-$today
git checkout -B $branch
echo "Creating branch \`$branch\`... You may need to resolve merge conflicts."
library/portable-simd/git-subtree.sh pull -P library/portable-simd $2 origin/master
;;
esac