Difference between revisions of "Tags and Branches"

From GeeklogWiki
Jump to: navigation, search
m (Added category)
Line 69: Line 69:
  
 
As an experiment during the 2008 [[Google Summer of Code]], we are trying out [[Using Mercurial|Mercurial]], a distributed version control system.
 
As an experiment during the 2008 [[Google Summer of Code]], we are trying out [[Using Mercurial|Mercurial]], a distributed version control system.
 +
 +
 +
[[Category:Development]]

Revision as of 12:47, 8 May 2009

Please note that most of this information is outdated. Geeklog switched to Mercurial after the release of Geeklog 1.5.1.


Geeklog 1.x CVS

General information

See geeklog.net


Tags and Branches

  • The CVS main trunk (aka HEAD) always contains the Geeklog version currently under development.
  • Once a Geeklog release is made, that version will be tagged so that it is possible to check out the exact version of all the files that were shipped in a specific release.
  • Branches are created off of CVS tags for bugfix and security releases, if necessary.


Naming conventions

A CVS tag for a specific release uses the following naming convention:

  • geeklog_x_y_zb1 for Geeklog x.y.zb1 (beta 1)
  • geeklog_x_y_rc1 for Geeklog x.y.zrc1 (release candidate 1)
  • geeklog_x_y_z_stable for Geeklog x.y.z (final release)

After a stable release, there will usually be a branch off of that version. The naming convention for the branch is to attach _1 ("underscore one"), i.e.

  • geeklog_x_y_z_1

Tags in the branch then follow the same naming convention as above. Additionally:

  • geeklog_x_y_zsr1 for Geeklog x.y.zsr1 (security release 1)
  • geeklog_x_y_z_1_1 for Geeklog x.y.z-1 (bugfix release 1). Note the _1_1 postfix to avoid name collision with the branch name.


Checking out

Checking out by CVS tag

To check out a specific Geeklog version, e.g. 1.3.11sr2, use:

cvs -d :ext:devname@cvs.geeklog.net:/cvsroot/geeklog co -r geeklog_1_3_11sr2 Geeklog-1.x

(where devname is the name of the CVS account) or

cvs -d :ext:anonymous@cvs.geeklog.net:/cvsroot/geeklog co -r geeklog_1_3_11sr2 Geeklog-1.x

for anonymous CVS access.


Checking out a branch

Checking out a branch works exactly the same way as checking out by CVS tag, only that you specify the branch name after the -r option.

However, for a branch it is recommended to do a

cvs -q up -Pd

after the initial checkout to get rid of unused / empty directories.

Note that you should never include the A option (e.g. cvs up -PdA) as that would check out from CVS head and mess up your local repository.

Other than that, you can always use cvs up -Pd to receive any changes made on a branch (the -q option only tells CVS to be "quiet" and only print relevant information).


Mercurial

As an experiment during the 2008 Google Summer of Code, we are trying out Mercurial, a distributed version control system.