docs(ci): merge-main fallback when git is older than 2.46

LA
3d ago
+52-0

Summary

This adds a section to docs/ci/merge-main.md: what to do when git is older than 2.46. The merge-main resolver needs attr.tree (git 2.46), and the Linux agent VMs have git 2.43, so scripts/merge-main.sh stops there. The lead agreed that a plain git merge of the base meets the intent of the rule.

The fallback has these limits:

  • Use it only on a branch whose head you trust.
  • Make a merge commit only: no rebase and no force push.
  • Never merge a generated file by hand.
  • Run the checks of the area before you push.
  • Get a new receipt at the merge head, because next-autoland carries a receipt only across a cmux-bot base merge.

This is the path #33161 took, with the reviewer's confirmation at its merge head.

Observed / Not run

Docs only. prepush-gate.py is clean. Nothing else was run.

Changelog

none


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Adds a section to docs/ci/merge-main.md covering the fallback when git is older than 2.46, which the merge-main resolver requires (attr.tree). The Linux agent VMs ship git 2.43, so scripts/merge-main.sh stops there, and a plain git merge of the base now meets the rule's intent.

The fallback applies only to trusted branches, permits merge commits only (no rebase, squash, or force push), and requires regenerating generated files rather than hand-merging them. On main, merge the last green commit that --dry-run reports, not the tip, and confirm the trusted merge drivers are present, installing them via scripts/install-git-hooks.sh if not. It also mandates running the area's checks before pushing and getting a new receipt at the merge head, since next-autoland carries receipts only across its own cmux-bot base merges.