Collaboration, based on a Github Repository

The Sources of the (Telekom) Open Source License Compendium are hosted in a GitHub repository. There are methods offered to participate case-by-case, to participate frequently as forker, or to participate permantently as collaborator. The repository is managed by the following branching strategy:

  • The branch master contains always the lastly published version.
  • Initially the branch integration is derived from the latest state of the branch master. The other major working branches are derived from the branch integration. These working branches are merged back into the branch integration, may be for exchanging interims results or for aggregating a new publishable release. In case of collecting public release the branch integration is merged back into the branch master and after gaving resolved all conflicts the new release will be published.
  • Each collaborator has his own working branch
    • branch kreincke :- working branch of Karsten Reincke
    • ...
  • The branch  gh-pages contains the OSLiC project pages, wich are set up according the GitHub page rules and hence also hosted on GitHub.

(Note: The formerly public branch endote is now only locally used by the merger and will be deleted locally after having released a new version, one with footnotes and one with endnotes)

Github Commands of an Edit/Merge/Rebase Cycle

  1. Initial Checkout
    1. git clone or [git clone]
    2. git checkout YourWorkBranch /* switches to your branch */
    3. git pull  /* updates with whatever is on server */
  2. Development on a Working Branch
    1. /* do, whatever you want to do */
    2. git commit -m"Change message"
    3. git push
  3. Overarching Integration of Working Results
    1. git checkout integration
    2. git pull
    3. git merge YourWorkBranch
    4. git mv 000-branch-YourWorkBranch 000-branch-integration
    5. git add .
    6. git commit -m"Merged branch YourWorkBranc to integration"
    7. git push
  4. /* Merging integration into master as (3) */
  5. /* Rebase integration as client of master like (6) */
  6. Rebasing YourWorkBranch
    1. git checkout YourWorkBranch
    2. git pull
    3. git rebase integration
    4. git mv 000-branch-integration 000-branch-YourWorkBranch
    5. git add .
    6. git commit -m"Updated YourWorkBranch to latest changes from integration"
    7. git push
  7. GOTO (2)