Как к управлению версиями инструменты сборки и библиотеки?

Если вам нравится искусство ascii:

  • "VALID" = без заполнения:
       inputs:         1  2  3  4  5  6  7  8  9  10 11 (12 13)
                      |________________|                dropped
                                     |_________________|
    
  • "SAME" = с нулевым заполнением:
                   pad|                                      |pad
       inputs:      0 |1  2  3  4  5  6  7  8  9  10 11 12 13|0  0
                   |________________|
                                  |_________________|
                                                 |________________|
    

В этом примере:

  • Ширина входного сигнала = 13
  • Ширина фильтра = 6
  • Stride = 5
  • ]

Примечания:

  • "VALID" только когда-либо удаляет самые правые столбцы (или нижние строки).
  • "SAME" пытается для равномерного выравнивания влево и вправо, но если количество столбцов, которые нужно добавить, нечетно, оно добавит лишний столбец вправо, как в случае в этом примере (одна и та же логика применяется по вертикали: может быть дополнительная строка нули внизу).
6
задан Terry G Lorber 4 November 2008 в 21:42
поделиться

9 ответов

Я думаю, что VM является Вашим лучшим решением. Мы всегда использовали выделенные машины сборки для получения непротиворечивости. В старые дни Ада COM DLL были зависимости от (COMCAT.DLL, любой) на непрограммном обеспечении для разработки, установленном (Office). Ваши первые две опции не решают ничего, что совместно использовало COM-компоненты. Если у Вас не будет проблемы совместно используемых компонентов, то возможно, они будут работать.

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

5
ответ дан 9 December 2019 в 20:51
поделиться

Я определенно считал бы легальные проблемы окружающими / проблемы лицензирования окружающий идея. Это было бы допустимо согласно различным лицензиям Вашего набора инструментальных средств?

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

2
ответ дан 9 December 2019 в 20:51
поделиться

Вы используете инструмент непрерывной интеграции (CI) как NAnt, чтобы сделать Ваши сборки?

Как пример .NET, можно указать определенные платформы для каждой сборки.

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

0
ответ дан 9 December 2019 в 20:51
поделиться

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

  • Поместите все, должен был создать приложение на новой рабочей станции при управлении исходным кодом.
  • Не допустите крупные приложения в управление исходным кодом, материал как IDE, SDKs и механизмы базы данных. Сохраните их в каталоге как файлы ISO.
  • Поддержите текстовый документ с исходным кодом, который имеет список файлов ISO, которые будут необходимы для создания приложения.
4
ответ дан 9 December 2019 в 20:51
поделиться

Просто примечание по управлению версиями библиотек в Вашей системе управления версиями:

  • это - хорошее решение, но это подразумевает упаковку (т.е. сокращение количества файлов той библиотеки к минимуму)
  • это не делает решает 'аспект конфигурации' (который является, "в каком определенном наборе библиотек мой '3.2' проекты нужны?").
    Не забывайте, что набор будет развиваться с каждой новой версией Вашего проекта. UCM и его 'составная базовая линия' могли бы дать начало ответа для этого.

Упаковочный аспект (минимальное количество файлов) важен потому что:

  • Вы не хотите получать доступ к своим библиотекам через сеть (как хотя динамическое представление), потому что время компиляции намного дольше чем тогда, когда Вы используете локальные файлы библиотеки, к которым получают доступ.
  • Вы действительно хотите получить их библиотека по Вашему диску, имея в виду представление снимка, имея в виду загружающий те файлы..., и это - то, где Вы могли бы ценить упаковку своих библиотек: чем меньше файлов Вы имеете для загрузки, тем лучше Вы ;)
1
ответ дан 9 December 2019 в 20:51
поделиться

Моя организация имеет файловую систему "только для чтения", куда все помещается в выпуски и версии. Releaselinks (чрезвычайно символьные ссылки) указывают на версию, используемую Вашим проектом. Когда новая версия приходит, она просто добавляется к файловой системе, и можно качать символьную ссылку на нее. Существует полная контрольная история символьных ссылок, и можно создать новые символьные ссылки для различных версий.

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

0
ответ дан 9 December 2019 в 20:51
поделиться

Во многих случаях можно вынудить сборку использовать компиляторы, и библиотеки зарегистрировались управлении исходным кодом вместо того, чтобы полагаться на глобальные настройки машины, которые не будут повторяемы в будущем. Например, с компилятором C#, можно использовать переключатель/nostdlib и вручную / ссылка все библиотеки для указания на версии, в которых зарегистрировались к управлению исходным кодом. И, конечно, проверьте сами компиляторы в управлении исходным кодом также.

0
ответ дан 9 December 2019 в 20:51
поделиться

Развитие моего собственного вопроса, я столкнулся с этой регистрацией, на которую ссылаются в ответе на другой вопрос. Хотя больше обсуждения проблемы, чем aswer, это действительно упоминает идею VM.

0
ответ дан 9 December 2019 в 20:51
поделиться

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

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

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

Ведомые устройства не должны быть VMs, но обычно. Количество ведомых устройств (и реальные машины они работают) может масштабироваться для удовлетворения спроса. Ведомые устройства могут, очевидно, быть добавлены к системе любое время или уничтожены, если набор инструментальных средств отказывает. That'ss на самом деле основной момент этой схемы, а не Ваша проблема с архивацией состояния набора инструментальных средств, но я думаю, что это применимо.

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

0
ответ дан 9 December 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: