. "2016-09-14T12:28:34.080521"^^ . . . . "---+ Using Git With OpenLink Software's Open-Source Projects\n\n%TOC%\n\n---++ Introduction\n\nBy design =git= can be used in a variety of ways. In fact it allows so many ways\nof managing ones code that it is easy to mess everything up. Thus, it is\nimportant to stick to fixed policies and rules when using a git repository\ncollaboratively. This document states the setup and the policies used with the\nVOS git-repository.\n\n---++ Repository Setup\n\nWe use a moderated development model where there is one \"official\" repository\nthat is maintained by OpenLink Software. Only OpenLink can push changes to this\nrepository. Developers work in their own clones of the repository and send merge\nrequests or patches to the administrator. (Details of this procedure are not\nclear yet. We might want to setup or use a web frontend.)\n\n\n---++ Branches\n\nOur development model is based on the git workflow originally presented by\n[[http://nvie.com/posts/a-successful-git-branching-model/][nvie]]. We have a\nmaster branch which always reflects the current release, a development branch,\nstable branches for each major release, feature branches, and release branches.\n\nAll the procedures described below can also be performed via the\n[[https://github.com/nvie/gitflow][git-flow extension]].\n\nLet us look at the branches in detail.\n\n---+++ The main branches\n\nWe have two main branches with an infinite lifetime.\n\n * The branch =develop= always reflects the latest state in active development. New features are always integrated here.\n * The =master= branch always matches the latest stable release, release tags are only created on the =master= branch.\n\n\n---+++ Feature branches\n\nNew features are developed in feature-branches (sometimes called topic\nbranches). Feature branches typically have the prefix =feature/= and should\nalways be branched off the development branch:\n\n\n$ git checkout -b feature/myFeature develop\n\n\nOnce the feature is done it should be merged back into the originating branch:\n\n\n$ git checkout develop\n$ git merge --no-ff feature/myFeature\n$ git branch -d feature/myFeature\n\n\nThe --no-ff flag causes the merge to always create a new commit object,\neven if the merge could be performed with a fast-forward. This avoids losing\ninformation about the historical existence of a feature branch and groups\ntogether all commits that together added the feature.\n\n\n---++ Tagging a release\n\nA minor release is created from a stable version branch like =master=. A release\nbranch is created in which the rest of the release preparation like version\nbump, ChangeLog updates, and so on are done:\n\n\n$ git branch -b release/1.2.2 master\n\n\nOnce the branch is done it is merged back into =master=:\n\n$ git checkout branch master\n$ git merge --no-ff release/1.2.2\n\n\nIt also has to be merged into the development branch (this might lead to\nconflicts which need to be resolved):\n\n\n$ git checkout develop\n$ git merge --no-ff release/1.2.2\n\n\nThen the release is tagged from =master=:\n\n\n$ git checkout master\n$ git tag -s v/1.2.2\n\n\nand finally the release branch can be removed:\n\n\n$ git branch -d release/1.2.2\n\n\n\n\n---+++ Hotfix releases\n\nBug fixes that will go into a minor release (and as such are not considered a\nfeature to be branched off the =develop= branch) need to be branched off the\n=master= branch.\n\n\n$ git checkout -b hotfix/myFix master\n\n\nOnce the fix is done it is merged back into the =master= branch:\n\n$ git checkout master\n$ git merge --no-ff hotfix/myFix\n\n\nIn case the fix also applies to the latest development version the branch has\nalso to be merged into the =develop= branch before being deleted:\n\n\n$ git checkout develop\n$ git merge --no-ff hotfix/myFix\n$ git branch -d hotfix/myFix\n\n\n\n---++References\n\n * [[http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/GitQuickstartTips][Git Quickstart & Tips]] [virtuoso.openlinksw.com]\n * [[http://progit.org/book/][ProGit - Online-Book on Git Usage]]\n * [[http://help.github.com/][GitHub Help]]\n\n\n" . "2016-09-14T12:28:34.080521"^^ . . . "5bf6d3c4054caf74f21999bdcb676b56" . "GitStrategy" . . . "GitStrategy" . . . "2016-09-14T12:28:34Z" . . "2016-09-14T12:28:34Z" . . . . . "GitStrategy" . . . .