Git Investigation Specification
Subscribe

From OpenNMS

Jump to: navigation, search

Contents

Description

Investigate what we want out of the new SCM.

Acceptance Criteria

Conversion

  • choose tool for how to do conversion
    • "git svn" is the only really solid contender
  • write scripts to "clean up" repositor(y|ies) after conversion
    • renaming branches and tags
    • check in current maven/etc. to trunk, script merging them to each branch & tag
    • determine if there are any branches or tags that can be outright deleted
    • export excludes
  • investigate behavior of submodules vis. svn:externals
    • submodules are probably bad for this particular use, better to just check it in (but keep them in mind for if/when we rearrange things down the road)

Hosting

  • investigate hosting options (SF's git? GitHub? Gitorious?)
  • investigate access to git in restricted environments (firewall, etc.)

Usage/Process/Document

  • confirm working behavior on multiple OSes:
    • linux ✓
    • Mac ✓
    • Windows
    • Solaris ✓
  • investigate tagging behavior; what is a "tag"?
    • a tag is just a reference to a sha hash that represents a particular tree state
  • need methodology for working with multiple branches
    • see this link for details on branch tracking
  • need way to handle commit approval (merging from "trunk" to "1.7", etc.)
    • by convention, all new development is done in a feature branch, that branch should get pushed to the upstream OpenNMS repo, and then get approved and merged into master/1.7/etc. as appropriate
  • need to be able to access from eclipse
    • egit is pretty solid and works well in my testing
  • need to be able to access from bamboo
  • investigate maven release plugin's behavior with git
  • investigate checking out individual subdirectories/modules (ie, opennms/core/lib)
    • not possible, you can only check out (clone) at the top level
  • investigate OGP development process

Resources