2008-10-30 4 views
24

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

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

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

+2

Perforce пород. Я использовал SVN, безопасный визуальный источник и другие системы. Я также использовал perforce в течение нескольких лет. Я бы не запускал коммерческий проект ни на что другое. – Jonesome 2012-01-22 19:50:18

ответ

6

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

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

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

+7

Я совершенно не согласен. Я работаю с Perforce в течение последних 6 лет. Сбои случаются редко, может быть, 5 лет назад, но сегодняшнее Perforce твердое. Пользовательский интерфейс, который вам нужно изучить, или просто использовать вместо него новый P4V, который имеет более «оконный» конформистский интерфейс. – steffenj 2008-10-30 08:51:24

+2

Я бы указал вам на P4WSAD (интеграция затмение-затмение), которая является ошибкой до смерти. В любом случае UX полностью объективен, поэтому «лично» в начале моего ответа. – 2008-10-30 09:14:26

+4

Я не думаю, что справедливо судить весь SCM о достоинствах (или их отсутствии) дополнительного плагина. Я использую Perforce ежедневно, с Java, но без плагина. Я просто обрабатываю исходное управление вне Eclipse. Легко как. – ninesided 2009-07-29 10:17:38

2

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

4

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

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

+3

На самом деле SVN работает так же, как и списки изменений. Каждый номер версии является репозиторием, поэтому, если вы вернетесь к версии, вы откатите весь репозиторий. – philsquared 2008-10-30 09:02:55

7

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

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

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

+0

Блокировка не применяется, только в двоичных файлах (которые не могут быть объединены). Несколько человек могут работать вместе с одним и тем же файлом ASCII (например, исходным кодом), а затем объединить их. – steffenj 2008-10-30 09:05:54

20

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

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

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

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

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

4

Вы можете найти подсказки в What are the benefits of using Perforce instead of Subversion? (только после вашего тега Perforce ...).

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

14

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

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

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

11

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

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

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

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

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

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

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

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

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

Смежные вопросы