Difference between revisions of "DTP Source Code Repository"

From Eclipsepedia

Jump to: navigation, search
m (Resources for getting familiarized with Git)
m
 
(18 intermediate revisions by one user not shown)
Line 1: Line 1:
 
{{Back To|name=DTP Main Page|href=Data Tools Platform Project}}  
 
{{Back To|name=DTP Main Page|href=Data Tools Platform Project}}  
  
== Migration from CVS to Git ==
+
== Migration from CVS to Git ==
  
DTP source code repository has been maintained on CVS since the beginning of the project. After the Indigo release (DTP 1.9), the DTP project is planning to migrate our source code repository from Eclipse CVS to Git. This is in line with the overall direction of Eclipse projects. We also want to take the opportunity to refine the source code organization and clean up obsolete plug-ins, as part of the migration.  
+
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 are essentially migrating the DTP CVS Head branch to Git, and it will include the history in CVS.
+
We have essentially migrated the DTP CVS Head branch to Git, which includes the history in CVS at the time of migration. Starting from [http://wiki.eclipse.org/DTP_1.9.1_Schedule_and_Rampdown_Policy DTP 1.9.1] (Indigo SR1 release) and on, builds are made from the '''master''' branch in the Eclipse DTP Git source code repositories.  
Starting from [http://wiki.eclipse.org/DTP_1.9.1_Schedule_and_Rampdown_Policy DTP 1.9.1] (Indigo SR1 release) and on, builds will be made from the Eclipse Git source code repositories.
+
If there is ever a need to build DTP 1.9 or older version, it should still grab the source from corresponding CVS branches.  
+
  
We are not currently doing any nightly build for the 1.9.1 release. It will resume when the Git migration is completed.
+
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:
  
== DTP Git Repository Organization ==
+
*Adopters using products or applications based on DTP 1.9.0 or earlier, and which does not have a Git client<br>
 +
*Any tools, build scripts and web sites with existing pointers into the DTP CVS repository
  
Separate Git repository will be 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.  
+
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.  
  
Below are the list of separate DTP Git repositories. See the [http://www.eclipse.org/forums/index.php/fa/3350/ spreadsheet] for the proposed directory structure and content in each Git repository. Note that obsolete or archived plug-in projects will not be migrated, and are thus not included in the Git repositories.  
+
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 [http://www.eclipse.org/forums/index.php/fa/3350/ 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'''  
 
'''Separate Git source repositories for each sub-project and enablement groupings'''  
  
*org.eclipse.datatools.connectivity.git <span style="display: none;" id="1310610323208E">&nbsp;</span>
+
*org.eclipse.datatools.connectivity.git <span id="1310610323208E" style="display: none;">&nbsp;</span>
*org.eclipse.datatools.modelbase.git  
+
 
*org.eclipse.datatools.sqltools.git  
+
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.connectivity.git
 +
 
 +
*org.eclipse.datatools.modelbase.git
 +
 
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git
 +
 
 +
*org.eclipse.datatools.sqltools.git
 +
 
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.sqltools.git
 +
 
 
*org.eclipse.datatools.enablement.&lt;vendor&gt;.git
 
*org.eclipse.datatools.enablement.&lt;vendor&gt;.git
  
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where &lt;vendor&gt; are: hsqldb, ibm, ingres, msft, mysql, oda, oracle, postgresql, sap, sqlite, sybase  
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where &lt;vendor&gt; are: hsqldb, ibm, ingres, msft, mysql, oda, oracle, postgresql, sap, sqlite, sybase  
  
*org.eclipse.datatools.enablement.general.git -- ''contains non-vendor specific enablement plugin projects''  
+
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.hsqldb.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.ibm.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.ingres.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.msft.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.mysql.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.oda.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.oracle.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.postgresql.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.sap.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.sqlite.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.sybase.git
 +
 
 +
*org.eclipse.datatools.enablement.general.git -- ''contains non-vendor specific enablement plugin projects''
 +
 
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.general.git
 +
 
 
*org.eclipse.datatools.incubator.git
 
*org.eclipse.datatools.incubator.git
  
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.incubator.git
  
Each of the above source repositories contains the following sub-folders, if content exists: <br>
+
Each of the above source repositories contains the following sub-folders, if content exists: <br>  
  
 
*plugins/ &nbsp;: contains source plug-in projects  
 
*plugins/ &nbsp;: contains source plug-in projects  
Line 37: Line 73:
 
*examples/&nbsp;: exemplary implementation projects
 
*examples/&nbsp;: exemplary implementation projects
  
 +
'''Note''': the ssh URLs above are for committers; &lt;userid&gt; is your Eclipse committer user id
  
'''Additional separate Git repositories for non-source projects '''<br>
+
For anonymous read access to the Eclipse DTP repositories, use the ''git ''or ''http'' protocol:
 +
 
 +
git://git.eclipse.org/gitroot/datatools/&lt;repository&gt;
 +
e.g. git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.connectivity.git
 +
 
 +
'''Additional separate Git repositories for non-source projects '''<br>  
  
 
*org.eclipse.datatools.build.git  
 
*org.eclipse.datatools.build.git  
Line 44: Line 86:
 
*org.eclipse.datatools.nl.git
 
*org.eclipse.datatools.nl.git
  
== Resources for getting familiarized with Git ==
+
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.build.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.doc.git
 +
ssh://&lt;userid&gt;@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.nl.git
  
'''Some Useful EGit/Git Documentation '''<br>
+
'''Browsing Remote Git Repositories'''  
  
* http://wiki.eclipse.org/EGit/Git_For_Eclipse_Users
+
Use a web browser to browse the content of the [http://git.eclipse.org/c/datatools Eclipse DTP Git repositories].  
* http://wiki.eclipse.org/EGit/User_Guide
+
* [http://progit.org/book/ Pro Git book] - especially chapter 3
+
* http://wiki.eclipse.org/Git/Migrating_to_Git
+
* [[Platform-releng/Git_Workflows]] by Paul Webster for migrators from CVS
+
* [http://tom.preston-werner.com/2009/05/19/the-git-parable.html The Git Parable]
+
* [[Git]] page by Denis Roy (Eclipse infrastructure, Legal stuff, pulling from external repos)
+
  
'''Temporary Test Git Repositories '''<br>
+
== Git Workflow for DTP Committers  ==
  
We have created a few temporary test Git repositories on github.com.  
+
See [[Platform-releng/Git Workflows]] for the general guideline for committers.
''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.)
+
 
 +
The DTP build process is based on a project plugin's tag value in the releng's map file.
 +
<br>Starting from Nov. 21, 2011, committers no longer need to manually tag and update the map file(s). The build process now checks for any changes to a bundle project in the "master" branch, and automatically tags the remote repository and updates the relevant map file with the corresponding tag value.
 +
 
 +
The steps for DTP committers to update the Eclipse DTP repository are:
 +
 
 +
*Do a ''git add'' and ''git commit'' for the changed bundle projects in your local repository
 +
*Fetch and Rebase/Merge as appropriate from the "master" branch in remote repository
 +
**Verify that your local commit is based on the correct parent, with a "Show in History" action on the plugin.
 +
*Push all your source and bundle updates to the "master" branch in DTP remote repository
 +
**Do a Team -&gt; Remote -&gt; Push...
 +
 
 +
== Resources for getting familiarized with Git  ==
 +
 
 +
'''Some Useful EGit/Git Documentation '''<br>
 +
 
 +
*[[Platform-releng/Git Workflows]] by Paul Webster for committers migrating from CVS
 +
*http://wiki.eclipse.org/EGit/Git_For_Eclipse_Users
 +
*http://wiki.eclipse.org/EGit/User_Guide
 +
*[http://progit.org/book/ Pro Git book] - especially chapter 3
 +
*[http://tom.preston-werner.com/2009/05/19/the-git-parable.html 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 '''<br>
 +
 
 +
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''  
 
To write (e.g. push) to the DTP test remote repos on github, it will need a password: ''Actuate2011''  
  
*DTP connectivity project:
+
*DTP connectivity project:  
** URI: https://YongJiang@github.com/YongJiang/DTP_connectivity.git (read+write)  
+
**URI: https://YongJiang@github.com/YongJiang/DTP_connectivity.git (read+write)  
** URI: git://github.com/YongJiang/DTP_connectivity.git (read only)
+
**URI: git://github.com/YongJiang/DTP_connectivity.git (read only)
  
 
*DTP modelbase project:  
 
*DTP modelbase project:  
** URI: https://YongJiang@github.com/YongJiang/DTP_modelbase.git (read+write)  
+
**URI: https://YongJiang@github.com/YongJiang/DTP_modelbase.git (read+write)  
** URI: git://github.com/YongJiang/DTP_modelbase.git (read only)
+
**URI: git://github.com/YongJiang/DTP_modelbase.git (read only)
  
 
*DTP sqltools project:  
 
*DTP sqltools project:  
** URI: https://YongJiang@github.com/YongJiang/DTP_sqltools.git (read+write)  
+
**URI: https://YongJiang@github.com/YongJiang/DTP_sqltools.git (read+write)  
** URI: git://github.com/YongJiang/DTP_sqltools.git (read only)
+
**URI: git://github.com/YongJiang/DTP_sqltools.git (read only)
  
 
*o.e.d.enablement.ibm.feature:  
 
*o.e.d.enablement.ibm.feature:  
** URI: https://YongJiang@github.com/YongJiang/DTP_enablement_ibm.git (read+write)  
+
**URI: https://YongJiang@github.com/YongJiang/DTP_enablement_ibm.git (read+write)  
** URI: git://github.com/YongJiang/DTP_enablement_ibm.git (read only)
+
**URI: git://github.com/YongJiang/DTP_enablement_ibm.git (read only)
  
 
*o.e.d.enablement.oda*.features:  
 
*o.e.d.enablement.oda*.features:  
** URI: https://YongJiang@github.com/YongJiang/DTP_enablement_oda.git (read+write)  
+
**URI: https://YongJiang@github.com/YongJiang/DTP_enablement_oda.git (read+write)  
** URI: git://github.com/YongJiang/DTP_enablement_oda.git (read only)
+
**URI: git://github.com/YongJiang/DTP_enablement_oda.git (read only)
 
+
  
'''Browsing Remote Git Repositories'''
+
<br> '''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.  
 
To browse the content of a remote Git repo, use a web browser with the remote repo URL, e.g.  
  
* https://github.com/YongJiang/DTP_connectivity
+
*https://github.com/YongJiang/DTP_connectivity  
* https://github.com/YongJiang/DTP_enablement_oda
+
*https://github.com/YongJiang/DTP_enablement_oda
* https://git.eclipse.org/c/ (Eclipse.org Git repositories - the future home of DTP Git repos)
+

Latest revision as of 17:00, 22 November 2011

Back to DTP Main Page


Contents

[edit] 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.

[edit] 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).

[edit] 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

  • org.eclipse.datatools.connectivity.git
ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.connectivity.git
  • org.eclipse.datatools.modelbase.git
ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git
  • org.eclipse.datatools.sqltools.git
ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.sqltools.git 
  • org.eclipse.datatools.enablement.<vendor>.git

            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
ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.enablement.general.git 
  • org.eclipse.datatools.incubator.git
ssh://<userid>@git.eclipse.org/gitroot/datatools/org.eclipse.datatools.incubator.git

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

  • org.eclipse.datatools.build.git
  • org.eclipse.datatools.doc.git
  • org.eclipse.datatools.nl.git
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.

[edit] Git Workflow for DTP Committers

See Platform-releng/Git Workflows for the general guideline for committers.

The DTP build process is based on a project plugin's tag value in the releng's map file.
Starting from Nov. 21, 2011, committers no longer need to manually tag and update the map file(s). The build process now checks for any changes to a bundle project in the "master" branch, and automatically tags the remote repository and updates the relevant map file with the corresponding tag value.

The steps for DTP committers to update the Eclipse DTP repository are:

  • Do a git add and git commit for the changed bundle projects in your local repository
  • Fetch and Rebase/Merge as appropriate from the "master" branch in remote repository
    • Verify that your local commit is based on the correct parent, with a "Show in History" action on the plugin.
  • Push all your source and bundle updates to the "master" branch in DTP remote repository
    • Do a Team -> Remote -> Push...

[edit] Resources for getting familiarized with Git

Some Useful EGit/Git Documentation

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


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.