не смотря на то, что git более современная технология, во многих случаях работает лучше и надёжнее, да и нравится он мне больше, НО есть реально случаи когда svn эффективнее. если я правильно помню, для хранения бинарников рекомендуется вместо git использовать svn.
PS: просто для справки, не уверен что это Ваш случай.
С вами согласен, но всегда "радует" когда при сравнении плюсов и минусов технологий всплывает "да и нравится он мне больше".
это нормально, все мы люди и не лишены субъективизма.
но только если не является единственным доводом и может быть обосновано
<зануда>
"нравится он мне больше" не может быть обосновано. На то это и субъективная оценка. Выбор обосновывает всё остальное.
</зануда>
не согласен, люди предпочитают одну технологию другой не потому что так звёзды стали в момент их рождения, а потому что:
- "удобнее делать ..."
- "красивая/удобная графическая оболочка / туллинг"
- "надёжнее" (возможно, чисто для меня, для того флоу в котором я его использую)
- в конце концов "я другого инструмента не знаю и мне лень учить" - тоже какое-никакое обоснование, пускай совсем и необъективное. и да, в споре его лучше не применять ;)
вопрос в том, что часто люди говорят "мне это нравится", а других доводов не приводят. и вот тут начинаются проблемы, т.к. если другому упёртому разрабу нравится другое, то договориться будет попросту невозможно!
поэтому надо обосновывать почему нравится, тогда всегда можно договориться и обосновать какой выйгрышь будет от использования той или иной технологии ну и т.д.
(например с git у меня не было проблем с битыми версиями и файлами, а вот с svn бывали (правда с очень старой версией), а ещё svn у меня всегда тормозил в самый неподходящий момент - в пятницу вечером, когда заливал изменения на сервак. именно поэтому мне больше нравится git, а не "просто мне так хочется")
в конце концов выбор инструмента это всегда вопрос удобства использования, а это субъективный показатель, поэтому приходится подбирать под большинство в команде.
SVN требует центральный сервер.
* История репозитория становится заложником сервера, который может сломаться или просто стать недоступным.
* Невозможно вести версии локально для собственного удобства вроде создания версии, чтобы что-то потестить, а потом продолжить или откатиться.
* Сложно организовать распределённый репозиторий, чтобы не гонять изменения между офисами через медленный канал.
SVN позволяет залочить файлы, чтобы не иметь проблем с мерджами. Но тогда с ними не смогут работать другие, что решается разбиением логики на несколько файлов. Но то же самое разбиение логики так же позволяет решить проблему в GIT со сложными мерджами при изменениях многими пользователями.
Никто в своём уме не хранит выхлоп сборки в системе контроля версий. Речь идёт о ресурсах (картинки, звуки, видео и т.д.)
У меня гора растров. Прям гора. И на эти растры завязаны тесты. Тесты храняться в git, тестовые растры тоже запихал в git но с финтом ухом. А вся суть того ради чего я храню их вместе - потому что они должны быть завязаны на один коммит - тестовые растры и история их изменений с программными тестами.
// система распознавания образов
Если под бинарниками вы имеете в виду компилируемое, то я тоже не понимаю зачем это хранить в системе контроля версий. С другой стороны, существуют сторонние библиотеки, которые тоже нужно бы иметь в определённом бинарном виде (а системы управления зависимостями не везде имеются).
разные бывают причины. возможно кто-то не пользуется сборщиками, или нет хранилища артефактов, или для того стека технологий просто не предусмотрено такого (какой-то ужасный ужас я только что обрисовал) и все зависимые библиотеки приходится хранить вместе с репозиторием, причём в бинарниках.
у меня в практике не встречалось, хотя у соседней команды что-то подобное в каком-то виде было необходимо.
но да! для этого есть более подходящие инструменты, только и всего.
// или для того стека технологий просто не предусмотрено такого (какой-то ужасный ужас я только что обрисовал)
С плюсами до сих пор существуют проблемы... В вопросе стандартизации (а мне нравился biicode). Только один выход - тащить исходники и компилировать все зависимости на месте. Пипец веселье по времени. Ну или, как вы и говорите - хранить бинарники в репозитории. Есть третий вариант - предполагать, что система на которой будет сборка, заранее подготовлена - и все тяжёлые бинарники сторонних проектов куда-то установлены и прописаны переменные окружения... Но это пипец веселье когда надо сборку настраивать на левых серверах.
А еще для разных типов бинарников есть специализорованный софт, который позволяет не просто сохранять, но и делать дифы и мерджить.
Есть git lfs. И есть божественный git annex, который заменил мне облака и бекапы. Все файлы (например музыку и фотоархив) храню, синхронизирую и бекапирую с помощью git annex.
