Rebase steed on top of rust/libstd
anatol opened this issue · 2 comments
Currently steed
source tree is based on some mix of rust's libstd
sources manually handpicked at different periods of time. Copying files one-by-one and maintaining tree up-to-date consumes time. There were several breakages recently that required copying changes from Rust master
branch to steed.
In instead of maintaining source parity this way I propose to rebase steed
changes on top of libstd
. I tried to make a proof-of-concept, extracted libstd
out of rust master branch, moved some changes from steed
and I was able to compile static "hello world" example successfully. It works great.
Here is a git command that extracts libstd
from Rust sources:
git filter-branch --prune-empty --subdirectory-filter src/libstd && git filter-branch -f --tree-filter 'mkdir -p src; mv * src; mv src/Cargo.toml .; true'
Developing steed on top of upstream libstd
has following advantages:
- bringing upstream changes simplified and becomes automatic
- it is much easier to see delta between upstream
libstd
and steed. Keeping this delta small will help in the future when merging libc-less support back to upstream
becomes automatic
Will still have merge conflicts.
I fear that we lose the benefits of VCS when we do this.
If both upstream and steed
modifies the same code then yes there will be a merge conflict that needs to be resolved. Using git will help to identify such conflicting changes easily. But most of the upstream changes are non-conflicting and git will merge them automatically.
I fear that we lose the benefits of VCS when we do this.
I am not following this sentence. I actually propose to use git to do merges for us instead of bringing upstream changes by copy-pasting in an editor (like it is done now).