Год назад я закончил колледж по компьютерным наукам и сейчас работаю в небольшой компании, занимающейся веб-разработкой (я и еще один разработчик, а также менеджеры, служба поддержки клиентов и тестировщик). До того, как я начал, не было системы контроля версий. Сейчас мы постепенно начинаем внедрять SVN, но другой (старший) разработчик (далее именуемый Джо) настаивает на том, что единственный код, который должен быть зафиксирован в нашем SVN-репозитории, - это тот, который был протестирован и одобрен как готовый к работе. Это означает, что в более крупных проектах коммиты могут быть неделями неделями или дольше.
Это нормальная практика? Мне кажется, что мы теряем много преимуществ контроля версий, в том числе:
- Детальное отслеживание хода проекта
- Отслеживание проблем по мере их появления и решения
- Легко откат ошибок
- Простое резервное копирование кода, поэтому мы не потеряем много, если рабочая станция выйдет из строя
- Проще точно определить, какой код выполняется на каких рабочих сайтах, если мы помечаем исправления в исполняемые файлы, как описано здесь
- Простое сотрудничество (хотя мы не делаем никакой командной работы; это все сольные проекты)
- И т.п.
РЕДАКТИРОВАТЬ: Я должен подчеркнуть, что исторически, в этой компании не было никакой настоящей командной работы; всего два разработчика работают над отдельными проектами. Кроме того, многие проекты небольшие, поэтому они могут быть завершены в течение нескольких недель. И компания была в бизнесе более десяти лет и прекрасно обходилась без контроля источников. Проекты обычно завершаются в установленные сроки.