0
是否有人有代碼(最好在Win32上運行),它將顯示Perforce分支中發生的所有文件重命名和移動的歷史記錄?報告所有文件重命名並在Perforce分支中移動
是否有人有代碼(最好在Win32上運行),它將顯示Perforce分支中發生的所有文件重命名和移動的歷史記錄?報告所有文件重命名並在Perforce分支中移動
因爲你沒給很多有關環境的信息,我做出以下假設:
說到這裏,我們來看看我們想要的:在分支中對所有文件進行重命名和移動。 的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/...
)有關如何使這更容易的任何建議,歡迎。
你能定義你的Win32環境多一點嗎?您是否願意/能夠安裝例如p4ruby還是其他一些p4 API? – jhwist 2010-09-09 13:35:12