2009-02-20 4 views
2

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

Что вы будете делать?

ответ

4

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

1

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

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

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

Управление источником обеспечивает две важные функции: обмен источниками между разработчиками и резервное копирование источника - многие люди забывают о втором, пока не стало слишком поздно :) Я сам включил его раньше. Узнал мой урок! Ха-ха.

+0

Я не понимаю, почему вы считаете, что различия не подходят для хранения двоичных файлов. Subversion делает это просто отлично и экономит место из-за этого ... – Andy

+0

Полезно знать о Subversion - но я больше беспокоился о времени, чем о пространстве. Когда вам нужно применить diff к 75% ваших байтов каждой ревизии, откат или перемотка вперед по исходной истории становится убийственным, особенно если у вас в вашей команде более 100 человек :) – Mike

12

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

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

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

I.e. сборка должна иметь возможность завершить «заблокированную» версию кода без необходимости выполнять какие-либо проверки и т. д., а также без необходимости приобретать дополнительные внешние зависимости (вообще говоря).

+0

Yup! Хорошее эмпирическое правило: если ваш процесс сборки генерирует его, не проверяйте его. Если нет, это должно быть версией. –

+0

Что касается сопроводительной документации (требования, дизайн, электронные письма UAT и т. Д.)? –

1

Да, мы даже используем инструменты, которые мы используем для сборки продукта в системе управления версиями.

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

+0

Я полностью согласен с этим. Необязательные инструменты сборки должны быть включены или их результаты должны быть проверены. Не все имеют (или нуждаются) компилятор VHDL/Verilog на своей машине. – Zooba

0

Да, мы делаем.

Вы должны иметь возможность получить проект от источника управления и иметь все необходимое для сборки без прыжков через обручи.

Нет ничего хуже, чем тратить время на поиск зависимостей для успешной сборки.:(

2

Да, в основном.

Единственные файлы, которые я оставляющих из управления версиями является сайт «содержание», который охватывает в основном изображения и документы, загруженные пользователями сайта. Изображения, которые составляют «смотреть» на

DLL и другие элементы, необходимые для компиляции сайта (или необходимые для работы сайта, например, javascript), определенно Разработчики должны иметь возможность проверить веб-сайт из источника управления и иметь все необходимое для рабочего сайта.

1

Существует также theargument для размещения дампов базы данных в версии/источнике управления.

Особенно, если схема разработки базы данных развивается во время разработки. (Я знаю, это еще одна тема)

Смежные вопросы