Моя команда использует SVN несколько лет. Теперь у нас есть возможность переключиться на Perforce.
В чем заключаются преимущества (и недостатки) такого перехода?
Моя команда использует SVN несколько лет. Теперь у нас есть возможность переключиться на Perforce.
В чем заключаются преимущества (и недостатки) такого перехода?
В остальном это довольно стандартно.
Я рекомендую вам сохранить SVN, если вы не имеете дело с огромными кодовыми базами или ненавидите папки .svn, засоряющие вашу файловую систему. SVN + TortoiseSVN гораздо удобнее для большинства ситуаций.
В настоящее время я использую оба в разных проектах.
Но
Это всего лишь мнения, так что, возможно, это плохой ответ :)
Если бы я уже использовал один или другой, мне было бы очень трудно переключиться, поскольку ни один из них, похоже, не предлагает действительно значительных преимуществ по сравнению с другим, но сбои при переключении могут быть значительными.
Обновление: с момента написания этой статьи я полностью перешел на использование GIT как в личных, так и в коммерческих целях. Я бы выбрал его либо SVN, либо Perforce в любой день.
Ваша команда оценила Git? Он имеет функции, аналогичные тем, которые доступны в Perforce, но является бесплатным (FOSS).
Либо - отличная альтернатива SVN при работе с большой командой.
Использую perforce на работе, svn дома.
Графический интерфейс perforce довольно хорош, но только после того, как вы к нему привыкнете. У него определенно есть кривая обучения: когда непрограммисты начинают использовать принудительно, обычно требуется некоторое время, пока они не усвоят концепции.
Черепаха классная, им очень легко пользоваться. Моя жена-адвокат подрывает все свои документы, используя его;)
Разветвление легко по желанию. На самом деле так просто, что люди разветвляются по не слишком большой причине. Затем вы интегрируетесь, потому что разветвляетесь. Это довольно легко может стать вашим единственным делом.
Svn интегрирован в другие продукты. По крайней мере, больше продуктов, которые я использую. Это большое преимущество, потому что, если вам придется использовать что-то внешнее по отношению к вашей среде разработки, они оба станут неуклюжими.
Время от времени у нас возникают проблемы с perforce, когда он думает, что ваши локальные копии обновлены, но это не так. Затем вам нужно принудительно выполнить синхронизацию, а затем, если это все еще не работает, удалите локальные файлы и выполните повторную синхронизацию. Никогда не было таких проблем с svn. На самом деле это огромная проблема, поскольку вы даже не знаете, что работаете над старой копией.
Еще одна вещь, о которой нужно подумать, - это почему вы хотите измениться. Если у вас есть работающая система, и все знакомы с ней и довольны ею, зачем ее заменять?
На веб-сайте Perforce есть статья, в которой сравниваются два: P4 vs SVN
Очевидно, что, учитывая источник, вы должны понимать, что он подчеркивает преимущества Perforce перед SVN, но его все же полезно прочитать. Никогда не угадаешь, одним из преимуществ может быть тот убийственный предмет, которым могла бы воспользоваться ваша команда, учитывая ваши собственные уникальные обстоятельства.
Я бы, безусловно, порекомендовал Perforce по ряду причин, уже описанных в других ответах, но я не могу предложить сравнение с SVN, который никогда не использовал его.
Правильное ветвление и включение ветвей в пространство имен - самые большие преимущества, которые я вижу в Perforce. Слияние - это просто. Я не вижу недостатков в отходе от Subversion.
Perforce позволяет серверу владеть клиентом.
Сервер Perforce может читать и записывать произвольные файлы на клиенте и, таким образом, выполнять произвольный код. Конфигурация Perforce является полностью серверной, поэтому сервер может просто обрабатывать весь жесткий диск клиентского компьютера в качестве хранилища и делайте с ним все, что захотите.
Никогда не запускайте Perforce, кроме как в изолированной программной среде SELinux.
Помните: клиент Perforce - это марионетка сервера. Вы должны использовать функции безопасности операционной системы, чтобы не допустить, чтобы она выполняла то, чего вы не хотите. ВСЕГДА относитесь к клиенту Perforce как к враждебному.
Я использовал SVN, немного, просто чтобы попробовать. Я использовал Perforce около трех лет. Я думал, что это было здорово. Служба поддержки была великолепной, очень быстро решила проблему, которая оказалась просто моей глупой, и они даже реализовали функцию, которую я предложил.
Некоторые другие разработчики и особенно не разработчики, которым приходилось его использовать, сочли его немного сложным в освоении, особенно когда дело дошло до определения спецификации клиента (сопоставление папок на сервере с локальными папками).
Я обнаружил, что он очень быстро загружает и выгружает файлы и очень надежен. Я думаю, что большинству разработчиков, с которыми я работал, он действительно понравился, когда мы к нему привыкли. Мы использовали Visual Source Safe до того, как переключились, так что все может быть лучше.
Минусы, это стоит денег. Я считаю, что SVN - очень хорошая система, поскольку SVN бесплатен, я бы подумал, что у вас должна быть веская причина для перехода, тем более что Perforce нужно время, чтобы научиться. Если SVN выполняет эту работу за вас, и у вас нет на это никаких жалоб, я бы посоветовал вам остаться с ней и сэкономить деньги на черный день!
Я использовал оба, и по моему опыту Perforce имеет большой смысл, если у вас большая команда и / или кодовая база; в противном случае я бы выбрал SVN - его проще настроить и поддерживать.
Вы можете редактировать что-то в автономном режиме в Perforce, если хотите. Ваш рабочий ресурс определяет, доступны ли файлы только для чтения или записи, поэтому вы можете сделать их все доступными для записи, взломать, а затем попросить Perforce выяснить, что нужно проверить.
Лучше иметь файлы только для чтения и проверять, что вам нужно, чтобы другие (и вы) знали, что вы делаете / делаете.
Лучшая система для вас зависит от ваших требований. Если у вас нет требований, Perforce побеждает.
Кто пользуется Subversion? Небольшие некоммерческие команды Дешевые или небольшие коммерческие команды
Кто использует Perforce? Google Sony Samsung nVidia Symantec
В последних версиях Perforce есть новая функция для стеллажи изменения:
Хранение на полках - это процесс временного хранения незавершенной работы на сервере Perforce без отправки списка изменений. Хранение в полках полезно, когда вам нужно выполнить несколько задач разработки (например, прерывание работы с более высоким приоритетом, тестирование на нескольких платформах) с одним и тем же набором файлов или предоставить общий доступ к файлам для проверки кода перед тем, как передать свою работу в хранилище.
Это аналогично модели ветвления 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 по сравнению с подверсией является команда экспорта в svn. Код той или иной версии проще экспортировать или скачать куда угодно. для этого не нужно создавать рабочее пространство. Но по желанию вы можете получить код с версией только в своем рабочем пространстве.
Из моей практики:
Perforce, предназначенный также для хранения огромных файлов BLOB-объектов (например, дистрибутивов программного обеспечения), svn хранит все свои данные в виде текста. Такие двоичные данные невозможно эффективно хранить в svn.
Perforce поддерживает такую полезную вещь, как «смена полки». Пользователь по необходимости попросил сохранить изменения как «патч» на сервере perforce. Другие пользователи могут просмотреть изменения, если их попросит автор. Svn не поддерживает это
Формат командной строки svn проще для понимания и запоминания, а также для повседневного использования.
Svn бесплатно
В «git» и «svn» вы редактируете свои изменения напрямую, редактируя файлы в локальной файловой системе после получения файлов из репо. По желанию "правильный" способ работы с файлами - это пометить их, что вы собираетесь с ними работать (редактирование p4) .... Теоретически другие ребята будут доступны для просмотра, но на практике это неудобно.
Подготовка рабочей области клиента Perforce в вашей локальной системе требует больше времени, чем svn, из-за дополнительной настройки, которая должна быть выполнена
Возможность делать все прямо из exlorer через TortoiseSVN - это очень удобно! Таким образом, установлено даже расширение P4. Но на самом деле это не так уж сложно!
С другой стороны, клиент P4 предлагает доступный вид на репозиторий сервера, поэтому можно работать без полной проверки. Это всегда казалось немного обременительным в дни SVN только с TSVN.
Сказав это, я не могу понять главный комментарий авторов:
- Клиент расширения оболочки Explorer (например, TortoiseSVN) отстой и совершенно непригоден для использования.
Для FOSS TortoiseSVN просто великолепен! (Несмотря на то, что иконка работала немного странно и по-разному на каждой машине ..)
с TortoiseSVN вы:
Основное преимущество использования subversion перед Perforce - это, на мой взгляд, возможность редактировать данные в автономном режиме и одновременно с вашими коллегами.
Если инфраструктура данных слабо связана (время в автономном режиме), svn не работает. Вы можете многое сделать, даже если сервер будет недоступен. По сути, Perforce требует постоянного подключения к серверу.
Отказ от ответственности: моя информация о Perforce устарела, некоторое время использовал ее в 2005-06, прежде чем полностью переключиться на svn