5 Replies Latest reply: Mar 25, 2011 12:02 PM by Gary Brown RSS

Moving code to git

Gary Brown Master

A number of jboss.org projects have moved from svn to git (generally hosted at github), due to the benefits that can be obtained from using a distributed version control system.

 

Its possible this could benefit the Scribble project, in that it could more easily allow different research groups to maintain their own forks, without having to necessarily (1) provide changes through patches, or (2) sign a contributor agreement and be given commit rights to the svn repository.

 

As the work of these separate groups mature, it can be pushed back to the master repository to become part of the main distribution.

 

I don't have a great deal of experience using git at the moment, but recently migrated the Savara (version 2) codebase to github. So this change does not necessarily have to be considered at the moment - but as Scribble will integrate into Savara and also as part of JBoss Tools, and both of these projects are now hosted on github, it may be a good idea.

 

One issue is the tooling for git is not as well established as svn - however the merging capabilities are apparently significantly better.

 

Thoughts?

  • 1. Moving code to git
    Olivier Pernet Newbie

    I'm already using Mercurial, and I find distributed VCS much more convenient than SVN generally. Apart from merging, other advantages include offline operation, low-cost branching, and easy cleanup of history. This encourages frequent small commits, making it easy to manage individual changes as indiidual commits.

     

    In short: +1!

  • 2. Moving code to git
    Gary Brown Master

    Ok then the other aspect of this is whether to split up the current Java code base into smaller repositories.

     

    - The pro for this is that then each repository is smaller and more focused on a particular need.

    - The con is that we may end up with many repositories if we start to expand the languages supported.

     

    For Savara, which used to have a similar layout as Scribble, I divided the code into the following:

     

    Core - included the OSGi bundles that were environment independent, and would be deployed to Nexus as their primary mechanism for release

    Eclipse tools - provides the Eclipse plugins. Release is via generating an update site

    Server integration - builds a distribution that can be deployed into a server (currently just JBossAS), to integrate core capabilities into the server

     

    So the only difference I see with Scribble is that instead of integration into a server, it provides a command line execution. Therefore for scribble we could have:

     

    Scribble-core - core bundles deployed to Nexus

    Eclipse tools - integration with Eclipse, provided via update site

    Command line tools - provided as a zip distribution

     

    These would be language specific, although as these are the first repositories, possibly they don't need to explicitly state 'java' in the repo name - with subsequent languages adding the language as necessary?

  • 3. Moving code to git
    Olivier Pernet Newbie

    I'm only using the core code, so it would be nicer for me to have this core/eclipse/command line tools split. I don't mind too much if we stay with the current scheme, either.

  • 4. Moving code to git
    Gary Brown Master

    Core modules have now been ported to https://github.com/scribble/scribble-core

     

    Hudson build job is here: http://hudson.jboss.org/hudson/job/scribble-core-master/

     

    Other parts of the code (Eclipse and command line integration) will be ported soon.

  • 5. Moving code to git
    Gary Brown Master

    All repositories are now ported, see the scribble organisation here: https://github.com/organizations/scribble

     

    There is also the beginings of an article describing a development workflow - currently documented against the Savara project, but the same applies for Scribble. There are still some outstanding questions to be answered, so may change over time, but when stable will be linked/copied for the Scribble project: http://community.jboss.org/wiki/SavaraDevelopmentWorkflowwithGIT