По моему опыту, организация 'trunk / branch / tag' - довольно хорошо используемая схема управления исходным кодом. Я видел, как это реализовано во многих различных организациях, использующих различные инструменты (ClearCase, SVN, CVS и многие другие). Настройка ClearCase, с которой я сейчас работаю, немного сложнее (сложнее?), Но, вообще говоря, имеет очень похожую схему.
Хотя это не требуется в SVN, я настоятельно рекомендую привыкнуть к такому типу компоновки, включая объединение в / из разных ветвей и магистрали.
Для личных проектов я считаю тегирование ценным средством сохранения окончательных неизменяемых версий. Ветви обычно зарезервированы для экспериментальных касательных, поэтому я не буду уничтожать самую последнюю (стабильную) версию моего кода до того, как реальность вступит в действие.