Perforce (коммерческий / закрытый, централизованный) является отраслевым стандартом по ряду причин.
- Это коммерческий продукт, что означает, что он поставляется с коммерческой поддержкой. Проекты с открытым исходным кодом могут иметь право на бесплатную лицензию (за исключением технической поддержки).
- Он очень хорошо поддерживает рабочие пространства , что позволяет очень гибко размещать каталоги исходных текстов и ресурсов.
- Он очень хорошо поддерживает списки изменений .
- Вы можете видеть, кто над чем работает. Игры имеют аномально большое количество быстро меняющихся двоичных файлов (ресурсов) по сравнению с другими проектами разработки. В большинстве случаев они не подлежат объединению, поэтому важно отслеживать, кто, что / где / когда имеет решающее значение. Клиенты Subversion и DSCC намеренно избегают этого метода, но в определенных приложениях он весьма полезен.
- Он поддерживает гигантский код / базы активов. Он не хранит дубликаты данных на клиентских компьютерах, что важно, когда ваше подпредставление дерева составляет пару десятков гигабайт.
Тем не менее, почти ежедневно почти очевидно, что Perforce не чувствует, что их положение в отрасли находится под угрозой. Их визуальные инструменты, в том числе P4V и P4SCC (интегрируются с Visual Studio), работают медленно и глючно, а последние, как известно, замораживают Visual Studio для полного удовольствия. AnkhSVN на много миль впереди Perforce.
Комментарий от xan: Стоит отметить, однако, что их инструмент слияния, P4Merge (используется для диффузии и слияния), превосходен и намного превосходит аналогичные слияния черепахи. Удивительно, но этот компонент доступен бесплатно как часть пакета визуальных инструментов P4.
Комментарий от slicedlime: Еще один недостаток Perforce заключается в том, что ветвление в нем имеет тенденцию вызывать огромную боль, особенно если у вас большие деревья. Почти все другие vcs лучше в ветвлении и слиянии. Обычно это небольшая цена за вышеуказанные преимущества.
Комментарий от косули: Perforce очень болтливый. Там не так много происходит без участия сервера. В частности, вам нужен сервер, чтобы сделать открытым для редактирования, а это означает, что вам нужно перепрыгнуть через несколько обручей, если вы собираетесь разорвать соединение с сервером.
Комментарий jrista: Будучи ежедневным пользователем Perforce уже более двух лет, с расширенной командой разработчиков и инженеров по качеству, насчитывающей более 100 человек, я очень близко познакомился с ней. Хотя это достойная система контроля версий, у нее есть свои недостатки, о которых должны знать те, кто оценивает системы SCC:
- Как уже упоминалось, ветвление / интеграция особенно громоздки и трудны для выполнения. У вас нечестивый контроль, но это происходит за счет чрезмерной сложности. С другой стороны, инструмент визуального слияния является единственным в своем роде и представляет красивый трехуровневый «слиток» представления вашей работы. Perforce предоставляет некоторую графическую визуализацию путей ветвей (так называемый граф ревизий), однако способ визуализации часто делает инструмент довольно бесполезным. Если вам нужно только увидеть очень маленький отрезок времени для одного или нескольких файлов, это может быть полезно ... что-нибудь еще, и почти невозможно перемещаться по Графику ревизий.
- Perforce также не очень эффективный инструмент, так как практически любая файловая операция требует дублирования файлов и данных: разветвление, маркировка, списки изменений и т. Д. Здесь нет разреженных или легких тегов или разветвлений. Если вы не боитесь использовать огромное количество дискового пространства для отслеживания ваших изменений, производительность, вероятно, будет вам полезна. Если нет, я бы посмотрел на другой инструмент.
- Perforce использует рабочие пространства, однако они могут иногда разочаровывать, поскольку Perforce кэширует все состояния в вашей рабочей области, а не использует реальные файлы на диске для определения какого-либо состояния. Это часто приводит к тому, что файлы не синхронизируются, потому что ваше рабочее пространство сообщает, что они обновлены, тогда как по какой-то причине физические файлы на диске действительно НЕ обновлены.
- И последнее раздражение - Perforce довольно жесток в вашей сети. Это очень болтливая программа, которая потребляет значительную часть полосы пропускания. Любая потеря сетевого подключения, и вы рискуете оказаться неспособным выполнять какую-либо работу с файлами, контролируемыми источником, до восстановления подключения. На данный момент я не обнаружил действия, которое можно выполнять в автономном режиме в Perforce.