Мы делаем что-то близкое к «вкладывается» развитие здесь, и я могу вам сказать, что мы экономим:
- номер SVN пересмотра и метку времени, а также машину она была построена на и (также сжигается в бинарные файлы сборки)
- полный журнал построения, показывающий, была ли это полная/инкрементная сборка, любые интересные (STDERR) выводят созданные инструменты для выпечки данных, список скомпилированных файлов и любые предупреждения компилятора (это очень хорошо сжимается, будучи текстом)
- фактические двоичные файлы (для любых конфигураций конфигурации 1-8)
- файлы, созданные как побочный эффект связывания: командный файл компоновщика, адресная карта и вид файла манифеста, указывающий, что было записано в окончательные двоичные файлы (CRC и размер для каждого), а также базу данных отладки (.pdb-эквивалент)
Мы также отправляем по электронной почте результат запуска некоторых инструментов над «побочными эффектами» для заинтересованных пользователей. Мы на самом деле не архивировать их, так как мы можем воспроизвести их позже, но эти отчеты включают в себя:
- общие и дельту размера файловой системы, с разбивкой по типам файлов и/или директориями
- общих и дельте секции коды размеры (.text, .data, .rodata, .bss, .sinit и т. д.)
Когда мы проводим модульные тесты или функциональные тесты (например, тесты на дым), эти результаты отображаются в журнале сборки.
Мы еще ничего не выбрасываем - данные, наши целевые сборки обычно заканчиваются на ~ 16 или 32 MiB для каждой конфигурации, и они довольно сжимаются.
Мы сохраняем несжатые копии двоичных файлов в течение 1 недели для удобства доступа; после этого мы сохраняем только слегка сжатую версию. Примерно раз в месяц у нас есть скрипт, который извлекает каждый .zip, который производит процесс сборки, и 7-zip целый месяц сборок сборки (что позволяет использовать только небольшие различия для каждой сборки).
Средний день может иметь дюжину или две сборки в каждом проекте ... Каждый раз, каждые 5 минут, каждый раз каждые 5 минут каждый раз просыпается строительный сервер, чтобы проверить наличие соответствующих различий и сборок. Полный .7z на большом очень активном проекте в течение месяца может быть 7-10GiB, но это, безусловно, доступно.
По большей части мы смогли диагностировать все таким образом. Иногда в сборке есть икота, и файл на самом деле не является ревизией, которую он должен делать, когда происходит сборка, но в журналах обычно достаточно доказательств. Иногда нам приходится выкапывать инструмент, который понимает формат отладочной базы данных и подает ему несколько адресов для диагностики сбоя (у нас есть автоматические стеки, встроенные в продукт). Но обычно нужна вся необходимая информация.
Нам еще не пришлось взломать архивы .7z, чтобы упомянуть. Но у нас есть информация, и у меня есть несколько интересных идей о том, как добывать из нее полезные ископаемые данные.
Вам нужно только надежно идентифицировать ваш исходный код. В зависимости от вашего VCS это может означать использование копий, но спецификация исходного кода может быть адекватной. Кроме того, в те дни, когда вы можете купить 2 ТБ дискового накопителя за 200 долларов, возможно, вы сохранили источник (сжатый, даже сейчас). – 2009-03-17 02:55:02
2TB диска за 200 долларов? Вы имеете в виду покупку двух приводов 1TB по цене $ 100 ea, или вы думаете, что можете получить 30% скидку на newegg? http://www.newegg.com/Product/Product.aspx?Item=N82E16822136344 – 2009-03-18 15:25:34