Каковы преимущества использования Perforce вместо Subversion?

Моя команда использует SVN в течение нескольких лет. Теперь у нас есть возможность переключиться на Perforce.

Каковы были бы преимущества (и подводные камни) для создания такого переключателя?

Ответ 1

  • P4 отслеживает вашу рабочую копию на сервере. Это значит, что
    • Большие рабочие копии обрабатываются намного быстрее. Раньше у меня был большой проект SVN, а простое обновление занимало 15 минут, потому что ему приходилось создавать дерево локальной рабочей копии (тысячи папок). Доступ к файлам медленный. P4 хранит информацию о рабочей копии в базе данных, поэтому любые операции всегда были почти мгновенными.
    • Если вы возитесь со своими файлами и не говорите серверу, у вас проблемы! Вы не можете просто удалить файл - вам нужно удалить файл с P4-клиентом, чтобы сервер знал. Обратите внимание: если вы локально удаляете файл, он не будет загружаться повторно при последовательных обновлениях, потому что сервер думает, что у вас уже есть его! Когда это произошло, и я оказался безумно не синхронизированным, мне обычно приходилось прибегать к очистке моей локальной копии и ее повторной загрузке, что может потребовать много времени. Вы должны быть осторожны.
  • Клиент оболочки оболочки Explorer (думаю, TortoiseSVN) отстой и полностью непригоден.
  • Есть два клиентских приложения GUI, которые предлагают лучшую функциональность: P4Win и P4V, из которых P4V более новый и более простой в использовании, но не как многофункциональный.
  • Существуют плагины Visual Studio и Eclipse, которые работают относительно хорошо, хотя у них не так много расширенных функций.
  • Вообще говоря, P4 предлагает гораздо меньше функций, чем SVN, и иногда совершенно путается.
  • Определения рабочих копий были приятными и гибкими. Я считаю, что P4 превосходит SVN здесь: вы можете определить маски для рабочих копий и создать всевозможные причудливые деревья, поэтому вы загружаете только то, что хотите именно там, где хотите, без необходимости вручную futz с несколькими проверками. Это очень удобно, когда у меня были гигабайты на сервере, и мне нужен только определенный подмножество. Я использовал SVN в подобной ситуации с гораздо более сложными проблемами.
  • Ветвление под P4... нечетное. Сетчатые ветки и различные виды веток и запутанный интерфейс. Я не помню подробностей об этом, к сожалению.

Кроме этого, он довольно стандартный.

Я рекомендую вам хранить SVN, если вы не имеете дело с огромными кодовыми базами или не ненавидите папки .svn, засоряющие вашу файловую систему. SVN + TortoiseSVN гораздо удобнее для большинства ситуаций.

Ответ 2

В настоящее время я использую оба варианта для разных проектов.

  • Механизм ветвления ветров превосходит.
  • Лучше разрешить инструмент разрешения конфликтов.
  • Мне очень нравится иметь сильное представление об изменении списка.
  • Perforce кажется быстрее.
  • Легче настроить и запустить.
  • Некоторым из наших членов действительно нравится плагин MS Office для работы, я нахожусь на Mac, поэтому я не могу его использовать.

Но

  • Клиенты SVN лучше, особенно плагин eclipse.
  • Perforce дороже.

Это просто мнения, поэтому, возможно, это плохой ответ:)

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

Обновление. Начиная с написания этого, я полностью переключился на использование GIT для личных и коммерческих целей. Я бы выбрал его в SVN или Perforce в любой день.

Ответ 3

Оценила ли ваша команда Git? Он имеет функции, аналогичные тем, которые доступны в Perforce, но является бесплатным (FOSS).

Либо это отличная альтернатива SVN при работе с большой командой.

Ответ 4

Я использую perforce на работе, svn дома.

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

Черепаха потрясающая, она очень проста в использовании. Моя жена адвоката подавляет все ее документы, используя это;)

Ветвление очень просто. На самом деле так легко, что люди ветвятся по не слишком большой причине. Затем вы интегрируете, потому что вы разветвлены. Это вполне может стать единственным, что вы делаете.

Svn интегрирован в большее количество продуктов. По крайней мере, больше продуктов, которые я использую. Это большое преимущество, потому что, если вам нужно использовать eithere external для вашей среды разработки, они оба становятся неуклюжими.

Время от времени у нас есть проблемы с perforce, когда он думает, что ваши локальные копии обновлены, но это не так. Затем вы должны принудительно синхронизировать, тогда, если он все еще не подходит, удалите локальные файлы и выполните повторную синхронизацию. Никогда не было таких проблем с svn. На самом деле это огромная проблема, поскольку вы даже не знаете, что работаете над старой копией.

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

