Parts of the Sentinel IP-SM-GW SDK environment should be added to a source control system such as Git or Subversion.
For a developer using the SDK for familiarisation with Sentinel development, the SDK should be initialised as a local git repository.
|Name||Include in source control?|
Sentinel IP-SM-GW SDK root directory
Sentinel IP-SM-GW SDK build directory
Sentinel IP-SM-GW SDK rhino-sdk directory
Any module created by a developer
Preparing the SDK for source control
Prior to applying source control using Subversion, Git or another source control system it is necessary to exclude any files and directories such as those created during building and publishing modules, or used for configuration of an IDE.
In the following two sections instructions are provided for configuring Subversion and Git to exclude the working files and directories.
To get a clear set of files and directories to add without excluding certain paths, the following command can be used from the root of the SDK:
Running this command removes the files and directories (retrieved jar files, compiled classes etc.) that are created
when a module is built. None of the files and directories created as part of the module build process should be
committed into a source control system. The
target subdirectory of the module is used to contain most of these files
and directories. However, other files and directories may be added by the IDE or by the developer outside of the
In Subversion the files and directories to be ignored are included in a property called
svn:ignore. From the root
directory of the SDK module run the following command:
svn propset svn:ignore "/build /rhino-sdk /ivy.properties /repositories /.classpath /.project /.settings /ivy-eclipse.properties" .
After creating new modules run the following command:
svn propset svn:ignore ".classpath .settings .project target" <new module directory>
When using git the files and directories to ignore are listed in a file called
.gitignore. The following example
shows a typical
.gitignore file for an SDK module:
/.settings /target /.classpath /.ivy-eclipse.properties /.project
In modules created from OpenCloud provided module packs, the
.gitignore file will already be present. If for any
reason it is not present, create it based on the example above. The
.gitignore file must be added and committed.
Initialising a Repository in the SDK root directory
When evaluating, or learning the Sentinel IP-SM-GW SDK it is advisable to perform local source control. Git is the ideal system to use.
Once the SDK environment has been set up initialise the SDK as a local repository:
$ git init Initialized empty Git repository in /home/testuser/ipsmgw-sdk/.git/
For each module add a
.gitignore file to exclude working files and directories from source control. See the example
In the root of the SDK check that the
.gitignore file with the following contents exists and create it if it does not:
/build /rhino-sdk /ivy.properties /repositories /.classpath /.project /.settings /ivy-eclipse.properties
.gitignore files are set up, start tracking the SDK from the initial state using
git add. For example:
$ git add .
The following files are now staged as shown by
$ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: .build new file: .gitignore new file: .sdk.root new file: README.txt new file: build.xml new file: deps.properties new file: sdk.properties
Commit the initial state of the SDK:
$ git commit -m "Initial Sentinel IP-SM-GW SDK state." [master (root-commit) d029da5] Initial Sentinel IP-SM-GW SDK state. 7 files changed, 159 insertions(+) create mode 100644 .build create mode 100644 .gitignore create mode 100644 .sdk.root create mode 100644 README.txt create mode 100644 build.xml create mode 100644 deps.properties create mode 100644 sdk.properties
Adding a module
Create a new module in the SDK using
sdkadm. Once it is created, check that the module root directory contains
.gitignore file. If not, add one following the instructions and template above.
Add the module and commit to the local repository. In the example below
sdkadm has been used to create a new feature
$ git add new-feature $ git commit -m "Adding new-feature." [master (root-commit) ff6408f] Adding new-feature 7 files changed, 213 insertions(+) create mode 100644 new-feature/.gitignore create mode 100644 new-feature/.sdk.root create mode 100644 new-feature/build.xml create mode 100644 new-feature/doc/ivy.xml create mode 100644 new-feature/ivy.xml create mode 100644 new-feature/module.properties create mode 100644 new-feature/src/com/opencloud/sentinel/feature/common/NewFeature.java