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

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

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

17 ответов


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

кроме этого, это довольно стандартная.

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


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

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

но

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

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

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

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


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

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


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

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

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

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

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

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

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


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

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

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


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


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

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

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

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

кто использует Perforce? Гуглить Сони Самсунг видеокарта NVIDIA Компания Symantec


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

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

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

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


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


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

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

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

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

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


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


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

маленький репозитории: SVN делает свою работу просто отлично и бесплатно.

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


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

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

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

Помните: Perforce клиент-марионетка сервера. вы должны использовать функции безопасности операционной системы, чтобы предотвратить то, что вы не хотите, чтобы он делал. всегда относитесь к клиенту Perforce как к враждебному.


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

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

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

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

  • Svn бесплатно

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

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


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

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

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

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

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

с TortoiseSVN вы:

  • можете изменить функции
    • чтобы принести ' get lock..- фронт, например!--11-->
  • имеют фактически доступ ко всем функции из проводника
  • есть значки в меню оболочки
  • уведомления об обновлениях

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


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

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

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