LocationTech GeoGig is a Distributed Version Control System (DVCS) specially designed to handle geospatial data efficiently. It takes inspiration from the source code versioning system Git, but has an approach suited to the spatial data it manages. GeoGig efficiently handles very large binary data, divided up into features with the opportunity to optimise spatial operations using a spatial index. This is in contrast to Git which handles large text data, divided up into lines.
Users are able to import raw geospatial data (currently from Shapefiles, PostGIS, MS SQLServer, or SpatiaLite) in to a repository where every change to the data is tracked. These changes can be viewed in a history, reverted to older versions, branched into sandboxed areas, merged back in, and pushed to remote repositories.
GeoGig is available as a command line tool with the following commands:
- add Add features to the staging area
- apply Apply a patch to the current working tree
- branch List, create, or delete branches
- cat Provide content of an element in the repository
- checkout Checkout a branch or paths to the working tree
- cherry-pick Apply the changes introduced by existing commits
- clean Deletes untracked features from working tree
- clone Clone a repository into a new directory
- commit Record staged changes to the repository
- config Get and set repository or global options
- conflicts Shows existing conflicts
- diff Show changes between commits, commit and working tree, etc
GeoGig is also provided as a Java Library for direct use.