I reviewed this by generating 100 random files via the following command:
seq -w 1 100 | xargs -n1 -I% sh -c 'dd
if=/dev/urandom of=file.% bs=$(shuf -i1-10 -n1) count=1024'
Then I created a backup from those files, recreated the files with
the above command and created a second backup.
Additionally I created a 3rd backup where I:
All changes between 1 ->2 and 2 -> 3 and 1 -> 3 were picked up by the diff tool as far as I could tell.
Some files where the content has changed but everything else
stayed the same (except for mtime), were not marked as changed
without the flag --compare-content. Maybe we should not mark any
files as changed without the --compare-content flag or we should
mark all files as changed where any attribute changed?
With --compare-content the changes were picked up, which is what this flag is for, so I think it's OK.
Code LGTM!
Reviewed-by: Stefan Hanreich <s.hanreich@proxmox.com>
Tested-by: Stefan Hanreich <s.hanreich@proxmox.com>
This patch series contains a few improvements for the `diff archive` tool, mainly based on Wolfgang's suggestions. First, the output of is now much more detailed and shows some relevant file attributes, including what has changed between snapshots. Changed attributes are highlighted by a "*". For instance: $ proxmox-backup-debug diff archive ... A f 644 10045 10000 0 B 2022-11-28 13:44:51 add.txt M f 644 10045 10000 6 B *2022-11-28 13:45:05 content.txt D f 644 10045 10000 0 B 2022-11-28 13:17:09 deleted.txt M f 644 10045 *29 0 B 2022-11-28 13:16:20 gid.txt M f *777 10045 10000 0 B 2022-11-28 13:42:47 mode.txt M f 644 10045 10000 0 B *2022-11-28 13:44:33 mtime.txt M f 644 10045 10000 *7 B *2022-11-28 13:44:59 *size.txt M f 644 *64045 10000 0 B 2022-11-28 13:16:18 uid.txt M *f 644 10045 10000 10 B 2022-11-28 13:44:59 type.txt The second commit introduces the possiblity to pass the --compare-content flag to the tool. If the flag is passed, the tool will compare the file content instead of relying on mtime alone to detect modifications. Lukas Wagner (2): debug cli: show more file attributes for `diff archive` command debug cli: add 'compare-content' flag to `diff archive` command src/bin/proxmox_backup_debug/diff.rs | 356 ++++++++++++++++++++++----- 1 file changed, 299 insertions(+), 57 deletions(-)