-
Notifications
You must be signed in to change notification settings - Fork 120
Repairing
TMSU does not watch the filesystem for changes at this time. This is partly because this would require a daemon process to be running at all times to monitor these events andpartly because such a solution would not work on certain filesystems (such as remote filesystems).
As a result, whenever you move or alter files that have been tagged in the TMSU database, the database will be out-of-date with respect to the actual files on disk.
TMSU includes a command, status
, which can be used to find where the database is out of synchronicity. This command, in its simplest form (with no arguments), it will look at each file in the database and compare it with the corresponding file on disk, listing whether the file is in sync (show as T
for tagged), missing (!
) or modified (M
).
If paths are given as arguments, the status
command will look at these paths (and any files/directories beneath them) and show the status of these files. As such, files may be additionally reported as untagged (U
), meaning they are on not in the database.
TMSU is able to automatically repair files that have either been moved or modified, but not both. It can do this because when you tag files TMSU stores a number of attributes of the file, in particular its size and fingerprint: a hash of the file's contents.
By running repair
without arguments, TMSU will be able to repair the fingerprints in the database for files that have been modified but still reside at the same path.
By specifying paths as arguments to repair
, TMSU will (additionally to correcting fingerprints) search in these paths for any files that can no longer be found at the path when they were tagged. It will search under the specified paths for files with the same file size, and then confirm any match by comparing the file`s fingerprint with that in the database. If a match is confirmed, then TMSU will correct the path in the database.
If you know for certain that files have moved from one path to another, for example if you have just moved them there, you can perform a manual repair:
$ tmsu repair --manual /some/path /new/path
This will modify all files in the database under /some/path
to /new/path
, and update their fingerprints.