- Relaxed restrictions on tag and value names: in particular whitespace is now supported.
- Tag values are no longer automatically deleted when last usage is removed: they must now be managed manually. (Removing these checks improve performance of untagging operations.)
- Tag values can now be renamed, deleted and merged using the new
--valueoption on the corresponding subcommands.
- Tag values can now be used in implications.
- Fixed "too many SQL variables" bug.
- Output of
filescan now be sorted using the
statssubcommand has been replaced by a
--statsoption on the new
- Included some scripts for making destructive changes to the filesystem. (By having these operations in separate scripts rather than as core functionality TMSU remains non-destructive.)
tmsu-fs-rmremoves a file from the filesystem and TMSU database
tmsu-fs-mvmoves a file elsewhere on the filesystem and updates the TMSU database
tmsu-fs-mergedeletes all but that last argument and merges their tags in the TMSU database
And other bug fixes and performance improvements.
Warning: there is a bug in this version that means the database will not be created if the
.tmsu directory does not exist. Please create the directory by hand (e.g.
mkdir ~/.tmsu) until this is fixed.
Note: This release has some important changes, including the renaming of
some options, the introduction of local databases and a switch from absolute
to relative paths in the database. Please read the following release notes
- The --untagged option on the 'files' and 'status' subcommands has been
replaced by a new 'untagged' subcommand, which should be more intuitive.
- The --all option on the 'files', 'tags' and 'values' subcommands has been
removed. These commands now list the full set of files/tags/values when run
without arguments. For the 'tags' subcommand this replaces the previous
behaviour of listing tags for the files in the working directory: use 'tmsu
tags *' for approximately the previous behaviour.
- The 'repair' subcommand --pretend short option has changed from -p to -P (so
that -p can be recycled for --path).
- The 'repair' subcommand's argument now specify paths to search for moved
files and no longer limit how much of the database is repaired. A new --path
argument is provided for reducing the repair to a portion of the database.
- A new --manual option on the 'repair' subcommand allows targetted repair of
moved files or directories.
- The exclamation mark character (!) is no longer permitted within a tag or
value name. Please rename tags using the 'rename' command. (Value names will
need to be updated manually using the Sqlite3 tooling.)
- Added --colour option to the 'tags' subcommand to highlight implied tags.
- 'tag' subcommand will, by default, no longer explicitly apply tags that are
already implied (unless the new --explicit option is specified).
- Added subcommand aliases, e.g. 'query' for 'files'.
- It is now possible to tag a broken symbolic link: instead of an error this
will now be reported as a warning.
- It is now possible to remove tags with values via the VFS.
- 'tag' subcommand can tag multiple files with different tags by reading from
standard input by passing an argument of '-'.
- TMSU will now automatically use a local database in .tmsu/db in working
directory or any parent. The new 'init' subcommand allows a new local
database to be initialized. See Switching Databases for detail.
- Paths are now stored relative to the .tmsu directory's parent rather than as
absolute paths. This allows a branch of the filesystem to be moved around,
shared or archived whilst preserving the tagging information. Existing
absolute paths can be converted by running a manual repair:
tmsu repair --manual / /
- Added 'config' subcommand to view and amend settings.
- The 'help' subcommand now wraps textual output to fit the terminal.
- Rudimentary Microsoft Windows support (no virtual filesystem yet).
- TMSU can now be built without the Makefile.
- Bug fixes.
Note: This release changes the database schema to facilitate tag values. To upgrade your existing v0.3.0 database please run the following:
$ cp ~/.tmsu/default.db ~/.tmsu/default.db.backup $ sqlite3 -init misc/db-upgrade/0.3_to_0.4.0.sql ~/.tmsu/default.db .q
- Added support for tag values, e.g. 'tmsu tag song.mp3 country=uk' and the querying of files based upon these values, e.g. 'year > 2000'.
- 'tags' and 'values' subcommands now tabulate output, by default, when run from terminal.
- Added ability to configure which fingerprint algorithm to use.
- Implied tags now calculated on-the-fly when the database is queried. This results in a (potentially) smaller database and ability to have updates to the implied tags affect previously tagged files.
- Added --explicit option to 'files' and 'tags' subcommands to show only explicit tags (omitting any implied tags).
- Added --path option to 'files' subcommand to retrieve just those files matching or under the path specified.
- Added --untagged option to 'files' subcommand which, when combined with --path, will also include untagged files from the filesystem at the specified path.
- Removed the --recursive option from the 'files' subcommand which was flawed: use 'tmsu files query | xargs find' instead.
- Added ability to configure whether new tags and values are automatically created or not or a per-database basis.
- Added --unmodified option to 'repair' subcommand to force the recalculation of fingerprints of unmodified files.
- Renamed --force option of 'repair' subcommand to --remove.
- Added support for textual comparison operators: 'eq', 'ne', 'lt', 'gt', 'le' and 'ge', which do not need escaping unlike '<', '>', &c.
- Improved Zsh completion with respect to tag values.
- Significant performance improvements.
- Removed support for '-' operator: use 'not' instead.
- Bug fixes.