Существует множество доступных систем контроля версий, в том числе с открытым исходным кодом, таких как Subversion , Git и Mercurial , а также коммерческих, таких как Perforce .
Насколько хорошо они поддерживают процесс разработки игр? Какие проблемы возникают при использовании VCS в отношении нетекстовых файлов (двоичных файлов), больших проектов и так далее? Каковы решения этих проблем, если таковые имеются?
Для организации ответов, давайте попробуем для каждого пакета. Обновите каждый пакет / ответ с вашими результатами.
Также, пожалуйста, перечислите некоторые краткие детали в своем ответе, о том, является ли ваша VCS бесплатной или коммерческой, распределенной или централизованной и т. Д.
Обновление : нашел хорошую статью, сравнивающую два VCS ниже - очевидно, Git - это MacGyver, а Mercurial - это Bond . Ну, я рад, что все решено ... И у автора есть хорошая цитата в конце:
Это нормально для прозелитизма для тех, кто еще не переключился на распределенную VCS, но попытка преобразовать пользователя Git в Mercurial (или наоборот) - пустая трата времени и энергии каждого.
Тем более, что настоящим врагом Git и Mercurial является Subversion . Черт, это мир, где есть код , есть в FOSS-стране ...
источник
Ответы:
Гит
Недавно я был на Git подножку (я использовал SVN и Mercurial). Пока мне действительно нравится то, что я получаю с Git. Это далеко от боли в настройке, и все больше и больше инструментов разработки начинают использовать его.
Это распределенная система контроля версий. Это позволяет нам иметь собственную независимую область, похожую на ствол. Я могу работать в своей области и пригласить вас, чтобы вы могли легко просматривать изменения. Я могу откатиться в собственном пространстве, не испортив центральный репо. Я могу фиксировать, разветвлять и делать все, что вы можете делать с SVN локально. Мне действительно нравится иметь этот контроль.
С SVN вам нужен доступ к вашему репо для совершения. Что если вы в дороге или в кафе без интернета? Фигово.
Конечно, SVN намного проще в освоении, но я думаю, что преимущества распределенного управления источниками в значительной степени перевешивают тот факт, что он имеет небольшую кривую обучения.
Мне также нравится, что это умнее слияния.
Основным недостатком GIT является то, что он хранит всю историю локально. (Да, вы можете выполнить операцию, чтобы сократить это, но это поведение по умолчанию). Для исходных файлов это совсем не проблема, но если у вас большой проект с гигабайтами данных активов, это быстро становится проблемой. Из моего текущего опыта я бы рекомендовал GIT только для небольших репозиториев или репозиториев только из исходного кода.
Если вам все еще интересно узнать о GIT, посетите http://thkoch2001.github.io/whygitisbetter/ для получения полезной информации / метрик. Также проверьте см. Https://git.wiki.kernel.org/index.php/GitSvnComparsion
источник
ртутный
Ключевая особенность:
Что касается использования нетекстовых файлов, последние версии Mercurial (> = 2.0) предоставляют расширение largefile по умолчанию :
Существуют другие расширения, предоставляющие аналогичные решения, такие как расширение bigfiles, которое позволяет хранить ваши активы в том же репозитории Mercurial, но извлекать только те двоичные файлы, которые вам нужны, когда они вам нужны.
Мне не известны какие-либо проблемы, связанные с большими проектами, кроме тех, которые связаны с наличием больших двоичных файлов. Проект Python - это большой проект, использующий Mercurial .
Джоэл Спольски написал мини-учебник по использованию Mercurial в Subversion Re-Education
источник
svn:needs-lock
, и, поскольку нет никакого способа сказать, кто и над какими файлами работает локально , вы вернулись к буквальному раздаче чаши вокруг команды (вам не разрешено редактировать без чаша на столе). Расширение BigFiles или нет, эта VCS бесполезна для двоичных файлов без практического решения этой проблемы.насильственный
Perforce (коммерческий / закрытый, централизованный) является отраслевым стандартом по ряду причин.
Тем не менее, почти ежедневно почти очевидно, что Perforce не чувствует, что их положение в отрасли находится под угрозой. Их визуальные инструменты, в том числе P4V и P4SCC (интегрируются с Visual Studio), работают медленно и глючно, а последние, как известно, замораживают Visual Studio для полного удовольствия. AnkhSVN на много миль впереди Perforce.
Комментарий от xan: Стоит отметить, однако, что их инструмент слияния, P4Merge (используется для диффузии и слияния), превосходен и намного превосходит аналогичные слияния черепахи. Удивительно, но этот компонент доступен бесплатно как часть пакета визуальных инструментов P4.
Комментарий от slicedlime: Еще один недостаток Perforce заключается в том, что ветвление в нем имеет тенденцию вызывать огромную боль, особенно если у вас большие деревья. Почти все другие vcs лучше в ветвлении и слиянии. Обычно это небольшая цена за вышеуказанные преимущества.
Комментарий от косули: Perforce очень болтливый. Там не так много происходит без участия сервера. В частности, вам нужен сервер, чтобы сделать открытым для редактирования, а это означает, что вам нужно перепрыгнуть через несколько обручей, если вы собираетесь разорвать соединение с сервером.
Комментарий jrista: Будучи ежедневным пользователем Perforce уже более двух лет, с расширенной командой разработчиков и инженеров по качеству, насчитывающей более 100 человек, я очень близко познакомился с ней. Хотя это достойная система контроля версий, у нее есть свои недостатки, о которых должны знать те, кто оценивает системы SCC:
источник
диверсия
Открытый исходный код, централизованный
Файлы Blender - я не совсем уверен, являются ли файлы .blend двоичными (они выглядят так), но у меня не было проблем с добавлением их в Subversion. Проведя несколько экспериментов, увеличение размера файла для измененных файлов выглядит номинальным, так что это не просто копирование всего файла.
Крупные проекты - это работает, хотя это может стать странным. Он определенно способен обрабатывать хранилища размером не менее 5,5 ГБ (общий размер каталога хранилища на сервере; в основном это бинарные ресурсы).
Дублированные данные на клиенте - Subversion хранит дубликаты всех файлов в рабочей области пользователя в виде первичной копии. Преимущество этого заключается в том, что вы можете делать различие или возвращаться, не возвращаясь на сервер. Недостатком является то, что ваши 10 гигабайт рабочих файлов занимают 20 гигабайт дискового пространства.
Список игнорирования - это свойство каталога (простое с графическим интерфейсом, раздражающее в командной строке).
Subversion позволяет блокировать файлы / ресурсы - что действительно полезно, если несколько художников и дизайнеров работают над одними и теми же файлами.
Внешние интерфейсы - отличный способ обработки общего (например, библиотечного или базового) кода между проектами.
источник
AlienBrain
От Avid :
У меня нет опыта работы с AlienBrain, и я слышал об этом только из книги Game Coding Complete Майка МакШаффри. Однако он, похоже, высоко ценит это:
Конечно, он также описывает это как:
источник
Team Foundation Server
от Microsoft
Я широко использовал TFS в проектах симуляторов MILSPEC, и это довольно хорошо. Вероятно, не самый лучший, если вы работаете на Mac, хотя в наши дни есть плагин Eclipse. В облачной версии поддерживаются git-репозитории для бэкэнда контроля версий.
Это бесплатно для пяти пользователей в Visual Studio Online (допускает закрытый исходный код; нет ограничений по размеру репозитория), где он размещен в облаке. Если вы хотите разместить его локально, это может быть дорого.
В этом мне больше всего нравятся функции управления разработкой программного обеспечения и тот факт, что он обрабатывает большие и двоичные файлы довольно счастливо.
источник