Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

439 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project aim to bring an interface layer between Git and Starteam.

Current Goal:
Bring the capacity of converting Starteam project to Git with the help
of the fast-import capacity. I'll be doing this with the help of a 
fake layer that emulate the behavior of the StarteamSDK. This layer 
could be used as a test platform.

Futur Goal:
Give the capacity of making git a Starteam compatible client with the
added value of using Git. This could also be used for Mercurial and 
Bazaar with the help of the fast-export capacity.

License:
Git-Starteam is convered under the General Public License Version 3.
Fake-Starteam is convered under a personnal license and is included 
only for testing purpose. The project shall not be used for any other
purpose than easly testing your interaction with a fake starteam server.

Building:
Git-Starteam use a sconscript to build it's respective jar file. 
You can use the latest version of scons at : 
http://www.scons.org/

To build just call scons in the root directory where you have clone the
repository.

Alternativelly, there is is maven build that you can use.



Build with starteam80 API:
cd ~/proj/git-starteam/
scons --jargs /usr/share/java/jargs.jar --starteam /opt/StarTeamCP_2005r2/lib/starteam80.jar bin/syncronizer.jar
(If not starteam80, maybe you should modify generateFastImportStream() in syncronizer/src/org/sync/GitImporter.java, for http://techpubs.borland.com/starteam/2009/en/sdk_documentation/api/com/starbase/starteam/CheckoutManager.html said old version (passed in /opt/StarTeamCP_2005r2/lib/starteam80.jar) "Deprecated. Use View.createCheckoutManager() instead.")

Prepare before Run:
In Linux, the default max "open files" is 1024 (`ulimit -a`). Maybe you will get "java.io.IOException: Too many open files" if your StarTeam project had checked in too many files in one time, then you should add "* - nofile 65536" line to /etc/security/limits.conf and re-login to shell.
In Windows, the default max "open files" is 16384.

Run with starteam80 API:
1. Create bin/.git/ folder from a StarTeam project named Prime with Prime view:
cd ~/proj/git-starteam/bin/
java -cp .:/usr/share/java/jargs.jar:/opt/StarTeamCP_2005r2/lib/starteam80.jar:./syncronizer.jar:../lib/org.eclipse.jgit-0.12.1.jar org.sync.MainEntry -h 192.0.1.102 -P 49203 -p Prime -v Prime -H master -U UserName -d gmail.com -f Src/apps/vlc2android/ -c
Or, it's a good idea to add .gitignore first, so you can do below instead:
cd ~/proj/git-starteam/bin/
echo "*.o" > .gitignore
git add .gitignore
git commit -m "Init with .gitignore"
java -cp .:/usr/share/java/jargs.jar:/opt/StarTeamCP_2005r2/lib/starteam80.jar:./syncronizer.jar:../lib/org.eclipse.jgit-0.12.1.jar org.sync.MainEntry -h 192.0.1.102 -P 49203 -p Prime -v Prime -H master -U UserName -d gmail.com -f Src/apps/vlc2android/ -R

2. Add other branch to bin/.git/ folder from other view:
In gitk --all, create OtherView branch base on the commit which time is nearest before "StarTeam->View->Properties->Type->Parent Configuration" of the Other View.
java -cp .:/usr/share/java/jargs.jar:/opt/StarTeamCP_2005r2/lib/starteam80.jar:./syncronizer.jar:../lib/org.eclipse.jgit-0.12.1.jar:/usr/lib/jvm/java-1.6.0-sun/jre/lib/ org.sync.MainEntry -h 192.0.1.102 -P 49203 -p Prime -v "Other View" -H other-view -U UserName -d gmail.com -f Src/apps/vlc2android -R

3. Get the repository:
cd /pub/gittrees/
git clone --bare ~/proj/git-starteam/bin/.git vlc2android.git

4. Delete bin/.git/ folder
cd ~/proj/git-starteam/bin/
rm .git/ -fr


TODO:
* Finish basic support of file query in the Fake Starteam API.
 - Support for folder creation [DONE]
 - Support for file creation [DONE]
 - Support for acurrate file status [DONE]
 - Support for label creation [Not Started]
 - Support for file deletion [DONE]
 - Support for folder moving [DONE]
 - Support for file renaming [DONE]
* Create the fast-export based on the Starteam API.
 - Create basic object for fast-export stream. [DONE]
 - Create CLI for importing from a Project / View / View Configuration (Time) / Folder.
  * Syncronization of the tip [Done]
  * Syncronization by time of commit [Done]
  * Syncronization by Folder [Done]
  * Syncronization by branched View [Done]
  * Syncronization by Label [Not Started]
* Push to starteam
 - Post-receiver example

About

Project to make a bridge between Starteam and Git using the fast-import mechanism

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages