Solved! Go to Solution.
Not necessarily..., it may get a bit complicated now, but versions reference so called "database states". Each time you make any type of edit to a Feature Class, you create a new "database state", and the version starts referencing that state from that moment onwards until the next edit completes. The database state references a certain combination of records in the base table and A/D delta tables. Your single version may actually go through a whole set of "states" during its life-time until you delete the version once you no longer need it. Even during a single edit session (the time in between clicking Start Editing and Stop Editing in ArcMap), your version may go through multiple states, as you can perform multiple edits in a single edit session.
It is the time you complete your edits (transaction closing time?) to specific records / geometries, which ultimately determines which records / geometries might be considered the "valid" or last "state" of the object they represent. It is this time and database state information that is used in the (batch) reconciliation and post process to determine if there are any conflicts due to other users having edited, saved and posted the same object to the same target version before you post it. You can than use the reconciliation tools to review the conflicting states and determine whether you favor the current target, or your own edit version.
So don't confuse the creation time of the version with the save / completion times of specific edits to specific records / geometries.
Jamal, I also strongly encourage you to read Derek Law's basic introduction to versioning to better understand what is going on "under the hood":
Versioning 101
And for a really comprehensive overview (older 2004 document, but the mechanism of versioning described there is still highly relevant):
Versioning - ESRI Technical paper
Jamal,
Before I (or someone else) can answer this properly, can you tell me one thing:
Is version U2 derived / based on / a child of version U1 or is version U2 derived from SDE.DEFAULT directly?
Many thanks Marco.
U2 version is derived directly from the default version. The tree is shown on the screenshot below:
[ATTACH=CONFIG]27938[/ATTACH]
Very confusing! I expect that the updates of feature #11 will follow the u2.u.2 version (since the most recent edits occurred there) while the updates of feature #9 will follow the version u1.u1 (since the last edits occurred there)
What is confusing that the both conflicts are updated based on the u1.u1 version! How come the u1.u1 is the determinant?
I tried to do other conflict changes and found out that the updates of the u1.u1 are considered!
What might be the issue here?
One last and very important note about the whole reconcile & post of editing conflicts in the versioned editing environment:
You should bear in mind, that conflict detection & reconciliation, is only a last resort to fixing errors that shouldn't be happening in the first place. If you give good working orders to your employees / editors, the amount of conflicts should be minimal. Editing conflicts can arise when users edit the same area, or make accidental mistakes by entering values for the wrong record (e.g. one record above or below what they intended).
The versioned editing environment of ArcGIS, and its associated conflict detection & reconciliation was never meant to replace good workflow design and best practices for editing and work distribution / task designation among multiple editors.
ArcGIS determines the recommended reconciliation order based on the save times of the edits. In your case, the dialog shows that ArcGIS will perform three reconciliation and post cycles, in the following order starting at 1) and ending at 3).
1) u2 <--- u3
2) u1 <--- u2
3) target <--- u1
How the order can be (so that the edits of u2 are taken):
1. reconcile from sde to u2 and then post from u2 to sde
2. reconcile from sde to u3 and then post from u3 to sde
3. reconcile from sde to u1 and then post from u1 to sde
[ATTACH=CONFIG]28079[/ATTACH]
Jamal, there are a few more things to take notice of:
Basically, in a comparison of any two versions, there are two types of feature edits to be distinguished:
- Those not in conflict
- Those in conflict
What happens with these feature edits?
Those not in conflict
If there is no conflict between edit version and target for a particular feature, any edit to a feature in the edit version will be automatically posted to the target.
Those in conflict
If there IS a conflict, the setting you choose for "conflict_resolution" (FAVOR_TARGET_VERSION or FAVOR_EDIT_VERSION), will determine whether the state of the conflicting feature in the target, or the state of the edit version will be maintained in the target after the reconciliation and post.
If you choose FAVOR_TARGET_VERSION, NO posting of the conflicting feature edit in the edit version will take place, and the target versions representation remains the same as it was.
If you choose FAVOR_EDIT_VERSION, posting of the conflicting feature edit in the edit version will take place, and the target versions representation will be replaced by the edit version.
So the "conflict_resolution" parameter of the "Reconcile Versions" tool only affects / concerns features that are in conflict. This setting does nothing for all the remaining edits to features that are not in conflict (and remember that in a normal situation and with good workflow design, conflicts should be the exception, not the rule!).
Many thanks Marco for the massive elaboration,
Please, consider the scenario in the screenshots below
The target geodatabase is editied (in the post stage) despite the fact that the �??conflict resolution�?� is set based on �??target version�?