首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将版本历史从Serena维度导出到Git?

如何将版本历史从Serena维度导出到Git?
EN

Stack Overflow用户
提问于 2015-07-08 18:58:16
回答 2查看 3.9K关注 0票数 5

我在Serena维度中有一个存储库;我需要将它迁移到Github。我已经知道我需要使用git快速导入,但是我面临的问题是Serena维度回购的元数据。如何从Serena维度导出元数据?

注意:我已经更新了下面的答案,如果你觉得有用,请投赞成票。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-31 20:50:12

这是红宝石剧本

代码语言:javascript
复制
#!/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, month, 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

我将维度元数据导出到一个名为“Metadata.xls”的电子表格中。然后从其中读取数据并通过运行脚本导入到Git中。

票数 4
EN

Stack Overflow用户

发布于 2016-04-11 11:38:54

还有另一种方法--使用Git SVN和CM SVN桥。使用这种方法,您应该能够使用git客户端访问维度服务器。

查看此链接以获得详细信息:Cm14.2新特性:使用Git客户端访问CM服务器

同样,在Serena论坛上的这个帖子可能会很有用:将维度回购迁移到git

更新

14.3.3中有一个新特性,它允许做的更简单。

  • 尺寸CM Git连接器入门教程
  • 尺寸CM Git连接器用户指南
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31301399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档