使用perforce捕获外部目录的当前状态

时间:2010-08-30 18:41:15

标签: code-generation perforce

我在存储库外有一个目录。我把生成的资源放在那里。这些生成的源需要FOREVER创建。我不想让团队中的每个人都生成这些资源,而是希望使用我们的构建计算机来生成资源,然后将它们检查到perforce。如何执行此操作并确保源控制目录仅包含最新文件,而不是先前生成但未在最新版本中生成的文件?

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

4 个答案:

答案 0 :(得分:0)

按照建议开始 - p4编辑和p4添加以捕获所有更改,然后调用

p4 revert -a

这将还原已打开以进行编辑但实际上未更改或缺失的库中的任何文件。

答案 1 :(得分:0)

我在perforce博客上找到了这个,这正是我想要的。 Automating folder replacement using P4Java and Apache Ant

答案 2 :(得分:0)

一个想法是,在构建之前,手动删除此区域中的所有内容(不是通过Perforce,而是通过操作系统)。完成构建后,执行“协调脱机工作”。这将通过添加新文件,删除不再存在的文件以及编辑已更改的文件,在Perforce中协调您在此区域中拥有的内容。

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

或者,如果您更喜欢更自动化的解决方案,可以通过命令行执行此操作,如here.所示(注意:此链接还介绍了通过p4v进行协调,但这已被前一个链接取代)< / p>

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中添加文件。

答案 3 :(得分:0)

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

进行更改。

  1. 将您感兴趣的文件添加到存储库。
  2. 查看文件。
  3. 右键单击P4V并选择Change Filetype
  4. 在弹出的对话框中,选择+ S“服务器限制存储的修订数量”,这将限制存储的文件数。
  5. 希望这有帮助。