1) если содержимое trunk не актуально совсем - то убрать содержимое транка и скопировать средствами svn актуальную ветку в транк. 2) по "идее" транк - это стабильно работающая версия (компилиться без ошибок как минимум).
а в ветках можно делать фичи (желательно "локальные" так чтоб не пересекались с другими ветками). потом сливать в транк.
3) когда больше одного разработчика - то нужен достаточно "умный товарищь" для того чтоб разбираться в "merge/conflict" svn-а.
4) в таги можно складывать "релизы".
5) "внешние" библиотеки - обычно указываются в свойствах "каталогов" и соответственно при "копировании средствами svn" из "ветки в транк" библиотеки переносятся (которые тож могут быть оформлены отдельным проектом в том же svn-сервере).
как то так.