Skip to content

Commit eb2771f

Browse files
committed
fixup! AGENTS.md: adapt it to the Microsoft Git fork
1 parent 037025d commit eb2771f

1 file changed

Lines changed: 69 additions & 6 deletions

File tree

AGENTS.md

Lines changed: 69 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,51 @@ gets squashed into.
10021002

10031003
Run affected tests before finalizing.
10041004

1005+
### GitHub Actions Version Bumps (Dependabot)
1006+
1007+
The repository uses Dependabot to monitor GitHub Actions versions
1008+
(configured in `.github/dependabot.yml`). When Dependabot proposes
1009+
version bumps, the resulting changes must be split by ownership layer,
1010+
because each layer is handled differently during rebases.
1011+
1012+
There are three ownership layers for workflows in this repository:
1013+
1014+
1. **Upstream Git**: Core CI workflows and jobs that exist in the upstream
1015+
Git project (e.g., the core jobs in `.github/workflows/main.yml`,
1016+
`.github/workflows/check-whitespace.yml`).
1017+
2. **Git for Windows**: Additional workflows and workflow sections added
1018+
by Git for Windows on top of upstream (e.g., GfW-specific jobs in
1019+
`main.yml`, `.github/workflows/check-style.yml`,
1020+
`.github/workflows/l10n.yml`).
1021+
3. **Microsoft Git**: Fork-specific workflows added by the Microsoft Git
1022+
fork (e.g., `.github/workflows/build-git-installers.yml`,
1023+
`.github/workflows/release-*.yml`,
1024+
`.github/workflows/scalar-functional-tests.yml`,
1025+
`.github/workflows/vfs-functional-tests.yml`).
1026+
1027+
Ownership is determined **per changed line/section**, not per file.
1028+
A single workflow file like `main.yml` contains sections owned by all
1029+
three layers. Use `git blame` or `git log -L` on the changed lines to
1030+
determine which downstream commit introduced them.
1031+
1032+
**How to handle each layer:**
1033+
1034+
- **Upstream Git**: Create standalone commits with rewritten commit
1035+
messages (not the auto-generated Dependabot text). The message must
1036+
include a risk analysis: what the new version changes, whether it
1037+
affects our usage, and any preconditions (e.g., minimum runner
1038+
version). These commits are intended to be submitted upstream via
1039+
GitGitGadget.
1040+
- **Git for Windows**: Create `fixup!` commits targeting the Git for
1041+
Windows commit that introduced the affected workflow or section. Use
1042+
`git log -L` or `git blame` to find the right target.
1043+
- **Microsoft Git**: Create `fixup!` commits targeting the Microsoft
1044+
Git commit that introduced the affected workflow or section.
1045+
1046+
When a single Dependabot update touches lines from multiple layers,
1047+
**split the changes into separate commits**, one per layer. Each commit
1048+
follows the rules for its respective layer.
1049+
10051050
### Common Adaptation Patterns
10061051

10071052
**Struct field moves**: When upstream moves fields between structs, update
@@ -1094,12 +1139,30 @@ with a cast for `size_t` values.
10941139
10951140
## Configuration Options
10961141
1097-
| Config | Purpose |
1098-
|----------------------|--------------------------------------------|
1099-
| `core.useGVFSHelper` | Enable GVFS helper for object fetching |
1100-
| `gvfs.sharedCache` | Path to shared object cache directory |
1101-
| `gvfs.cache-server` | URL of GVFS cache server |
1102-
| `gvfs.fallback` | Whether to fall back to origin if CS fails |
1142+
### GVFS-specific
1143+
1144+
| Config | Purpose |
1145+
|------------------------|--------------------------------------------|
1146+
| `core.useGVFSHelper` | Enable GVFS helper for object fetching |
1147+
| `gvfs.sharedCache` | Path to shared object cache directory |
1148+
| `gvfs.cache-server` | URL of GVFS cache server |
1149+
| `gvfs.fallback` | Whether to fall back to origin if CS fails |
1150+
| `gvfs.sessionKey` | Custom session key for GVFS HTTP headers |
1151+
| `gvfs.prefetchThreads` | Parallel index-pack processes for prefetch |
1152+
1153+
### Rename detection and blame
1154+
1155+
These configuration options are downstream enhancements that do not
1156+
exist in upstream Git (yet).
1157+
1158+
| Config | Purpose |
1159+
|--------------------------|------------------------------------------|
1160+
| `diff.renameThreshold` | Min similarity for rename detection |
1161+
| `merge.renameThreshold` | Override for merges |
1162+
| `status.renameThreshold` | Override for status |
1163+
| `blame.renames` | Enable/disable rename following in blame |
1164+
| `blame.renameThreshold` | Min similarity for blame renames |
1165+
| `blame.renameLimit` | Limit on blame rename detection candidates |
11031166
11041167
## Contributing to Upstream Git via GitGitGadget
11051168

0 commit comments

Comments
 (0)