Skip to content

Configuration

danielferber edited this page Nov 23, 2014 · 4 revisions

All configuration happens on command line or in a property file. Command line has precedence over the property file, which has precedence over the build in defaults.

Git and Clearcase

There are four fundamental configuration items you must set:

  • cleartool command line executable installed elsewhere
  • You need two more pieces of information:
  • path of your git repository
  • path of the source code directory within a ClearCase UCM view.

Plear note that it strongly recommended if both repository and view were dedicated exclusively to git-to-clearcase.

1) Cleartool command line executable

Absolute, full path to cleartool.exe.

Use --ct path on command line or cleartool.exec=path in the configuration file.

2) Git command line executable

Absolute, full path to git.exe.

Use --git path on command line or git.exec=path in the configuration file.

3) Cleartool vob view directory

Absolute, full path to the source code directory within the Clearcase view of the VOB.

Use --view path on command line or vobview.dir=path in the configuration file.

4) Git repository

Absolute, full path to the git repository root.

Use --repo path on command line or repository.dir=path in the configuration file.

Configuration: Git before synchronization

Before synchronizing, git-to-clearcase may run some additional Git repository maintenance. If you run git-to-clearcase on a exclusively dedicated repository, then you may safely leave out options 3 to 5.

1) Fetch commits from remote repository.

Ensures the the local repository contains the latests commits from every developer. Automatic fetch requires a specific public/private key setup, thus this operation is turned off by default.

Useful for automation of the synchronization process. Add --fetch to command line or fetchRemoteGitRepository=true to the configuration file.

2) Forward local git repository.

Ensures that the repository points to the latest commit of the branch. By default, git-to-clearcase synchronizes the Clearcase view to the current Git commit. This operation is turned off by default as it is left up to you to navigate the git history before synchronizing.

Useful for automation of the synchronization process. Add --forward to command line or fastForwardLocalGitRepository=true to the configuration file.

3) Reset local git repository.

Ensures that there are no uncommitted changes that might be synchronized by accident. Turned off by default as git-to-clearcase expects a dedicated repository that should not get dirty local edits.

Add --reset to command line or resetLocalGitRepository=true to the configuration file.

4) Clear local git repository.

Ensures that there are no unversioned files that my interfere the synchronization. Turned off by default as git-to-clearcase expects a dedicated repository that should not get dirty local edits.

Add --clean to command line or cleanLocalGitRepository=true to the configuration file.

5) Configure the local git repository.

Ensures that the repository contains properties that instruct git command line to behave as expected by git-to-clearcase. It frees your from the burden of configuring the repository properties by hand.

Useful only on the fist run. Add --configure to command line or applyDefaultGitConfig=true to the configuration file.

Configuration: Clearcase before synchronization

Before synchronizing, git-to-clearcase may run some additional Clearcase view maintenance. If you run git-to-clearcase on a exclusively dedicated view, then you may safely leave options 1. Please ensure that there are no other checkouts before synchronizing.

1) Update local vob view

Ensures that the view shows the latest state of the VOB. By default, this feature is turned off. git-to-clearcase reproduces all commit changes since the last synchronization, regardless of the current view state. Actually, it runs all cleartoot commands requesting changes on the server, without even considering file from the local view.

In case of file comparisons, it may be useful to update the view. Take care that this operation may take several minutes, or even hours.

Add --update to command line or vobview.update=true to the configuration file.

Configuration: Clearcase after synchronization

After synchronizing, git-to-clearcase may run some additional Clearcase view maintenance.

1) Locate pending checkin for files and directories.

Ensures that the view does not contain files or directories that missed their checkin. Experience has shown that cleartool may fail arbitrarily and files or directories may be left checked out. That leaves the view in a dangerous state that drives to confusion and errors that are time-consuming and difficult to understand. To avoid inconvenience, this operation looks for any lost checkouts and reports them.

Add check.checkout.forgotten=true to the configuration file.

Configuration: Stamp files

git-to-clearcase tracks the latest synchronization within the Clearcase VOB. That ensures that every developer may call git-to-clearcase, as its state is shared and versioned on the VOB.

1) Commit hash

By default, git-to-clearcase reads the commit hash from the latest synchronization from the commit stamp file located in the VOB. If you do not want the have a stamp file, or if the information within the stamp file is incorrent, you may specify your own commit hash.

Use --commit hash on the command line or stamp.commit.override=hash in the configuration file.

2) Counter

git-to-clearcase counts the number of synchronizations and reads the number of the latest one from the counter stamp file located in the VOB. If you do not want the have a stamp file, or if the information within the stamp file is incorrent, you may specify your own synchronization counter current value.

Use --counter number on the command line or stamp.counter.override=hash in the configuration file.

3) Commit and counter stamp file names

By default, git-to-clearcase stores latest synchronization commit and counter in sync-commit-stamp.txt and sync-counter-stamp.txt. You may override this default names by using the --commitstamp file-name and --counterstamp file-name' command line options or in the configuration file options stamp.commit.file=file-nameandstamp.counter.file=file-name`