Должны ли мои сборки быть совершенными? - PullRequest
3 голосов
/ 17 июля 2011

Это для веб-проекта, в котором мой серверный код приложения и клиентская часть JS / HJTML находятся под контролем версий.Допустим, я выпускаю версию 1.0 и создаю новую ветку из ствола с выпуском 1.0.Я запускаю свой инструмент сборки, который выплевывает все сжатые и объединенные файлы.В моей структуре каталогов он генерирует каталог сборки со сжатыми / встроенными файлами.

Должен ли я зафиксировать каталог сборки, чтобы у меня была копия каждой сборки / выпуска без необходимости перекомпоновки, если мне нужна другая копия(для другого сервера скажи ..)?

Ответы [ 3 ]

3 голосов
/ 17 июля 2011

Несмотря на то, что это своего рода субъективный ответ, я считаю, что нечасто хранить двоичные файлы сборки в вашей системе контроля версий.Это и есть цель тегов.

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

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

1 голос
/ 18 июля 2011

Я собираюсь сказать «нет», контроль исходного кода не место для вывода компиляции. Управление исходным кодом предназначено для управления, ну, в общем, источником - целью является хранение, версия и предоставление средств совместной работы для кода.

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

Взгляните на цифру 8 в 10 заповедей хорошего управления исходным кодом . Конечно, это немного субъективно (как показывают некоторые комментарии), но лично я не выводю компиляцию версий. Возможно, вопрос, который вам нужно задать, - «почему», который вы хотите сделать версионным, и то, что вы упускаете, не делая этого.

1 голос
/ 17 июля 2011

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

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

Но, как правило, в этом нет ничего плохого. И во многих ситуациях это ценно.

...