gsxdsm
bdfe620fab
fix(FN-5456): tighten branch-autocorrect verify and add real-git regression
...
Follow-up to a3ec2e55c addressing code-review feedback:
- Restrict the existence check to local heads via
`git show-ref --verify --quiet refs/heads/<name>` so a stray tag or
remote ref with the same name cannot satisfy the check and lead the
subsequent `git checkout` to a detached HEAD on the wrong object.
- Use `git branch -M` (force) instead of `-m` for the rename path so
case-only renames succeed on case-insensitive filesystems (macOS,
default Windows).
- Document the FN-5456 invariant on the function's doc comment.
- Add a real-git regression suite covering the three paths the fix
governs: no creation when expected ref is missing, switch-only when
it exists, and rejection of same-named tags.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 21:40:40 -07:00
..
2026-05-21 00:17:33 -07:00
2026-05-16 23:31:56 -07:00
2026-05-21 12:04:58 -07:00
2026-05-22 21:40:40 -07:00
2026-05-16 20:54:39 -07:00
2026-05-06 17:25:19 -07:00
2026-05-21 09:06:23 -07:00
2026-05-15 07:55:22 -07:00
2026-05-11 06:47:42 -07:00
2026-05-13 06:29:34 -07:00
2026-05-01 00:33:17 -07:00
2026-05-14 13:59:10 -07:00
2026-05-14 03:23:42 -07:00
2026-05-13 06:29:34 -07:00
2026-05-13 23:41:35 -07:00
2026-05-11 21:48:26 -07:00
2026-05-13 23:41:35 -07:00
2026-04-24 19:39:20 -07:00
2026-05-10 16:03:32 -04:00
2026-05-05 06:32:33 -07:00
2026-05-20 02:48:39 -07:00
2026-05-22 00:15:14 -07:00
2026-05-10 23:36:10 -07:00
2026-04-25 13:21:02 -07:00
2026-05-18 23:50:00 -07:00
2026-05-08 19:15:10 -07:00
2026-05-18 19:44:33 -07:00
2026-05-18 23:50:00 -07:00
2026-05-18 23:50:00 -07:00
2026-05-10 23:36:10 -07:00
2026-05-08 18:59:08 -07:00
2026-05-18 19:44:33 -07:00
2026-05-05 20:51:44 -07:00
2026-05-20 02:47:34 -07:00
2026-05-14 01:10:47 -07:00
2026-05-16 23:44:47 -07:00
2026-05-17 17:07:01 -07:00
2026-05-14 22:16:44 -07:00
2026-05-15 16:19:42 -07:00
2026-05-18 12:31:21 -07:00
2026-05-20 08:23:40 -07:00
2026-05-22 21:40:40 -07:00
2026-05-18 23:14:27 -07:00
2026-05-16 22:36:57 -07:00
2026-05-17 17:29:29 -07:00
2026-05-17 17:29:29 -07:00
2026-05-14 11:23:43 -07:00
2026-05-16 22:36:57 -07:00
2026-05-21 19:20:33 -07:00
2026-05-12 07:47:10 -07:00
2026-05-03 11:06:27 -07:00
2026-05-20 20:05:08 -07:00
2026-05-16 20:48:00 -07:00
2026-05-07 17:26:51 +02:00
2026-05-19 03:21:17 -07:00
2026-05-06 18:04:19 -07:00
2026-04-30 10:19:54 -07:00
2026-05-16 17:31:09 -07:00
2026-05-07 23:21:05 -07:00
2026-04-30 19:11:38 -07:00
2026-05-12 20:39:01 -07:00
2026-05-19 22:50:39 -07:00
2026-05-13 12:30:45 -07:00
2026-05-19 19:28:05 -07:00
2026-05-13 20:03:02 -07:00
2026-05-06 19:55:55 -07:00
2026-05-18 15:51:01 -07:00
2026-05-13 18:44:41 -07:00
2026-05-18 18:26:52 -07:00
2026-05-18 08:07:06 -07:00
2026-05-17 17:29:29 -07:00
2026-05-18 05:29:10 -07:00
2026-05-18 05:29:10 -07:00
2026-05-18 00:27:44 -07:00
2026-05-18 00:27:44 -07:00
2026-05-21 09:06:23 -07:00
2026-05-18 05:29:10 -07:00
2026-05-22 20:38:11 -07:00
2026-05-16 16:01:23 -07:00
2026-05-18 02:43:32 -07:00
2026-05-14 15:25:08 -07:00
2026-05-18 02:43:33 -07:00
2026-05-18 02:43:33 -07:00
2026-05-10 23:36:09 -07:00
2026-05-21 10:14:38 -07:00
2026-05-20 02:47:34 -07:00
2026-05-21 10:58:28 -07:00
2026-05-17 00:38:07 -07:00
2026-05-18 18:26:52 -07:00
2026-05-17 00:38:07 -07:00
2026-05-20 01:01:08 -07:00
2026-05-18 02:43:33 -07:00
2026-05-18 00:27:44 -07:00
2026-05-18 05:29:10 -07:00
2026-05-22 08:31:12 -07:00
2026-05-13 22:03:38 -07:00
2026-05-21 10:14:38 -07:00
2026-05-12 07:47:10 -07:00
2026-05-18 08:07:06 -07:00
2026-05-21 09:06:23 -07:00
2026-05-17 15:02:35 -07:00
2026-05-20 16:43:27 -07:00
2026-05-14 00:58:44 -07:00
2026-05-14 04:25:06 -07:00
2026-05-14 04:01:49 -07:00
2026-05-14 04:01:49 -07:00
2026-05-14 04:25:06 -07:00
2026-05-14 00:58:44 -07:00
2026-05-20 15:54:44 -07:00
2026-05-20 15:54:44 -07:00
2026-05-03 23:08:05 -07:00
2026-05-14 04:01:49 -07:00
2026-05-11 06:47:42 -07:00
2026-05-15 20:24:58 -07:00
2026-04-30 00:20:51 -07:00
2026-05-20 14:28:45 -07:00
2026-05-20 20:15:43 -07:00
2026-05-16 09:36:39 -07:00
2026-05-14 04:32:42 -07:00
2026-05-14 04:32:43 -07:00
2026-05-21 00:17:33 -07:00
2026-05-13 16:38:00 -07:00
2026-05-18 21:08:04 -07:00
2026-05-13 06:29:34 -07:00
2026-05-04 17:22:21 -07:00
2026-05-07 23:21:05 -07:00
2026-05-06 13:38:23 -07:00
2026-05-16 11:32:55 -07:00
2026-05-16 12:33:10 -07:00
2026-05-16 11:32:55 -07:00
2026-05-16 17:31:09 -07:00
2026-05-16 14:23:14 -07:00
2026-05-15 02:23:26 -07:00
2026-05-22 10:37:21 -07:00
2026-05-21 12:04:58 -07:00
2026-05-13 06:29:36 -07:00
2026-05-19 10:07:44 -07:00
2026-05-17 15:02:35 -07:00
2026-04-26 12:45:05 -07:00
2026-05-21 18:29:03 -07:00
2026-05-19 19:28:05 -07:00
2026-05-20 09:42:40 -07:00
2026-05-18 06:20:52 -07:00
2026-05-18 06:20:52 -07:00
2026-05-12 17:04:33 -07:00
2026-05-16 17:08:09 -07:00
2026-05-18 21:44:35 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-22 14:38:29 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-19 23:00:11 -07:00
2026-05-20 17:54:26 -07:00
2026-05-20 09:42:40 -07:00
2026-05-22 14:38:29 -07:00
2026-05-20 09:42:40 -07:00
2026-05-18 01:30:15 -07:00
2026-05-17 00:53:02 -07:00
2026-05-21 12:04:58 -07:00
2026-05-21 14:34:59 -07:00
2026-05-22 20:20:42 -07:00
2026-05-20 09:42:40 -07:00
2026-05-17 18:45:50 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-22 20:38:11 -07:00
2026-05-20 09:42:40 -07:00
2026-05-21 14:34:59 -07:00
2026-05-21 16:30:31 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-20 09:42:40 -07:00
2026-05-17 18:45:50 -07:00
2026-05-20 09:42:40 -07:00
2026-05-12 21:52:58 -07:00
2026-05-22 20:20:42 -07:00
2026-05-22 21:32:10 -07:00
2026-05-16 23:45:17 -07:00
2026-05-12 09:41:24 -07:00
2026-05-12 09:41:24 -07:00
2026-04-24 19:39:20 -07:00
2026-05-12 17:04:33 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-05-20 02:48:39 -07:00
2026-05-07 23:21:05 -07:00
2026-05-10 19:13:05 -07:00
2026-04-29 17:30:39 -07:00
2026-05-17 09:51:49 -07:00
2026-05-13 15:15:41 -07:00
2026-05-16 13:46:42 -07:00
2026-05-07 23:21:05 -07:00
2026-05-07 18:00:18 -07:00
2026-05-16 17:31:10 -07:00
2026-05-16 23:45:17 -07:00
2026-05-07 23:21:05 -07:00
2026-04-27 11:58:31 -07:00
2026-05-06 18:04:19 -07:00
2026-05-10 19:13:05 -07:00
2026-05-15 20:24:58 -07:00
2026-05-13 06:29:36 -07:00
2026-05-15 09:08:05 -07:00
2026-05-10 16:03:32 -04:00
2026-05-12 07:47:10 -07:00
2026-05-17 16:33:19 -07:00
2026-05-17 09:07:28 -07:00
2026-05-09 13:55:05 -07:00
2026-05-17 09:07:28 -07:00
2026-05-13 06:29:35 -07:00
2026-05-07 04:17:52 -07:00
2026-05-02 00:04:29 -07:00
2026-05-13 10:45:52 -07:00
2026-05-13 23:59:19 -07:00
2026-05-17 11:39:19 -07:00
2026-05-19 19:28:05 -07:00
2026-04-24 19:39:20 -07:00
2026-05-19 22:50:39 -07:00
2026-05-20 01:16:06 -07:00
2026-05-21 18:29:03 -07:00
2026-04-24 19:39:20 -07:00
2026-04-04 13:59:08 -07:00
2026-05-10 16:03:32 -04:00
2026-05-10 16:03:32 -04:00
2026-05-10 16:03:32 -04:00
2026-04-26 02:20:28 -07:00
2026-04-24 19:39:20 -07:00
2026-04-30 10:19:54 -07:00
2026-04-24 19:39:20 -07:00
2026-05-13 21:52:40 -07:00
2026-05-04 13:17:57 -07:00
2026-05-04 13:17:57 -07:00
2026-05-15 12:51:41 -07:00
2026-05-22 08:31:12 -07:00
2026-05-14 15:25:08 -07:00
2026-05-10 16:03:32 -04:00
2026-05-21 08:43:57 -07:00
2026-05-17 02:08:01 -07:00
2026-05-21 00:17:33 -07:00
2026-05-15 16:38:45 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-05-17 13:54:32 -07:00
2026-05-20 07:44:57 -07:00
2026-04-24 19:39:20 -07:00
2026-05-15 16:19:42 -07:00
2026-05-21 17:46:54 -07:00
2026-04-30 10:19:54 -07:00
2026-04-26 16:14:35 -07:00
2026-05-20 02:48:39 -07:00
2026-05-15 16:38:45 -07:00
2026-05-15 16:38:45 -07:00
2026-05-20 23:48:57 -07:00
2026-05-13 06:29:34 -07:00
2026-05-16 23:45:17 -07:00
2026-05-16 23:45:17 -07:00
2026-05-13 06:29:33 -07:00
2026-05-22 10:58:44 -07:00
2026-05-16 21:15:10 -07:00
2026-05-17 23:29:21 -07:00
2026-05-14 05:35:35 -07:00
2026-05-21 09:06:23 -07:00
2026-05-20 16:43:27 -07:00
2026-05-17 06:23:00 -07:00
2026-05-20 16:43:27 -07:00
2026-05-22 11:32:17 -07:00
2026-05-17 17:07:01 -07:00
2026-05-20 16:43:27 -07:00
2026-05-20 16:43:27 -07:00
2026-05-20 16:43:27 -07:00
2026-05-18 12:46:23 -07:00
2026-05-13 14:22:23 -07:00
2026-05-15 11:41:35 -07:00
2026-05-21 19:15:27 -07:00
2026-05-18 18:26:52 -07:00
2026-05-14 12:44:10 -07:00
2026-05-20 01:01:08 -07:00
2026-05-13 06:29:34 -07:00
2026-05-15 16:50:00 -07:00
2026-05-18 21:54:39 -07:00
2026-05-15 21:57:57 -07:00
2026-05-21 09:06:23 -07:00
2026-05-22 10:58:44 -07:00
2026-05-02 00:04:29 -07:00
2026-05-13 22:41:29 -07:00
2026-05-06 09:43:51 -07:00
2026-04-27 08:33:03 -07:00
2026-05-17 10:45:41 -07:00
2026-04-26 12:45:05 -07:00
2026-05-20 15:54:44 -07:00
2026-05-19 01:02:38 -07:00
2026-05-14 05:55:16 -07:00
2026-05-22 08:31:12 -07:00
2026-05-19 16:15:24 -07:00
2026-05-14 05:35:35 -07:00
2026-05-12 17:24:44 -07:00
2026-05-11 11:41:19 -07:00
2026-05-14 08:24:01 -07:00
2026-04-24 19:39:20 -07:00
2026-05-10 16:03:32 -04:00
2026-05-11 12:04:20 -07:00
2026-05-17 02:46:46 -07:00
2026-05-20 14:28:45 -07:00
2026-05-20 02:46:49 -07:00
2026-05-18 00:53:24 -07:00
2026-05-15 14:45:17 -07:00
2026-05-19 01:02:38 -07:00
2026-05-20 15:54:44 -07:00
2026-05-20 01:16:06 -07:00
2026-05-19 19:23:47 -07:00
2026-05-20 02:46:49 -07:00
2026-05-20 02:46:49 -07:00
2026-04-30 05:43:13 -07:00
2026-04-24 19:39:20 -07:00
2026-05-19 19:28:05 -07:00
2026-05-10 23:36:10 -07:00
2026-05-09 10:31:04 -07:00
2026-05-08 18:59:08 -07:00
2026-05-12 17:04:33 -07:00
2026-05-15 09:31:00 -07:00
2026-05-14 12:30:19 -07:00
2026-05-14 11:15:47 -07:00
2026-05-22 08:31:12 -07:00
2026-05-17 23:29:21 -07:00
2026-05-22 08:31:12 -07:00
2026-05-18 01:50:22 -07:00
2026-05-18 11:01:32 -07:00
2026-05-15 19:37:48 -07:00
2026-05-22 08:31:12 -07:00
2026-05-19 05:57:57 -07:00
2026-05-18 01:50:24 -07:00
2026-05-22 08:31:12 -07:00
2026-04-24 19:39:20 -07:00
2026-05-16 00:19:18 -07:00
2026-05-17 22:11:42 -07:00
2026-05-17 15:02:35 -07:00
2026-05-17 23:29:21 -07:00
2026-05-20 16:43:27 -07:00
2026-05-16 20:54:33 -07:00
2026-05-18 15:51:01 -07:00
2026-05-15 20:53:54 -07:00
2026-05-20 07:44:57 -07:00