Git Migration

From OpenEMR Project Wiki

Overview

On 10/30/2010, the official OpenEMR repository was moved from cvs to git on Sourceforge.

Migration Details

The massive sourceforge thread that discussed this migration can be found here: http://sourceforge.net/projects/openemr/forums/forum/202506/topic/1412511

Also some discussion on this thread: http://sourceforge.net/projects/openemr/forums/forum/202506/topic/3894279

Plan to put more details on the migration, git settings, and mirroring mechanism here.

Items still left to do

  • PROBLEM: When compared the cvs and git repositories, all tags/branches were identical, except for the v3_1_0 tag and the rel-310 branch.
  • SOLUTION: Did not include the rel-310 branch in the migration. Will rebuild it after the migration. While rebuilding rel-310 will also add a v3_1_0_FIXED tag with appropriate code. So will require following steps:
  1. Create a rel-310 branch off the rel-320 branch in the git repo.
  2. Create a diff patch between rel-320 and v3_1_0 in cvs; use the cvs diff which can be used to ignore differences in EOL and not include cvs versioning lines. Apply this patch and commit to rel-310 branch, and then tag this with v3_1_0_FIXED.
  3. Create a diff patch between rel-310 and v3_1_0 in cvs; use the cvs diff which can be used to ignore differences in EOL and not include cvs versioning lines. Apply this patch and commit to rel-310 branch.

Official git Mirrors

  • github
  • gitorious
  • repo.or.cz

Proposed Developer Structure

Overview

Considering a different developer model/structure in order to avoid breaking the git repository on sourceforge. This is important to avoid because of the downstream mirrors that the main sourceforge repository feeds. Propose the following structure:

  • Integration Developers
    • These are the only developers with commit access to the sourceforge repository.
    • They have demonstrated common sense and proficiency in git and OpenEMR development.
    • They are responsible for committing their own code.
    • They are willing to commit the code of the "Privileged" developers (when requested).
    • A standardized method to commit to the sourceforge repository has been documented HERE . Rather than pull in the entire remote branch of somebody else's code, recommend pulling in each commit via the 'cherry-pick' command.
  • Privileged Developers
    • These are developers that have demonstrated common sense and proficiency in OpenEMR development.
    • They do not have commit access to the sourceforge repository.
    • Their code will be directly committed to the sourceforge repository upon request by an "Integrator" (no questions asked and within 24 hours).
      • Best way to do this is to submit code via a public git branch. (instructions on how to do this can be found here). If this is done correctly, then it only takes an "Integrator" several minutes to commit your code to the sourceforge repository.
  • Near-Privileged Developers
    • These are developers that have demonstrated common sense and proficiency in OpenEMR development, however we still need to see a little more work before they are considered a "Privileged" developer.
    • They do not have commit access to the sourceforge repository.
    • Their code needs to be reviewed before committing to the sourceforge repository.
      • Best way to do this is to submit code via a public git branch. (instructions on how to do this can be found here). If this is done correctly, then it only takes an "Integrator" several minutes to commit your code to the sourceforge repository if deemed acceptable.
  • Standard Developers
    • Standard developers whom have or are in process of submitting code.
    • They do not have commit access to the sourceforge repository.
    • Their code needs to be reviewed before committing to the sourceforge repository.
      • Best way to do this is to submit code via a public git branch. (instructions on how to do this can be found here). If this is done correctly, then it only takes an "Integrator" several minutes to commit your code to the sourceforge repository if deemed acceptable.

Integration Developers

bradymiller
stephen-smith
sunsetsystems
tmccormi

Privileged Developers

acmoore
andres_paglayan
cfapress
drbowen
larrylart
markleeds
mmfsystems
rachoac
tekknogenius
visolve-selvi
whimmel
zhhealthcare

Near-Privileged Developers

coleedo

Standard Developers