About Github migration

Heiko W.Rupp hrupp at redhat.com
Thu Oct 18 08:36:42 UTC 2012


John,

Am 17.10.2012 um 22:46 schrieb John Sanda:

> I took a look at https://github.com/pilhuhn/rhq/tree/master/modules/ and see that the plugins are still there. Will the plugins subdirectory get purged since you 

I stopped there yesterday as I think I made a mistake -- my email actually shows an updated script from what I've tried.
The end goal is to have them vanish from the main rhq repo.

Also I think my rhq-plugins repo suffers from the same issue I made when initially copying over the main one.

Please note that pilhuhn/rhq* is my private playground to investigate the steps needed to move (*) and will not 
be the official one. The official ones will then live at github.com/rhq-project/

> split them out into a separate repo? If I push a branch to the rhq-plugins repo, will there be any issues since the source trees will be different? In other words, if I push a branch that exists in the fedora hosted repo over to the rhq-plugins repo, will that wind up pulling in parts of the source tree outside of the plugins directory?

I have no idea, but that is possible.

My idea for a schedule here is to:
1) sync all work to FH 
1a) freeze the git.FH repo and perhaps even revoke write rights for (almost) everyone - see below *3)
2) sync the whole tree over to GH
  - we may filter out old branches that we don't want to keep
3) split out the plugins into their own repo
 - same for other parts of the source that we want to split out
 - remove those parts from the main repo
4) have every developer throw away the old FH based single repo
5) have every developer clone the repos from GH
  - no usage of submodules
6) change plugins + other repos (if applicable) to build against the latest published maven
  artifacts *2)
7) Change jenkins jobs to build the repos -- making sure that e.g. plugins also only use published
  artifacts
8) have every developer only push to GH into the respective repo. As e.g. the plugin repo
  has no classes from core, there will be no cross-talking

Steps 2+3 seem to  keep all the tags, so we should be on the safe side here.

  Heiko


*) JBossTools did a migation to github from svn, so their story is not 1:1 applicable to us.
*2) working against snapshots is no good idea, as external parties may want to retrieve the dependencies
  from jboss nexus or central without the need to compile them; we may add some repo setting in the 
  plugins pom to also allow snapshots from jboss nexus, but it must be clear that for compiling plugins,
  a user must never be forced to checkout the source of modules/core or any other part of RHQ.
*3) There may be a way that GitHub mirrors all commits into FH to give us some air when transitioning 
 e.g. Jenkins. But then I don't think that can work with split repos.

> 
> On Oct 17, 2012, at 4:18 PM, "Heiko W.Rupp" <hrupp at redhat.com> wrote:
> 
>> Hi, 
>> 
>> as a followup I have 
>> Am 21.09.2012 um 16:44 schrieb Heiko W.Rupp:
>> 
>>> Hi,
>>> 
>>> to get some experience I tried how some migration to github might look like.
>>> I did that with my personal GitHb account, so this is not available in 
>>> github/rhq-project (yet)
>>> 
>>> ** First I basically followed the answer to this question on stack overflow
>>> to pull stuff from FH and pushed to GH
>>> 
>>> http://stackoverflow.com/questions/5181845/git-push-existing-repo-to-a-new-and-different-remote-repo-server
>>> 
>>> I think for a real migration we would first do a 
>>> 
>>> git fetch --all
>>> git remote add github <github url>
>>> and then a 
>>> git push --mirror github
>> 
>> 
>>> 
>>> This should copy the whole repository inc. all branches and tags.
>> 
>> This seems to copy all tags, but not all branches.
>> 
>> One can probably just loop over all branches like e.g. 
>> 
>> $ git checkout -t -b rhq-on-as7 origin/rhq-on-as7
>> $ git push github rhq-on-as7:rhq-on-as7
>> 
>> One has to be careful here, as
>>  a) the correct branch needs to be taken 
>> and
>>  b) the name on the remote should be just rhq-on-as7 and not origin/rhq-on-as7
>> 
>> Something like
>> 
>> BRANCHES=`git branch -r | grep -v "upstream/" | sed -e 's/^ *origin\///'`
>> for B in $BRANCHES 
>> do
>>  echo $B
>>  git checkout -b origin/$B
>>  git push upstream $B:$B
>> done
>> 
>> There may be a better way, than individually pushing them 
>> 
>>  Heiko
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Reg. Adresse: Red Hat GmbH, Technopark II, Haus C, 
>> Werner-von-Siemens-Ring 14, D-85630 Grasbrunn
>> Handelsregister: Amtsgericht München HRB 153243
>> Geschaeftsführer:  Mark Hegarty, Charlie Peters, Michael Cunningham, Charles Cachera
>> 
>> _______________________________________________
>> rhq-devel mailing list
>> rhq-devel at lists.fedorahosted.org
>> https://lists.fedorahosted.org/mailman/listinfo/rhq-devel
> 
> _______________________________________________
> rhq-devel mailing list
> rhq-devel at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/rhq-devel

-- 
Reg. Adresse: Red Hat GmbH, Technopark II, Haus C, 
Werner-von-Siemens-Ring 14, D-85630 Grasbrunn
Handelsregister: Amtsgericht München HRB 153243
Geschaeftsführer:  Mark Hegarty, Charlie Peters, Michael Cunningham, Charles Cachera

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 203 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <https://lists.fedorahosted.org/pipermail/rhq-devel/attachments/20121018/88b4e9dd/attachment-0001.sig>


More information about the rhq-devel mailing list