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
По крайней мере, я храню двоичные файлы в SVN, этот путь я могу быстро вернуться к конкретному двоичному файлу версии и видеть, происходила ли ошибка в нем или не, и проследите версию, где ошибка была представлена, скорее затем проверив целый проект, настраивала весь конкретный проект связанные и параметры среды и затем компилирует его.
Эти две общих причины можно хотеть сохранить двоичные файлы в Системе управления версиями, (записаны в 2009):
(Как отмечено ivorujavaboy в 2017: "Единственное серьезное основание сделать это на сегодняшний день - то, если у Вас есть библиотеки STATIC, которые никогда не будут изменяться, который является действительно редким случаем")
Так да, "приемлемо/хорошо сохранить двоичные файлы во время выполнения в SVN"... по правильным причинам.
<час>, Что быть сказанным:
Существует некоторая конкуренция по этому вопросу, но я говорю да.
Хранение двоичных файлов при управлении версиями, возможно, побеждает цель управления версиями. Вы - более обеспеченное использование HTTP/FTP.. Это обсуждение ТАК в https://stackoverflow.com/questions/104453/version-control-for-binaries могло бы быть полезным!
Это прекрасно подходит и приемлемо сохранить двоичные файлы в SVN repo. Как заметка на полях, я не вижу, почему кто-либо хотел бы сохранить артефакты сборки в репозитории (я не говорю, что Вы делаете это).
Я позволил бы своей сборке и непрерывной системе интеграции обработать последнюю рабочую версию вещей, путем автоматического копирования их в FTP, сеть или долю файла для легкого доступа.
Еще лучше я вложил бы капитал в систему CI, которая автоматически обрабатывает артефакты сборки, я люблю TeamCity от jetbrains сам, но существуют другие. Таким образом, можно обработать его полностью автоматический.
Да, сохраните его.
Мы раньше хранили двоичные файлы, которые мы обеспечили клиентам в репозитории SVN для отслеживания его.
Также другое использование хранения двоичных файлов в SVN (или управление исходным кодом) состоит в том, если Вы предоставляете некоторые внутренние служебные модули другим командам в Вашей компании, которые не хотят разрабатывать Ваш проект для сохранения их времени изготовления. Я полагаю, что это - обычная практика.
, Но мы никогда не позволяли хранить .classpath и .project файлы Eclipse (связанные с рабочей областью настройки).
Если Вы разрабатываете в Java, то можно настроить локальный репозиторий и затем использовать инструмент как знаток или плющ + муравей для доступа к нему.
можно загрузить обновления локальных артефактов сборки назад к локальному репозиторию, поскольку они готовы к другим в компании использовать.
Для других сред разработки, я не знаю, какие инструменты, подобные вышеупомянутому, доступны - я был склонен просто помещать их в SVN и делаться с ним.
я обычно использую отдельный репозиторий для хранения сторонних библиотек для хранения их от обычных репозиториев разработки, и иметь мои файлы типа "build" загружают их в ожидаемом месте относительно основной папки проекта.
На самом деле, я использую два репозитория. Один для минимальных файлов, в которых я нуждаюсь для того, чтобы разработать мои проекты (например, банка, библиотечные файлы) и другой для всего стороннего пакета (включая источник, документацию или безотносительно), который я обычно храню tar bz2.
Тот путь, если Вы просто хотите получить минимум, необходимо создать материал, Вы захватываете первый репозиторий, и если необходимо выяснить то, что продолжает, или как использовать сторонний пакет, можно начать вытаскивать материал из второго репозитория.
Это не идеальное решение, но это работает вполне прилично.
Здесь еще некоторая информация о том, как svn обрабатывает двоичные файлы.
Не с этой целью, нет. Необходимо использовать внешнее хранилище файлов, как FTP-сервер или веб-сервер. Таким образом, легко загрузить конкретную версию Вашего двоичного файла во время выполнения, не имея необходимость обновлять к тому пересмотру в SVN сначала.
Каждый раз, когда я вижу библиотеку в каталоге Subversion, я задаю следующие вопросы:
axis.jar
а не axis-1.4.jar
) , Если Вы не имеете в распоряжении систему управления зависимости, Вы обычно не можете отвечать на оба вопроса. И это - первый шаг к Аду Банки.
я могу рекомендовать Плющ Apache (другой, может клясться Знатоком) с репозиторием интранет. Используя Плющ, я никогда не должен был хранить библиотеки в SVN и мог всегда отвечать на вышеупомянутые вопросы.
Я сказал бы, что, если это делает жизни Вашей команды легче, затем сделайте это. Если это уменьшает время, потраченное для установки рабочей среды разработки, пойдите для него.
Наш Java .jar сборки файла связывал в их .jar зависимостях от файла, которые мы зарегистрировались в svn. Многое из этого было избыточно на практике, но мы хотели обеспечить каждую сборку приложения Java, которую мы произвели, имел точно библиотеки, с которыми она подверглась QA.
то, Что действительно ухудшило меня, тем не менее, с этим подходом, было, когда я начал делать удаленные соединения в репозиторий и синхронизацию. Взял бы навсегда, чтобы просто крутиться через все двоичные библиотеки.
Мы с тех пор отказались от той практики и теперь используем Знатока для управления зависимостями библиотеки - даже для проектов, которые мы все еще разрабатываем с муравьем. Больше никаких двоичных файлов, зарегистрированных svn. Жизнь намного лучше на нескольких передних сторонах из-за этого сдвига стратегии. И мы имеем строгий контроль над версиями зависимостей библиотеки, которых мы требовали.
Для наших сборок.NET, один из моих разработчиков создал решение, которое работает в значительной степени как Знаток относительно всего материала управления зависимостью и достигает почти такого же преимущества там также.
Как многие уже сказали, это приемлемо.
Да, удобно иметь все удобное от одного местоположения, от того, где Вы можете (например), контроль более старый тег уже в двоичной форме с его корректными зависимостями.
, Но это НЕ хорошо, специально для целей резервирования. Мы сохранили все наши двоичные файлы (и часть зависимостей) в SVN и поскольку проект вырос, так, чтобы двоичный раздел сделал.
, К сожалению, svnadmin dump
просто дампы все, Вы не можете указать путь репозитория для исключения. Таким образом резервные копии (и обновления svn сервера) стали очень болезненными!
, Если Вы добавляете, что после не так долго времени в нашем случае те двоичные файлы больше не были полезны, я уверен, что не сделаю этого снова в подобном случае (но я сделал бы для меньшего проекта).
, Таким образом, я рекомендовал бы думать дважды прежде, чем сделать это и попытаться предсказать, как большой может Вы расти и что еще могло бы произойти.
хранить двоичные файлы, которые не каждый может построить. Я проектирую фишки в Verilog и VHDL, и команда программного обеспечения не имеет этих инструментов. Итак, мы храним выходные двоичные файлы в SCM.