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

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

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


person Ferruccio    schedule 01.10.2008    source источник


Ответы (17)


  • P4 keeps track of your working copy on the server. This means that
    1. Large working copies are processed much faster. I used to have a large SVN project and a simple update took 15 minutes because it had to create a tree of the local working copy (thousands of folders). File access is slow. P4 stores the information about the working copy in the database, so any operations were always near-instantaneous.
    2. Если вы возитесь со своими файлами и не сообщаете серверу, у вас проблемы! Вы не можете просто удалить файл - вы должны удалить файл с помощью клиента P4, чтобы сервер знал. Обратите внимание: если вы удалите файл локально, он не будет загружен снова при последующих обновлениях, потому что сервер считает, что он у вас уже есть! Когда происходило много всего этого, и я в конечном итоге сильно рассинхронизировался, мне обычно приходилось прибегать к очистке моей локальной копии и ее повторной загрузке, что могло отнимать много времени. Вы должны соблюдать осторожность.
  • Клиент расширения оболочки Explorer (например, TortoiseSVN) отстой и совершенно непригоден для использования.
  • Есть два клиентских приложения с графическим интерфейсом, которые предлагают наилучшую функциональность: P4Win и P4V, из которых P4V более новый и более простой в использовании, но не такой многофункциональный.
  • Существуют плагины Visual Studio и Eclipse, которые работают относительно хорошо, хотя и не имеют многих дополнительных функций.
  • Вообще говоря, P4 предлагает гораздо меньше возможностей, чем SVN, и иногда просто сбивает с толку.
  • Определения рабочей копии были красивыми и гибкими. Я считаю, что здесь P4 превосходит SVN: вы можете определять маски для папок с рабочими копиями и создавать всевозможные причудливые деревья, поэтому вы загружаете только то, что хотите, и именно туда, где хотите, без необходимости вручную выполнять несколько проверок. Это было очень удобно, когда у меня были гигабайты данных на сервере, и мне требовалось только определенное их подмножество. Я использовал SVN в аналогичной ситуации с гораздо большим количеством хлопот.
  • Ветвление под P4 ... странно. Наборы веток и разные виды веток и запутанный пользовательский интерфейс. К сожалению, я не помню много подробностей об этом.

В остальном это довольно стандартно.

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

person Sander    schedule 01.10.2008
comment
Пересматривая пункт 2, в P4V есть опция согласования автономной работы ..., которая очень помогает в этом. Кроме того, возможно, Сандер в последнее время не использовал графические клиенты, но P4V БОЛЬШЕ функционально, чем P4Win. Perforce отказывается от P4Win и концентрируется на едином кроссплатформенном графическом клиенте P4V. - person raven; 01.10.2008
comment
Да, мой опыт работы с P4 начался несколько лет назад. - person Sander; 02.10.2008
comment
BW. В настоящее время Tortoise лучше, и была обнаружена большая ошибка рабочей копии, которая скоро будет исправлена ​​(и применима только к разделам Windows и NTFS). Но пока не исправлено. - person gbjbaanb; 12.03.2009
comment
Серьезно - я не совсем уверен, что у вас есть основания утверждать, что Perforce имеет меньше возможностей, чем SVN. И даже если это так (или нет), какое это имеет значение? Кроме того, Perforce отлично справляется с ветвлением. Любой другой инструмент, который я использовал, действительно не может даже отдаленно сравниваться с возможностями разветвления и последующего слияния Perforce. - person Goyuix; 04.09.2009
comment
Пункт 2 не проблема. Существует целая статья, в которой описаны все способы решения этой проблемы. - person Alex Budovski; 17.02.2011
comment
Разве тот факт, что должна быть целая статья, описывающая способы ее решения, не означает, что это серьезная проблема? - person Thymine; 04.10.2011
comment
Я только что присоединился к команде по принуждению. Одна приятная функция, которая сразу же пригодится, - это то, что вы можете отложить свой набор изменений (локальные изменения). Это сохраняет их на сервере без фиксации. Затем вы можете исправить какой-нибудь другой дефект, а затем снять работу с полки, чтобы продолжить с того места, где вы остановились. Вы также можете передать отложенную работу между членами команды, чтобы выполнить локальное слияние на их столе перед фиксацией. С Git вы можете делать такие вещи легко, но не с SVN. p4 кажется более многофункциональным для очень большого проекта с большим количеством подкоманд. - person simbo1905; 18.09.2012
comment
Разве не задавался вопрос о преимуществах perforce над svn - person Cshah; 25.01.2017

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

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

Но

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

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

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

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

person Marc Hughes    schedule 01.10.2008
comment
Не могли бы вы рассказать, почему именно плагин Perforce Eclipse? в настоящее время мы оцениваем платформу, и я не смог найти конкретных отзывов о ней ... - person Tomer Gabel; 21.04.2009
comment
разветвление и запись слияний в Perforce намного лучше, чем у SVN, когда я использовал его в последний раз. Однако в наши дни hg или git могут быть лучшим вариантом для ветвления / слияния. - person Ian Ringrose; 24.08.2011
comment
За 5 лет, прошедших с момента написания этого, я полностью перешел на git для всей системы управления версиями. - person Marc Hughes; 30.07.2013

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

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

