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

    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.



        • 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