Skip to content

GoodBit 1.5.2

Choose a tag to compare

@github-actions github-actions released this 15 Sep 19:31
· 261 commits to main since this release

Moving your clips folder no longer costs you your tags and collections.

This is the important one. On 1.5.0 and 1.5.1, moving the library replaced every clip row: each clip was deleted and added again as a new one. The files were never in danger and nothing was lost from disk, but a clip's row is the only copy of its tags, notes, stars, display name and collection membership, so all of that went with it.

Two things went wrong, and the second is why the safeguard built for exactly this did not catch the first.

The move wrote each clip's new location with backslashes, while the library stores paths with forward slashes. The same file, spelled two ways, so the scan that runs at the end of a move recognised none of them: every clip read as missing and every file read as new.

The guard that refuses to delete a library refuses when more than half of it has gone. Because each clip had just been added a second time, the count was exactly half, and exactly half was not more than half.

Both are fixed. The move writes what the library reads, the library compares paths by what they point at rather than how they are spelled, and the guard treats exactly half as too much.

If this already happened to you, it can be undone. GoodBit keeps a database backup every time it starts, in %APPDATA%/GoodBit/backups. From a copy of the repository:

node scripts/repair-links.mjs "%APPDATA%\GoodBit\backups\<the one from before the move>.db"

That says what it would restore and writes nothing. Add --write to do it, with GoodBit closed. It matches your old clips to your new ones by game folder and file name, which survives the move, and puts back the collections, tags, stars, notes and names.

Also

  • Thumbnails survive a move. They were keyed by the full path, so moving your clips folder threw away every thumbnail the move had just carefully carried across. They are keyed by where a clip sits in the library instead. They are generated once more after this update, and then not again.

Installing

Windows 10 or 11, 64-bit. Any 1.0.0, 1.2.x, 1.3.x, 1.4.x or 1.5.x install updates itself. A 1.1.0 install cannot start and has to be replaced with this installer directly.

Windows will interrupt you once. These builds are not signed with a paid certificate, so SmartScreen shows "Windows protected your PC" the first time, More info, then Run anyway.