JATMN and Ayush7614
88ec97d563
fix(tools): publish file writes atomically instead of truncating in place ( #1214 )
...
* fix(tools): publish file writes atomically instead of truncating in place
Stage replacements before publication so failed writes preserve existing
contents, successful renames detach hard-link siblings, and creates publish
without replacing raced files. Preserve modes and contained symlinks, with
the existing validated in-place fallback when replacement is refused.
Rebuild Ayush7614's complete change from Twigpine/zero#1159 on current main.
The net patch is unchanged; original authorship is retained.
Original-commit: d97d1cf7ae
Original-commit: 9b994c1903
Original-commit: 48f65ca634
Original-PR: https://github.com/Twigpine/zero/pull/1159
Fixes : #1156
* fix(tools): preserve atomic publication when replacement is refused
Keep regular-file preimages and hard-link siblings intact after rename errors. Record published creates even when staging cleanup fails while preserving the cleanup error. Make the permission regression fixture independent of umask.
---------
Co-authored-by: Ayush7614 <[email protected] >
2026-11-09 12:25:24 -08:00
..
2026-06-20 22:21:48 +05:30
2026-09-15 08:31:39 +08:00
2026-10-17 07:13:21 +08:00
2026-08-06 21:34:54 +05:30
2026-07-24 09:04:41 +08:00
2026-06-07 17:13:27 +05:30
2026-07-05 13:15:14 +05:30
2026-07-24 09:04:41 +08:00
2026-07-17 12:48:36 +08:00
2026-10-17 07:13:21 +08:00
2026-07-18 00:02:43 +05:30
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-08-10 10:51:11 +08:00
2026-11-04 19:20:17 -08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-08-19 22:18:47 +05:30
2026-08-18 21:44:13 +08:00
2026-06-27 13:02:09 +05:30
2026-07-24 09:04:41 +08:00
2026-09-15 08:31:39 +08:00
2026-10-17 07:13:21 +08:00
2026-10-12 15:02:17 +08:00
2026-08-26 13:20:48 +08:00
2026-09-12 08:32:36 +08:00
2026-09-12 08:32:36 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-09-10 21:43:58 +05:30
2026-10-27 06:25:41 -07:00
2026-10-17 07:13:21 +08:00
2026-07-24 09:04:41 +08:00
2026-11-09 12:25:24 -08:00
2026-11-09 12:25:24 -08:00
2026-11-09 12:25:24 -08:00
2026-11-09 12:25:24 -08:00
2026-11-09 12:25:24 -08:00
2026-08-19 22:18:47 +05:30
2026-10-17 07:13:21 +08:00
2026-07-31 23:30:03 +05:30
2026-07-31 23:30:03 +05:30
2026-08-26 13:20:48 +08:00
2026-08-26 13:20:48 +08:00
2026-10-12 15:02:17 +08:00
2026-09-12 08:54:58 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-10-18 10:07:34 +08:00
2026-10-18 10:07:34 +08:00
2026-07-24 09:04:41 +08:00
2026-07-05 17:25:26 +08:00
2026-07-07 22:41:13 +08:00
2026-07-18 00:02:43 +05:30
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-11-09 08:02:41 -08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-07-24 09:04:41 +08:00
2026-10-17 07:13:21 +08:00
2026-08-25 20:23:48 +08:00
2026-08-25 20:23:48 +08:00
2026-08-19 22:18:47 +05:30
2026-08-19 22:18:47 +05:30
2026-07-18 00:02:43 +05:30
2026-08-10 09:58:05 +08:00
2026-07-18 00:02:43 +05:30
2026-07-18 00:02:43 +05:30
2026-07-18 00:02:43 +05:30
2026-07-18 00:02:43 +05:30
2026-07-18 00:02:43 +05:30
2026-07-18 00:02:43 +05:30
2026-10-12 15:01:44 +08:00
2026-10-12 15:01:44 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-08-26 13:22:05 +08:00
2026-11-09 08:02:41 -08:00
2026-06-25 20:23:29 +05:30
2026-06-25 20:23:29 +05:30
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-08-26 13:22:05 +08:00
2026-08-26 13:22:05 +08:00
2026-10-17 07:13:21 +08:00
2026-11-04 18:24:09 -08:00
2026-11-09 08:02:41 -08:00
2026-07-17 12:48:36 +08:00
2026-08-19 22:18:47 +05:30
2026-09-15 08:31:39 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-08-06 21:34:54 +05:30
2026-10-17 07:13:21 +08:00
2026-06-13 10:43:31 +05:30
2026-07-05 11:35:01 +08:00
2026-07-24 09:04:41 +08:00
2026-08-06 20:35:13 +05:30
2026-08-06 20:35:13 +05:30
2026-08-06 20:35:13 +05:30
2026-07-27 13:21:47 +05:30
2026-10-17 07:13:21 +08:00
2026-10-25 07:24:59 -07:00
2026-10-25 07:24:59 -07:00
2026-07-24 09:04:41 +08:00
2026-07-05 17:25:26 +08:00
2026-07-05 17:25:26 +08:00
2026-07-05 23:50:31 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-07-24 09:04:41 +08:00
2026-08-10 09:58:05 +08:00
2026-08-10 09:58:05 +08:00
2026-06-19 20:02:48 +05:30
2026-08-26 13:22:05 +08:00
2026-08-26 13:22:05 +08:00
2026-08-25 20:23:48 +08:00
2026-06-26 08:22:56 +05:30
2026-11-09 08:02:41 -08:00
2026-08-25 20:23:48 +08:00
2026-08-26 13:22:05 +08:00
2026-08-06 21:35:41 +05:30
2026-10-17 07:13:21 +08:00
2026-11-04 19:20:17 -08:00
2026-11-04 19:20:17 -08:00
2026-07-05 17:25:26 +08:00
2026-07-05 17:25:26 +08:00
2026-10-17 07:13:21 +08:00
2026-10-17 07:13:21 +08:00
2026-11-04 19:20:17 -08:00
2026-11-04 18:24:09 -08:00
2026-11-04 18:24:09 -08:00
2026-06-19 20:02:26 +05:30
2026-11-04 18:24:09 -08:00
2026-11-04 18:24:09 -08:00
2026-10-17 07:13:21 +08:00
2026-11-09 12:25:24 -08:00
2026-10-12 15:02:17 +08:00