From 028e5ffcedb626617e855a98f63457bba9f5619c Mon Sep 17 00:00:00 2001 From: clawbot Date: Mon, 9 Nov 2026 03:45:13 +0000 Subject: [PATCH] Say that a symlink is recorded, not read A new or changed symlink goes through recordNonRegularFile in the scanner and is never opened. README.md, ARCHITECTURE.md and docs/DATAMODEL.md now say so where they describe what a backup reads, and README.md no longer lists a changed link target as a reason to read a file. Model: fable-5-1 --- ARCHITECTURE.md | 3 ++- README.md | 8 ++++---- docs/DATAMODEL.md | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 256d419..910a0d3 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -173,7 +173,8 @@ A new `Scanner` is created for each snapshot, from `ScannerFactory`. It owns a had and that are now gone. - `batchAddFilesToSnapshot` records the unchanged files in the new snapshot. - `recordDirectories` records every directory, and the mount points found. -- `processPhase` reads each changed file and stores it. +- `processPhase` reads each changed regular file and stores it. It records each + changed symlink. The walk handles each kind of entry differently: diff --git a/README.md b/README.md index 361fab5..116a539 100644 --- a/README.md +++ b/README.md @@ -326,11 +326,11 @@ holds: - Its modification time has changed. - Its mode has changed. - Its owner or group has changed. -- Its link target has changed. - No uploaded blob holds one of its chunks. This happens when the only snapshot that used the blob holding that chunk is removed. -Every other file is recorded in the new snapshot without being read. +Every other file is recorded in the new snapshot without being read. A symlink +has no content to read, so it is only recorded. Flags: @@ -730,8 +730,8 @@ Deletes the local index file. The destination is not changed. It needs a config file that loads, because the config gives the path of the index. -The next backup then reads every file again. It skips the upload of a blob that -the destination already holds under the same name. +The next backup then reads every regular file again. It skips the upload of a +blob that the destination already holds under the same name. Use this command after you point the config at a different destination. See [Changing the destination](#changing-the-destination). diff --git a/docs/DATAMODEL.md b/docs/DATAMODEL.md index 12f8223..f16784d 100644 --- a/docs/DATAMODEL.md +++ b/docs/DATAMODEL.md @@ -316,7 +316,7 @@ in any of these: - link target A file is also read again when it lists a chunk that no uploaded blob holds. A -file with no row in `files` is read too. +regular file with no row in `files` is read too. Storing a changed file writes these rows: