The version editing process
This topic applies to ArcGIS for Desktop Standard and ArcGIS for Desktop Advanced only.
The following explains the process of editing a version; reconciling; resolving conflicts; and, finally, posting the changes into the target version. The target version to which you reconcile and post can be the DEFAULT version, a parent version, or any other direct ancestor version.
By default, ArcMap edit sessions are set to perform versioned edits. This means you can edit data that has been registered as versioned. To ensure that your edit session is set this way, open the Editing Options dialog box, click the Versioning tab, then check the option Edit a version of the database with the ability to undo and redo.
1. Start editing
When you start editing in ArcMap, if your map references one version, that version is automatically opened for editing. You can only edit one version per edit session, so if your map references multiple versions, you must choose one of these to start editing.
When you start editing, you work with your own representation of the version. Other users who are connected to the same version cannot see any of your changes until you save.
Suppose that since you started editing a version, another user has saved edits to the same version. What happens when you save your edits? ArcGIS reconciles the two representations of the version. If there are conflicts, you can initially resolve all of them either in favor of the edit session or the database representation of the version. Depending on the version editing options you set in ArcMap, you can either review the conflicts one at a time and manually resolve each with an interactive dialog box, choose not to save the edits you made that are in conflict with the database, or choose to automatically overwrite what is in the database.
Learn more about setting editing options
You can work on a version over as many edit sessions as needed. Once you've finished editing and want to merge your changes into a target version, the next step is to reconcile.
2. Reconcile
Since you started editing your version, the target version may have been changed by other users in a way that conflicts with your edits. The reconcile operation checks for such conflicts.
Learn how to reconcile a version
If the target version has changed, the version you're editing updates with changes from the target version. You may be able to notice that features in your display change as inserts, updates, and deletes of any feature or record from the target version apply to your edit session.
Conflicts are detected during a reconcile operation when two or more users edit features that are in close proximity. There are two types of conflicts:
- Those that arise when you save edits to a version and the same feature has been updated in that version in a different edit session (or is updated in one edit session and deleted in the other)
- Those that occur when the same feature is updated in both the target version and the child version (or updated in one version and deleted in the other)
For most reconcile operations, no conflicts should be encountered. This is because in most organizations, projects and versions represent distinct geographic areas. If you and your coworkers are editing different parts of the map, you shouldn't encounter conflicts.
Conflicts when saving edits to a version—implicit reconcile process
In the case of the first type of conflict, different editors change the same feature in the same version of the geodatabase in different edit sessions or the same feature is deleted in one edit session and altered in the other. When you save your edits, ArcGIS detects any conflicts between edit sessions within that version of the geodatabase and resolves conflicts based on the save preferences you set on the Versioning tab of the Editing Options dialog box. Because this reconcile process takes place based on predetermined settings, it is an implicit one.
Conflicts when reconciling a child version and a target version—explicit reconcile process
The second type of conflict arises when you explicitly reconcile a child version with its parent version by clicking the Reconcile button on the Versioning toolbar.
Learn more about reconciling a version
When you reconcile, a dialog box appears on which you choose to either resolve conflicts in favor of the version you edited or the target version.
3. Review conflicts
Both types of conflicts described above are initially resolved by ArcGIS.
You can optionally review the conflicts one at a time with an interactive dialog box and, if necessary, make any changes. For each conflict, you can choose whether to revert the feature to its state at the beginning of your edit session, keep it as is in your edit session, or replace it with the feature in the conflicting edit session or target version.
Learn more about reviewing conflicts
For conflicts in the same version found when you save, if your save preference is set to automatically save changes in all cases, you are not given the opportunity to review conflicts; the changes are reconciled based on the conflict rule you set on the Versioning tab of the Editing Options dialog box.
4. Post changes
At this point, you've finished reconciling and, if there were any conflicts, you've reviewed them. When you are ready to merge your changes into the target version, click the Post button on the Versioning toolbar. Posting first saves your current edit session, then applies the target version to the current version.
Other users reading the version you've posted to do not see the results of the post until they refresh their versioned workspaces. Posting cannot be undone, since you are applying changes to a version you are not currently editing.
After posting, you can continue to make more edits in your edit session. To apply these changes to the target version, you need to undergo the reconciliation, conflict resolution, and posting processes again.
If posting marks the end of your project or your part of the workflow, you can delete the version you've been editing with ArcCatalog or ArcMap. You can delete a version, provided all its child versions are deleted. Only the version's owner or the database administrator (the sde or dbo user) can delete a version.