DTP Source Code Repository
Migration from CVS to Git
DTP source code repository has been maintained on CVS since the beginning of the DTP project. After the Indigo release (DTP 1.9), the DTP project migrated our source code repository from Eclipse CVS to Git. This is in line with the overall direction of Eclipse projects. We also took the opportunity to refine the source code organization and cleaned up obsolete plug-ins, as part of the migration.
We have essentially migrated the DTP CVS Head branch to Git, which includes the history in CVS at the time of migration. Starting from DTP 1.9.1 (Indigo SR1 release) and on, builds are made from the master branch in the Eclipse DTP Git source code repositories.
The source repository for DTP 1.9.0 and earlier versions are maintained in CVS only. Continued use of DTP CVS for the earlier versions would accommodate:
- Adopters using products or applications based on DTP 1.9.0 or earlier, and which does not have a Git client
- Any tools, build scripts and web sites with existing pointers into the DTP CVS repository
If there is a need to build DTP 1.9.0 or earlier version, it should still pull the source from corresponding CVS branches. Any back-port to these branches, if needed, must be done in DTP CVS as well.
We are thus keeping the DTP CVS repository writable after the Git migration (for the time being), to allow commits to the earlier branches. Note that CVS Head will not be used by the DTP builds. We plan to delete all content from HEAD in CVS to avoid confusion.
Git Migration Completed
The migration from CVS to Git repositories has been completed. It took place between 7/18/2011 and 7/25/2011.
The migration tasks mainly involved importing related files and CVS history over to the new Git repositories (1 day), running tools to verify the repos (2-3 days), and running test builds from the Git repos (1 day).
DTP Git Repository Organization
Separate Git repository is created for each DTP sub-project. The main guideline used for the repository split is to group those highly-related projects that are likely maintained by the same set of committers.
Below are the list of separate DTP Git repositories. See the spreadsheet for the directory structure and content in each Git repository. Note that obsolete or archived plug-in projects were not migrated, and are thus not included in the Git repositories.
Separate Git source repositories for each sub-project and enablement groupings
where <vendor> are: hsqldb, ibm, ingres, msft, mysql, oda, oracle, postgresql, sap, sqlite, sybase
ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.hsqldb.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.ibm.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.ingres.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.msft.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.mysql.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.oda.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.oracle.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.postgresql.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.sap.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.sqlite.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.sybase.git
- org.eclipse.datatools.enablement.general.git -- contains non-vendor specific enablement plugin projects
Each of the above source repositories contains the following sub-folders, if content exists:
- plugins/ : contains source plug-in projects
- releng/ : contains map file of the source plug-in projects
- tests/ : contains unit test plug-ins
- examples/ : exemplary implementation projects
Note: the ssh URLs above are for committers; <userid> is your Eclipse committer user id
For anonymous read access to the Eclipse DTP repositories, use the git or http protocol:
git://git.eclipse.org/gitroot/datatools/<repository> e.g. git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.connectivity.git
Additional separate Git repositories for non-source projects
ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.build.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.doc.git ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.nl.git
Browsing Remote Git Repositories
Use a web browser to browse the content of the Eclipse DTP Git repositories.
Git Workflow for DTP Committers
See Platform-releng/Git Workflows for the general guideline for committers.
As the DTP build process is based on a project plugin's tag value in the releng's map file, DTP committers must also update the related map file with the appropriate tag value, and explicitly push the new tag to the corresponding Eclipse DTP remote repository.
The steps for DTP committers to update the Eclipse DTP repository are:
- Do a git add and git commit for the changed plugins in your local repository
- Fetch and Rebase/Merge as appropriate from the remote repository
- Tag the local repository
- Do a "Show in History" action on the plugin.
- Right-click on the change in the History view that you want to tag, and do a Team -> Create Tag... action. Enter a tag name following our usual Plug-in Versioning Policy and a tag comment. Leave everything else as default. Click OK. A yellow tag marker should show up in the History view on the entry for the code change.
- Update map file
- Make sure you have the correct releng project for the changed plugin in your workspace. Edit the .map file and update the tag value for the changed plugin. Direct editing of the map file is currently required, as the platform releng map project tool does not yet work for Git repositories: Bugzilla #345668)
- Commit the map file change
- Push all your source and map file updates, plus the tag spec to the DTP remote repository
- Do a Team -> Remote -> Push...
- To add the tag spec in the Push dialog, select 'Add All Tags Spec', then edit the tag spec entry in the Source Ref and Destination Ref fields to replace the wild card in "refs/tags/*" with the specific tag name "refs/tags/<tag_name>", e.g. refs/tags/v201108250248
Resources for getting familiarized with Git
Some Useful EGit/Git Documentation
- Platform-releng/Git Workflows by Paul Webster for committers migrating from CVS
- Pro Git book - especially chapter 3
- The Git Parable
- http://wiki.eclipse.org/Git/Migrating_to_Git - Migration Steps from CVS or SVN
- Git page by Denis Roy - Eclipse infrastructure, Legal stuff, pulling from external repos
Temporary Test Git Repositories
We have created a few temporary test Git repositories on github.com. Note that the directory structures found in these test repos are not the proposed ones. (See the spreadsheet referenced above for the proposed directory structures.)
To write (e.g. push) to the DTP test remote repos on github, it will need a password: Actuate2011
- DTP connectivity project:
- URI: https://YongJiang@github.com/YongJiang/DTP_connectivity.git (read+write)
- URI: git://github.com/YongJiang/DTP_connectivity.git (read only)
- DTP modelbase project:
- URI: https://YongJiang@github.com/YongJiang/DTP_modelbase.git (read+write)
- URI: git://github.com/YongJiang/DTP_modelbase.git (read only)
- DTP sqltools project:
- URI: https://YongJiang@github.com/YongJiang/DTP_sqltools.git (read+write)
- URI: git://github.com/YongJiang/DTP_sqltools.git (read only)
- URI: https://YongJiang@github.com/YongJiang/DTP_enablement_ibm.git (read+write)
- URI: git://github.com/YongJiang/DTP_enablement_ibm.git (read only)
- URI: https://YongJiang@github.com/YongJiang/DTP_enablement_oda.git (read+write)
- URI: git://github.com/YongJiang/DTP_enablement_oda.git (read only)
Browsing Remote Test Git Repositories
To browse the content of a remote Git repo, use a web browser with the remote repo URL, e.g.