about summary refs log tree commit diff
path: root/scripts
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2020-11-04 19:06:13 +0100
committerbjorn3 <bjorn3@users.noreply.github.com>2020-11-06 19:33:54 +0100
commit777c9dabc05d951ff59749a32fdc870597325d8e (patch)
tree78512b37e9b56bdf54d08566a712eab4d2cd34ca /scripts
parent19931e2d87a08017b3aca869e8482c9b995f04a3 (diff)
downloadrust-777c9dabc05d951ff59749a32fdc870597325d8e.tar.gz
rust-777c9dabc05d951ff59749a32fdc870597325d8e.zip
Add rustup pull command
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/rustup.sh30
1 files changed, 23 insertions, 7 deletions
diff --git a/scripts/rustup.sh b/scripts/rustup.sh
index faf8325cfcd..430f5c469b4 100755
--- a/scripts/rustup.sh
+++ b/scripts/rustup.sh
@@ -27,14 +27,30 @@ case $1 in
         git commit -m "Rustup to $(rustc -V)"
         ;;
     "push")
-	cg_clif=$(pwd)
-	pushd ../rust
-	branch=update_cg_clif-$(date +%Y-%m-%d)
-	git checkout -b "$branch"
-	git subtree pull --prefix=compiler/rustc_codegen_cranelift/ https://github.com/bjorn3/rustc_codegen_cranelift.git master
-	git push -u my "$branch"
-	popd
+        cg_clif=$(pwd)
+        pushd ../rust
+        git pull origin master
+        branch=sync_cg_clif-$(date +%Y-%m-%d)
+        git checkout -b "$branch"
+        git subtree pull --prefix=compiler/rustc_codegen_cranelift/ https://github.com/bjorn3/rustc_codegen_cranelift.git master
+        git push -u my "$branch"
+
+        # immediately merge the merge commit into cg_clif to prevent merge conflicts when syncing
+        # from rust-lang/rust later
+        git subtree push --prefix=compiler/rustc_codegen_cranelift/ "$cg_clif" sync_from_rust
+        popd
+        git merge sync_from_rust
 	;;
+    "pull")
+        cg_clif=$(pwd)
+        pushd ../rust
+        git pull origin master
+        rust_vers="$(git rev-parse HEAD)"
+        git subtree push --prefix=compiler/rustc_codegen_cranelift/ "$cg_clif" sync_from_rust
+        popd
+        git merge sync_from_rust -m "Sync from rust $rust_vers"
+        git branch -d sync_from_rust
+        ;;
     *)
         echo "Unknown command '$1'"
         echo "Usage: ./rustup.sh prepare|commit"