Управление конфигурацией программного обеспечения , частью которой является контроль версий , немного сложнее, чем отслеживание изменений в файлах, хотя вы, безусловно, можете начать с этого. Но прочитайте статьи из Википедии, ссылки на которые приведены выше, вместе с руководством Джоэла Сполки по Mercurial .
Для начала выберите один из Mercurial, GIT или Bazaar в указанном порядке и установите его вместе с инструментами для вашей IDE и операционной системы (я предпочитаю Mercurial с HGE для Eclipse).
- Инициализируйте репозиторий из вашего рабочего каталога ( hg init с Mercurial).
- Решите, какие файлы и каталоги вы хотите отслеживать, а какие нет. Общее правило - не отслеживать файлы, сгенерированные компиляторами и другими инструментами.
- Используйте команду для добавления файлов и каталогов в хранилище ( hg add для Mercurial).
- Расскажите инструменту о шаблонах файлов, которые вы не хотите отслеживать (отредактируйте .hgignore для Mercurial).
- Выполните коммит, чтобы отследить оригинальные версии ( hg ci ).
- Выполняйте коммит после каждого логического этапа, даже если он маленький.
- Добавляйте новые файлы по мере их создания.
- Повторите последние два.
- Резервное копирование вашего рабочего каталога и хранилища так часто, как это разумно.
С вашими файлами в хранилище вы можете узнать различия между любыми двумя версиями файла или каталога или всего проекта ( hg diff ), просмотреть историю изменений ( hg hist ) и откатить изменения ( hg up -r ).
Это хорошая идея, чтобы пометить ( тег hgПеред публикацией кода ) репозиторий, чтобы можно было легко вернуться к тому, что вы опубликовали, для поправок или сравнений.
Если вы хотите поэкспериментировать с другой линией разработки, сделайте это в простой ветке, клонируя основной репозиторий ( hg clone ) и не отталкивая его до тех пор, пока эксперимент не будет окончательным. Это так же просто, как иметь другой рабочий каталог для эксперимента.
Если эксперимент предназначен для новой, обновленной версии, то клонируйте, а затем разветвите ( hg branch ), чтобы вы могли сохранять все копии репозиториев обновленными, не мешая одному эксперименту взаимодействовать с другим.
Линус Торвальдс (который имеет дело с десятками тысяч файлов и миллионами строк кода в своих проектах) выступил с докладом в Google о том, почему этот инструмент не может быть CVS, SVN или каким-либо из множества бесплатных и коммерческих приложений в мире. ; это очень стоит посмотреть.