ruby – 如何将版本历史从Serena Dimensions导出到Git?
发布时间:2020-12-17 02:55:31 所属栏目:百科 来源:网络整理
导读:我在Serena Dimensions有一个存储库;我需要将它迁移到 Github.我已经弄清楚我需要使用git-fast-import,但我面临的问题是Serena Dimensions repo的元数据.如何从Serena维度导出元数据? 注意:我已经更新了下面的答案,如果你发现它有用,请选择upvote. 解决方
我在Serena Dimensions有一个存储库;我需要将它迁移到
Github.我已经弄清楚我需要使用git-fast-import,但我面临的问题是Serena Dimensions repo的元数据.如何从Serena维度导出元数据?
注意:我已经更新了下面的答案,如果你发现它有用,请选择upvote. 解决方法
这是ruby脚本
#!/usr/bin/env ruby $stdout.binmode $author = "" $date = "" require 'spreadsheet' book = Spreadsheet.open('Metadata.xls') sheet1 = book.worksheet('Sheet1') # can use an index or worksheet name sheet1.each 1 do |row| break if row[2].nil? # if first cell empty $author = row[2] + " <email@domain.com>" break if row[5].nil? $date = row[5] #puts row.join(',') # looks like it calls "to_s" on each cell's Value end $marks = [] def convert_dir_to_mark(dir) if !$marks.include?(dir) $marks << dir end ($marks.index(dir)+1).to_s end def convert_dir_to_date(dir) if dir == 'current' return Time.now().to_i else dir = dir.gsub('back_','') (year,month,day) = dir.split('_') return Time.local(year,day).to_i end end def export_data(string) print "data #{string.size}n#{string}" end def inline_data(file,code='M',mode='644') content = File.read(file) puts "#{code} #{mode} inline #{file}" export_data(content) end def print_export(dir,last_mark) date = convert_dir_to_date(dir) mark = convert_dir_to_mark(dir) puts 'commit refs/heads/master' puts "mark :#{mark}" puts "committer #{ $author } #{ date } -0700" export_data("imported from #{dir}") puts "from :#{last_mark}" if last_mark puts 'deleteall' Dir.glob("**/*").each do |file| next if !File.file?(file) inline_data(file) end mark end # Loop through the directories last_mark = nil Dir.chdir(ARGV[0]) do Dir.glob("*").each do |dir| next if File.file?(dir) # move into the target directory Dir.chdir(dir) do last_mark = print_export(dir,last_mark) end end end 我将Dimensions元数据导出到名为“Metadata.xls”的电子表格中.然后从中读取数据并通过运行脚本导入Git. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |