v0.10.0
Kart v0.10.0 introduces a new repository structure, which is the default, dubbed 'Datasets V3'. Datasets V2 continues to be supported, but all newly created repos are V3 going forward.
Datasets V3
- Entire repositories can be upgraded from V2 to V3 using
kart upgrade EXISTING_REPO NEW_REPO. - Anything which works in a V2 repo should work in a V3 repo and vice versa.
- V3 repos are more performant for large datasets - compared to V2 repos where size-on-disk climbs quickly once dataset size exceeds 16 million features.
Other major changes in this release
- The working copy can now be a MySQL database (previously only GPKG, PostGIS and SQL Server working copies were supported). The commands
init,cloneandcreate-workingcopynow all accept working copy paths in the formmysql://HOST/DBNAME#399- Read the documentation at docs/MYSQL_WC.md
- Import of tables using
kart importis now supported from any type of database that Kart also supports writing to as a working copy - namely, GPKG, PostGIS, SQL Server and MySQL. - Support for rapidly calculating or estimating feature-counts - see below.
Other minor changes
- Change to
kart data lsJSON output, now includes whether repo is Kart or Sno branded. - Importing from a datasource now samples the first geometry to check the number of dimensions - in case the datasource actually has 3 or 4 dimensions but this fact is not stored in the column metadata (which is not necessarily required by all source types). #337
- Bugfix: Creating a working copy while switching branch now creates a working copy with the post-switch branch checked out, not the pre-switch branch.
- Bugfix: GPKG spatial indexes are now created and deleted properly regardless of the case (upper-case or lower-case) of the table name and geometry column.
- A few bugfixes involving accurately roundtripping boolean and blob types through different working copy types.
- Bugfix: 3D and 4D geometries are now properly roundtripped through SQL Server working copy.
- Fix help text for discarding changes to refer to
kart restoreinstead ofkart reset, askart restoreis now the simplest way to discard changes. #426 import: PostGIS internal views/tables are no longer listed by--listor imported by--all-tables, and can't be imported by name either. #439upgradeno longer adds amainormasterbranch to upgraded repos.
Calculating feature counts for diffs
Kart now includes ways to calculate or estimate feature counts for diffs. This encompasses the following changes:
diffnow accepts--only-feature-count=<ACCURACY>, which produces a feature count for the diff.lognow accepts--with-feature-count=<ACCURACY>which adds a feature count to each commit when used with-o json.- All calculated feature counts are stored in a SQLite database in the repo's
.kartdirectory. - Feature counts for commit diffs can be populated in bulk with the new
build-annotationscommand