rtc2gitcli
rtc2gitcli copied to clipboard
An IBM's RTC SCM tool extension to migrate an RTC repository into a Git repository
= Tool to migrate from IBM RTC to Git :project-full-path: rtcTo/rtc2gitcli :github-branch: master :rtcversion: 6.0.4 :rtc2gitwiki: https://github.com/rtcTo/rtc2git/wiki :rtc2gitcliwiki: https://github.com/rtcTo/rtc2gitcli/wiki image:https://img.shields.io/badge/license-MIT-blue.svg["MIT License", link="https://github.com/{project-full-path}/blob/{github-branch}/LICENSE"] image:https://img.shields.io/badge/Java-8-blue.svg["Supported Versions", link="https://travis-ci.org/{project-full-path}"]
A tool made for migrating code from an existing https://jazz.net/products/rational-team-concert/[IBM RTC] into a Git repository.
Inspired by https://github.com/{project-full-path}[rtc2git], but written in Java and hopefully faster. It is implemented as scm cli
plugin.
== Prerequirements
- https://jazz.net/downloads/rational-team-concert/releases/{rtcversion}?p=allDownloads[SCM Tools] from IBM. To avoid an account creation on jazz.net site, you could use http://bugmenot.com/[bugmenot] (see also wiki page ({rtc2gitwiki}/configure-RTC-CLI[configure RTC CLI])
- Eclipse configured with scm tools as target platform (see wiki {rtc2gitcliwiki}/configure-target-platform[configure scm tools target platform])
== Usage
- create an source RTC workspace with flow target and components as wanted ->
SOURCE_WORKSPACE
- create an target RTC workspace with
SOURCE_WORKPSACE
as flow target ->TARGET_WORKSPACE
- check comments at {rtc2gitcliwiki}/configure-rtc-workspaces[configure rtc workspaces]
- open shell or cmd
- step into the target directory
- load the initial target workspace:
[source,bash]
scm load -r -u -P <TARGET_WORKSPACE>
Execute the actual migration:
[source,bash]
scm migrate-to-git -r -u -P -m <migration.properties> <SOURCE_WORKSPACE> <TARGET_WORKSPACE>
== How does it work?
- It initalizes an empty git repository and clones it
- In this repository, it loads
TARGET_WORKSPACE
RTC workspace - Every change set is accepted
- If there is a baseline on the change set, a tag is created on git
- The change set is committed to git
=== Setup Eclipse development environment In order to enhance the the migration tool, fix a bug that you may encounter or simply want to run it from your eclipse, here are the steps to set up a development environment:
- Import Code Style (Window->Preferences->Java->Code Style->Formatter)
eclipse-rtccli-format-settings.xml
in order to have a common coding style (you can skip this step if you only want to run it) - Configure SCMTools Target Platform described here in the {rtc2gitcliwiki}/configure-target-platform[wiki]. Point to the folder where your
scm.exe
/lscm.bat
is (If you use eclipse classic aka non javaee eclipse, install the Eclipse Plugin Development Tools as described {rtc2gitcliwiki}/configure-target-platform#help---there-is-no-target-platform[here]) - Clone this repo and import it in eclipse as maven project
- Open
pom.xml
and follow the hint to install the missing maven connector - Update maven project using [ALT]+[F5]
- By this point the project shouldnt contain any errors (make sure you have still your created target platform in window preference selected)
- You should have an launch-configuration named rtc2git -> start it
- In your console window you should see "Help for: scm migrate-to-git"
- Open the launch-config and edit the command in arguments/program arguments
In case you use RTC Version 6+ (and have the error Problem running 'help', unknown Subcommand...), please follow the instructions of this https://github.com/rtcTo/rtc2gitcli/issues/44#issuecomment-396727582[issue-comment] in order to run rtc2gitcli.
== Wiki For more details {rtc2gitcliwiki}[visit our wiki]
== Links for JGit
- http://download.eclipse.org/jgit/docs/jgit-3.3.0.201403021825-r/apidocs/?d[api docs]
- https://github.com/centic9/jgit-cookbook[jgit cookbook]
- http://wiki.eclipse.org/JGit/User_Guide[User Guide]
== Contribute & Feedback Feel free to report and/or fix https://github.com/rtcTo/rtc2gitcli/issues[issues] or create new pull requests