|
|
|
Evolution Grammar & Terminology
Introduction
Terminology
Symbol Translation
Introduction
Evolution's feature set is extremely rich and introduces many innovative concepts and new methods of viewing source code that may not be familiar to users of traditional source control systems. The ionForge web site contains resources to help you make the most of your tool.
In an effort to be as clear as possible without language getting in the way of understanding, we developed a grammar and standard syntax to represent concepts in a very regular manner and then adopted it throughout this site and product documentation.
Terminology
Productions - See the full resource on Productions.
Parent/Child - We use these terms in the traditional sense, in a manner similar to a file system directory tree. The difference is that a Production can be a child of many parents simultaneously.
Archetype/Reflection - Used to describe the members of a unidirectional relationship. The reflected object is the archetype, and the object being synchronized with the archetype is the reflection. Note that an object can be an archetype and a reflection at the same time. An object can also be the archetype for many reflections, but can only be the reflection for a single archetype. Archetype to reflection is 1 to many.
Archetype/Clone - To avoid overusing the parent/child analogy and causing confusion, we use the term archetype to refer to the object being cloned, reflected, etc.
|
Symbol Translation
'File names' - File names are enclosed within single quotes. For example 'file.h'
[Productions] - Productions are enclosed within square brackets. For example [Cookie Cutter]
{Objects} - An object is currently either a Production or a file. When referring to an abstract object without specifying which type, objects are enclosed in curly braces. For example {Object}
Reflections - Rather than constantly referring to "the reflection of", reflections are prefixed with r: and usually used in combination with one of the above. For example r:{Object}
Clone - Refers to the clone of an {Object}. For example c:'file.h'
Breaking Reflections - When a reflection relationship is broken, the act of the break is indicated by br:. For example br:[Cookie Cutter] means "breaks the unidirectional relationship between the reflection of the Production named Cookie Cutter and its archetype". The reflected Production which is now independent of its archetype is referred to as b:[Cookie Cutter]
|
This grammar is used liberally in the Reflections resource, which has greatly improved its readability.
Statements can be directly translated:
Creating {Object} in [Production] will also create r:{Object} in r:[Production]
translates to
Creating a file or Production in a parent Production will also create a reflection of the file or Production in any reflections of the parent Production.
And then broken down by segment:
| Creating {Object} |
| in [Production] |
| will also create |
| r:{Object} |
| in r:[Production] |
|
| Creating a file or Production |
| in a parent Production |
| will also create |
| a reflection of the file or Production |
| in any reflections of the parent Production. |
|
Finally here is a more complicated example:
Creating c:[StlLibrary] in r:[CoreEngine] causes br:[CoreEngine] then creates c:[StlLibrary] in b:[CoreEngine]
translates to
Creating a clone of the Production called StlLibrary in a reflection of the Production named CoreEngine breaks the unidirectional relationship between the reflection of CoreLibrary and its archetype, then creates the clone of StlLibrary in the old reflection of CoreLibrary which was just broken.
And then broken down by segment:
| Creating c:[StlLibrary] |
| in r:[CoreEngine] |
| causes br:[CoreEngine] |
| then creates c:[StlLibrary] |
| in b:[CoreEngine] |
|
| Creating a clone of the Production named StlLibrary |
| in a reflection of the Production named CoreEngine |
| breaks the unidirectional relationship between the reflection of CoreLibrary and its archetype |
| then creates the clone of StlLibrary |
| in the old reflection of CoreLibrary which was just broken. |
|
|
|
 |
People are talking...
"ionForge Evolution's user interface is better than anything else I've used. I was using Perforce and having alot of trouble with it because it was not intuitive at all."
Nathaniel L. Walker University of Louisiana - Lafayette
ionForge... The Savior of Gaming?
Evolution Makes a Splash at the Game Developers Conference WarCry Network Reports
|
|