Traditional development techniques rely on a common source code repository that is revision controlled using tools such as SVN, Perforce, Clearcase, GIT or Mercurial. Storyboard Designer projects are designed to be directly integrated into this type of environment so that the UI can be shared and improved by many developers working in parallel.
In order to provide an integrated support for various revision control systems, Designer uses the Eclipse Team Provider plugins. Plugins are available for most revision control systems from marketplace.eclipse.org. Here are links for several of the more common/popular plugins:
Subversion svn Plugin: http://marketplace.eclipse.org/content/subversive-svn-team-provider
Mercurial hg Plugin: http://marketplace.eclipse.org/content/mercurialeclipse-was-hgeclipse
GIT egit Plugin: http://marketplace.eclipse.org/content/egit-git-team-provider
Performce p4 Plugin: http://www.perforce.com/product/components/eclipse_plugin
The Storyboard Designer model file is a single model file. Conflicting changes to this model file can be visually inspected and merged from within Designer using the model comparison tools.
To compare two Designer files within the same project or file system
workspace. Select both of the model files (i.e. file1.gde
and
file2.gde
) in the Navigator view. Right click and select
Compare With > Each Other from the
menu.
To compare a Designer file that is in under revision control to a previous version, right-click on the file and select the menu entry Compare With. Different version control systems provide different specific terms, but . In the sub-menu you can select Latest from Repository or Revision if you want to compare with a specific version.
In either case, local comparisons or comparisons with versions from a revision control system, the comparison will open an editor that will highlight the differences in the model elements in the two files and allow each of the changes to be viewed in context and merged or discarded as may be required by the final design.
Triggering a comparison provides a hierarchical breakdown of the models' objects, with two sides representing the two files. Any differences between the two models will be highlighted in yellow. The two types of differences are property changes and additions(deletions). Property changes show the value on both sides of the viewer. They are marked by a delta icon in the centre sash in the two way case, or an arrow representing the direction of the change in the three way case. For additions(deletions), the side representing the file that has the object will show it, and the other side will show empty space. Additions and deletions are marked by a '+' icon or a '-' icon, and an arrow representing the direction of the change in the three way case. The comparator will also show any unchanged objects/properties, for reference and context. They are displayed in gray text, with no background colour. In a three way comparison with an ancestor, it is possible that a conflicting change exists, where both sides have modified the same object/property from the original ancestor. These will be highlighted in red.
The toolbar contains actions and options to merge changes and switch the view. From left to right, here is a description of each one:
Toggle Graphical Compare: Enables the graphical compare, which will appear on the bottom half of the screen and allow the user to visualize the changes on a model object.
All Changes Filter: Displays all changes across all model objects.
Application Filter: Displays changes on the application level. This includes application properties, and any application level variables or actions that have been added or deleted.
Screen Filter: Displays changes on the screen level. This includes screen properties, layer instance properties and layer instance additions/deletions.
Layer Filter: Displays changes on the layer level. This includes layer/control/render extension properties and control/render extension additions/deletions.
Animation Filter: Displays any changes related to animations.
Toggle Unchanged Properties: Shows or hides the unchanged objects/properties.
Copy Left-Right/Copy Right-Left: Merges changes that have been selected in the viewer. If a model object is selected, any changes to its children will be merged.
Copy All Left-Right/Copy All Right-Left: Merges all changes. In the two way case, this is non-destructive and will not delete any deletions, but will add the additions. In the three way case, this repects the direction of the changes.
After making changes, saving the comparator tab will appropriately save the changes to the model file(s). Exiting the comparator without saving will revert any applied changes. The global undo/redo functions are also available to revert and re-apply changes.
Entire projects and directory structures can be compared as easily as comparing single model files. This will allow developers to understand which resources such as images, fonts and script files have changed in addition to the changes to the model logic. The same as a model file comparison, this can be performed by right clicking on two projects or directories and selecting Compare With > Each Other from the menu.
When this comparison is done a hierarchy is presented indicating files that have changed, been added or removed from the source or the destination directory. Selecting any of these files will open a comparison editor that is appropriate for that file type.