wiki:Develop/SourceControl

Version 2 (modified by pulkomandy, 4 years ago) (diff)

--

Subversion repository

The source code of grafx2 is stored in a Subversion (aka SVN) repository, where all versions of each file are available. The web site allows browsing through it (read-only), but developers can use a Subversion client for full access. We often use the svn revision number to identify a particular set of change.

Location

The repository is available only with the direct svn protocol. There is no HTTP wrapper.

svn checkout svn://pulkomandy.tk/GrafX2/trunk/ grafx2 --username yrizoud

When prompted, enter your developer password. If you don't provide an user name, you will do an anonymous checkout, which you can use only in read-only mode.

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


Repository tree

trunk

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 trunk is copied to branches/release and replaces it.

branches/release

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:

svn checkout svn://pulkomandy.tk/GrafX2/branches/release/ stable

This creates a working copy in (new) directory _stable_.

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:
    svn merge svn://pulkomandy.tk/GrafX2/branches/release/
    
  2. Solve any conflicts (sometimes the fixes are already applied but differently)
  3. Check in.

New release

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

  1. Change directory to a working copy of the release branch.
  2. Change the version label (remove "wip")
    svn merge svn://pulkomandy.tk/GrafX2/branches/trunk/
    
  3. Solve any conflicts.
  4. Check in.

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 trunk on revision 1034 :

svn copy svn://pulkomandy.tk/GrafX2/trunk@1034 \
svn://pulkomandy.tk/GrafX2/branches/new_branch \
--username yrizoud -m "Commit message"