person Douglas F Shearer    schedule 01.10.2008
comment
Откровенно говоря, я склонен с этим согласиться. Что касается более традиционного репозитория кода, ничто не может сравниться с Perforce. Распределенные системы, такие как Git или Mercurial, решают аналогичный, хотя и немного другой вариант проблемы управления кодом, и, на мой взгляд, на них стоит обратить внимание. - person Goyuix; 04.09.2009

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

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

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

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

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

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

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

person lajos    schedule 01.10.2008
comment
Аминь. Если он не сломан, не чините его. - person Mr. TA; 27.07.2011

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

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

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

person Greg Whitfield    schedule 09.10.2008

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

person janm    schedule 01.10.2008
comment
По моему опыту, слияние в Perforce такая же боль, как и любая другая задача. - person Trismegistos; 14.06.2014

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

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

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

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

person Demi    schedule 20.12.2014
comment
Это не отвечает на вопрос. У вас есть доказательства, подтверждающие вашу паранойю? Вы говорите так, будто это очень необычно и иррационально, что программа технически может записать в любое место на диске, если захочет. - person BinarySpark; 27.04.2018

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

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

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

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

person Scott Langham    schedule 01.10.2008

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

person Nemanja Trifunovic    schedule 01.10.2008

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

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

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

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

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

person Community    schedule 30.10.2008
comment
Список общедоступных клиентов одного из клиентов Subversion (VisualSVN) доступен на visualsvn.com/company/ клиенты - person Bert Huijben; 21.11.2008
comment
Это просто неправда. SVN используется крупными компаниями и огромными репозиториями. Google использует GIT для своего огромного репозитория Android, а не Perforce. - person Yaroslav Voytovych; 16.01.2019

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

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

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

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

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

person matt b    schedule 09.04.2010
comment
Мотивация больше похожа на git stash, и Бьюсь об заклад, они исходят из именно этого. - person Sebastian Mach; 19.12.2011
comment
Я согласен, что полки p4 больше похожи на git stashes. Однако идея полок p4 предшествует git, когда у клиента p4 был бывший сотрудник Perforce, внедривший аналогичную систему поверх нынешнего p4. Недавно добавленные p4sandbox и потоки имеют больше общего с локальными ветвями git. - person Jonathan Moore; 08.04.2013

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

person Epu    schedule 21.11.2008
comment
т.е. 200 именованных пользователей. Это то, что люди обычно называют «на место». 200 одновременных пользователей часто называют «на сервер». (Условия Microsoft для лицензирования оконного сервера) - person gbjbaanb; 12.03.2009

На мой взгляд, причина №1 выбора между SVN и Perforce - стоимость.

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

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

person user574894    schedule 13.01.2011

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

person shreyas_patel21    schedule 27.02.2015

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

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

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

  • Формат командной строки svn проще для понимания и запоминания, а также для повседневного использования.

  • Svn бесплатно

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

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

person bruziuz    schedule 19.03.2016

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

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

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

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

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

с TortoiseSVN вы:

  • can rearrange functions
    • to bring 'get lock..' front for instance
  • иметь доступ ко ВСЕМ функциям из проводника
  • иметь значки в меню оболочки
  • получают уведомления об обновлениях
person ewerybody    schedule 29.03.2012
comment
Добро пожаловать в Stack Overflow! Пожалуйста, постарайтесь подкрепить свое довольно субъективное мнение более объективными фактами. - person Ingo Karkat; 27.10.2012
comment
@IngoKarkat: Надеюсь, так лучше? ^ С другой стороны: это не традиционный вопрос кода. Когда вы спрашиваете мнение, нельзя избежать некоторой предвзятости. - person ewerybody; 25.02.2013
comment
Клиент расширения оболочки Explorer (например, TortoiseSVN) отстой и совершенно непригоден для использования. Вы неправильно поняли это предложение. Он не сказал, что TSVN - отстой, но имел в виду интеграцию Perforce Explorer. - person Andreas Haferburg; 17.12.2018

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

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

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

person akauppi    schedule 01.10.2008
comment
Несколько человек могут редактировать один и тот же файл в Perforce, и они могут делать это уже очень давно. Второй для отправки должен объединить более ранние изменения. Вы можете изменять файлы, и когда у вас появится возможность подключения, вы можете сделать p4 diff -se | p4 -x - редактировать. при необходимости синхронизировать / разрешить. - person janm; 01.10.2008
comment
Когда мне нужно работать в автономном режиме, я отредактирую все необходимые файлы. Затем, когда я подключаюсь, я открываю все для редактирования, затем возвращаю неизмененные файлы и волшебным образом получаю только те файлы, которые я коснулся в списке изменений. - person Marc Hughes; 01.10.2008
comment
Perforce поддерживал режим автономной работы до 2005-06. На сайте Perforce есть техническое примечание, описывающее рекомендуемый подход к работе без подключения: kb.perforce.com/UserTasks/ Работает отключен - person Milan Gardian; 28.01.2009
comment
Файлы легко редактировать в автономном режиме. Отредактируйте файлы и выберите «Согласовать работу в автономном режиме ...» при повторном подключении. - person tkosinski; 09.05.2016