是否有人会在Perforce分支中显示所有文件重命名和移动的历史记录(最好是在Win32上运行)?
答案 0 :(得分:1)
由于您没有提供有关您的环境的大量信息,因此我做了以下假设:
话虽如此,让我们看看我们想要什么:所有重命名和分支内文件的移动。 P4 knowledge-base告诉我们重命名(以及移动,就此而言)由
组成并在更改中指定为“移动/添加”操作。我已经攻击了一个Ruby脚本,该脚本查看给定分支的所有更改(p4 changes //branch/...
),并查看每个更改外观(p4 describe @change
)是否存在“移动/添加”操作并发出文件。
#!/usr/bin/env ruby
require 'P4'
branch = ARGV[0]
p4 = P4.new
p4.connect
begin
p4.run_changes("-i", branch).each do |change|
p4.run_describe(change["change"]).each do |c|
files = c["depotFile"]
files.each do |f|
if c["action"][files.index(f)] =~ /move\/add/
puts "File #{f} was RENAMED in change #{c["change"]} (original: #{c["fromFile"][files.index(f)]})"
end
if c["action"][files.index(f)] =~ /integrate/
# TODO find a corresponding delete in the same changelist, which would
# this mark as a 'move' for P4 versions prior 2009.1
puts "File #{f} was INTEGRATED in change #{c["change"]}"
end
end
end
end
rescue P4Exception
p4.errors.each { |e| $stderr.puts(e) }
raise
end
p4.disconnect
C:\> ruby p4report.rb //some/perforce/branch/...
更多说明:
//depot/...
)上使用,这不是很优雅/ LI>
欢迎任何关于如何使这更容易的建议。