If you want to fix a bug in a release branch, you should branch from that branch and not from trunk. If you branch from trunk and smerge your branch to a release branch, that will end up merging all the changes on trunk since the creation of your release branch to that branch as well.
<br><br>Here is how we use svk. Note that any of the branches can be local or remote and that svk push and svk pull are really just shortcuts for svk smerge with automatic selection of the second argument based on the copy source of the branch you are on.
<br><br>We develop the latest release on trunk, and have a release branch for each older release. If we need to fix a bug in an older release we branch from that releases branch, fix the changes and smerge the change to that branch. Then we smerge the release branch to trunk. This ensures that anything going into any older release is always merged to trunk as well. In practice we have multiple release branches and we do a "waterfall" smerge from the oldest release forward to trunk. svk sm //branches/r1.x //branches/r2.x; svk sm //branches/r2.x //branches/r3.x; svk sm //branches/r3.x //trunk.
<br><br>This scheme works unless changes are very different for different releases. In that case you can make a new branch for the release that is different, smerge the changes from the older release to that branch, rewrite them so they work for the code in that release and smerge the change back to the release branch, after which the waterfall merge can resume.
<br><br>Michael<br><br><br><div><span class="gmail_quote">On 4/4/07, <b class="gmail_sendername">Brice Figureau</b> <<a href="mailto:brice+svk@daysofwonder.com">brice+svk@daysofwonder.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Wed, 2007-04-04 at 08:15 -0700, Michael Brouwer wrote:<br>> Alway mirror the root of the repository with svk. That way all<br>> branches you make in svk can be either local (outside the mirror) or<br>> shared (inside the mirror), plus you have access to all tags and
<br>> branches everywhere. Other than that there is no right or wrong way<br>> to use branches. It's really your own choice.<br><br>Hi Michael,<br><br>Thanks. it makes sense.<br><br>I thought a little bit more on this, but I still don't exactly see how I
<br>can "push" changes from a developpement local branch to let's say the<br>release branch since my local developpement branch is not a children of<br>the release branch but a children of the trunk.<br><br>
For instance, I have in my depot:<br><br>//remote/www -> svn+ssh://<removed to protect the innocent>/www<br><br>//local/devel is a copy of //remote/www/trunk<br>//local/release is a copy of //remote/www/branches/release
<br><br>Then I have a local working copy for //local/devl where I'm coding and<br>committing my changes. Other developpers do the same in their local<br>working copies. When they think the changes are mature, they commit
<br>(push) those changes to //remote/www/trunk.<br><br>Now I have to release the website, so I have to merge the changes from<br>the last known trunk to the release branch.<br><br>I can't do: svk push //local/devel since it will push the changes to the
<br>trunk which has already been done.<br><br>I suppose I have to do:<br>svk smerge //local/devel //remote/www/branches/release<br><br>is it the right thing to do ?<br><br>What happens if there are conflicts ?<br>How do I resolve them ?
<br><br>I'm sorry for those newbie questions, I'm still discovering SVK.<br>It seems to be a really powerful tool, and the more I see about it, the<br>more I like it :-)<br>--<br>Brice Figureau <<a href="mailto:brice+svk@daysofwonder.com">
brice+svk@daysofwonder.com</a>><br><br>_______________________________________________<br>svk-devel mailing list<br><a href="mailto:svk-devel@bestpractical.com">svk-devel@bestpractical.com</a><br><a href="http://lists.bestpractical.com/cgi-bin/mailman/listinfo/svk-devel">
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/svk-devel</a><br></blockquote></div><br>