Я бы использовал Subversion (на самом деле я его использую) [ update : июль 2014 года - я использую Git - см. Конец ответа].
SVN это:
- бесплатно,
- достаточно хорошо (см. Недостатки ниже),
- просто,
- отлично работает на Windows (и Linux тоже),
- многие люди используют его, поэтому легко получить помощь,
- может интегрироваться с большинством IDE, например Visual Studio (т.е. ankhsvn или VisualSVN - , дополнительная информация ) или Eclipse (то есть Subclipse - здесь кто-то спросил об этом).
Я бы настоятельно рекомендовал выделить отдельный компьютер для сервера контроля версий. В лучшем случае где-то на облаке . Преимущества:
- Вы не потеряете свои репозитории контроля версий, если ваш ящик для разработки умрет.
- Вам не нужно беспокоиться об обслуживании еще одной коробки.
Есть компании, которые размещают SVN-репозитории .
Здесь - ссылки на пакеты SVN (клиент и сервер) для различных операционных систем.
Недостатки SVN
Я использую SVN на Windows-машине около 5 лет и обнаружил, что у SVN есть несколько недостатков:).
Медленно на больших репозиториях
SVN (или его клиент - TortoiseSVN) имеет один большой недостаток - он ужасно медленный (при обновлении или фиксации) в больших (тысячи файлов) репозиториях, если у вас нет SSD Драйв.
Слияние может быть трудным
Многие люди жалуются на трудность слияния с SVN.
Я делаю слияния около 4 лет (включая около 2 лет в CVS - это было ужасно, но выполнимо) и около 2 лет с SVN.
И лично мне не сложно - с другой стороны - любое объединение легко после объединения веток в CVS:).
Я делаю слияние большого репозитория (фактически два репозитория) один раз в неделю, и редко возникают конфликты, которые трудно разрешить (большинство конфликтов разрешаются автоматически с помощью программного обеспечения diff , которое я использую).
Однако в случае проекта нескольких разработчиков слияние не должно быть проблемой, если вы соблюдаете несколько простых правил:
- часто меняются слияния,
- избегайте активного развития в разных отраслях одновременно.
Добавлено в июле 2011
Рекомендуется много разработчиков Управление распределенной версией подобно Git или Mercurial .
С точки зрения одного разработчика есть только несколько важных преимуществ DVCS над SVN:
- DVCS может быть быстрее.
- Вы можете зафиксировать локальный репозиторий без доступа к центральному.
- DVCS - популярная вещь, и ей интересно пользоваться / учиться (если кто-то платит за ваше обучение).
И я не думаю, что слияние является проблемой в случае одного разработчика.
Джоэл Спольски написал учебник о Mercurial , который определенно стоит прочитать.
Итак, несмотря на многие преимущества DVCS, я бы остановился на SVN, если слияние или скорость не являются проблемой.
Или попробуйте Mercurial, который согласно this и this SO вопросов, лучше поддерживается (в июле 2011 г.) в Windows.
Добавлено в июле 2014 года
Около года я использую Git (главным образом, Git Bash) для своих домашних проектов (т. Е. Решение проблем Эйлера), и локальные ветви для каждой проблемы Эйлера - действительно хорошая функция - именно так, как это описывается как преимущество DVCS.
Сегодня инструментарий Git для Windows намного, намного лучше, чем 2 или более лет назад.
Вы можете использовать удаленное репо (например, GitHub или ProjectLocker и многие другие), чтобы сохранить
скопируйте свой проект с вашей рабочей станции без лишних усилий / денег.
Однако я использую клиент GUI только для просмотра различий (и иногда для выбора файлов для фиксации),
так что лучше не бояться командной строки - это действительно приятно.
Так что на сегодняшний день я бы пошел с Git.