Perforce

Материал из devopswiki
Перейти к: навигация, поиск

Perforce или сокращенно P4 — это коммерческая система контроля версий от компании Perforce Software, Inc. Также, можно использовать бесплатную лицензию, при условии, что пользователей будет не больше 20. Эта система основана на клиент-серверной архитектуре - работа ведётся одновременно с несколькими репозиториями, которые называются "depot" (в переводе с англ. - "депо").

Общие сведения

Общую информацию Вы можете получить, перейдя по следующим ссылкам:

Perforce в Википедии

Официальный сайт Perforce Software, Inc.

Расширенные сведения

С дополнительной информацией об этом понятии Вы можете ознакомиться ниже.

Сервер системы управляет центральной базой данных и основным репозиторием версий файлов. Соединение с сервером осуществляется через клиентский интерфейс. Клиенты соединяются с сервером посредством протокола TCP/IP с помощью удаленного вызова процедур (remote procedure call, RPC).

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

  • IntelliJ IDEA
  • XCode
  • Autodesk 3D Studio Max
  • Maya
  • Adobe Photoshop
  • Microsoft Office
  • Eclipse
  • Emacs

Система предоставляет массу возможностей:

  1. различного рода извещения (англ. notifications)
  2. создание и обслуживание ветвей проекта (англ. branching)
  3. мощная система слияния ветвей кода (англ. merging)
  4. точки отката в базе данных (англ. checkpoints)
  5. взаимодействие с системами отслеживания ошибок (англ. bug tracking)

В настоящее время насчитывается более 400 000 пользователей Perforce в 5 500 компаниях.

Особенности системы

  • Метаданные. База данных Perforce является проприетарной, предварительно сконфигурированной и устанавливается автоматически с ПО. Она хранит метаданные, связанные с системой (статус файлов, атрибуты файлов, ветвление, историю, комментарии к изменениям, описание изменений, пользователей, группы, ярлыки/пометки и т. д.). Самих файлы не хранятся в базе данных, а лишь их уникальные хэши MD5, которые соответствуют каждому файлу и помогают отслеживать целостность репозитория.
  • «Депо» (англ. Depot). Версии контента файлов хранятся в репозиториях высшего уровня, так называемых «депо». Кодировка текстовых файлов в хранилище может быть ASCII или UTF-8, в зависимости от конфигурации сервера. Файлы, находящиеся в хранилище не шифруются. Изменения хранятся в виде виртуальных копий в репозитории. По умолчанию, сохраняются все изменения, исключения могут быть применены лишь к тем изменениям, которые уже сохранены. Устаревшие изменения и файлы могут быть удалены администратором. Файлы репозиториев должны быть быть защищены в системой резервного копирования.
  • Управление. Системой Perforce можно управлять 4-мя способами: с помощью командной строки, GUI, веб-интерфейса и плагинов к стороннему ПО. Клиентам доступны две версии графических клиентских интерфейсов: P4V на базе Qt, и P4Win (только для ОС Windows). Обе версии поддерживают большинство операций, выполняемых конечными пользователями.
    • P4Admin - GUI для администрирования, поддерживает множество административных операций. Равно как и P4V, версия P4Admin является кросс-платформенной и основана на Qt. P4V и P4Admin могут быть расширены с помощью апплетов, написанных на JavaScript и HTML.
    • Плагины предназначены для интегрированных сред разработки Eclipse и Visual Studio.
    • P4Web обеспечивает Веб-интерфейс и является одновременно клиентом Perforce, а также автономным HTTP-сервером. P4Web может работать как веб-сервис, который дает доступ для просмотра, чтения файлов и отображения метаданных из хранилища Perforce. кроме того, есть возможность запустить систему с компьютера пользователя, позволяя веб-браузеру стать клиентским интерфейсом для совершения операций на локальном компьютере.

В 2011 году компания компания представила систему управления веб-контентом под названием Perforce Chronicle, которая использует сервер Perforce для хранения контента. Эта система написана на PHP и доступна под opensource-лицензией. Эта система использует упрощенный пользовательский интерфейс для того, чтобы управление тестовым сайтом (англ. staging site) осуществлялось на том же сервере, что и основной (англ. production site).