Пока я ждал ответов, я приготовил это. Хотя теперь мне нужно проверить git-ftp, как предлагает Дэвид Коста. Этот скрипт на самом деле ничего не делает: он просто дает вам команды для вашего собственного FTP.
#!/usr/bin/env ruby
if __FILE__ == $0
puts "Pulls file list between two git commits and makes ftp commands"
if ARGV.length != 2
puts "Sorry, include two hashes as arguments separated by spaces"
exit
end
hash1 = ARGV[0]
hash2 = ARGV[1]
command = "git log #{hash1}..#{hash2} --name-status --pretty=\"%p\""
results = `#{command}`
results = results.to_a[2..-1].join
lines = results.to_a
lines.each do |line|
modifyAddDelete = line[0..0]
if (modifyAddDelete=="M" || modifyAddDelete=="A")
command = "put"
elsif (modifyAddDelete = "D")
command = "delete"
end
filename = line[2..1000]
puts "#{command} #{filename}"
end
end