[pbs-devel] [PATCH v3 proxmox-backup 0/4] debug cli: improve output, optionally compare file content for `diff archive`

Lukas Wagner l.wagner at proxmox.com
Wed Dec 7 10:38:15 CET 2022


This patch series contains a few improvements for the `diff archive` tool,
mainly based on Wolfgang's and Thomas' 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 "*" and are
highlighted by colored text.

For instance:

$ proxmox-backup-debug diff archive ... --compare-content
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

Furthermore, there now exists 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.

This patch series adds new dependencies to the `termcolor` and `atty`
crates. That being said, both crates were already pulled in
by other crates as transitive dependencies.

Changes from v2:
  - Increase buffersize to 4K
  - Added workaround for weird issue with tokio::try_join! and #[api]
  - Drop dependency on `atty` crate
  - Remove modificiations to debian/control
  - `diff_archive_cmd`: Moved parameters into the function signature,
    instead of manually extracting it from `Value`.


Changes from v1:
  - Made `changed indicator for file content` a bit less confusing.
    For regular files, it is now only displayed if
      - the --comapare-content flag is set and
      - the file contents *actually* differ

  - Removed unnecessesary namespace prefix for std::task::Pin in unit tests
  - Added color output, controllable via --color {always,auto,never} flag.


Lukas Wagner (4):
  debug cli: show more file attributes for `diff archive` command
  debug cli: add 'compare-content' flag to `diff archive` command
  debug cli: add colored output for `diff archive`
  debug cli: move parameters into the function signature

 Cargo.toml                             |   1 +
 src/bin/proxmox_backup_debug/diff.rs   | 611 ++++++++++++++++++++++---
 src/bin/proxmox_backup_manager/ldap.rs | 102 +++++
 3 files changed, 644 insertions(+), 70 deletions(-)
 create mode 100644 src/bin/proxmox_backup_manager/ldap.rs

-- 
2.30.2






More information about the pbs-devel mailing list