We intend to maintain our SVN database as a single trunk, with no branches on a day-to-day basis.
We will, however, tag stable 'releases' from time to time. These tags are really intended to be tags, meaning no one checks anything in to tags.
Now, when there is a bug, a user checks out a given "Golden" tag (a working database) makes edits to their files and these changes need to go back into trunk.
I have tried in vain to figure out a way to do this.
svn switch won't work since it updates the local working copy (which I do not want). svn merge isn't working either since it appears to check in changes to the tag before merging them to the trunk, as well I'd need to have 2 versions checked out: trunk and tag.
The only way I see this working is to actually have 2 checked out databases and physically copy over files from tag to trunk. This is clumsy, error-prone and cumbersome.
Technically I do not need a merge at all. In fact, I would prefer to check-in my modified files directly rather than merge, since the file-owners are individuals, not a group (in other words, I know what I am doing: For me compile can break with a merge - not C or software code!). What I need is an easy way to switch my SVN url from tag to trunk non-destructively - i.e - without updates to any file.
Failing that, I would prefer a way to check in a file from a tag-checked-out-database directly into trunk.
Any ideas anyone?