I have create a tag named v1.5
off a branch. After some testing I found some bugs and it seems I have to propagate these changes to tag/v1.5
. But I see some comments that do not suggest such practice of updating or merging a tag.
My question is what is best way to handle situations like this. Probably delete the tag and recreate it from the branch head revision ?
Tags, branches, etc. make no sense to Subversion itself, they are just folders and you can do anything you want. However, there are good practices, and tags mean something that you never change. You should have a workflow and stick to that.
For example, we make new developments in the trunk. When it's ready, we create a branch, like 1.5, and then create tags, like 1.5.1, 1.5.2, 1.5.3, etc. We add bug fixes and create new tags from it, we don't add new features to branches, and we never ever change tags. Then we merge the bugfixes from the branch to trunk when there are new developments. It is a very common workflow.
Here's a longer article, what I described above is called "stable release model" here, there is a good image to show you what happens where. There are also alternatives and a long discussion. I love those graphs, here's another one, but it's a bit confusing, arrows shouldn't cross tags, tags should always be a dead end.