Perforce change-submit 触发器到客户端上的 运行 脚本
Perforce change-submit trigger to run script on client
我想我 post 在这里,在 post 在 SuperUser 之后,因为我想从以前可能遇到过这种情况的软件开发人员那里得到意见!
我想在 客户端 对在更改列表中打开的文件启动一系列验证步骤,然后再允许更改列表提交。
例如,我希望确保如果打开文件作为更改列表的一部分进行添加、编辑或删除,则特定的相关文件将根据相应文件的条件矩阵得到适当处理:
- 正在为 add/edit/remove
打开对应的文件
- 磁盘上存在与磁盘上不存在的对应文件
- 软件仓库中存在与软件仓库中不存在的对应文件
- 相对于 depot 文件,相应文件已更改与未更改
必须在 Perforce 服务器接受提交之前启动这些验证步骤。此外,必须在客户端执行验证,因为我必须能够 reconcile offline work 使用客户端磁盘上的副本。
环境:
- Perforce 2017.2 服务器
- MacOS 和 Windows 计算机提交到不同的分支
已经涵盖的调查途径
最初的设计是严格的客户端custom tool,但这并不理想,因为这将改变用户熟悉的流程,我也必须实现自定义 GUI。
在其他方法中,我考虑过 creating triggers in 2017.2; however, even if I were to use a change-content 使用服务器上可用的所有更改列表文件触发,我将无法正确执行验证和修复步骤。
另一种可能性是使用 change-submit trigger and to use the trigger script variables in 2017.2 获取客户端的 IP、主机名、客户端当前的工作目录等,这样您就可以 运行 服务器上的脚本尝试远程连接到客户端的计算机。但是,运行在客户的计算机上运行任何脚本,特别是在他们的本地工作区上运行都需要凭据,而这些凭据很可能不可用。
我想在 Perforce 服务器上使用更改提交触发器来启动客户端计算机上的 script/bundled 可执行文件,以在其工作区上执行 p4 操作以完成验证步骤。但是,我发现的参考资料(尽管是几年前的)表明这是不可能的:
- https://perforce-user.perforce.narkive.com/rkYjcQ69/p4-client-side-submit-triggers
- Updating files with a Perforce trigger before submit
感谢您的阅读,并提前感谢您的帮助!
running any script on the client's computer and in particular operating on their local workspace would require credentials that most likely will not be made available.
这就是症结所在——不允许 Perforce 服务器向客户端发送任意代码来执行。如果你想要那种类型的功能,你必须在客户端中打出你自己的安全漏洞(然后想出你自己的方法来确保它不被滥用),听起来你已经走上了这条路并认为这不值得。
Initial design was a strictly client-side custom tool, but this is not ideal since this would be a change of the flow that users are familiar with, and I would also have to implement a custom GUI.
我的建议是从这种方法开始,然后寻找减少摩擦的方法。例如,您可以使用更改提交触发器来检测用户是否跳过了自定义工作流(可能通过让自定义工具在更改描述中放置一个令牌以供触发器验证),然后给他们一条错误消息,将他们重回正轨,例如 "Please run Tools > Change Validator, or contact wanda@yourdomain.com for help"
我想我 post 在这里,在 post 在 SuperUser 之后,因为我想从以前可能遇到过这种情况的软件开发人员那里得到意见!
我想在 客户端 对在更改列表中打开的文件启动一系列验证步骤,然后再允许更改列表提交。
例如,我希望确保如果打开文件作为更改列表的一部分进行添加、编辑或删除,则特定的相关文件将根据相应文件的条件矩阵得到适当处理:
- 正在为 add/edit/remove 打开对应的文件
- 磁盘上存在与磁盘上不存在的对应文件
- 软件仓库中存在与软件仓库中不存在的对应文件
- 相对于 depot 文件,相应文件已更改与未更改
必须在 Perforce 服务器接受提交之前启动这些验证步骤。此外,必须在客户端执行验证,因为我必须能够 reconcile offline work 使用客户端磁盘上的副本。
环境:
- Perforce 2017.2 服务器
- MacOS 和 Windows 计算机提交到不同的分支
已经涵盖的调查途径
最初的设计是严格的客户端custom tool,但这并不理想,因为这将改变用户熟悉的流程,我也必须实现自定义 GUI。
在其他方法中,我考虑过 creating triggers in 2017.2; however, even if I were to use a change-content 使用服务器上可用的所有更改列表文件触发,我将无法正确执行验证和修复步骤。
另一种可能性是使用 change-submit trigger and to use the trigger script variables in 2017.2 获取客户端的 IP、主机名、客户端当前的工作目录等,这样您就可以 运行 服务器上的脚本尝试远程连接到客户端的计算机。但是,运行在客户的计算机上运行任何脚本,特别是在他们的本地工作区上运行都需要凭据,而这些凭据很可能不可用。
我想在 Perforce 服务器上使用更改提交触发器来启动客户端计算机上的 script/bundled 可执行文件,以在其工作区上执行 p4 操作以完成验证步骤。但是,我发现的参考资料(尽管是几年前的)表明这是不可能的:
- https://perforce-user.perforce.narkive.com/rkYjcQ69/p4-client-side-submit-triggers
- Updating files with a Perforce trigger before submit
感谢您的阅读,并提前感谢您的帮助!
running any script on the client's computer and in particular operating on their local workspace would require credentials that most likely will not be made available.
这就是症结所在——不允许 Perforce 服务器向客户端发送任意代码来执行。如果你想要那种类型的功能,你必须在客户端中打出你自己的安全漏洞(然后想出你自己的方法来确保它不被滥用),听起来你已经走上了这条路并认为这不值得。
Initial design was a strictly client-side custom tool, but this is not ideal since this would be a change of the flow that users are familiar with, and I would also have to implement a custom GUI.
我的建议是从这种方法开始,然后寻找减少摩擦的方法。例如,您可以使用更改提交触发器来检测用户是否跳过了自定义工作流(可能通过让自定义工具在更改描述中放置一个令牌以供触发器验证),然后给他们一条错误消息,将他们重回正轨,例如 "Please run Tools > Change Validator, or contact wanda@yourdomain.com for help"