检测Perforce未打开的已修改文件

时间:2008-11-05 21:27:46

标签: perforce

我正试图找出一种方法来检测未打开以进行编辑但仍在本地修改的文件。 p4 fstat为任何给定文件返回值headModTime,但这是库中的更改时间,不应等于文件系统stat上次修改时间。

我希望存在比备份原始文件更轻量级的操作,强制同步文件,然后运行差异。想法?

5 个答案:

答案 0 :(得分:23)

来自:http://answers.perforce.com/articles/KB/3481/?q=disconnected&l=en_US&fs=Search&pn=1

具体见第2步:


2。接下来,打开“编辑”任何已更改的文件:

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

p4 diff -se返回相应客户端文件与客户端#have版本有任何不同的库文件名。

答案 1 :(得分:21)

This SO question提供了一种在P4V GUI中执行此操作的方法:

  

在2009年1月版的P4V中,您可以右键单击工作区树中的任何文件夹,然后单击“协调脱机工作......”

     

这将进行一些处理,然后显示未检出但与库版本不同或根本没有签入的文件的拆分树视图。它可能会带来一些其他类别。

     

您可以右键单击此视图中的文件并将其签出,添加,甚至还原它们。

后来编辑:

在“Reconcile ...”窗口中,您可以单击“Advanced Reconcile”并显示一个双窗格的文件夹层次结构diff窗口,该窗口对于查找需要添加的文件特别有用。

PROS:整个P4V功能比命令行版本更加用户友好(因为它允许选择要协调的内容的最大粒度)

缺点:迫切需要一个subversion / git / hg .ignore - 就像列表一样,为您免除手动跳过项目中所有dll和其他障碍的痛苦。

答案 2 :(得分:3)

从Perforce版本2012.1开始,使用命令行命令p4 statusp4 reconcile

http://www.perforce.com/perforce/r12.2/manuals/cmdref/status.html

  

p4 status命令在客户端的工作区中查找未打开的文件,并检测工作区与软件仓库之间的以下三种不一致类型:

     
      
  1. 软件仓库中存在的文件,存在于您的列表中,但在工作区中丢失。默认情况下,将打开这些文件   删除。
  2.   
  3. 工作区中存在但文件库中缺少的文件。默认情况下,会打开这些文件以进行添加。
  4.   
  5. 工作区中已修改但未打开以进行编辑的文件。默认情况下,这些文件将被打开以进行编辑。
  6.   

http://www.perforce.com/perforce/r12.1/manuals/cmdref/reconcile.html

答案 3 :(得分:2)

从正在工作的文章中,使用p4win你也可以选择有问题的文件夹/文件,然后选择'文件菜单 - >更多 - >检查一致性'哪个基本上是'p4 diff -se'和'p4 diff -sd',并提示用户解决不一致问题。

答案 4 :(得分:0)

这是一个非常适合我的unix解决方案。

How to find untracked files in a Perforce tree? (analogue of svn status)