Я использую хранилище Subversion с целью сохранения кода на будущее.В моем репозитории у меня есть следующая структура папок:
\
|- Project1\
|- - Trunk\
|- - Branches\
|- - Tags\
|- Project2\
....
Это работает для меня, и у меня есть большие и маленькие проекты, которые я написал со старшей школы в этом хранилище.Если я, например, хочу перенести проект, который я написал в Linux, на Windows, я создаю ветку, которую я, например, называю Win32-port.И когда у меня есть версия 1.0 проекта, я создаю тег с именем 1.0.
. Используя этот метод, вы также можете настроить сценарии резервного копирования и сохранить резервную копию в другом месте.(Я использую задание cron и некоторые сценарии python для достижения этой цели, но все зависит от того, какую систему использует сервер.)
Книга о Subversion находится в свободном доступе здесь: Ссылка