Каковы преимущества для Perforce? - PullRequest
24 голосов
/ 30 октября 2008

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

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

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

Ответы [ 9 ]

20 голосов
/ 30 октября 2008

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

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

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

Тем не менее я ненавижу ClearCase. ClearCase обычно вынужден сверху вниз (т.е. решение руководства).

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

15 голосов
/ 30 октября 2008

Одно из главных достоинств Perforce - скорость. Сервер отслеживает состояние файлов на клиенте; поэтому такие операции, как «Получите мне последнее состояние хранилища», тривиальны - сервер уже знает, какие файлы у вас есть, и он может отправить вам минимальный объем информации.

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

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

12 голосов
/ 29 июля 2009

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

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

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

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

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

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

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

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

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

7 голосов
/ 30 октября 2008

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

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

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

4 голосов
/ 30 октября 2008

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

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

4 голосов
/ 30 октября 2008

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

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

2 голосов
/ 30 октября 2008

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

0 голосов
/ 20 декабря 2014

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

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

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

...