Ответ 5

На веб-сайте Perforce есть документ, сравнивающий два: P4 vs SVN

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

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

Ответ 6

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

Ответ 7

Вы можете редактировать вещи в автономном режиме в Perforce, если хотите. Ваш workapce определяет, являются ли файлы readonly или writeable, поэтому вы можете сделать их доступными для записи, взломать, а затем попросить Perforce выяснить, что нужно проверить.

Лучше иметь файлы только для чтения и проверить, что вам нужно, чтобы другие (и сами) знали, что вы делали.

Лучшая система для вас зависит от ваших требований, если у вас нет требований, тогда выигрывает Perforce.

Кто использует Subversion?  Небольшие некоммерческие команды  Дешевые или небольшие коммерческие команды

Кто использует Perforce?  Google  Sony  Samsung  NVidia  Symantec

Ответ 8

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

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

Я нашел, что очень быстро получить файлы в и из, и быть очень надежными. Я думаю, что большинство разработчиков, с которыми я работал, действительно понравилось, когда мы привыкли к этому. Мы использовали Visual Source Safe перед тем, как переключиться, так что, в принципе, все лучше.

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

Ответ 9

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

Ответ 10

Как и в последних версиях, Perforce имеет новую функцию для отложенные изменения:

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

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

AFAIK, Subversion не имеет подобной функции.

Дополнительная информация о блоге Perforce.

Ответ 11

Лицензия Perforce понижается в цене, поскольку количество мест увеличивается, насколько я помню. Так что это не ровно 900 долларов за место. Это также серверная лицензия; вы платите за общее количество человеческих разработчиков, использующих его, а не за компьютер, использующий его. Итак, если вы являетесь магазином в 200 человек, лицензия на 200 мест позволяет им использовать все, даже из дома.

Ответ 12

По-моему причина # 1 для выбора между SVN и Perforce стоит.

Малые репозитории: SVN выполняет свою работу отлично и бесплатно.

Большие репозитории: смертельно использовать SVN: http://yoawsconsult.blogspot.com/2009/05/whenwhy-you-cant-afford-to-use.html. Perforce может делать большие репозитории, но вам нужно заплатить за это и узнать его.

Ответ 13

Perforce позволяет серверу владеть клиентом.

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

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

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

Ответ 14

Из моей практики:

  • Perforce предназначен для хранения также огромных файлов blob (например, программных дистрибутивов), svn сохраняет все свои данные в виде текста. Невозможно эффективно хранить такие двоичные данные в svn

  • Perforce поддерживает полезную вещь, например, "откладывать изменения". Пользователь попросил удержать изменения, как "патч" на сервере perforce. Затем другие пользователи могут просмотреть изменения, если их попросит автор. Svn не поддерживает его

  • Формат командной строки Svn легче понять и запомнить и для ежедневного использования

  • Svn свободен

  • В "git" и в "svn" вы редактируете изменения непосредственно через файлы редактирования в локальной файловой системе после получения файлов из репо. В perforce "правильный" способ работы с файлами - это отметить их, что вы собираетесь работать с ними (p4 edit).... В теории, для просмотра этого будут доступны другие ребята, на практике это не удобно

  • Работать в рабочей среде Perforce в локальной системе требуется больше времени, чем svn из-за дополнительной конфигурации, которую нужно выполнить

Ответ 15

Возможность делать все как раз от exlorer через TortoiseSVN чувствует себя очень комфортно! Таким образом, существует даже расширение P4. Но его действительно не так сложно!

С другой стороны, клиент P4 предлагает доступное представление в репозитории сервера, чтобы можно было работать без полной проверки. Это всегда было немного громоздким в дни SVN только с TSVN.

Говоря об этом, я не могу понять комментарий к плакатам:

  • Клиент оболочки оболочки Explorer (думаю, TortoiseSVN) отстой и полностью непригоден.

Для FOSS TortoiseSVN просто здорово! (Несмотря на то, что иконка работала немного судорожно и по-разному на каждой машине..)

с TortoiseSVN вы:

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

Ответ 16

одним из недостатков perforce против дополнительной версии является команда export в svn. Легче экспортировать или загрузить код какой-либо версии в любом месте. вам не нужно создавать рабочее пространство для этого. Но в perforce вы можете получить код версии для вашего рабочего пространства.

Ответ 17

Основное преимущество использования подрывной деятельности над Perforce - это, на мой взгляд, способность редактировать вещи в автономном режиме и одновременно с вашими коллегами.

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

Отказ от ответственности: моя информация о Perforce устарела, использовала ее некоторое время в 2005-06 годах, прежде чем полностью переключиться на svn