Perforce Version Control plugins for Unity
Перейти к файлу
Sébastien Rombauts 7df550c73f
Merge pull request #21 from Unity-Technologies/fix/uum-64620_login_failure_when_license_about_to_expire
Covered Perforce response during the login when it warns about an exp…
2024-03-15 10:54:05 +01:00
.github Update pull_request_template.md 2019-11-22 19:17:32 +02:00
.yamato Merge branch 'master' into remove-plasticscm 2021-11-16 10:20:50 +01:00
Common Merge branch 'perforce/mfa_support' into perforce/mfa_support_tests 2022-08-01 18:39:17 +02:00
MFA Port triggers script to PowerShell so it can be run from Windows 2022-07-26 17:37:43 +02:00
P4Plugin Passed response text parameter as reference 2024-03-14 16:35:10 +01:00
TFSPlugin Updating to 1.5 and checking in binary. 2016-02-08 13:46:44 -08:00
Test Port triggers script to PowerShell so it can be run from Windows 2022-07-26 17:37:43 +02:00
.gitignore Ignore CLion (Jetbrains IDE) files 2022-02-09 13:32:38 +01:00
License Remove subversion from build scripts 2019-09-20 14:11:42 +03:00
Makefile.gnu Add _LINUX build variable 2022-07-14 17:33:23 +02:00
Makefile.osx Define _MACOS in macOS builds to identify platform in code 2022-07-12 13:28:41 +02:00
Makefile.srcs Merge branch 'perforce/mfa_support' into perforce/mfa_support_tests 2022-08-01 18:39:17 +02:00
README.md Update README file 2022-05-17 14:57:10 +02:00
TODO.txt first version of simple TODO list 2016-07-11 14:44:32 +01:00
VersionControl.sln Remove anything related to PlasticSCM 2021-11-03 16:36:26 +01:00
build.pl IPv6 square brackets does not work by default on new Perforce server version for some reason 2022-07-21 19:06:28 +02:00
msbuilder.cmd msbuilder back to 2010 build tools not to require changes in yamato/katana 2022-05-16 14:46:00 +02:00

README.md

NativeVersionControlPlugins

About

This is the source code of the built-in version control plugins that are shipped with Unity.

You can build support for you own favourite version control system into Unity by cloning this repository and make changes as needed.

Note that only Perforce support is shipped for Unity 4.2+, TFSPlugin for 4.6+.

Overview

A plugin is an executable located in a designated directory that Unity can start and kill at will. At startup, Unity will scan the directory and start each executable in order to identify the plugin and its settings. When a version control system has been enabled in unity it will start the associated plugin executable and send commands to it by using stdin/stdout (MacOS) or Named Pipes (Windows).

The Perforce plugin is using the libraries provided by Perforce and its callback style API. Furthermore, is streams results from the perforce server directly to Unity.

You need Unity 4.2+ to use the integrated version control plugins.

Structure

  • Common/ contains structures and functionallity common to all plugins
  • P4Plugin/ contains the Perforce plugin code and Perforce libraries (binaries shipped with Unity)
  • TFSPlugin/ contains the Team Foundation Server/VS Online plugin code
  • Test/ contains integration tests

To build:

perl ./build.pl  

To test:

perl ./build.pl -test

You need to clone PerforceBinaries from mercurial to get the binaries you will run the tests on. You can execute this command from NativeVersionControlPlugins root:

hg clone --config extensions.largefiles= http://hg-mirror-slo.hq.unity3d.com/unity-extra/perforce PerforceBinaries

Steps for setting up Mercurial can be found here: Setting Up Mercurial

 Perforce

The Perforce plugin source code is located under /P4Plugin/Source. It references the Perforce APIs, located under /P4Plugin/Source/r19.1. As its name states, we're targeting the 19.1 release of Perforce.

Perforce API includes and libraries were downloaded from the Perforce downloads page.

 Windows

Windows binaries are located under /P4Plugin/Source/r17.2/lib/win32 and /P4Plugin/Source/r17.2/lib/win32debug.

Both directories contain libraries for Win32 - x86 only. They require Visual Studio v10.0 (2010).

License and terms

The plugin code itself is licensed under public domain.

Libraries used by the plugin have their own licenses and are allowed to be distributed with the plugin.

The PerforcePlugin uses the P4 API. For more information on terms of usage and how to get the P4 API, visit the following links: