Передача испорченного кода в хранилище с целью его резервного копирования - PullRequest
12 голосов
/ 14 июня 2010

Я только что разговаривал с другим разработчиком (старше меня) и пытался убедить его, что мы должны реализовать непрерывную интеграцию через круиз-контроль.Он сказал мне, что это не будет работать, потому что он фиксирует код, который не компилируется в хранилище все время для целей резервного копирования.И эти автоматизированные сборки, уведомляющие нас о сбоях, будут просто шумом.

Передача мусора в репо звучит плохо для меня.Но я был в недоумении и не знал, что сказать.Какая альтернатива?Какова лучшая практика для резервного копирования вашего кода на другую машину без добавления бессмысленной ревизии?

Кстати, наша система контроля версий - SVN, и она, вероятно, не изменится в ближайшее время.

Ответы [ 5 ]

25 голосов
/ 14 июня 2010

Разработка в филиалах и принятие готовых к тестированию и, надеюсь, рабочих веток в основной строке.Пусть сервер непрерывной интеграции зависит от главной линии (в svn, чаще всего называемой транковым) для создания и проверки новых ревизий.

3 голосов
/ 14 июня 2010

Как точно все остальные в вашей команде компилируются, если он проверяет код, который не компилируется?

В общем, я считаю, что проверять код в вашей основной ветке, который не компилируется, является ошибкой. это действительно невнимательно для всех, кто рассчитывает получить последние данные из системы контроля версий и сборки.

TFS имеет несколько полезных функций, помогающих решить эту проблему (shelve / unshelve); не уверен, если SVN делает или нет. Большую часть времени, когда кто-то работает над огромным изменением и ему нужно иметь возможность проверять неработающий код, лучше выполнять ветвление и объединять изменения в основной строке.

0 голосов
/ 14 июня 2010

Используйте git для локального резервного копирования / истории и инструменты git-svn, чтобы регистрировать только рабочие версии.

0 голосов
/ 14 июня 2010

Если он не является единственным разработчиком в ветке (что звучит так, как будто это не так), то он не должен совершать взлом кода. Существуют десятки решений для «резервного копирования» кода в процессе разработки, в том числе просто создание приватной ветви текущей строки или написание небольшого сценария, который выполняет резервное копирование рабочего каталога на файловый сервер.

0 голосов
/ 14 июня 2010

Если вы проверяете неработающий код на ветке, которую ожидают использовать другие разработчики, и не поддерживаете связь о том, что и делают это по какой-то веской причине ... хорошо, ваш коллега не придерживается лучших практик.

Взаимоприемлемая лучшая практика может заключаться в том, чтобы требовать проверки типа "резервное копирование" типа "резервное копирование" в частной ветке кода для разработчика, и всякий раз, когда код находится в состоянии, которое не нарушает сборку или модульные тесты, это объединено с веткой магистрали, за которой наблюдает Круиз-контроль.

...