[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: tag individual files vs whole repo?

From: Branko Čibej <brane_at_apache.org>
Date: Tue, 10 May 2016 16:24:44 +0200

On 10.05.2016 16:09, Matt Garman wrote:
> Consider this scenario: our project has concurrent releases, R8 and
> R9. These releases have been indicated in the repo by some means,
> either a tag or a branch.
> Now, we need to bugfix R8 only. Specifically, we want to do a release
> R8.1 that does not include R9 features.
>
> Through some means, e.g. mis-communication, developer error, whatever,
> the developer does the bugfix on R9, instead of R8. And he tags his
> fix "bug_xyz_fix". Now, the release manager will update his build to
> the "bug_xyz_fix" label, and inadvertently release the bugfix plus the
> R9 changes, which we wanted to avoid.
>
> This is one potential problem with tagging a whole repo, rather than
> individual files. In this particular case, it may be possible that
> the one file that changed for the R8 bugfix is also perfectly valid
> for R9. So in this case, it arguably makes sense to tag only the one
> changed file, rather than the whole repo.
>
> I've seen this asked before ("how to tag only individual files"). I
> know it's possible to force svn into doing it, but it's going against
> the design intent of the tool. And I feel that whole-repo tagging is
> generally better, but the above example is one case where that may not
> hold. So what I'm really asking is:
> - What are the rational reasons to prefer whole-repo tagging
> versus individual file tagging? I'm having trouble coming up with
> example cases to support whole-repo tagging even though my gut says
> it's better.
> - In general, what kind of automation (e.g. convenience scripts,
> hooks, etc) have you built on top of subversion to help avoid process
> errors like the one described above?

One solution is the one that we use in Subversion development: we have
separate branches for separate release lines; for example, currently new
development happens on

    .../subversion/trunk

 and we have two active release branches:

     .../subverison/branches/1.8.x
     .../subversion/branches/1.9.x

Bug fixes for problems found on one of the release branches are
developed on trunk, then merged (cherry-picked) or otherwise backported
to the appropriate release branch. Releases are cut and tagged from the
branches.

-- Brane
Received on 2016-05-10 16:24:49 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.