Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 370542

Summary: simplifying git repository structure
Product: [Modeling] MDT.RMF Reporter: Mark Broerkens <eclipse>
Component: Reqif-1.0Assignee: Project Inbox <rmf.reqif10-inbox>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: michael
Version: unspecified   
Target Milestone: i12.03   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Mark Broerkens CLA 2012-02-03 07:05:52 EST
while working with the RMF source code I found out that the current separation of the code into 5 git repositories produces quite some overhead and might lead to inconsistencies within the overall RMF code. Thus I propose to merge the 5 repositories into a single repository.

=== some details ===

(1)
Current situation:
The RMF code is separated into 5 git repositories:
/gitroot/rmf/org.eclipse.modeling.rmf.core.git
/gitroot/rmf/org.eclipse.modeling.rmf.core.reqif10.git
/gitroot/rmf/org.eclipse.modeling.rmf.core.rif11.git
/gitroot/rmf/org.eclipse.modeling.rmf.core.rif12.git
/gitroot/rmf/org.eclipse.modeling.rmf.pror.reqif10.git

(2)
Some thoughts about the current repository structure:
* initial setup of the development environment takes some time
* many development activities do not only affect a single repository. I often need to push to more than one repository.
 This takes time and overall consistency of the code needs to be ensured manually. e.g. in order to create a tag of the RMF project, a tag for each git repository need to be created.
* The repositories are quite small. Thus, there is no need (yet) to separate them due to performance or memory consumption reasons
* Setting up automatic builds is more complex since the checkout procedure needs to be repeated for each repository

(3)
Proposal:
I think we should merge the current repositories into a single new repository and remove the old repositories.
/gitroot/rmf/org.eclipse.rmf.git

(4)
Further reading and thoughts about repository granularity can be found at
[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=345471
    (In short: it is a good practice to have a single repository per project)
[2] http://git.eclipse.org/c/
    (an overview over existing git repositories)
Comment 1 Mark Broerkens CLA 2012-02-03 07:07:52 EST
This bug was discussed on the RMF-Dev Mailing List:
http://dev.eclipse.org/mhonarc/lists/rmf-dev/msg00043.html
Comment 2 Mark Broerkens CLA 2012-02-03 20:07:35 EST
The merged git repository is now available at:
git://git.eclipse.org/gitroot/rmf/org.eclipse.rmf.git
ssh://git.eclipse.org/gitroot/rmf/org.eclipse.rmf.git
http://git.eclipse.org/gitroot/rmf/org.eclipse.rmf.git

These are the commands I used for merging the old git repositories into the new one:
git clone ssh://<me>@git.eclipse.org/gitroot/rmf/org.eclipse.rmf.git
git clone http://git.eclipse.org/gitroot/rmf/org.eclipse.modeling.rmf.core.git
git clone http://git.eclipse.org/gitroot/rmf/org.eclipse.modeling.rmf.core.rif11.git
git clone http://git.eclipse.org/gitroot/rmf/org.eclipse.modeling.rmf.core.rif12.git
git clone http://git.eclipse.org/gitroot/rmf/org.eclipse.modeling.rmf.core.reqif10.git
git clone http://git.eclipse.org/gitroot/rmf/org.eclipse.modeling.rmf.pror.reqif10.git

mkdir combined && cd combined
git init
touch readme.txt
git add readme.txt 
git commit readme.txt -m "description of repository content added"

git branch develop
git checkout develop
git fetch ../org.eclipse.modeling.rmf.core remotes/origin/develop:core_develop
git merge core_develop
git fetch ../org.eclipse.modeling.rmf.core.reqif10 remotes/origin/develop:core_reqif10_develop
git merge core_reqif10_develop
git fetch ../org.eclipse.modeling.rmf.pror.reqif10 remotes/origin/develop:pror_reqif10_develop
git merge pror_reqif10_develop
git fetch ../org.eclipse.modeling.rmf.core.rif11 remotes/origin/develop:core_rif11_develop
git merge core_rif11_develop
git fetch ../org.eclipse.modeling.rmf.core.rif12 remotes/origin/develop:core_rif12_develop
git merge core_rif12_develop

git checkout master
git fetch ../org.eclipse.modeling.rmf.core master:core_master
git merge core_master
git fetch ../org.eclipse.modeling.rmf.core.reqif10 master:core_reqif10_master
git merge core_reqif10_master
git fetch ../org.eclipse.modeling.rmf.pror.reqif10 master:pror_reqif10_master
git merge pror_reqif10_master
git fetch ../org.eclipse.modeling.rmf.core.rif11 master:core_rif11_master
git merge core_rif11_master
git fetch ../org.eclipse.modeling.rmf.core.rif12 master:core_rif12_master
git merge core_rif12_master

cd ../org.eclipse.rmf

git checkout develop
git push ssh://<me>@git.eclipse.org/gitroot/rmf/org.eclipse.rmf.git develop

git checkout master
git push ssh://<me>@git.eclipse.org/gitroot/rmf/org.eclipse.rmf.git master
Comment 3 Mark Broerkens CLA 2012-02-12 15:31:08 EST
done
Comment 4 Michael Jastram CLA 2012-03-24 06:54:37 EDT
Done.