Perforce
Perforce или сокращенно P4 — это коммерческая система контроля версий от компании Perforce Software, Inc. Также, можно использовать бесплатную лицензию, при условии, что пользователей будет не больше 20. Эта система основана на клиент-серверной архитектуре - работа ведётся одновременно с несколькими репозиториями, которые называются "depot" (в переводе с англ. - "депо").
Общие сведения
Общую информацию Вы можете получить, перейдя по следующим ссылкам:
Официальный сайт Perforce Software, Inc.
Расширенные сведения
С дополнительной информацией об этом понятии Вы можете ознакомиться ниже.
Сервер системы управляет центральной базой данных и основным репозиторием версий файлов. Соединение с сервером осуществляется через клиентский интерфейс. Клиенты соединяются с сервером посредством протокола TCP/IP с помощью удаленного вызова процедур (remote procedure call, RPC).
Клиентская часть реализована для многих операционных систем, при этом предоставляется как графический интерфейс, так и широкий набор утилит для работы из командной строки. Также разработаны плагины для большинства популярных сред разработки программного обеспечения (IDE) и сторонних приложений, например:
- IntelliJ IDEA
- XCode
- Autodesk 3D Studio Max
- Maya
- Adobe Photoshop
- Microsoft Office
- Eclipse
- Emacs
Система предоставляет массу возможностей:
- различного рода извещения (англ. notifications)
- создание и обслуживание ветвей проекта (англ. branching)
- мощная система слияния ветвей кода (англ. merging)
- точки отката в базе данных (англ. checkpoints)
- взаимодействие с системами отслеживания ошибок (англ. 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).