トップ «前の日記(2009-08-28) 最新 次の日記(2009-09-04)» 編集

Ussy Diary


2009-09-01

[Ruby][Subversion]指定したリビジョンより後のリビジョンのファイルを一覧で出力する

少し必要になったので書きました。 xargs に渡すことを考慮して ¥0 でセパレートしています。空白のファイル名を考慮してやっていますが、実際に空白を含むファイル名に出会っていないのでうまくいくかは分かりません。

綺麗に一覧出力したい場合は puts "#{file} で。あとサブディレクトリも対象にしたい場合はオプションを -Rv にすればよさそうです。

#!/usr/bin/env ruby

r = ARGV[0].to_i
`svn ls -v`.split(/¥n/).each do |line|
  items = line.split(/¥s+/)
  rev = items[1]
  file = items[7]

  print "#{file}¥0" if rev.to_i > r && file
end

SVN 管理しているディレクトリでリビジョン 2500 以降のファイルを一覧で出力する場合。

$ ruby ~/ruby/svn_ls.rb 2500