On Thu, Oct 2, 2008 at 3:55 PM, "Martin v. Löwis" <martin@v.loewis.de> wrote:
Suppose you have three subsequent revisions in the trunk:

A contains what you originally wanted to tag
A+1 contains a change by somebody else, not to be released
A+2 is the change that you made to fix a bug you noticed
   during the release

How do you create the release tag so that it contains change
sets A and A+2, but not A+1?

You always create a branch for the release (subversion doesn't make any distinction between a tag and a branch anyhow, so you might as well just make a branch).

(and no, creating a branch just for
the release is no option, because that means you have to copy all
the changes you made on the branch back to the trunk)

Any by "copy" you mean "merge", right?  Presumably someone is cutting a release because we believe it's done, and thus the likelihood of needing to make changes is very very low.  If you indeed have the extraordinary circumstance where you have to modify the release after you make the branch, just make the change on the branch, cut the release, and merge that change back into the main line.

Version control systems are built to avoid precisely the situation which is being discussed here - we should take advantage of that.