Open trapd00r opened 3 years ago
I can do
beet update -M path:./
in the meantime, but I still think it's broken behaviour to abort the entire task. :)
Sounds like a reasonable improvement --- I guess beets is generally not very good at gracefully handling errors. In many cases, that's probably for the better, since an appropriate action is not easy to infer. But simply skipping ahead to the next album in this specific situation should be fine.
Indeed; this would probably be a good idea. The default behavior in most beets actions is "fail-stop" to avoid cases where forging ahead blindly would just mess things up even further, such as leaving albums partially split across directories. But beet move
actually seems like a perfect match for a "keep on truckin'" policy instead, since having a few immovable files in the target set is unlikely to be indicative of some larger problem.
Actually, the best thing to do would probably to check for all relevant files to exist before starting to move an object (album or item, depending on the command), and skip the object if something is missing. There's of course a race if any other tool is simultaneously modifying these files. Then, if nevertheless an error occurred when doing the actual move, the "fail-stop" would be sensible (since it might indicate such a concurrent program, or out-of-disk-space, or a flaky connection to the disk, etc). I might have a look at implementing this.
Yeah. At the risk of overcomplicating things, what you're describing is sort of a "transactional" file system interface… ideally, we could batch up several copy/move/etc. operations and ask that either they all complete or none complete. Of course, true transactions are pretty much impossible without support from the OS, but maybe we would want a little utility to do sorta-atomic move/copy operations on sets of files using this "check permissions first, then really do the operation" strategy.
Problem
I just enabled the bucket plugin and moving one directory at a time like this:
When beets traverses the individual artist directories and stumble upon an album with a missing track, the entire task is aborted. I would rather have beets complain and move on to the next album in the directory instead of simply bailing out:
The missing tracks are (mostly) files I have deleted like this:
because they are duplicates and leftovers from previous imports.
Now, I know that I'm supposed to run a
beet update
to reflect deleted files, however, I've had bad experiences with that in the past so I'm a bit nervous to do so again: https://github.com/beetbox/beets/discussions/3973Setup
My configuration (output of
beet config
) is: