Нам необходимо архивировать результаты сборки нашего проекта (в нашем случае, один исполняемый файл размером около 1 МБ) контролируемым образом.
ПРИМЕЧАНИЕ: Практический результат этогоявляется то, что для любого выпущенного вывода сборки, мне нужно бесконечно заархивировать его неизменную копию.(Например, если мы строим из r993, r1014, r1205 и r1293 нашего дерева исходников, мне нужно сохранить один выход для каждой сборки.)
Для нас естественно использовать Subversion, потому что у нас есть серверБег.Неестественно то, куда помещать выходные данные сборки.
Проверка в области дерева исходных текстов -> не хорошо, потому что это усложняет обновления / слияния / и т.д..
Создать специальную область в хранилище, связанную с исходным деревом например:
project-foo/
branches/
tags/
trunk/
build/ <-- released executables go here
(along with metadata containing source references)
Нам действительно не нужны ветви илитеги для исполняемого вывода;Мне просто нужно место, которое является неизменным снимком, на который я могу сослаться (в случае SVN, путем и rev #)
Создать специальную область в репозитории, слабо связаннуюс исходным деревом например:
project-foo/
branches/
tags/
trunk/
project-foo-build/ <-- released executables go into a subdir:
branches/
tags/
trunk/
Использовать другую программу, а не SVN. ???Что бы это ни было, оно должно поддерживать идеи
- неизменных данных
- метаданных, связанных с данными
- нескольких версий одного и того же вида вещей (например,исполняемый файл build для проекта foo)
Есть предложения?
Я склоняюсь к идее № 2, но хотел бы отступить назад и лучше понять различные преимущества / недостатки.
* Нам нужно сделать это, потому что нам нужносохранить точный вывод сборки, который использовался при определенных обстоятельствах.Это встроенный код, загруженный в аппаратное обеспечение.В идеале выходные данные сборки являются повторяемой функцией дерева исходных текстов, поэтому, если вы строите дважды с одним и тем же исходным деревом, он выдает одинаковые выходные данные.К сожалению, есть риск, что это не так, например, по мере обновления компиляторов или других инструментов сборки.