2010-08-30 44 views
0

我在存储库之外有一个目录。我把生成的来源放在那里。这些生成的来源需要FOREVER才能创建。我不想让团队中的每个人都生成这些源代码,而是希望使用我们的生成器生成源代码并检查它们。我该如何做到这一点,并确保源代码管理的目录只包含最新的文件,而不是以前生成的文件,但不包含最新版本中的文件。使用perforce捕获外部目录的当前状态

我正在考虑对生成的目录(对于现有文件)中的所有文件执行p4 edit,然后使用通配符执行p4 add以获取任何新文件,但我不知道如何处理文件以前生成,但不是在最近的版本中生成(应该删除)。

回答

0

开始如你所说 - P4编辑和P4添加捕获所有的变化,然后调用

p4 revert -a 

这将恢复在是开放的编辑,但实际上是不变或缺失车厂的任何文件。

+0

是的,我也必须这样做。这虽然没有解决问题。在生成器创建文件并在更改列表1中提交它的情况下,但在更改列表2中它不会再生成它,因为它不是必需的或错误的。在这种情况下,我需要从源代码控制中删除它。 – 2010-08-31 15:47:24

+0

哎呀,对不起。错读了这个问题。 – tenpn 2010-09-01 11:03:58

0

一个想法是,在构建之前,手动删除此区域中的所有内容(不是通过Perforce,而是通过OS)。完成构建后,请执行“协调离线工作”。这将在Perforce中协调你在这方面的内容,方法是添加新文件,删除那些不再存在的文件,并编辑那些已经更改的文件。

您可以通过P4V协调离线工作,如图所示here.在工作区浏览器中,右键单击该文件夹并选择“协调离线工作”。

或者,你可以做到这一点通过命令行,如果你喜欢更自动化的解决方案,如图here.(注:此链接还谈到通过P4V协调,但这是由以前的链接取代)

p4 diff -se //myclient/... | p4 -x - edit 

检出已更改的文件。

p4 diff -sd //myclient/... | p4 -x - delete 

删除文件。

find . -type f -print | p4 -x - add 
find . -type l -print | p4 -x - add 

添加文件和符号链接在Unix或

dir /s /b /a-d | p4 -x - add 

在Windows中添加文件。

0

对于Perforce中的二进制文件,您可以设置FileType标志,该标志仅为存储库中的文件存储一个(或一组数量)修订版。通过这种方式,您将拥有该文件的历史记录,但其他用户只能访问该文件最新版本的二进制文件,而且如果您不需要存储多个副本,则服务器将只存储一个更具存储效率的副本。

要进行更改。

  1. 将您感兴趣的文件添加到存储库。
  2. 检出文件。
  3. 右键单击P4V,然后选择更改文件类型
  4. 在弹出的对话框中,选择+ S“服务器限制存储的修改数量”,这将限制存储的文件数量。

希望这会有所帮助。