问题标签 [perforce-stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
721 浏览

perforce - 如何将 Perforce 任务流转换为开发流?

它在 Perforce 文档中的几个地方说可以将任务流转换为开发流,但我没有找到实际操作的方法。

在 P4V 中,当我在流视图中右键单击流并选择编辑流“X”时,会出现流类型组合框,我认为应该将“任务”选项更改为“开发”。对于开发流,我可以使用组合框将流转换为例如主线或虚拟流,但对于我的所有任务流,组合框被禁用。

如何将任务流转换为开发流?我必须满足一些先决条件吗?

0 投票
1 回答
689 浏览

jenkins - 使用 jenkins 轮询多个 perforce 流

我有一个监控 Perforce 服务器的 Jenkins 服务器。Perforce 正在使用带有主线模型的流。我正在使用 Jenkins 来监控 Perforce 的变化,然后根据在哪里签入的内容来设置脚本。这在主流上效果很好,但我也想监视它下面的流。当我设置一个唯一目的是监视其他流的作业时,它只轮询主流,尽管将作业的规范设置为另一个流。我怀疑这是因为我用来运行主 jenkins 实例的机器上的本地 perforce 实例连接到了主流。如果是这种情况,我可以使用另一台机器作为从站,该机器严格连接到附加流以进行轮询。但是由于有很多流,这似乎是对资源的巨大浪费。

有谁知道我可以解决这个问题的方法?

0 投票
1 回答
211 浏览

perforce - 仅使用任务流规范在流库中定位文件

为了获得任意文件的 p4 打印,我正在寻找一种仅使用流规范而不是客户端规范来定位正确“解析”文件的方法。

例如,

主流有文件

第二个流//toto/test/是一个任务流,使用以下规范作为主流的父级

当我尝试在流测试中使用

我收到不同的输出取决于不同的因素。

  • 如果文件从未在测试流中提交

    • 如果我在正确的流中的客户端(使用 -c Client_Test 或任何其他方式设置客户端)中,则该文件由 p4 定位并正确打印。

    • 如果我没有指定客户端,或者没有给 p4 任何关于它应该使用哪个客户端的指示,我会收到以下错误

//toto/test/file.txt - 没有这样的文件。

  • 如果文件是在测试流上提交的,则文件被正确定位和打印。

我的目标是能够在不使用工作区的情况下打印任意文件,就好像我理解正确一样,流规范应该能够在流层次结构中找到文件。

如果文件存在,我可以尝试在父流中递归查看,使用命令

但是,如果文件“file.txt”来自具有以下映射的另一个流,则该解决方案将不起作用

如果不指定要使用的客户端(工作区),似乎无法找到此类文件(不幸的是,这在我们的环境中不是可接受的解决方案)

0 投票
1 回答
30322 浏览

perforce - Perforce - 从命令行切换到工作区

我在问如何从client1切换到client2,其中client1属于stream1,client2属于stream2。

我正在寻找它与在 p4v 中执行相同的操作,然后右键单击工作区并选择“切换到工作区”

请注意,如果您当前的工作区是 client1 并且您使用:

或者

它不会更改 p4v GUI 中的工作区。

任何的想法?

谢谢!

0 投票
2 回答
1944 浏览

perforce - How to efficiently work with a task stream?

Disclaimer: I let the question open, but my slow branching issue was due to the server being overloaded. So this is not the usual Perforce behavior. I now take about 30 seconds to branch 10K files.

I am a new Perforce 2014 user. I have created a stream depot, and put the legacy application (about 10,000 cpp files) in a development branch. That was relatively quick for an initial import, about 1 hour to upload everything.

Now I want to create a 'lightweight' task stream to work on a new feature. I use the default menu > new stream > type task ... I select "Branch file from parent on stream creation"

To my surprise, it takes ages (about 1 hour) to create a new task because it is branching individually every file. I would expect the process to be almost instant coming from other SCM tools. (git, svn,...)

Now my question is :

  • is this the expected behavior ?
  • Alternatively, is there a way to create more quickly a Task, and only branch the file I intend to modify ?
0 投票
3 回答
1023 浏览

triggers - Perforce - 在触发脚本中获取流名称

如果文件属于特定流,我想创建一个触发器以防止签出文件。

我正在使用用户前编辑触发器。

触发器执行 Perl 脚本。

当我在 Perl 脚本中执行 p4 命令时,我收到此错误:

Perforce 密码 (P4PASSWD) 无效或未设置。

我所做的是从客户端名称(传递给 Perl 脚本)中获取流名称:

这不起作用。

此外,尝试将 $p4 分配给新的 P4 失败。

任何人都知道如何解决这个问题?

至少,给我一种从客户端名称中提取流名称的方法?

谢谢,

0 投票
1 回答
249 浏览

perforce - 如何完全删除 perforce 流集成

即使在我删除了最后一个变更列表之后,我的主线流仍然认为开发流需要合并,我将感谢一些帮助来解决这个问题。

简而言之:

我的主线流(名为 Main)有 2 个开发流,其中一个名为 Tintin。直到今天早些时候,从 Main 开始的所有内容都已合并到开发流中。其中一个流已经快2年没有复制到主线了,所以有很多修改的文件,需要进入主线。

使用 P4V,我选择了开发流并运行了副本 - 由于 2 年前的一些重命名(我的更改列表 81402),它停止了警告或错误所以经过一些阅读,我了解到我应该将副本的范围限制为更改列表81402,完成得很好,并导致主线流上的更改列表 124031。

但是现在 Perforce 坚持我必须先向下合并,然后才能允许我进行第二次复制到主线,结果更改列表看起来完全不像我预期的那样。

所以我在更改列表上运行了 p4 obliterate 但出现了一个小错误:

但这应该是没有路径的,就像这样

现在 perforce 说文件版本和集成已经消失(如预期的那样),但更改列表 124031 仍然存在,尽管它不包含任何文件。

我希望强制忘记有关更改列表 124031 的所有内容,这样我就可以重新将开发流再次复制到主线。

0 投票
2 回答
8667 浏览

perforce - 删除带有活动客户端的流

我想删除离开公司的用户的任务流。所以我去

系统回答:

很好,我也会删除活动客户端。所以我正在寻找它:

然后什么也没给。

因此,要么我错过了一些选项,要么存在某种隐藏某些客户端的错误。这不是一个正确的问题,因为我已经删除了大量的流或客户端。

或者还有另一种强制删除的方法吗?

0 投票
1 回答
54 浏览

perforce - Perforce:如何禁用跨流访问同一文件夹

是否可以在所有流中只读特定文件夹?如果是这样,你能告诉我怎么做吗?

我试过类似的东西:

读取用户 * * //Depot/*/Unity/Assets/Scripts/Framework/...

没用。

0 投票
2 回答
401 浏览

merge - 如何在 Perforce 中仅对子目录进行流复制/合并?

我正在使用P4V。我在一个子目录(例如 code/jorge)中工作,而其他人在另一个我从不处理的子目录(例如 art/)中工作。此外,我有一个流,我可以在其中做我的个人工作。每隔一段时间,我需要将主线的更改合并到我的流中,然后将它们复制回来。但是,art/ 中的文件是大型二进制文件,即使我没有接触过它们,Perforce 也会花很长时间思考它们。有没有办法让 perforce 合并/复制我的目录(code/jorge)而不花时间尝试合并 art/?我可以告诉 P4V 只合并/复制代码目录吗?

相关但不相同的问题:Perforce 流,从合并/复制中排除文件