Version Control with GIT

Git is a Version Control System (VCS) for tracking changes in computer files and coordinating work on those files among multiple users.
As with most other distributed version control systems, and unlike SVN and CC, every Git directory on every computer is a full-fledged repository with complete history and full version tracking abilities, independent of network access or a central server.
This document describe how to install the Capella Git Adapter and help you to manage Capella Models with Git.

Installation

Installation from update sites

  1. Install the correct version of Capella.
  2. Download the correct version of EGit.
  3. Install EGit:
  4. Download the correct version of EMF Diff/Merge.
  5. Install EMF Diff/Merge:

Tutorials

These tutorials assume that you are familiar with Git and you knwo how it works.
If you're new to Git or distributed version control systems generally, then you might want to read Git for Eclipse Users first.
More background and details can be found in the on-line book Pro Git.

Capella Git Adapter is based on EMF Diff/Merge, help and details about it can be found in EMF Diff/Merge Guide.

Please consider the given process instructions:

  • Always validate your model before a commit.
  • Select all fragments on commit if the model is fragmented.
  • Close the session before a pull, rebase or merge operation.
  • To handle large files in Git Repositories, more than 2GB, there are multiple 3rd party implementations that will try to solve the problem, many of them using similar paradigm as a solution.
  • Content of all model files (aird, airdfragment, melodymodeller, melodyfragment, afm, ...) are declared as ASCII Text and not binary files.
    (see Capella : Window > Preferences > Team > File Content)

Basic Tutorial

This tutorial provides a step by step walk-through of the Capella Git Adapter.

Git perspective

Creating Repositories

Some considerations for Git Repositories to be used in Capella:

  • Don't create the Repository within the Capella workspace.
  • Don't create a Repository with a Capella project as root.



Put the Capella project under source control on the Git Repository



Commit the project



Check the History



-

Check the current changes wrt. the last commit


-

Advanced Tutorial

This is a continuation of the above basic tutorial.

Create a tag

Like most VCSs, Git has the ability to tag specific points in history as being important. Typically people use this functionality to mark release points (v1.0, and so on). In this section, you’ll learn how to create new tags.


-

Tags can also be created from the team menu, click Team > Advanced > Tag..., enter the tag name and message, select the commit you want to tag (default is HEAD) and click OK.

Resolve Conflicts

Conflicts arise when contradicting changes have been made in parallel and an attempt is made to integrate (merge) them. With Git, this may happen for example when two branches are merged, when a branch is rebased on another, or when a pull is done.

You are now in branch "maintenance".

-


-


-


We are going to merge branch "master" into branch "maintenance".

-



-


-


-

Fragmented Model

If you are not familiar with Capella model fragmentation, you can refer to Fragment Management

When your model is fragmented, you have to select all your fragments in your commits and always use the root aird for compare operation.

Model with libraries

If your model refers to libraries, you have to include manually your modified libraries in your commits in order to keep your model valid.

Limitations / Known Issues