版本控制

IMPORTANT
Substance 3D Designer版本 14.0.0 将Perforce支持升级为Python 3。
确保相应地调整其他脚本和版本控制环境。

Designer提供了Perforce (P4)版本控制系统的Python集成。

集成将自定义“版本控制”子菜单添加到资源管理器中的包的上下文菜单中,并添加自定义图标以匹配P4中的包状态。

正在准备P4

在P4V中,记下工作区名称和路径,如下所示:

P4V工作区信息 {modal="regular"}

在任何文本编辑器或IDE中,打开位于Designer安装中的以下脚本:“tools/version_control/perforce.py”。

在第19行上,编辑系统上可执行 'p4’的位置 的路径。
在下面的示例中,此路径为“c:/Program Files/Perforce/p4.exe”。

## Editable variables

cPerforceP4AbsPath = os.path.abspath("c:/Program Files/Perforce/p4.exe")

cVerbose = False

Designer中的设置

版本控制在项目设置中配置,可在Designer的首选项中找到。

项目设置中的 “版本控制”选项卡 {modal="regular"}

  1. 转到“编辑>首选项”

  2. 转到“项目”,选择目标项目文件,然后转到“版本控制”选项卡

  3. 选中“已启用版本控制”

  4. 在“工作区”部分中填写此信息:

    • 名称:输入您之前从P4V检索到的“工作区名称”
    • 路径:输入您之前从P4V检索到的“工作区路径”

Designer中的P4设置:工作区 {modal="regular"}

设置动作

这些操作将显示在资源管理器中包的上下文菜单中。 有与大多数版本控制工具概念匹配的预定义操作:

  • 可根据需要更改所有操作标签。
  • 所有操作都需要脚本才能有效。

您可以使用:

  • 一个脚本​ 每个 ​操作
  • 一个用于​ 所有 ​操作的脚本

Designer的安装中提供了所有操作的入门脚本:“tools/version_control/perforce.py”。

IMPORTANT
包需要保存在“工作区路径”下(例如“f:/Dev/perforce”下)才可用
  1. 在 操作 组中,单击 添加 操作的“……”按钮
  2. 在Designer安装中选择以下脚本:“tools/version_control/perforce.py”
  3. 应为所有其他操作自动设置脚本。

Designer中的P4设置:操作 {modal="regular"}

设置自定义操作

由于所有版本控制工具都各不相同,并且包含许多功能,因此我们允许用户添加自定义操作。

  1. 单击“添加项目”
  2. 填写新动作的标签,并设置其脚本路径

设置脚本解释器

  1. 在“解释器”部分,单击“添加项目”
  2. 设置脚本文件的扩展名或后缀,以及解释器可执行文件的路径
  3. 编辑perforce.py脚本以更新“p4”二进制文件的位置

Designer中的P4设置:解释器 {modal="regular"}

如何使用版本控制

  1. 创建新包

  2. 将包保存在“工作区路径”目录下

  3. 单击程序包上的RMB:您现在可以访问“版本控制”子菜单

  4. 根据工作区中包文件的状态,有几种操作可用:

    • 添加:将文件标记为“ToAdd”
    • 提交:提交所选包。 此操作将显示一个对话框,用于指定更改消息(请参阅下文)
    • 还原:还原修改。 此操作会显示一个对话框,用于选择要恢复的文件(请参阅下文)
    • 签出:将文件从仓库签出
    • 获取上一个版本:从仓库检索最新版本
    • 刷新状态:刷新包文件状态
    table 0-row-2 0-border-0 1-border-0 2-border-0 html-authored no-header
    “提交”对话框 {modal="regular"} “恢复”对话框 {modal="regular"}
NOTE
所有操作都支持多选
对于使用只读文件权限来限制修改的P4和其他版本控制工具,用户必须先签出包,然后才能进行修改。
无法在SD中修改只读包文件。

根据程序包的状态,程序包将包含以下图标:

包图标:最新

最新

包图标:已签出

已签出

包图标:已添加

标记为添加

包图标:不在仓库中

不在仓库中

请注意,非最新包标有警告符号。

动作脚本

因此,将生成每个操作执行的命令:

my_script WorkspaceName WorkspacePath ActionName[ActionArgs]

工作区名称:工作区的名称

WorkspacePath:工作区根目录的路径

ActionName:操作名称:

  • 添加:​用于“添加”操作
  • 签出:​以执行“签出”操作
  • 提交:​以进行“提交”操作
  • 用于“还原”操作的​还原:
  • get_last_version:​用于“获取最新版本”操作
  • 用于“获取状态”操作的​get_status:

在项目设置中设置标签,使用“ ”字符替换为“_”,例如:“My Action”=>“My_Action”。

操作的 ActionArgs: 个参数:

  • -desc:“提交”操作使用的说明字符串
  • -files:​文件列表
  • -files_list:​包含每行文件列表的文本文件

get_status:根据指定文件的状态返回值:

  • 0:未定义的状态

  • 1:不在车库中

  • 2:早期版本(不是最新版本)

  • 3:最新版本(最新)

  • 4:已签出

  • 5:已标记待添加

  • 其他操作:

    • 0:成功
    • 其他:错误
recommendation-more-help
substance-3d-designer-help-guide