Versioning: Basic concepts

Available with Standard or Advanced license.

Versioning lets multiple users directly edit a geodatabase without explicitly applying feature locks or duplicating data. The following are the essential facts about versions:

A version is a named state of a geodatabase. You can use versions to represent engineering designs, construction jobs, snapshots in time of geodatabases, and any type of scenario that involves the posing of what-if questions in studying a result.

A version spans a geodatabase and has properties. You can define which objects in a geodatabase are versioned and can selectively specify which feature datasets, feature classes, and tables are versioned. When you specify that a feature dataset is versioned, all its tables and feature classes are automatically versioned.

A geodatabase can have multiple coexisting versions. You can control the visibility of a version to other users by setting its permission. Each version lets you perform the same display and analytic functions as a nonversioned geodatabase.

Differences are only in row state, not in schemas. A version presents you with a seamless view of all the edits applied since the version was created. The row state reflects all added, removed, and modified objects. The row state information about each version is stored (or persists) in the geodatabase. The schema, the definition of tables and their fields, can be modified in a geodatabase; schema changes are applied to all versions of the geodatabase.

Internally, the geodatabase has tables to keep track of modified, added, and removed features for each version, but that is not apparent to you when you use versions. It appears to be an integral copy of a geodatabase.

A default version exists for every versioned geodatabase. The default version can be thought of as the as-built version. It usually represents the nominal state of the geodatabase.

A version can be created from another version. Starting with the default version, you can create any number of versions. Every version, except for the default version, has exactly one parent version.

You can connect to any version. Users will start editing a version based on the project or project stage they are working on. Users can work on any version for which they have been granted permission.