Jakob Borg
ff88430efb
feat: add debug commands for folder counts and files (#10206)
This adds two debugging commands that print information directly from
the database; one for folder counts, and one for file metadata for files
matching a pattern in a folder. E.g.,
```
% syncthing debug database-counts p3jms-73gps
DEVICE TYPE FLAGS DELETED COUNT SIZE
-local- FILE ------- --- 0 0
-local- FILE --G---- --- 2473 70094796496
-local- DIRECTORY ------- --- 0 0
-local- DIRECTORY --G---- --- 19 2432
PSEUDOP FILE ------- --- 2473 70094796496
PSEUDOP FILE -nG---- --- 0 0
PSEUDOP DIRECTORY ------- --- 19 2432
PSEUDOP DIRECTORY -nG---- --- 0 0
```
```
% syncthing debug database-file p3jms-73gps 20240929-DSCF1387
DSCF1387
DEVICE TYPE NAME SEQUENCE DELETED MODIFIED SIZE FLAGS VERSION BLOCKLIST
-local- FILE Austin/20240929-DSCF1387.raf 1204 --- 2024-09-29T01:10:54Z 48911888 --G---- HX2ELNU:1744213700 fsQdMvUL
PSEUDOP FILE Austin/20240929-DSCF1387.raf 22279 --- 2024-09-29T01:10:54Z 48911888 ------- HX2ELNU:1744213700 fsQdMvUL
-local- FILE Austin/20240929-DSCF1387.xmp 1196 --- 2024-10-16T08:08:35.137501751Z 5579 --G---- HX2ELNU:1744213700 xDGMnepi
PSEUDOP FILE Austin/20240929-DSCF1387.xmp 19910 --- 2024-10-16T08:08:35.137501751Z 5579 ------- HX2ELNU:1744213700 xDGMnepi
```
The local flag bits get a string representation for the bitmask,
```
FlagLocalUnsupported: "u",
FlagLocalIgnored: "i",
FlagLocalMustRescan: "r",
FlagLocalReceiveOnly: "e",
FlagLocalGlobal: "G",
FlagLocalNeeded: "n",
FlagLocalRemoteInvalid: "v",
```
2025-07-04 15:46:24 +02:00
..
2025-05-30 09:52:47 +02:00
2025-05-30 09:52:47 +02:00
2025-06-29 10:18:51 +02:00
2024-12-01 16:50:17 +01:00
2025-06-16 15:12:33 +00:00
2025-07-04 15:46:24 +02:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2025-03-29 13:21:10 +01:00
2024-12-01 16:50:17 +01:00
2025-05-16 22:50:13 +02:00
2025-03-29 13:21:10 +01:00
2025-06-13 07:33:31 +02:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2023-05-09 10:01:57 +00:00
2025-06-29 10:18:51 +02:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-05-04 22:31:37 +02:00
2023-09-06 12:52:01 +02:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2024-12-01 16:50:17 +01:00
2025-05-31 17:10:00 +02:00
2025-05-31 17:10:00 +02:00
2024-12-01 16:50:17 +01:00
2025-07-04 15:46:24 +02:00
2024-12-01 16:50:17 +01:00