Ja jeszcze wrócę do:
- Trunk - najnowasza wersja aplikacji, taka na której się po prostu pracuje
- Tags - to są konkretne realizacje, wydałeś gdzieś jakąś i tu ją umieszczasz, przydatne jak chcesz mieć te same wersje w wielu miejscach.
- Branches - to są jak już napisali rozgałęzienia, było podane PHP4/5 ale częściej jest do np. Propel 1.2, Prolepl 1.3, czyli wersje różniące się interfejsem. W branches się zmieniają, to tu wgrywasz łatki, dodajesz nową funkcjonalność (ale taką która nie zmienia aktualnie istniejącej wersji), czyli jak ktoś korzysta z Twojej aplikacji to z tego zasysa źródła, bo tu znajdzie poprawki, usprawnienia itp. w odróżnieniu od Trunk, jest pewne że jak ściągnie najnowszą wersję wszystko będzie działać po staremu, a może nawet lepiej.
Co do Trac, to on umożliwia przeglądani źródeł, ale ważną rzeczą jest Ticket, jeśli nie najważniejszą, oraz wiki. Ogólnie tam umieszczasz dokumentacje projektu, właśnie po to jest wiki. A ticket, to po prostu rozpisujesz zadania co masz zrobić (task), co dodać/usprawnić (enhancement), czy też zgłaszane/znalezione błędy (defect). Dzięki Trac możesz przypisać takie zadanie danej grupie osób, przypisać do konkretnej "odbijać" je, jeśli coś jest nie tak, czy też dyskusja na ich temat, i to wszystko jest logowane, więc można sprawdzić co był i jak.
Do tego dzięki Mylyn (dodatek do Eclipse) to zyskuje nowy wymiar, co prawda nie ma integracji z PDT ale ma z Subclipse czy Subversive...
Co do Visual Studio
http://ankhsvn.open.collab.net/EDIT:
A co do przenoszenia zmian z trunk do branch używa się najczęściej merge, do tagów jest komenda aby je utworzyć. Są jeszcze patch'e ale to już się nie rozpisuję.