【发布时间】:2018-04-09 13:01:57
【问题描述】:
如果我在 P4V 中打开了一个工作区并且我切换了工作区,是否有办法通知或检测到切换发生在外部?
工作区包含一个编辑器,需要签出文件来修改它们。我担心通过 P4V 切换会使编辑器不知道文件现在来自不同的流。
如果可能的话,我宁愿有办法在编辑器中检测到这一点,而不必从 P4V 通知。
谢谢, 亚历克斯
【问题讨论】:
标签: perforce
如果我在 P4V 中打开了一个工作区并且我切换了工作区,是否有办法通知或检测到切换发生在外部?
工作区包含一个编辑器,需要签出文件来修改它们。我担心通过 P4V 切换会使编辑器不知道文件现在来自不同的流。
如果可能的话,我宁愿有办法在编辑器中检测到这一点,而不必从 P4V 通知。
谢谢, 亚历克斯
【问题讨论】:
标签: perforce
您是说您的编辑器会自动检出文件吗?这很常见,所以你不是一个人。如果我可以问,它是哪个编辑器?
您知道您的编辑如何与 Perforce 对话吗?我认为它发出p4.exe(cmdline 工具)命令是否正确,例如p4 edit? (另一种方法是使用 P4 API 之一,例如 p4java 或 p4python。)如果是这样,p4 edit 命令已经不尊重 P4V 工作区设置。 p4.exe cmdline 工具将与one of six ways 中指定的 p4 工作区一起使用。要始终使用正确的客户端,
P4CONFIG 文件指定 P4CLIENT=[client name]
p4 edit 命令始终在给定工作空间内有效运行(在 CWD 的意义上);您可以为此使用-d 开关,例如结帐时C:\workspaces\wksp1\foo\bar\baz.c 你会打电话给p4 -d C:\workspaces\wksp1\foo\bar edit C:\workspaces\wksp1\foo\bar\baz.c。【讨论】:
p4.exe(命令行客户端)。你用的是P4V吗?或者您是否正在为“糟糕的”Unity-P4 插件而苦苦挣扎?还是您正在编写自己的自动化程序?
如果用户正在使用新的工作区,他们还将使用一组不同的文件,因此希望不会有太多混淆的机会。 (除非他们用同一个 Root 制作了多个工作区,在这种情况下,他们会尽最大努力击落自己的膝盖骨。)
如果他们在当前工作区中切换了流,您可以使用“p4 info”、“p4 client -o”或“p4 stream -o”等命令检测到这一点。
【讨论】:
p4 info 获取当前的 流,但如果您不知道不知道你不走运的工作区。理想情况下,您在每个工作区根目录中都设置了 P4CONFIG 文件(这对于 CLI 用户来说是非常标准的做法,因为它使一切变得简单)。如果你正在编写一个在 P4V 之外执行的工具,但它想弄清楚工作空间是如何设置的,你可以在服务器上查询绑定到当前主机的工作空间,然后检查它们的根,看看你是哪一个'在。