<p>We are migrationg from CVS to SVN and embracing some kind of revision management in order to enforce order to development/testing/release cycle. We are currently testing, developing and releasing on the same code line, we know its a bad practice and we want to make end to it.</p>

<p>What are your experience, know how, suggestions working with source code tree.</p>

<p>We are building small/average (2-5 months) custom projects and we have to give early access to customer for review. Requirement creep is common.</p>

<p>EDIT:
please note, i need not only advice on subversion, but more on how whole devel/test/deploy cycle is reflected in trunk/branches/tags/versions etc</p>

"Branch early, branch often."
All builds should be completely reproducible without having to pour through logs (consider tagging every build)
If you use an issue tracker then require all check-ins to have a (valid) issue ID included in the commit message (add a pre-hook to check this).
Only the build team should be allowed to make production branches (developers should be encouraged to make personal branches for any non-trivial task)
Build continuously and ensure that everyone is aware that breaking the build is a big deal.
Read the whole SVN book, then read it again. You need to know this tool backwards and forwards. Hold training sessions for your developers ("how to create a temporary branch for my work", "how to merge", etc).
... There is an lack of good reading on this subject, but if I had to recommend one book to a shop completely green in SCM it would be "The Build Master" by Vincent Maraia. It's very short on details but easy to read and provides a (very very brief) overview of SCM good-ideas that make great sense once you know them but which for some reason so many shops completely lack.
Good luck!