Каковы преимущества использования Perforce вместо Subversion? - PullRequest
65 голосов
/ 01 октября 2008

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

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

Ответы [ 17 ]

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

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

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

43 голосов
/ 01 октября 2008

Я сейчас использую оба в разных проектах.

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

Но

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

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

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

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

14 голосов
/ 01 октября 2008

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

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

6 голосов
/ 09 октября 2008

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

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

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

6 голосов
/ 01 октября 2008

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 голосов
/ 09 апреля 2010

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

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

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

AFAIK, Subversion не имеет аналогичной функции.

Больше информации в блоге Perforce .

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

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

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

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

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

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

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

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

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

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

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

...