top | item 38076240

(no title)

Mertax | 2 years ago

Is there a public git repo available somewhere that represents a Kart repository?

Are the raw files in the working repository GeoPackages? How is it tracking the changes made inside the geopackages? What happens if it's replaced with an updated copy of the geopackage the was edited via some other application? How does it diff the changes?

discuss

order

amatix|2 years ago

Good questions

> Are the raw files in the working repository GeoPackages?

The working copy for a vector/table dataset can be in a GeoPackage or a SQL database like PostGIS. For rasters/point-clouds they're flat files.

> How is it tracking the changes made inside the geopackages?

In general, triggers which store RowIDs/PKs of inserts/updates/deletes. Then when you ask for a diff or make a commit Kart figures out any actual row-level (or schema) differences.

> What happens if it's replaced with an updated copy of the geopackage the was edited via some other application?

If it's edited by something else (QGIS, ArcGIS, python/go/whatever application, SQL CLI, whatever) it'll work: you do edits where you want to. If it's replaced by something else, it won't work.

> How does it diff the changes?

Comparing the features/rows in the repository (and their schemas) against the rows in the working copy database. It uses the stored list of modified rowids to make this fast.