RomSieve handles collections of several terabytes. It is designed so that a wrong setting can always be corrected.
C:/…, /home/…), holds a ..
segment or a null character could write anywhere on the disk, which some
archives found on the Internet are crafted to do. Such a file is in
error from the simulation on, with the reason "Not written: the name …
is unsafe or invalid", and nothing is written for it nor for the other
files of its game; the other files are sorted as usual. Every target is
checked once more just before it is written.<name>.<id>.romsieve-tmp) and only takes its
own name once complete: a crash or a power cut leaves at most this
temporary file, which an analysis skips and a later sort removes when it
writes the same file (an hour later at least). Closing RomSieve during a
sort asks for a confirmation, stops the sort and closes once it has
stopped; during an undo, RomSieve closes at its end.If the destination already holds files and Add to a non-empty destination is unchecked, RomSieve offers to purge it before the sort:
_purged/<date>/ inside the destination. On the same
disk, this is instant and takes no extra space;The _purged folder of a previous purge is never touched
by the next one: each purge has its own dated folder.
The folders and files of the system
(System Volume Information, $RECYCLE.BIN,
lost+found, .Trash-1000,
.DS_Store...) do not count: the root of a USB stick or of a
memory card that holds only them is an empty destination, and a purge
never moves them.
The quarantine grows with each purge. In the Output step, the Destination frame says what it holds (Quarantine of the purges (_purged): 3 purge(s), 1245 file(s), 12.40 GB.) and offers Empty the quarantine…. The line is there as soon as a destination is chosen: with nothing set aside yet, it says Quarantine of the purges (_purged): empty. and its button stays greyed. Once confirmed, its content is deleted for good: this is the only deletion of RomSieve.
_purged folder of a folder without the marker
is an ordinary folder.On the command line:
romsieve-cli quarantine shows it,
romsieve-cli quarantine --empty --yes empties it.
.romsieve markerEach real sort leaves a hidden file named .romsieve at
the root of its destination. When you ask to purge a folder
without this marker (for instance a folder chosen by
mistake, or a folder sorted by another tool), a second confirmation,
Directory Not Created by RomSieve, makes sure you picked the
right folder. On the command line, such
a purge also requires --force-foreign-purge.
A destination that only holds the marker and _purged
counts as empty. When a former destination is later used as a source,
its _purged folder is ignored.
Every real sort writes a journal of the operations it performed (see where RomSieve stores its files). Undo Last Sort reads the journal of the last sort that has not been undone yet, shows what will be undone (date, number of operations, mode, folders) and, after your confirmation, reverses it:
| Operation of the sort | Undo |
|---|---|
| Move | The file goes back to its original place |
Copy, extraction, ZIP archive, playlist, .romsieve
marker |
The file is deleted, if unchanged |
| Hard link, symbolic link | The link is deleted (the source keeps the data) |
Rewritten descriptor (.cue...) |
The rewritten copy is deleted; in Move mode, the original descriptor is restored |
| Purge | The content set aside in _purged goes back to its
place |
Folders left empty are removed. Clicking Undo Last Sort again undoes the sort before, and so on.
Some operations cannot be undone; they are listed in the log and in the final report:
An operation stopped by an occupied original place or by a read or write error (a file opened by another program) can be retried: the report says so, and the sort is still offered. Close the file or free its place, then click Undo Last Sort again: only the operations left are replayed. The other cases are final.
Undo works from the journal. Do not delete the
journalsfolder if you might want to undo a sort. RomSieve keeps the journals of the last 50 real sorts: an older sort can no longer be undone.