我想从 Perforce 获取文件而不将它们放入工作区。
例如,我对 2 个文件进行了更改。
file1.cs
file2.cs
现在我想使用更新的 file1.cs 构建项目,所以我想获取除 file1.cs 之外的最新文件。
我想我会得到另一个项目的本地副本并构建它。
我不确定您真正想要做什么,但是您可以使用“ p4 print ”从库中获取文件的内容,而无需使用工作区定义。例子:
>p4 print -o fileName.cs //depot/path/to/fileName.cs
据我所知,如果不使用工作区,您无法从 Perforce 软件仓库同步文件,因为这是跟踪您在工作区中拥有的文件版本以及将它们放在本地计算机上的位置的方式(以及一些其他事情)。我不确定我是否完全理解您的问题,但是如果您需要做的是获取您在仓库中的 file1.cs 的另一个副本而不删除您对其所做的更改,您可以简单地将更改复制到另一个位置或搁置他们并重新同步文件。更完整且危险性更低的解决方案是创建另一个工作区,指向您机器上的不同物理位置但相同的仓库位置。这解释了如何在需要时创建工作区: http ://www.perforce.com/perforce/doc.062/manuals/boilerplates/quickstart.html 确保“根”路径与当前工作区的路径不同,您可以通过转到 P4V 中的工作区选项卡并查看它来检查当前工作区的根目录。创建新工作区后,创建一个新连接并选择它,然后同步您需要的文件。
所以我想获取除 file1.cs 之外的最新文件
你不应该那样做;您应该更新所有文件并解决与 file1.cs 的任何冲突
考虑其他人对 file56.cs 的更改依赖于对 file1.cs 所做的更改的情况。如果您采用他们的更改列表但覆盖(或不采用)他们的 file1.cs,那么您的构建将中断。
搁置 file1.cs,以便您可以安全地恢复本地更改:
p4 shelve file1.cs
p4 revert file1.cs
现在,您可以使用所需的任何版本的 file1.cs 进行构建(您可以同步回旧版本或其他任何版本)。
当您准备好返回更改时:
p4 unshelve -s CHANGE
我找到了解决方法,但没有找到解决方案。
我得到另一个项目的本地副本,然后构建项目并提交更改。
我发现了一种使用 git 的简单方法:
$ git p4 clone //depot/your/folder