Skip to content

#830 Use svn tags for bugfix releases

Metadata

Property Value
Reported by Oliver Sander (oliver.sander@tu-dresden.de)
Reported at Oct 22, 2010 11:32
Type Feature Request
Version Git (pre2.4) [autotools]
Operating System Unspecified / All
Last edited by Christian Engwer (christi@conan.iwr.uni-heidelberg.de)
Last edited at Mar 21, 2011 09:28
Closed by Christian Engwer (christi@conan.iwr.uni-heidelberg.de)
Closed at Mar 21, 2011 09:28
Closed in version Unknown
Resolution Fixed
Comment

Description

I would like to request a change to the svn repository layouts of the Dune core modules.

[In the following I use the word 'release' for an x.y release like dune-istl-2.0, and the word 'bugfix release' for an x.y.z release like dune-istl-2.0.2.]

Currently, each module has three subdirectories: trunk, branches, and releases.

  • 'trunk' contains the development branch
  • 'releases' contains a subdirectory for each bugfix release, an x.y-release is treated like x.y.0.
  • 'branches' contains other branches that are not directly related to releases

There are certain inconveniences associated to the way releases are handled by this layout.

  • Users that want to use svn to always have the bleeding-edge version of a given release need to switch branches when a bugfix release is created.
  • Maintainers of stable modules have to switch branches to commit to when a new bugfix release appears. This appears to be challenging for some people (read: me).

I therefore propose to switch to a more traditional svn layout. Here's what it would look like:

  • 'trunk' contains the development branch as before
  • 'branches' contains a branch for each release, and all other random branches
  • 'tags' contains a snapshot (a 'tag' in svn-speak) for each bugfix release

[NB: 'tags' is the standard svn name for this directory. We may stick with the name 'releases' though, if requested.]

All bugfix commits for a release happen on a single branch for that release in the 'branches' directory. Release tarballs are created from the tags in the 'tags' directory. These can be made read-only. Users of stable branches can update/commit fixes ad libitum without ever having to adjust their paths.

I don't see any disadvantage to this alternative layout, beyond the effort needed to switch over. Please give me your opinion.