Commit Graph

1 Commits

Author SHA1 Message Date
vasilito 6fd13f3e28 phase 3.5: add push-fork-branches.sh — operator-reviewed fork push helper
After 3 rounds of patch-preservation work, multiple fork branches
have new commits that need to reach origin's submodule/<name> refs:

  fork          local-vs-origin  state
  base          2564 ahead, 190 behind    significant divergence
  bootloader    10 ahead, 128 behind     927 vs 77 file divergence
  installer     61 ahead, 0 behind       ready to force-push
  kernel        45 ahead, 0 behind       ready to force-push
  libredox      69 ahead, 11 behind      fast-forward possible
  relibc        3434 ahead, 60 behind    significant divergence
  syscall       1 ahead, 0 behind        ready to force-push
  userutils     202 ahead, 12 behind     merge decisions needed

This script provides:
1. Status table showing ahead/behind for each fork
2. Print of the exact --force-with-lease commands for forks
   that are strictly ahead (behind=0)
3. NO-OP default mode (must use --execute to actually push)
4. A 5-second abort window if --execute is used

Per AGENTS.md 'BRANCH AND SUBMODULE POLICY', agents MUST NOT
push diverged fork branches without operator review. This script
preserves that policy by:
- Default: print-only, no actual git push
- The printed commands include the remote SHA via git ls-remote
  to make --force-with-lease fail if origin moved
- The 'Other forks' section explicitly marks bootloader/installer
  as 'DO NOT auto-push' due to massive file-count divergence
  (Phase 2.4+ work)

Implementation notes:
- Uses 'local_sha..remote_sha' / 'remote_sha..local_sha' form
  to avoid the 'ambiguous HEAD' error in submodule working
  trees (the fork tree has a stale symlink that confuses git
  revision parsing — see commit history if that needs fixing)
- behind=0 and ahead>0 are the only cases the script marks
  'REVIEW_NEEDED' — behind>0 forks need merge decisions
2026-07-12 02:38:12 +03:00