在 Perforce P4 中,我可以在没有“Stream”的情况下从“Depot”获取文件吗?

Xap*_*has 1 perforce

因此,我一直在阅读 p4 命令行工具的 helix-core 文档,因为我无法在当前计算机上使用可视客户端。我正在尝试找到一种方法从服务器上的本地仓库获取最新文件,该仓库存储我和我的团队正在处理的项目。

我找到了该sync命令,但它需要一个流。如果我没记错的话,当我为团队或服务器设置可视化客户端时,我从来不需要定义一个客户端,所以即使我有一个客户端,我也找不到它。管理工具只向我显示像这样的软件仓库://depot/myFiles,如果我没有记错的话,这是创建服务器时创建的默认本地软件仓库。所以我一直想知道是否有可能像在没有流的可视客户端中一样“获取最新”,或者我如何找到这个仓库正在使用的流。

Sam*_*ord 5

tl;dr:您想要制作的是“工作空间”,而不是“流”。运行p4 client以创建工作区。

Perforce 中的 Depot 有两种基本风格:streamlocal(又名“经典”)。仓库的类型是在 Perforce 管理员创建时设置的。一台服务器可以有任意数量的软件仓库。

stream软件仓库中,文件被组织成流,默认情况下采用顶级软件仓库目录的形式,例如//stream/main//stream/rel1。流可以配置为表示超出实际仓库目录中的文件,但在最简单的形式中,每个流仅与仓库中的一个目录完全对应,包括一个mainline流以及通常从主线分支的许多其他流。 流仓库中的每个文件都位于流内。 您可以运行该p4 streams命令来查看所有流的列表。

在一个local仓库里,没有溪流。您可以在任何地方添加任何文件。通常,文件被组织到相互分支的并行顶级目录中,例如//local/main//local/rel1,但是没有任何防护栏可以引导您这样做。

在任何类型的软件仓库中,您都需要创建一个客户端工作区来同步和提交文件。每个工作区都有一个客户端视图,用于创建仓库文件和工作区文件之间的映射;客户端视图在您同步时获取仓库文件并将它们放入您的工作区,并且在您提交时它获取工作区文件并将它们放入仓库。每个工作区对于特定客户端计算机(客户端根)上的特定目录都是唯一的 - 您必须为您工作的每台本地计算机创建一个新工作区!

  • stream软件仓库中,当您创建工作区时,您可以指定要处理的流。系统会自动为您生成一个客户端视图,将您的工作区根映射到流中的文件。您不能手动修改此视图;如果要更改视图,则需要更改流,这将自动更新与该流关联的所有客户端的视图(因此一个流可能有许多客户端,但它们将始终共享一致的视图 - 主要流的功能是集中客户端视图管理)。
  • local软件仓库中,当您创建工作区时,您自己定义一个视图。默认情况下,当您在具有单个本地仓库的服务器上创建工作区时,客户端视图会将整个仓库映射到工作区根。您可以自行编辑视图,将软件仓库中的任意路径映射到工作区中的任意路径,这样您就可以完全控制要同步的软件仓库文件以及每个文件的去向。

要从命令行创建客户端工作区,请运行:

p4 client
Run Code Online (Sandbox Code Playgroud)

这将打开一个包含客户端规范的编辑器。适当编辑视图字段。请注意,客户端工作区的默认名称是它所在的客户端计算机的主机名;如果你想改变这个,请p4 set P4CLIENT=your-client-name在​​运行之前运行p4 client。保存客户端规范,退出编辑器,您将看到类似“客户端已保存”的消息。

现在您可以同步:

p4 sync
Run Code Online (Sandbox Code Playgroud)

这将使用您当前的客户端规范(您刚刚定义的规范)将文件从软件仓库同步到您的工作区。您只需在第一次设置新客户端计算机时创建客户端规范,但您可以p4 client随时再次运行来修改它。