【发布时间】:2011-11-20 15:01:35
【问题描述】:
我对 perforce 非常陌生,并且在网上搜索时运气不佳......但是......
有没有办法获取自特定修订号以来已更改的所有文件的列表?我将不得不将一些东西推送到我们的生产服务器,而不是遍历所有文件并检查,我想告诉 Perforce 给我任何自修订版 X 以来发生更改的文件。
【问题讨论】:
我对 perforce 非常陌生,并且在网上搜索时运气不佳......但是......
有没有办法获取自特定修订号以来已更改的所有文件的列表?我将不得不将一些东西推送到我们的生产服务器,而不是遍历所有文件并检查,我想告诉 Perforce 给我任何自修订版 X 以来发生更改的文件。
【问题讨论】:
如果您希望所有文件都进行特定更改,请使用“p4 files”命令。 例如:
$ p4 files //...@7
//depot/dev/fileA#2 - edit change 7 (text)
//depot/dev/fileB#2 - edit change 7 (text)
//depot/dev/fileC#2 - edit change 7 (text)
//depot/main/fileA#1 - add change 1 (text)
//depot/main/fileB#1 - add change 1 (text)
//depot/main/fileC#1 - add change 1 (text)
//depot/r1.0/fileA#1 - branch change 2 (text)
//depot/r1.0/fileB#1 - branch change 2 (text)
//depot/r1.0/fileC#1 - branch change 2 (text)
如果您只想要一个特定更改列表的文件,请使用 @n,@n 表示法,例如:
$ p4 files //...@7,@7
//depot/dev/fileA#2 - edit change 7 (text)
//depot/dev/fileB#2 - edit change 7 (text)
//depot/dev/fileC#2 - edit change 7 (text)
有关“p4 文件”的更多详细信息,请参阅命令参考:
http://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_files.html
此处提供有关文件规范的更多详细信息:
http://www.perforce.com/perforce/doc.current/manuals/cmdref/filespecs.html
【讨论】:
虽然p4 changes 命令很好,但它会显示所有更改列表,而不是所有已更改的单个文件。当人们搜索如何使用 Perforce 列出所有 文件 时,Google 会引导他们提出这个问题,因为这就是问题所在。
列出在您的@start、@stop 时间之间发生更改的文件,
p4 -c WORKSPACENAME files //Path/You/Care/About/...@2013/03/20:13:40,@2014/06/016:17:00
【讨论】:
我个人认为它更有意义(而且我相信它更快)也可以使用更改列表来代替。比如:
p4 changes /myrepository...#changelist
请注意,perforce 中的修订和变更列表不是一回事。 实际上,您有文件的修订版,例如修订版 3 表示对该文件的第三次更改。您还有更改列表,其中包含整个 perforce 仓库的地图。它们代表在您提交时映射在一起的一堆更改的修订。因此,例如,您提交 3 个文件(file1:rev 3 file2:rev 5,并且 file3 也在 rev3)并且变更集可能类似于 5200,因为您在此新提交之前已提交 5199 次。
希望对您有所帮助。
【讨论】:
你可以从p4 changes开始:
使用 p4 更改查看已提交和待处理的更改列表
# Display all changelists submitted from April 1, 2001 to the present.
p4 changes @2001/04/01,@now
从那里显示每个更改列表中的文件,请参阅“Is there a single Perforce command to display a list of all the check-ins to a file/dir along with the list of files that changed and the description?”中详细说明的p4 describe。
【讨论】: