Support sync of a single repository into the VMR (#15569)
This commit is contained in:
parent
ccb3d41d0c
commit
a18c9247f4
7 changed files with 134 additions and 73 deletions
|
@ -14,6 +14,8 @@ This Codespace can help you debug the source build of .NET. In case you have run
|
|||
the VMR which is what the VMR leg in the installer PR build doing. This build takes about 45
|
||||
minutes and, after completion, produces an archived .NET SDK in `/workspaces/artifacts/x64/Release`.
|
||||
|
||||
## Build the SDK
|
||||
|
||||
To build the VMR, run following:
|
||||
```bash
|
||||
cd /workspaces/dotnet
|
||||
|
@ -22,6 +24,38 @@ unset RepositoryName
|
|||
```
|
||||
|
||||
> Please note that, at this time, the build modifies some of the checked-in sources so it might
|
||||
be preferential to rebuild the Codespace between attempts.
|
||||
be preferential to rebuild the Codespace between attempts (or reset the working tree changes).
|
||||
|
||||
For more details, see the instructions at https://github.com/dotnet/dotnet.
|
||||
|
||||
## Synchronize your changes in locally
|
||||
|
||||
When debugging the build, you have two options how to test your changes in this environment.
|
||||
|
||||
### Making changes to the VMR directly
|
||||
|
||||
You can make the changes directly to the local checkout of the VMR at `/workspaces/dotnet`. You
|
||||
can then try to build the VMR and see if the change works for you.
|
||||
|
||||
### Pull changes into the local VMR
|
||||
|
||||
You can also make a fix in the individual source repository (e.g. `dotnet/runtime`) and push the
|
||||
fix into a branch (can be in your fork too). Once you have the commit pushed, you can pull this
|
||||
version of the repository into the VMR locally.
|
||||
|
||||
Let's consider you pushed a commit with SHA `abcdef` into your fork at `github.com/yourfork/runtime`.
|
||||
You can now bring this version of runtime into the local VMR in this Codespace by running:
|
||||
|
||||
```bash
|
||||
cd /workspaces/installer
|
||||
./eng/vmr-sync.sh \
|
||||
--vmr /workspaces/dotnet \
|
||||
--tmp /workspaces/tmp \
|
||||
--repository runtime:abcdef \
|
||||
--remote runtime:https://github.com/yourfork/runtime
|
||||
```
|
||||
|
||||
You can now proceed building the VMR in the Codespace using instructions above. You can repeat
|
||||
this process and sync a new commit from your fork. Only note that, at this time, Source-Build
|
||||
modifies some of the checked-in sources so you'll need to revert the working tree changes
|
||||
between attempts.
|
||||
|
|
|
@ -17,7 +17,11 @@ git -C "$installer_dir" fetch --all --unshallow
|
|||
|
||||
# We will try to figure out, which branch is the current (PR) branch based off of
|
||||
# We need this to figure out, which VMR branch to use
|
||||
vmr_branch=$(git log --pretty=format:'%D' HEAD^ | grep 'origin/' | head -n1 | sed 's@origin/@@' | sed 's@,.*@@')
|
||||
vmr_branch=$(git -C "$installer_dir" log --pretty=format:'%D' HEAD^ \
|
||||
| grep 'origin/' \
|
||||
| head -n1 \
|
||||
| sed 's@origin/@@' \
|
||||
| sed 's@,.*@@')
|
||||
|
||||
pushd "$installer_dir"
|
||||
"./eng/vmr-sync.sh" \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue