Merge pull request #2282 from jieyouxu/fetch-prunetags

Document `fetch.prunetags = true` gotcha during rustc-pull
This commit is contained in:
Jakub Beránek 2025-03-13 09:49:22 +01:00 committed by GitHub
commit 721a2a08e2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 13 additions and 0 deletions

View File

@ -82,6 +82,7 @@ cargo +stable install josh-proxy --git https://github.com/josh-project/josh --ta
Older versions of `josh-proxy` may not round trip commits losslessly so it is important to install this exact version. Older versions of `josh-proxy` may not round trip commits losslessly so it is important to install this exact version.
### Pull changes from `rust-lang/rust` into this repository ### Pull changes from `rust-lang/rust` into this repository
1) Checkout a new branch that will be used to create a PR into `rust-lang/rustc-dev-guide` 1) Checkout a new branch that will be used to create a PR into `rust-lang/rustc-dev-guide`
2) Run the pull command 2) Run the pull command
``` ```
@ -95,3 +96,15 @@ Older versions of `josh-proxy` may not round trip commits losslessly so it is im
$ cargo run --manifest-path josh-sync/Cargo.toml rustc-push <branch-name> <gh-username> $ cargo run --manifest-path josh-sync/Cargo.toml rustc-push <branch-name> <gh-username>
``` ```
2) Create a PR from `<branch-name>` into `rust-lang/rust` 2) Create a PR from `<branch-name>` into `rust-lang/rust`
#### Minimal git config
For simplicity (ease of implementation purposes), the josh-sync script simply calls out to system git. This means that the git invocation may be influenced by global (or local) git configuration.
You may observe "Nothing to pull" even if you *know* rustc-pull has something to pull if your global git config sets `fetch.prunetags = true` (and possibly other configurations may cause unexpected outcomes).
To minimize the likelihood of this happening, you may wish to keep a separate *minimal* git config that *only* has `[user]` entries from global git config, then repoint system git to use the minimal git config instead. E.g.
```
$ GIT_CONFIG_GLOBAL=/path/to/minimal/gitconfig GIT_CONFIG_SYSTEM='' cargo +stable run --manifest-path josh-sync/Cargo.toml -- rustc-pull
```