Mecasp FAQ Versions Management|
Category: Main -> Comparisons with standard tools
|· Does Mecasp offers something more when compared to standard tools?|
Yes.[ Back to Top ]
Standard tools used today to manage versions don't memorize the full semantics of changes.
When there's a change, standard tools (CVS...) memorize the previous state and the new state.
Mecasp memorize also the actions performed to reach the new state (create something new, move, update, user defined action...).
|· Why is it important to memorize the full semantics of changes?|
Here's a first simple example to exlain the idea:[ Back to Top ]
Imagine the following changes:
- 1 - Rename a table from 'customer' to 'lead'
- 2 - Drop the table 'customer', and create a new table 'lead'
A standard mechanism would think these cases are the same: there was before the table 'customer', and now a table 'lead'.
But in fact the it is completely different: when droping the table, all the data inside have been lost. If you are in a complex environment, other links to this table can be broken if you think the table doesn't exist any longer (1), or these links could be updated if the table is the same, only renamed.
That's the same for source code, and for a lot of different kinds of data.
|· What kind of changes can be memorized?|
The full semantics of changes for structured data is managed: add, delete, move, update.
[ Back to Top ]
But in fact, Mecasp can manage also any other change that has been defined by the user. For example the action of a tool.
Example:A compilation process can be defined as an action (change) handled by Mecasp, or a Search and Replace...
|· What are the consequences during the Merge process?|
During the merge process, you can repeat (nad merge) with Mecasp the real changes performed from a user point of view.[ Back to Top ]
Example: Mecasp contains a Search and replace tool, with two mode (contextual change, or freezed change).
- It means you can express (contextual change): change the name of an object in the whole project. Then during the merge process, the new project will be also fully updated (even in fragments coming from another variant).
- And you can also express a non contexual change, to update the value in only one fragement of the current variant. So, during the merge process, only these changes are used, and the Search and Replace action don't manage other fragment of code found in the other variant.
So, the result is completely different. The tool is the same. From the user point of view, the action was the same when performed. But the meaning of the action is completely different from the user point of view, and the result is then also completely different during the merge process.