此类提供对版本控制 API 的访问。
请注意,版本控制窗口在每次版本控制操作后都会刷新。这意味着循环遍历多个资源并在每个资源上执行单个操作(例如签出)将比传递包含所有资源的AssetList并在其上执行一次版本控制操作要慢。
using System.Collections.Generic; using UnityEditor; using UnityEditor.VersionControl; using UnityEngine;
public class EditorScript : MonoBehaviour { [MenuItem("VC/Checkout")] public static void TestCheckout() { AssetList assets = new AssetList(); assets.Add(new Asset("Assets/"));
Task t = Provider.Checkout(assets, CheckoutMode.Both); t.Wait(); } }
另请注意,Provider 操作仅执行 VCS 命令,并且不会自动刷新版本控制窗口。要更新此窗口,请使用Task.SetCompletionAction。
using System.Collections.Generic; using UnityEditor; using UnityEditor.VersionControl; using UnityEngine;
public class EditorScript : MonoBehaviour { [MenuItem("VC/ChangeSetMove")] static void ChangeSetMove() { AssetList assets = new AssetList(); assets.Add(Provider.GetAssetByPath("Assets/testMaterial.mat")); Task task = Provider.ChangeSetMove(assets, "ChangeSetID"); task.SetCompletionAction(CompletionAction.UpdatePendingWindow); } }
activeTask | 获取当前正在执行的任务。 |
enabled | 如果版本控制提供程序已启用且找到有效的 Unity Pro 许可证,则返回 true。 |
hasCheckoutSupport | 如果当前选定的版本控制插件支持签出方法,则为 true。 |
hasLockingSupport | 如果当前选定的版本控制插件支持锁定和解锁方法,则为 true。 |
isActive | 如果已选择版本控制插件并正确配置,则返回 true。 |
offlineReason | 返回版本控制提供程序脱机的原因(如果它脱机)。 |
onlineState | 返回版本控制提供程序的 OnlineState。 |
preCheckoutCallback | 用户提供的回调,在版本控制签出操作之前调用。 |
preSubmitCallback | 用户提供的回调,在版本控制提交操作之前调用。 |
requiresNetwork | 如果当前选定的版本控制插件需要网络连接才能执行任何操作,则为 true。 |
Add | 允许您通过脚本将文件添加到版本控制中。 |
AddIsValid | 给定一个资源列表,此函数如果 Provider.Add 是对列表中至少一个资源执行的有效任务,则返回 true。 |
ChangeSetDescription | 给定一个仅包含变更集 ID 的变更集,这将启动一个查询变更集描述的任务。 |
ChangeSetMove | 将资源或资源列表从其当前变更集移动到新的变更集。 |
ChangeSets | 获取当前用户拥有的待处理变更集列表。 |
ChangeSetStatus | 检索属于变更集的资源列表。 |
Checkout | 从版本控制系统中签出资源或资源列表。 |
CheckoutIsValid | 给定一个资源或资源列表,此函数如果 Provider.Checkout 是对给定资源中至少一个资源执行的有效任务,则返回 true。 |
ClearCache | 这将使所有资源的缓存状态信息失效。 |
Delete | 启动一个任务,从磁盘和版本控制系统中删除资源或资源列表。 |
DeleteChangeSets | 启动一个任务,该任务将尝试删除给定的变更集。 |
DeleteChangeSetsIsValid | 测试删除给定变更集是否为有效的任务。 |
DiffHead | 启动一个任务,用于显示给定资源与其头部修订版之间的差异。 |
DiffIsValid | 如果对给定 AssetList 中的至少一个资源启动 Diff 任务是有效操作,则返回 true。 |
GetActiveConfigFields | 返回当前活动版本控制插件的配置字段。 |
GetActivePlugin | 获取当前用户选择的版本控制插件。 |
GetAssetByGUID | 从给定的 GUID 返回有关资源的版本控制信息。 |
GetAssetByPath | 返回有关资源的版本控制信息。可与“AssetList.Add”一起使用,将资源添加到列表中以进行进一步的版本控制操作。 |
GetAssetListFromSelection | 返回当前选定资源的版本控制信息。 |
GetLatest | 启动一个任务,用于从版本控制服务器获取与版本不同步的资源的最新版本。 |
GetLatestIsValid | 该任务测试给定的资源列表,如果 Provider.GetLatest 对一个或多个资源是有效的操作,则返回 true。 |
Incoming | 启动一个任务,该任务查询版本控制服务器以获取传入的更改。 |
IncomingChangeSetAssets | 给定一个传入的变更集,这将启动一个任务以查询版本控制服务器以了解哪些资源是变更集的一部分。 |
IsOpenForEdit | 如果可以编辑资源,则返回 true。 |
Lock | 尝试锁定资源以进行独占编辑。 |
LockIsValid | 如果可以对给定资源列表中的一个或多个资源执行 Provider.Lock 任务,则返回 true。 |
Merge | 启动合并任务以处理冲突资源的合并。这会在冲突资源上调用合并工具(您可以在“首选项”窗口的“外部工具”部分中设置),当合并任务完成后,AssetList 仅包含工具可以合并的资源。 |
Move | 使用版本控制插件将资源从一个路径移动到另一个路径。 |
Resolve | 启动一个任务,该任务将解决版本控制中冲突的资源。 |
ResolveIsValid | 测试列表中的任何资源是否具有冲突状态并且可以解决。 |
Revert | 通过撤消自上次同步以来所做的任何更改来恢复指定的资源。 |
RevertIsValid | 如果 Provider.Revert 是对列表中给定资源中至少一个资源执行的有效任务,则返回 true。 |
Status | 启动一个任务,该任务将从修订控制系统中获取有关资源或资源的最新状态。 |
Submit | 启动一个任务,该任务将资源提交到版本控制中。 |
SubmitIsValid | 如果提交资源是有效操作,则返回 true。 |
UnlockIsValid | 如果解锁资源是有效操作,则返回 true。 |
UpdateSettings | 启动一个任务,该任务将版本控制设置发送到版本控制系统。 |
PreCheckoutCallback | 用于在版本控制签出之前调用的用户提供的回调的委托。 |
PreSubmitCallback | 用于在版本控制提交之前调用的用户提供的回调的委托。 |