获取最新版本不起作用

问题描述 投票:0回答:4

我刚刚在家用计算机上设置了 Perforce,这样我就可以在家工作,而无需拖着工作计算机到处走动。

我使用了与工作中使用的工作区相同的工作区,但是当我尝试获取最新版本时,我没有获取所有文件。尽管像这样映射,但还是缺少一些子文件夹:

//depot/some_folder/... //My_Workspace/some_folder/...
some_folder
有一个子文件夹
some_subfolder
但我的工作区由于某种原因没有拉入该文件夹...“视图”中的其他行都没有任何内容与
some_folder
做所以我不认为它们是问题所在。

大家有什么想法吗?

perforce
4个回答
21
投票

Perforce 服务器会跟踪您在工作区中提取的文件。这样做是为了速度,因此当您执行“获取最新修订版”时,它只会提取需要更新的文件。由于您使用相同的工作区,Perforce 认为您已经使它们同步。您有 2 个选择。

  1. 使用 p4sync -f //files/... (如果您使用 p4v,右键单击 -> 获取修订版,然后在选项中单击强制复选框)这将告诉 perforce 将所有内容同步到最新修订版。但是,您将必须在工作和家庭中使用此选项,因为 Perforce 现在会认为您已同步所有内容,而实际上只有家里的文件同步。

  2. 为家庭和工作使用不同的工作空间。


4
投票

在 GUI 中,不要执行“获取最新版本”,而是尝试执行“获取修订版...”的上下文菜单,然后在出现的窗口中选中“强制”复选框并尝试一下。

更新编辑:经过反思,人们仍然看到这篇文章,这可能会受益于一些解释。

发生的情况是,Perforce 存储有关每个工作区的元数据以及它已同步、更改的文件等。因此,假设您有三个文件夹,A、B 和 C。在您的工作计算机上,您同步文件夹 A。服务器更新您的元数据并显示“酷,工作区 foo 有文件夹 A”。当您转到家用计算机并同步 A 和 B 时,服务器会显示“好吧,工作区 foo 已经有文件夹 A,不要同步该文件夹,只同步 B。”这就是为什么您只看到一些文件像这样传过来。

我上面给出的建议,使用“强制”选项,基本上告诉服务器“忽略你认为我拥有的东西,只给我我刚刚要求的一切。”这工作得很好,但是你绕过了服务器上你所拥有的图片。由于多种原因,这很危险。例如,您可以破坏本地的工作,因为当您使用“强制”选项时,服务器会很乐意覆盖您拥有的任何内容。

这里更好的答案是创建一个 foo_work 和一个 foo_home 工作区,并保持工作独立。如果您需要在工作区之间转移正在进行的工作,您可以使用搁置选项,和/或创建开发分支并将未完成的工作签入开发分支。


2
投票

创建一个不同的工作区以在您的家庭计算机上使用。不要尝试在两台不同的计算机上使用相同的工作区,除非它们指向相同的底层文件系统。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.