Willian Fernandes Santos
91096bb2f0
feat(update): update branches carrying unmerged commits in place instead of skipping
...
The parked-branch guard (8ce8ffd429 ) distinguishes checkouts by what the
branch carries, then treats both non-clean cases the same: a stale
fully-merged leftover is switched back to the target (correct), but a
branch with unmerged commits — a branch someone is actually working on —
gets CODE UPDATE SKIPPED and exit 1. For anyone running a maintained
custom branch on top of main, every update now refuses, and the guidance
('checkout main') abandons their branch.
The guard's own reason codes already separate the cases, so use them:
- fully merged -> switch back to the target (unchanged)
- unmerged:N -> update the branch IN PLACE: fetch, then bring
origin/<target> into the checkout. Fast-forward
when possible; on divergence, a true merge behind
a pre-update safety tag, stopping cleanly on
conflict. The checkout never moves; local commits
survive; the running code advances.
- dirty/unverifiable/opted out -> skip loudly (unchanged)
The post-pull success gate learns that an in-place update legitimately
ends on a non-target branch: origin/<target> was merged INTO the checkout,
so refusing to claim success there would fail every update that did
exactly the right thing.
Guard tests updated: the unmerged case now asserts the in-place outcome —
target code arrives (b.txt from c3), the branch's own commit survives, and
HEAD never moves. 18/18 guard tests, 20/20 with the diverged-update suite.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-21 15:23:49 -07:00
..
2026-08-14 21:39:01 +00:00
2026-08-12 18:52:08 -07:00
2026-08-18 20:42:06 -04:00
2026-07-22 16:51:01 -04:00
2026-08-21 12:48:53 -07:00
2026-08-18 02:27:18 -07:00
2026-08-21 05:16:27 -07:00
2026-08-15 03:54:07 -07:00
2026-08-19 13:11:35 -05:00
2026-08-19 16:32:17 -07:00
2026-08-16 02:03:22 -07:00
2026-08-20 03:05:46 -07:00
2026-08-16 06:32:08 -07:00
2026-08-15 00:33:01 -07:00
2026-08-02 14:55:32 +05:30
2026-08-08 23:56:46 -07:00
2026-07-26 21:13:03 -07:00
2026-08-12 16:26:55 -07:00
2026-08-07 08:57:39 -07:00
2026-08-07 08:57:39 -07:00
2026-08-19 19:34:36 -07:00
2026-08-21 14:38:41 -07:00
2026-07-11 12:28:55 +05:30
2026-08-21 14:39:02 -07:00
2026-07-31 21:21:20 -07:00
2026-08-17 15:47:17 -07:00
2026-08-07 17:45:06 +05:30
2026-07-29 23:16:18 -07:00
2026-08-20 21:54:25 -07:00
2026-08-19 19:34:36 -07:00
2026-08-02 20:21:59 -07:00
2026-08-08 15:10:35 +05:30
2026-08-16 06:32:08 -07:00
2026-08-19 16:32:17 -07:00
2026-07-29 11:53:39 -07:00
2026-08-20 01:46:08 -07:00
2026-08-19 19:34:36 -07:00
2026-07-29 08:42:16 -07:00
2026-08-18 12:51:36 -07:00
2026-07-01 23:51:54 +05:30
2026-08-20 04:30:33 -07:00
2026-08-21 15:23:49 -07:00
2026-08-19 08:52:03 -07:00
2026-08-20 04:50:39 -07:00
2026-08-20 03:05:46 -07:00
2026-08-01 10:52:34 -07:00
2026-07-22 21:17:21 -07:00
2026-08-19 19:22:48 -07:00
2026-07-19 03:02:21 -07:00
2026-08-20 19:56:14 -07:00
2026-08-16 22:06:41 -07:00
2026-08-10 15:13:29 -04:00
2026-08-16 10:51:50 -07:00
2026-06-27 21:30:37 -07:00
2026-08-04 11:53:32 -06:00
2026-06-24 18:56:26 -07:00
2026-08-13 02:38:28 -07:00
2026-06-30 17:29:23 -07:00
2026-07-07 04:09:35 -07:00
2026-08-13 02:38:28 -07:00
2026-08-19 23:03:58 -07:00
2026-08-19 16:16:37 -07:00
2026-08-15 13:28:14 -07:00
2026-07-26 23:41:54 -07:00
2026-07-31 22:35:26 -07:00
2026-07-26 18:10:34 -07:00
2026-08-20 02:06:05 -07:00
2026-08-21 14:13:28 +10:00
2026-08-16 06:26:12 -07:00
2026-08-22 03:10:32 +05:30
2026-08-15 04:33:47 -07:00
2026-08-21 02:48:14 +08:00
2026-08-05 11:47:05 -04:00
2026-08-18 16:08:29 -07:00
2026-08-13 23:10:16 +05:30
2026-07-26 17:46:29 -07:00
2026-07-15 07:39:42 -07:00
2026-08-21 14:38:41 -07:00
2026-07-01 16:25:48 -05:00
2026-08-17 14:16:21 +05:30
2026-07-15 07:39:17 -07:00
2026-08-10 12:43:46 -07:00
2026-07-15 07:39:17 -07:00
2026-08-10 12:43:46 -07:00
2026-08-17 14:16:21 +05:30
2026-07-27 21:10:51 -07:00
2026-08-21 13:41:39 -07:00
2026-07-05 13:42:46 -07:00
2026-08-18 16:08:29 -07:00
2026-08-21 15:23:49 -07:00
2026-06-19 07:46:33 -07:00
2026-08-14 22:37:46 -07:00
2026-08-15 02:03:24 -07:00
2026-08-16 02:24:32 -07:00
2026-06-21 19:05:27 -07:00
2026-08-07 09:44:21 -07:00
2026-08-02 22:44:38 +05:30
2026-06-22 19:16:47 -05:00
2026-08-19 23:15:01 -07:00
2026-07-29 11:53:39 -07:00
2026-08-12 21:50:35 -07:00
2026-08-12 21:50:35 -07:00
2026-08-01 14:52:18 -07:00
2026-08-14 01:31:31 -07:00
2026-08-14 01:06:13 -07:00
2026-08-20 20:21:12 -07:00
2026-08-21 14:38:19 -07:00
2026-08-14 01:06:13 -07:00
2026-08-21 00:24:32 -07:00
2026-08-21 04:39:31 -07:00
2026-08-21 15:02:29 -07:00
2026-08-07 19:47:40 +05:30
2026-06-21 22:43:48 -07:00
2026-07-29 10:13:50 -07:00
2026-08-19 22:44:11 -07:00
2026-08-14 21:35:30 -07:00
2026-07-29 10:14:11 -07:00
2026-08-19 19:41:52 -07:00
2026-07-29 17:51:40 -05:00
2026-07-02 05:10:31 -07:00
2026-08-09 10:33:58 -07:00
2026-08-15 00:32:44 -07:00
2026-08-12 20:10:51 -07:00
2026-08-12 20:10:51 -07:00
2026-08-12 18:39:22 -07:00
2026-08-12 18:52:08 -07:00
2026-08-12 19:56:44 -07:00
2026-08-19 19:34:36 -07:00
2026-08-19 08:52:03 -07:00
2026-07-28 22:42:19 -07:00
2026-08-20 04:47:38 -07:00
2026-07-15 07:39:17 -07:00
2026-08-06 05:00:17 +05:30
2026-08-21 12:48:53 -07:00
2026-06-25 16:40:26 -05:00
2026-08-15 00:33:11 -07:00
2026-08-16 06:24:56 -07:00
2026-07-31 21:21:16 -07:00
2026-08-21 00:24:32 -07:00
2026-08-21 00:24:32 -07:00
2026-07-29 11:53:39 -07:00
2026-08-20 12:16:20 +05:30
2026-07-29 10:14:11 -07:00
2026-08-14 13:51:26 -07:00
2026-06-27 15:59:00 -07:00
2026-08-19 08:52:03 -07:00
2026-08-10 17:02:56 -07:00
2026-07-29 17:13:48 +05:30
2026-08-21 15:02:29 -07:00
2026-08-15 01:55:22 -07:00
2026-07-29 11:53:39 -07:00
2026-08-01 10:47:20 -07:00
2026-08-08 12:32:23 -07:00
2026-08-14 21:07:21 -07:00
2026-08-15 02:04:49 -07:00
2026-07-07 12:36:41 -07:00
2026-08-15 02:04:49 -07:00
2026-07-26 19:30:21 -07:00
2026-07-31 22:36:55 -07:00
2026-08-15 00:31:37 -07:00
2026-07-17 04:53:38 -07:00
2026-08-12 19:43:47 -07:00
2026-08-20 02:06:05 -07:00
2026-07-26 08:43:24 -07:00
2026-08-19 19:34:36 -07:00
2026-08-21 04:00:16 -07:00
2026-08-08 15:10:35 +05:30
2026-07-09 19:57:54 -07:00
2026-08-19 19:34:36 -07:00
2026-08-05 11:59:33 +05:30
2026-07-21 21:00:43 -05:00
2026-07-29 09:33:48 -07:00
2026-08-18 02:27:18 -07:00
2026-07-24 16:00:03 -07:00
2026-07-31 23:18:12 -07:00
2026-06-25 16:40:26 -05:00
2026-08-07 08:58:14 -07:00
2026-08-16 01:54:35 -07:00
2026-08-07 17:45:06 +05:30
2026-08-15 18:15:18 -07:00
2026-08-02 16:16:36 -07:00
2026-08-20 04:08:57 -07:00
2026-08-19 16:48:40 -07:00
2026-07-29 11:53:39 -07:00
2026-08-06 05:00:17 +05:30
2026-08-21 15:23:49 -07:00
2026-08-21 04:23:13 -07:00
2026-07-31 22:28:46 -07:00
2026-08-21 03:44:55 -07:00
2026-08-14 16:43:37 -07:00
2026-07-29 19:48:37 -07:00
2026-08-07 10:11:05 -07:00
2026-08-15 01:05:39 -07:00
2026-07-29 16:21:54 -07:00
2026-08-16 20:53:44 -07:00
2026-08-15 01:21:40 -07:00
2026-08-21 22:33:45 +05:30
2026-07-24 11:45:57 -07:00
2026-07-29 10:14:11 -07:00
2026-08-01 14:30:16 -07:00
2026-08-19 23:55:20 -07:00
2026-08-19 23:55:20 -07:00
2026-08-06 05:00:17 +05:30