11#! /bin/bash
22ORIGIN=" https://github.com/rust-lang"
3+ LLVM_FORK=" https://github.com/borrow-sanitizer/llvm-project.git"
34RUST_UPSTREAM=" $ORIGIN /rust.git"
45LLVM_UPSTREAM=" $ORIGIN /llvm-project.git"
5- BRANCH=" bsan"
6-
7- git checkout $BRANCH || exit
6+ MAIN_BRANCH=" bsan"
7+ BASE_TAG=" base"
8+ BASE_COMMIT=$( git rev-list -n 1 $BASE_TAG )
9+ git checkout " $MAIN_BRANCH " || exit
810
911init_upstream () {
1012 local upstream=$1
3234
3335NIGHTLY_TOOLCHAIN=" nightly-$DATE "
3436git submodule update --init --no-recommend-shallow src/llvm-project
35-
3637(cd src/llvm-project && init_upstream $LLVM_UPSTREAM )
3738init_upstream $RUST_UPSTREAM
38- git branch -D nightly & > /dev/null
39+ git branch -D nightly
3940git checkout -b nightly " $NIGHTLY_COMMIT_HASH " || exit
40-
4141git submodule update --rebase src/llvm-project
42- if ! git diff-index --quiet HEAD --; then
43- git add src/llvm-project
44- git commit -m " $NIGHTLY_TOOLCHAIN "
45- fi
46-
47- git checkout $BRANCH || exit
48- git rebase nightly || exit
42+ git submodule set-url -- src/llvm-project $LLVM_FORK
43+ git submodule set-branch --branch $MAIN_BRANCH -- src/llvm-project
44+ git add src/llvm-project .gitmodules
45+ git commit -m " $NIGHTLY_TOOLCHAIN "
46+ git tag -D $BASE_TAG
47+ git tag -a $BASE_TAG -m " $NIGHTLY_TOOLCHAIN "
48+ git checkout " $MAIN_BRANCH " || exit
49+ git rebase --onto nightly " $BASE_COMMIT " $MAIN_BRANCH || exit
0 commit comments