如何将文件从perforce下载到工作区以外的位置?

如何将文件从perforce下载到工作区以外的位置?,perforce,workspace,Perforce,Workspace,我想从Perforce获取文件,而不将其放入工作区 例如。 我在2个文件中进行了更改 file1.cs file2.cs 现在我想使用更新的file1.cs构建项目,所以我想获取除file1.cs之外的最新文件 我想我将获得project的另一个本地副本并构建它。据我所知,如果不使用工作区,您无法同步Performce仓库中的文件,因为这是它跟踪您工作区中的文件版本以及将它们放在本地机器上的位置(以及其他一些东西)的方式。 我不确定我是否完全理解您的问题,但如果您需要做的是在仓库中获取另一份

我想从Perforce获取文件,而不将其放入工作区

例如。 我在2个文件中进行了更改

file1.cs 
file2.cs
现在我想使用更新的file1.cs构建项目,所以我想获取除file1.cs之外的最新文件


我想我将获得project的另一个本地副本并构建它。

据我所知,如果不使用工作区,您无法同步Performce仓库中的文件,因为这是它跟踪您工作区中的文件版本以及将它们放在本地机器上的位置(以及其他一些东西)的方式。 我不确定我是否完全理解您的问题,但如果您需要做的是在仓库中获取另一份file1.cs副本,而不删除对其所做的更改,您只需将更改复制到另一个位置或搁置,然后重新同步该文件。更完整、危险性更小的解决方案是创建另一个工作区,指向机器上不同的物理位置,但相同的仓库位置。 这说明了如何在需要时创建工作区: 确保“根”路径与当前工作区的路径不同,您可以通过转到P4V中的“工作区”选项卡并查看它来检查当前工作区的根。
创建新工作区后,创建新连接并选择它,然后同步所需的文件

我不确定您真正想要做什么,但您可以使用“”,从仓库中获取文件内容,而无需使用工作区定义。例如:

>p4 print -o fileName.cs //depot/path/to/fileName.cs

我找到了解决方法,但没有找到解决方案。
我得到项目的另一个本地副本,然后构建项目并提交更改

所以我想得到除file1.cs之外的最新文件

你不应该那样做;您应该更新所有文件并解决与file1.cs的任何冲突


考虑其他人对file56.cs进行更改的情况,该更改依赖于对file1.cs所做的更改。如果您接受了他们的变更列表,但覆盖(或不接受)了他们的file1.cs,那么您的构建将中断

我找到了一种使用git实现这一点的简单方法:

 $ git p4 clone //depot/your/folder

搁置file1.cs,以便安全地恢复本地更改:

p4 shelve file1.cs
p4 revert file1.cs
现在,您可以使用所需的任何版本的file1.cs进行构建(您可以同步回旧版本或其他版本)

当您准备好返回更改时:

p4 unshelve -s CHANGE

如果您在UI中,可以使用文件->导出到。。。将所选文件复制到所需的任何文件夹


谢谢您的回复。我将创建本地文件的另一个副本。这似乎是一个好答案的开始。接下来有没有其他步骤可以让它完全解决提问者的问题?好的,我不确定这是否真的能回答问题。我一直在寻找从perforce下载单个文件的方法,而不必映射它们,我误认为这个问题与那个问题类似。