В чем преимущества Perforce?

Каковы преимущества Perforce?

Я хотел бы получить некоторое представление о том, как Perforce может работать лучше в данной ситуации, чем, скажем, Subversion.

Если у вас есть опыт работы с Perforce и Subversion, и вы не верите, что есть какие-то преимущества, или полагаете, что svn имеет преимущества перед Perforce, я также хотел бы знать, почему.

Ответ 1

Я работал с Perforce в течение многих лет, а также с Clearcase, Sourcesafe, RCS, PVCS, CVS и Subversion. Совсем недавно я начал использовать GIT тоже.

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

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

Я сказал, что ненавижу ClearCase. ClearCase обычно сбрасывается сверху (т.е. решение управления).

Для многих случаев, когда Subversion козыри Perforce, многие люди предпочитают распределенные системы, такие как GIT, Bazaar, Mercurial, в наши дни. Из того, что я видел в GIT, они вполне могут быть правы, и я уверен, что другие плакаты вынесут это.

Ответ 2

Одной из самых больших точек продаж Perforce является скорость. Сервер отслеживает состояние файлов на клиенте; поэтому операции типа "получить мне последнее состояние депо" тривиальны: сервер уже знает, какие файлы у вас есть, и он может отправить вам минимальный объем информации.

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

Поскольку сервер Perforce отправляет клиенту только минимальный объем данных, Perforce работает над медленными ссылками, например, когда клиент в США обращается к депо в Лондоне. Сказав это, протокол Perforce относительно "болтливый", поэтому он подвержен замедлению перегруженных ссылок.

Ответ 3

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

Perforce - это, пожалуй, самая централизованная система SCM, которую я когда-либо использовал. Представьте себе, что они гордятся тем, что не кэшируют что-либо на вашем диске. Выполнение синхронизации раздражает, потому что в огромном количестве случаев он ничего не сделает, если вы не выполните принудительную синхронизацию, а принудительная синхронизация копирует все с сервера обратно на вас - если ваш проект составляет 10 ГБ, он скопирует все из них.

У меня есть предыдущий опыт использования SourceSafe, CVS, SVN, Mercurial и git (меньше двух последних).

Я думаю, что большинство SCM с открытым исходным кодом являются зрелыми, и вы можете выбрать один из них. Если вы хотите, чтобы что-то централизованное перешло на SVN, и если вы хотите что-то децентрализованное, используйте Mercurial (у меня были плохие переживания с git в Windows).

Некоторые другие проблемы, с которыми я столкнулся:

  • то, что вы совершаете, не то, что вы получаете: например, если вы передаете файл UTF16 на Intel Mac и синхронизируете его с другим PPC Mac, вы получите еще один файл UTF16, потому что perforce является умным и скрывает ваш файл до клиентский порядок байтов. UTF16-BE - UTF16-LE?!
  • скрипт perforce в 10 раз больше, чем другие инструменты.
  • если вы начнете использовать его и привяжите его к своим процессам, скриптируя, вероятно, вы умрете вместе с ним, потому что все делается по-разному и по-другому: (
  • изображение, которое очень легко сбить сервер p4: просто выполните синхронизацию с корнем проекта. Там, где я работаю, это запрещено, потому что это может случиться! Наблюдающий script, который контролирует процессы сервера perforce, и если один из них перехватывает x ГБ ОЗУ, он убивает его и отправляет вам уведомление. Да, выполнение одной простой команды на клиенте может создать процесс 3 ГБ на сервере через 5-10 секунд.

Ответ 4

Perforce имеет немного другую модель, чем, скажем, svn. Каждый файл всегда заперт в вашей рабочей копии, и вы должны заявить, что начнете его редактировать. Это, например, преимущество в том, что вы всегда можете сразу увидеть, кто еще работает над файлом.

Все различия между другими SCM не очень велики. Вы сталкиваетесь с Perforce во многих местах, потому что в то время это был один из немногих (если не единственный) частично приличный SCM, который работал на Windows и Mac.

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

Ответ 5

Лично я презираю. Интерфейс пользователя является ужасным, сложным и просто неинтуитивным. Он глючит и часто падает.

Я работал с SVN раньше (через Tortoise SVN) и нашел его намного более простым и дружественным.

Конечно, все это с точки зрения пользователей, вероятно, у SCM есть другая перспектива.

Ответ 6

Perforce поддерживает блокировку и, по-видимому, требует его для некоторых типов файлов, которые нельзя объединить (двоичные ресурсы, изображения и т.д.). Однако он not требует блокировки для обычных исходных файлов, которые могут быть открыты для одновременного редактирования несколькими пользователями, а затем объединены обратно в хранилище.

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

Ответ 7

Вы можете найти подсказки в В чем преимущества использования Perforce вместо Subversion? (просто после вашего тега Perforce...).

Мы используем Perforce на работе, и хотя у меня мало опыта работы с различным программным обеспечением SCM, я считаю, что это очень хорошо сделано, с хорошим графическим интерфейсом (в Windows), хорошей поддержкой командной строки, множеством приятных функций... Может потребоваться в то время как привыкнуть к его логике, но это, вероятно, верно для большинства SCM, я думаю.

Ответ 8

Я согласен с предыдущим Yuval - работая с Perforce и svn, как в графическом интерфейсе, так и в режиме командной строки, я предпочитаю svn. Тем не менее, компания, с которой я работал в то время, переключилась с бесплатных cvs, которые она использовала для Perforce. Его графический интерфейс более яркий. Я думаю, что его модель фиксации отличается - она ​​использует блокировку, что может быть предпочтительнее для некоторых разработчиков/менеджеров. В коммерческих условиях, поддержка людей для вашего инструмента контроля версий также может помочь. Я слышал, что в некоторых крупных компаниях, использующих открытый код в производственных средах, запрещено, потому что они хотят получить поддержку для каждой строки кода.

Ответ 9

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

Никогда не запускайте Perforce, кроме как в изолированной программной панели SELinux.

Помните: клиент Perforce является марионеткой сервера. Вы должны использовать функции безопасности операционной системы, чтобы предотвратить выполнение того, что вы не хотите делать. ВСЕГДА относятся к клиенту Perforce как к враждебному.