When you are working on a versioned project and your starting point is not the latest version you can't proceed directly with the Commit (the commit icon will be enabled only if your starting point is the latest version).
When you are in this situation the tool look like this:
If you want to commit your pending changes and get them merged with other changes commited afterwards the version you started from you have to click on Pull Changes icon ()
and choose Pull strategy.
Pull strategy tries to merge your changes together with other changes commited on server.
If even one of the changes you made are not compatible with something already commited on server the Conflict Resolution flow starts.
Let's see an example:
Below the history of the project I'm working on; my starting point the version just before the latest one.
My starting point is the bold line and my pending changes are:
Now, I want to merge my change with other changes occoured on server.
I made changes in two fact schemas:
- in Historical Order I rename the attribute Season
- in Order I flag an attribute as descriptive
When clicking on Pull button (in Pull Changes window) the engine tries to merge the changes; a conflict (about Season attribute) is detected and so the Pull Wizard window asks the user to make a choice about the conflict found.
The conflict found is about Season attribute; considering my starting point, Season has been renamed with two different values: the engine could not choose which rename has to be applied: the user has to take this kind of decision. The Conflict Window presents ALL the conflict detected by the engine and ask to the user to take a decisioni for each of them.
When the user solves all the conflicts presented (the conflicts found is listed on the left), the wizard proceed to the next step, the one presented below:
By default the wizard if going to apply all the differences not involved in any conflict. But the user could explicitly select the changes that should be applied. The user has full control on the pull flow. Clicking on the checkbox the user is taken in a step where all the changes (local and remote) are presented and could take or discard each of them:
This step could be useful even simply to check all the changes that is going to by applied at the end of pull process.
When clicking on Next the user is taken in the final step, the Recap.
Recap step gives the user an overview about choices made during the pull flow. The first grid inform him about the elements that has been modified in both sides (local and remote), regardless if the element is involved in a conflict or not. Two changes in same factschema could not be conflicting but could be related in same way, and this window help user to focus on elements modified in both sides.
The second grid is a recap about all conflicts the user has taken a decison for.
When pull process is ended up the Commit icon in the toolbase return enabled and the user can proceed with the commit.