【问题标题】:Detect a workspace switch from p4v从 p4v 检测工作区切换
【发布时间】:2018-04-09 13:01:57
【问题描述】:

如果我在 P4V 中打开了一个工作区并且我切换了工作区,是否有办法通知或检测到切换发生在外部?

工作区包含一个编辑器,需要签出文件来修改它们。我担心通过 P4V 切换会使编辑器不知道文件现在来自不同的流。

如果可能的话,我宁愿有办法在编辑器中检测到这一点,而不必从 P4V 通知。

谢谢, 亚历克斯

【问题讨论】:

    标签: perforce


    【解决方案1】:

    您是说您的编辑器会自动检出文件吗?这很常见,所以你不是一个人。如果我可以问,它是哪个编辑器?

    您知道您的编辑如何与 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 集成,使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

    【讨论】:

    • 感谢您的回复。这实际上是针对 Unity 的,但从更通用的角度想知道,Unity 中的 P4 支持(来自内置功能和来自 P4 Connect)很糟糕,所以宁愿绕过它们。关于 P4CONFIG,您是说将其保留在源代码管理中吗?那不是说它只对一个人有效吗?如果不是并且它不受源代码控制,我假设每个用户都需要手动创建文件。在 P4V 中执行切换时文件是否会更新?谢谢你。亚历克斯
    • 您通常不会将 P4CONFIG 保留在源代码管理中。它在概念上替换了环境变量或注册表设置之类的东西,它们也没有版本控制。是的,每个用户都应该设置自己的 P4CONFIG(但他们不必……取决于他们的工作方式——因为某些环境变量可能是正确的做法)。诀窍是在每个工作区/客户端的根目录中都有一个 P4CONFIG,每个都相应地设置 P4CLIENT。
    • 等一下——你问的是“何时在 P4V 中执行切换”——不,上面的“六种方式”都不会影响 P4V,即可视化客户端。在 P4V 中,您需要设置这些内容 (1) 当您启动 P4V 时,会有一个对话框询问您要使用哪个客户端,以及 (2) 当您切换客户端时。 “六种方式”适用于p4.exe(命令行客户端)。你用的是P4V吗?或者您是否正在为“糟糕的”Unity-P4 插件而苦苦挣扎?还是您正在编写自己的自动化程序?
    【解决方案2】:

    如果用户正在使用新的工作区,他们还将使用一组不同的文件,因此希望不会有太多混淆的机会。 (除非他们用同一个 Root 制作了多个工作区,在这种情况下,他们会尽最大努力击落自己的膝盖骨。)

    如果他们在当前工作区中切换了流,您可以使用“p4 info”、“p4 client -o”或“p4 stream -o”等命令检测到这一点。

    【讨论】:

    • 这主要适用于有人想要从主流切换到他们的开发流或在发布流中进行修复的情况。我发现诸如 p4 info 之类的命令不会获取当前工作区,除非您在命令行上手动设置客户端规范,这将使检测开关的点无效。
    • 只要您知道 工作区,您就可以从 p4 info 获取当前的 ,但如果您不知道不知道你不走运的工作区。理想情况下,您在每个工作区根目录中都设置了 P4CONFIG 文件(这对于 CLI 用户来说是非常标准的做法,因为它使一切变得简单)。如果你正在编写一个在 P4V 之外执行的工具,但它想弄清楚工作空间是如何设置的,你可以在服务器上查询绑定到当前主机的工作空间,然后检查它们的根,看看你是哪一个'在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    相关资源
    最近更新 更多