Какие преимущества у Perforce?

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

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

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

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

Jonesome Reinstate Monica 22.01.2012 23:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
24
1
6 672
9

Ответы 9

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

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

Конечно, все это с точки зрения пользователей, возможно, у SCM другая точка зрения.

Я полностью не согласен. Я работаю с Perforce последние 6 лет. Сбои случаются редко, может быть, 5 лет назад, но сегодняшняя Perforce надежна. Пользовательский интерфейс, который вам нужно изучить, или вы просто используете вместо него более новый P4V, который имеет более «оконный» конформистский интерфейс.

steffenj 30.10.2008 11:51

Я хотел бы указать вам на P4WSAD (интеграция perforce-eclipse), который до смерти глючит. В любом случае, UX полностью объективен, отсюда и «лично» в начале моего ответа.

Yuval Adam 30.10.2008 12:14

Я не думаю, что справедливо судить обо всей SCM по достоинству (или отсутствию такового) дополнительного плагина. Я использую Perforce ежедневно, с Java, но без плагина. Я просто обрабатываю исходный код вне Eclipse. Легко как.

ninesided 29.07.2009 14:17

Клиенты perforce (окна) ни разу у меня не разбились.

C Johnson 21.08.2010 11:50

Да, интеграция Eclipse со многими вещами смертельно глючна. Довольно несправедливо судить об инструменте на основе одного конкретного варианта использования.

Br.Bill 09.02.2017 04:30

@CJohnson Он не дает сбоев, но часто испытывает проблемы, когда перестает отвечать (постоянно ожидает сервера, даже если сервер работает). И кнопка «Отмена» не работает в этом случае, поэтому вам придется перезапустить (и обычно принудительно убить приложение для этого). Еще одна вещь, которая часто случается после его запуска на некоторое время, - это то, что он застревает и начинает съедать 100% процессора ядра, и вам нужно его убить. Возможно, это не сбой как таковой, но определенно не стабильное приложение, которое вы можете просто оставить работающим все время.

Brandin 04.10.2018 11:33

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

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

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

На самом деле SVN работает так же, как списки изменений. Каждый номер версии относится к репозиторию, поэтому, если вы откатываетесь к версии, вы откатываете весь репозиторий.

philsquared 30.10.2008 12:02

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

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

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

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

steffenj 30.10.2008 12:05

Для Perforce существует бесплатная лицензия только для 2 разработчиков.

riadd 30.10.2008 19:13

Также очень легко получить временное решение от Perforce, чтобы протестировать его для вашей команды. Просто позвоните и спросите, и вы сможете бесплатно получить столько лицензий, сколько вам нужно, на 30 или 60 дней.

user5722 02.07.2009 21:02

Вы можете настроить рабочие области Perforce так, чтобы не требовалось оформление заказа перед редактированием. Это часть спецификации рабочего пространства.

Br.Bill 09.02.2017 04:29

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

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

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

Тем не менее, я ненавижу ClearCase. ClearCase обычно навязывается сверху (т.е. решение руководства).

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

Фил, вам полностью разрешено ваше собственное мнение о Clearcase, но мне было бы интересно, почему вы его «ненавидите»? Что привело вас к такому гневу? :)

Spedge 30.10.2008 12:07

Это мнение разделяет большинство моих коллег :-) ClearCase тяжелый, медленный и сложный. Это особенно плохо при массовых проверках и не имеет концепции связывания файлов, которые регистрируются одновременно (например, списки изменений Perforce). Я бы сказал больше, но у меня нет персонажей!

philsquared 30.10.2008 12:25

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

Tim Robinson 30.10.2008 22:46

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

Br.Bill 09.02.2017 04:26

Вы можете найти подсказки в Каковы преимущества использования Perforce вместо Subversion? (просто следуя вашему тегу Perforce ...).

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

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

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

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

Я согласен с прокомментированным вами недостатком, особенно если вы по какой-то причине не можете подключиться к серверу. Однако легко получить Perforce для решения проблемы: stackoverflow.com/questions/266771/…

user5722 02.07.2009 21:16

Да, это называется "Force Resync".

C Johnson 21.08.2010 11:46

Эта идея о недостатке исходила от людей, не знакомых с VCS. Локальные файлы являются RO, пока вы их не проверите. Чтобы поступить неправильно, нужно приложить немало усилий. И даже если случится что-то не то, этого не случится дважды ...

Jonesome Reinstate Monica 22.01.2012 23:49

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

Calmarius 26.06.2013 21:30

@Calmarius Обновите диски на сервере. Сетевой трафик Perforce спроектирован так, чтобы быть быстрым, но он потребляет все ресурсы сервера, которые он может получить. В частности, интеграция выигрывает от быстрого ввода-вывода.

Tim Robinson 28.06.2013 14:39

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

Calmarius 28.06.2013 14:48

@Calmarius Мне жаль слышать это - я бы сказал, что ты застрял. Надеюсь, тот, кто проверял двоичные файлы, купит вам кофе, пока вы ждете ...

Tim Robinson 28.06.2013 14:56

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

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

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

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

Некоторые другие проблемы, которые у меня были с волей случая:

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

Я не согласен почти со всеми высказываниями, которые вы здесь сделали. Кодировка файлов настраивается, если вы неправильно настроили Perforce, это не их вина. Сценарии прекрасны, и с таким количеством поддерживаемых языков (Java / Python / Ruby / .NET и т. д.) Барьер для входа довольно низкий. Написание сценариев SCM почти всегда зависит от выбранного программного обеспечения, я не могу придумать ни одного случая, когда это было бы не так. Я не могу комментировать отключение сервера, потому что я никогда не видел, чтобы это происходило, даже синхронизируя все хранилище между Великобританией и Австралией.

ninesided 29.07.2009 14:26

Я уважаю ваше мнение, но не забывайте, что «целое депо» может сильно отличаться от одной компании к другой. У меня много файлов (6 цифр!) И более 30 ГБ данных на одном хранилище.

sorin 31.07.2009 16:19

@sorin Не уверен, как Perforce настроен в вашей компании, но мы размещаем файлы размером более 7 цифр на нашем складе, и то, что вы говорите, никогда не происходит. Что-то мне подсказывает, что с вашей настройкой что-то не так.

CodingMadeEasy 06.12.2016 04:05

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

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

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

Серверный контроль выполнения кода на клиенте отсутствует. У вас есть доказательства этого утверждения?

Br.Bill 09.02.2017 04:32

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

Demi 09.02.2017 06:37

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

Br.Bill 10.02.2017 21:08

Другие вопросы по теме