问题标签 [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.
perforce - 在 Perforce 中使用导入的文件从主流创建发布流
所以,我使用 Perforce 作为 SW 存储库,我需要从我的“主线”流中创建一个“发布”流。“发布”流的要求是其内容应足以编译和运行 SW。
但是,有一些文件从其他项目(也在 Perforce 中管理)导入到这个“主线”流中,这些文件随着时间的推移发生了很大变化。“发布”流需要这些文件的快照。
我尝试转到流视图并从“主线”流创建一个“新流”,但是一旦导入的文件被导入到外部项目中,在“发布”流上执行获取最新的操作会将导入的文件下载到当前版本,而不是创建发布时的版本。
有些文件很大而且是二进制文件,所以我想避免手动复制并保存所有内容。
有谁知道如何在 Perforce 的“发布”流中冻结导入文件的版本?
perforce - 如何使用脚本跨多个流跟踪 CL 的分支
我正在尝试创建一个脚本(如果可能),它可以从 perforce 获取特定的 CL,并列出它已集成到的流或分支以及该集成的 CL 以及其他一些细节(如签入的用户或文件历史)
我一直在查看一些 P4 文档,但还没有找到任何东西......所以想知道是否有人在这方面有经验。
我的最终目标是创建一个网站(我以前有一家公司),它可以很好地显示这一点,但我想先启动并运行脚本。
示例:我在脚本中输入 CL 12345,然后我得到一个列表,其中包含更改所在的每个流,并且更改的 CL 已集成到该分支中。
我知道修订图可以做到这一点,但我想要一些非技术人员可以使用的东西。
谢谢!
perforce - 删除子流以删除 Perforce 流库
我有以下情况:我们创建了一个流库并开始使用它。之后发现我们想要一个不同的流库名称,所以我们只是创建了一个正确命名的新库,并从旧库中复制了所有内容。它已经使用了一段时间。
现在我们想摆脱旧的错误命名的流仓库。我通过 Perforce Helix Admin 客户端(GUI)删除了 depot 的内容,然后尝试这样做Delete Depot
,它回复了
Depot 'depotname' is the location of existing streams; cannot delete until they are removed.
所以,我转移到 P4 CLI 来列出和删除现有的流:
[root@linuxbox]# p4 streams //depotname/...
Stream //depotname/main mainline none 'main'
Stream //depotname/main.dev virtual //depotname/main 'main.dev'
[root@linuxbox]# p4 stream -df //depotname/main
Stream '//depotname/main' has child streams; cannot delete until they are removed.
那么,问题是如何从流库中删除这些子流?(我应该用什么代替p4 stream -df //depotname/main
)?之后我可以删除仓库吗?它不会影响同一 p4d 服务器上的其他软件仓库吗?
triggers - 当用户尝试删除或重新父流时触发 Perforce 触发器
我正在尝试为用户创建保护措施,以防止他们意外删除或重新设置流
- 尝试在流之间拖动工作区时,很容易意外地重新设置。
- 右键单击流以转到“编辑流”时,有时会意外单击删除。
我们已经使用了很多触发器来帮助用户,我想知道是否可以通过预防性触发器来解决这两种情况之一/两种情况?
通过初步研究,我找不到由这些情况中的任何一种触发的触发器。有谁知道这些触发器中的任何一个是否可以从流删除或重新父项中触发: https ://www.perforce.com/perforce/r12.1/manuals/cmdref/triggers.html
如果没有,Perforce 中是否还有其他方法可以用来帮助用户解决这些问题?
perforce - 仅同步仓库中的差异但收到错误“-必须参考客户端”
我希望能够仅将仓库中的差异同步到我的工作区中。我不想重新同步所有已经匹配的源文件。
我目前可以看到这个命令的区别:
但是当尝试使用此命令将仓库差异同步到我的本地工作区时:
我在终端收到这条消息:
“- 必须参考客户”
注意:在执行上述所有命令之前,我设置我的客户端使用
version-control - 如何解决 Perforce 中涉及我不想传播到其他分支的更改的特定情况?
所以,情况就是这样。我有 2 个流,“Development.Main”和“Development.A”(Development.Main 的子级)。我将只关注一个文件通过我执行的“版本控制”步骤所采用的“路径”。
- 该文件以 Main 开头。
- 我将它合并到 A 没有任何变化。
- 我在 Main 中删除它。
- 当我将 Main 中的更改合并到 A 时,我选择“保留目标”,以便该文件在 A 中保持未删除,因为我希望该文件在 Main 中删除,而不是在 A 中。
- 但是随后 Perforce 流图告诉我,我有文件要从 A 复制到 Main(见绿色箭头)。当我进行复制操作(从 A 到 Main)时,它想将文件复制回 Main,从而重新生成它。但我希望它保持被删除。请注意,当我尝试强制从 A 到 Main 的合并(而不是副本)时,Perforce 认为没有要合并的内容并决定以错误响应。见下面的图片#3
1 - 流程图
2 - 修订图
3 - 试图强制从 A 合并到 Main
我该如何解决这种情况,以便我可以删除 Main 中的文件而不是 A 中的文件?
解决方案的条件:
- 我希望流程图上的所有绿色箭头都消失。
- 从现在开始,我不希望这个文件出现在 Copy (from A to Main) 操作中。(因为我不希望这个文件再次出现在 Main 中。它应该在那里被删除。)
- 我不想仅针对此特定文件更改有关流规范或工作区规范的任何内容。
version-control - 使用 p4 软件仓库的 perforce 软件仓库未显示在客户端上
我最近使用此文档作为参考,将我的 perforce 服务器从在 windows 上运行的旧版本迁移到了 Linux 中的新服务器。
如果我p4 depots
在运行服务器的机器上运行,重新启动服务器后,我得到以下输出
但是当我p4 depots
从连接到服务器的另一台机器上运行相同的命令时,我只能得到三个仓库
这些也是从 p4v 可见的相同仓库。即使在“获取最新”点击之后,我仍然会看到这 3 个仓库。我也尝试p4 sync
过,但再次出现错误
此外,我在 doc 上没有看到任何p4 depots
为我解决问题的内容。这是预期的行为吗?
git - 什么是 perforce 流?
我只知道工作区是一个对象,它将服务器中的一组文件映射到用户文件系统上。
之前用过git,还不太懂流的概念。它和git中的分支一样吗?那么你将如何向 Git 用户解释流?