wiki:Develop/SourceControl

Git repository

The source code of grafx2 is stored in a Git repository, where all versions of each file are available. The web site allows browsing through it (read-only), but developers can use a Git client for full access.

Location

The repository is hosted on gitlab. For developers with commit access, use this URL:

git clone git@gitlab.com:GrafX2/grafX2.git

You need to set up your gitlab account first for this to work (ssh key to connect, etc). Alternatively, you can checkout using the https URL, but then you will need to type in your password each time you want to push your changes.

_note: This creates a new working space in (new?) directory *grafx2*_


Repository branches

master

This is where most work takes place. It contains at all times the work-in-progress version, sometimes unstable. When publishing a stable version, the code in master is copied to the release and replaces it.

release branch

Contains a development branch for the latest stable release version. Most of the time there is no activity, the branch stays available to quickly fix a critical bug that would be found in a release version.

To check out this branch (after cloning):

git checkout release

This switches your existing working copy to the release branch.

Reporting fixes from release into trunk

After they're coded and packaged, the fixes can be reported back to trunk (so the next unstable version also benefits from the fixes). To do so:

  1. change directory to a working copy of trunk, and type:
    git merge origin/release
    
  2. Solve any conflicts (sometimes the fixes are already applied but differently)
  3. Push the changes

New release

When the trunk is deemed stable, the release branch is upgraded to match its version:

  1. Checkout the master branch
  2. Change the version label (remove "wip")
    git push -f origin/release
    git tag origin/release v2.x
    git push origin v2.x
    

When done, you generally change the version label in trunk by adding 0.1 and "wip".

Creating a new branch

Create a branch new_branch starting as a copy of master :

git checkout master
git checkout -b new_branch
git push origin new_branch
Last modified 3 years ago Last modified on 03/05/2017 21:16:37