{"id":14959860,"url":"https://github.com/unity-technologies/nativeversioncontrolplugins","last_synced_at":"2025-06-27T02:33:42.199Z","repository":{"id":35763403,"uuid":"204474261","full_name":"Unity-Technologies/NativeVersionControlPlugins","owner":"Unity-Technologies","description":"Perforce Version Control plugins for Unity","archived":false,"fork":false,"pushed_at":"2024-03-15T09:54:10.000Z","size":132179,"stargazers_count":39,"open_issues_count":4,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-29T10:41:51.090Z","etag":null,"topics":["perforce","plastic-scm","unity3d","version-control"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Unity-Technologies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-26T12:47:30.000Z","updated_at":"2024-09-27T01:33:58.000Z","dependencies_parsed_at":"2024-09-24T13:45:07.611Z","dependency_job_id":null,"html_url":"https://github.com/Unity-Technologies/NativeVersionControlPlugins","commit_stats":{"total_commits":486,"total_committers":29,"mean_commits":16.75862068965517,"dds":0.4917695473251029,"last_synced_commit":"7df550c73ff297399f3fe36171ed49c0844eae45"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unity-Technologies%2FNativeVersionControlPlugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unity-Technologies%2FNativeVersionControlPlugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unity-Technologies%2FNativeVersionControlPlugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unity-Technologies%2FNativeVersionControlPlugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Unity-Technologies","download_url":"https://codeload.github.com/Unity-Technologies/NativeVersionControlPlugins/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237088587,"owners_count":19253570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["perforce","plastic-scm","unity3d","version-control"],"created_at":"2024-09-24T13:20:57.339Z","updated_at":"2025-02-04T08:31:28.495Z","avatar_url":"https://github.com/Unity-Technologies.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NativeVersionControlPlugins\r\n\r\n## About\r\n\r\nThis is the source code of the built-in version control plugins that are shipped with [Unity](http://www.unity3d.com).\r\n\r\nYou can build support for you own favourite version control system into Unity by cloning this repository and make\r\nchanges as needed.\r\n\r\nNote that only Perforce support is shipped for Unity 4.2+, TFSPlugin for 4.6+.\r\n\r\n## Overview\r\n\r\nA plugin is an executable located in a designated directory that Unity can start and kill at will. At startup, Unity\r\nwill scan the directory and start each executable in order to identify the plugin and its settings. When a version\r\ncontrol system has been enabled in unity it will start the associated plugin executable and send commands to it\r\nby using stdin/stdout (MacOS) or Named Pipes (Windows).\r\n\r\nThe Perforce plugin is using the libraries provided by Perforce and its callback style API. Furthermore, is streams\r\nresults from the perforce server directly to Unity.\r\n\r\nYou need Unity 4.2+ to use the integrated version control plugins.\r\n\r\n## Structure\r\n\r\n* `Common/` contains structures and functionallity common to all plugins\r\n* `P4Plugin/` contains the Perforce plugin code and Perforce libraries (binaries shipped with Unity)\r\n* `TFSPlugin/` contains the Team Foundation Server/VS Online plugin code\r\n* `Test/` contains integration tests\r\n\r\nTo build:\r\n\r\n```bash\r\nperl ./build.pl  \r\n```\r\n\r\nTo test:\r\n\r\n```bash\r\nperl ./build.pl -test\r\n```\r\n\r\nYou need to clone `PerforceBinaries` from mercurial to get the binaries you will run the tests on. You can execute this command from NativeVersionControlPlugins root:\r\n```bash\r\nhg clone --config extensions.largefiles= http://hg-mirror-slo.hq.unity3d.com/unity-extra/perforce PerforceBinaries\r\n```\r\n\r\nSteps for setting up Mercurial can be found here: [Setting Up Mercurial](https://confluence.unity3d.com/display/DEV/Setting+Up+Mercurial)\r\n\r\n###  Perforce\r\n\r\nThe Perforce plugin source code is located under `/P4Plugin/Source`. It references the Perforce APIs, located under\r\n`/P4Plugin/Source/r19.1`. As its name states, we're targeting the 19.1 release of Perforce.\r\n\r\nPerforce API includes and libraries were downloaded from the\r\n[Perforce downloads page](http://filehost.perforce.com/perforce/r19.1/).\r\n\r\n####  Windows\r\n\r\nWindows binaries are located under `/P4Plugin/Source/r17.2/lib/win32` and `/P4Plugin/Source/r17.2/lib/win32debug`.\r\n\r\nBoth directories contain libraries for Win32 - x86 only. They require Visual Studio v10.0 (2010).\r\n\r\n## License and terms\r\n\r\nThe plugin code itself is licensed under public domain.\r\n\r\nLibraries used by the plugin have their own licenses and are allowed to be distributed with the plugin.\r\n\r\nThe PerforcePlugin uses the P4 API. For more information on terms of usage and how to get the P4 API,\r\nvisit the following links:\r\n\r\n* [Terms of use](http://www.perforce.com/downloads/terms-use)\r\n* [APIs](http://www.perforce.com/product/components/apis)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funity-technologies%2Fnativeversioncontrolplugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funity-technologies%2Fnativeversioncontrolplugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funity-technologies%2Fnativeversioncontrolplugins/lists"}