Действительно ли приемлемо/хорошо сохранить двоичные файлы в SVN?

r=range(1,4)

>>> 1 in r
True
>>> 2 in r
True
>>> 3 in r
True
>>> 4 in r
False
>>> 5 in r
False
>>> 0 in r
False
33
задан Srikanth 10 February 2009 в 08:29
поделиться

14 ответов

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

-2
ответ дан 27 November 2019 в 16:08
поделиться

Эти две общих причины можно хотеть сохранить двоичные файлы в Системе управления версиями, (записаны в 2009):

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

(Как отмечено ivorujavaboy в 2017: "Единственное серьезное основание сделать это на сегодняшний день - то, если у Вас есть библиотеки STATIC, которые никогда не будут изменяться, который является действительно редким случаем")

  • доставки хранилища для быстрого развертывания .
    Обычно доставки (исполняемый файл Вы создаете для развертывания в производство) создаются по требованию.
    , Но если у Вас есть многие среда подготовки производства, и если у Вас есть много доставок, стоимость создания их для блока, интеграции, гомологизации, платформы подготовки производства могут быть высокими.
    решение для А состоит в том, чтобы создать их однажды, сохранить их в разделе доставок Вашего SVN и использовать их непосредственно в Вашей другой среде.
    Примечание:
    Это применяется также к элементам разработки: если Вы имеете процесс Jaxb, который генерирует 900 файлов POJO (через XML, связывающий), и необходимо загрузить тот набор разработки в нескольких средах, можно хотеть 1 транзакцию копии сжатого файла, а не 900.

Так да, "приемлемо/хорошо сохранить двоичные файлы во время выполнения в SVN"... по правильным причинам.

<час>

, Что быть сказанным:

27
ответ дан 27 November 2019 в 16:08
поделиться

Существует некоторая конкуренция по этому вопросу, но я говорю да.

-3
ответ дан 27 November 2019 в 16:08
поделиться

Хранение двоичных файлов при управлении версиями, возможно, побеждает цель управления версиями. Вы - более обеспеченное использование HTTP/FTP.. Это обсуждение ТАК в https://stackoverflow.com/questions/104453/version-control-for-binaries могло бы быть полезным!

1
ответ дан 27 November 2019 в 16:08
поделиться

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

1
ответ дан 27 November 2019 в 16:08
поделиться

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

Еще лучше я вложил бы капитал в систему CI, которая автоматически обрабатывает артефакты сборки, я люблю TeamCity от jetbrains сам, но существуют другие. Таким образом, можно обработать его полностью автоматический.

1
ответ дан 27 November 2019 в 16:08
поделиться

Да, сохраните его.

Мы раньше хранили двоичные файлы, которые мы обеспечили клиентам в репозитории SVN для отслеживания его.

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

, Но мы никогда не позволяли хранить .classpath и .project файлы Eclipse (связанные с рабочей областью настройки).

5
ответ дан 27 November 2019 в 16:08
поделиться

Если Вы разрабатываете в Java, то можно настроить локальный репозиторий и затем использовать инструмент как знаток или плющ + муравей для доступа к нему.

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

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

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

На самом деле, я использую два репозитория. Один для минимальных файлов, в которых я нуждаюсь для того, чтобы разработать мои проекты (например, банка, библиотечные файлы) и другой для всего стороннего пакета (включая источник, документацию или безотносительно), который я обычно храню tar bz2.

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

Это не идеальное решение, но это работает вполне прилично.

Здесь еще некоторая информация о том, как svn обрабатывает двоичные файлы.

3
ответ дан 27 November 2019 в 16:08
поделиться

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

8
ответ дан 27 November 2019 в 16:08
поделиться

Каждый раз, когда я вижу библиотеку в каталоге Subversion, я задаю следующие вопросы:

  • , какая версия - это? (обычно Вы имеете axis.jar а не axis-1.4.jar)
  • , почему это было включено? (особенно хитрый с зависимостями зависимостей)

, Если Вы не имеете в распоряжении систему управления зависимости, Вы обычно не можете отвечать на оба вопроса. И это - первый шаг к Аду Банки.

я могу рекомендовать Плющ Apache (другой, может клясться Знатоком) с репозиторием интранет. Используя Плющ, я никогда не должен был хранить библиотеки в SVN и мог всегда отвечать на вышеупомянутые вопросы.

6
ответ дан 27 November 2019 в 16:08
поделиться

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

18
ответ дан 27 November 2019 в 16:08
поделиться

Наш Java .jar сборки файла связывал в их .jar зависимостях от файла, которые мы зарегистрировались в svn. Многое из этого было избыточно на практике, но мы хотели обеспечить каждую сборку приложения Java, которую мы произвели, имел точно библиотеки, с которыми она подверглась QA.

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

Мы с тех пор отказались от той практики и теперь используем Знатока для управления зависимостями библиотеки - даже для проектов, которые мы все еще разрабатываем с муравьем. Больше никаких двоичных файлов, зарегистрированных svn. Жизнь намного лучше на нескольких передних сторонах из-за этого сдвига стратегии. И мы имеем строгий контроль над версиями зависимостей библиотеки, которых мы требовали.

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

3
ответ дан 27 November 2019 в 16:08
поделиться

Как многие уже сказали, это приемлемо.

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

, Но это НЕ хорошо, специально для целей резервирования. Мы сохранили все наши двоичные файлы (и часть зависимостей) в SVN и поскольку проект вырос, так, чтобы двоичный раздел сделал.

, К сожалению, svnadmin dump просто дампы все, Вы не можете указать путь репозитория для исключения. Таким образом резервные копии (и обновления svn сервера) стали очень болезненными!

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

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

9
ответ дан 27 November 2019 в 16:08
поделиться

хранить двоичные файлы, которые не каждый может построить. Я проектирую фишки в Verilog и VHDL, и команда программного обеспечения не имеет этих инструментов. Итак, мы храним выходные двоичные файлы в SCM.

1
ответ дан 27 November 2019 в 16:08
поделиться
Другие вопросы по тегам:

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