rustc_codegen_gcc
is a subtree of the rust compiler. As such, it needs to be sync from time to time to ensure changes that happened on their side are also included on our side.
Using git-subtree with rustc
requires a patched git to make it work. The PR that is needed is here. Use the following instructions to install it:
git clone git@github.com:tqc/git.git cd git git checkout tqc/subtree make make install cd contrib/subtree make cp git-subtree ~/bin
Do a sync with this command:
PATH="$HOME/bin:$PATH" ~/bin/git-subtree push -P compiler/rustc_codegen_gcc/ ../rustc_codegen_gcc/ sync_branch_name cd ../rustc_codegen_gcc git checkout master git pull git checkout sync_branch_name git merge master
To send the changes to the rust repo:
cd ../rust git pull origin master git checkout -b subtree-update_cg_gcc_YYYY-MM-DD PATH="$HOME/bin:$PATH" ~/bin/git-subtree pull --prefix=compiler/rustc_codegen_gcc/ https://github.com/rust-lang/rustc_codegen_gcc.git master git push # Immediately merge the merge commit into cg_gcc to prevent merge conflicts when syncing from rust-lang/rust later. PATH="$HOME/bin:$PATH" ~/bin/git-subtree push -P compiler/rustc_codegen_gcc/ ../rustc_codegen_gcc/ sync_branch_name
TODO: write a script that does the above.