【问题标题】:Any tools to analyze divergent code, get it into sourcecontrol (Subversion)任何分析不同代码的工具,将其放入源代码控制(Subversion)
【发布时间】:2009-11-11 07:41:26
【问题描述】:

假设您接管了一些存在于不同版本中的代码,没有源代码控制(可能是一些备份)。是否有一些工具可以让您分析关系(不仅仅是差异),或者让您在源代码控制中重建历史?

如果将其加载到 Subversion 中,是否可以更好地将最佳版本指定为基本版本,将其他版本指定为分支?

您必须从一开始就做好吗?喜欢在最新版本之前加载备份?

如果您后来发现一个分支中的一个文件是另一个分支中文件的重命名版本怎么办?

目的当然是随着时间的推移将代码合并到代码库中,或者在适当的时候使用来自不同分支的功能,而不必在开始工作之前花费大量时间。

(11 月 13 日添加) 有没有比 Subversion 更好的版本控制系统? IE。查找关系,在文件进入系统后创建它们并支持一般合并?

【问题讨论】:

    标签: svn branch merge


    【解决方案1】:

    听起来您想将材料导入您的存储库,以便“模拟”如果历史一直处于版本控制之下(例如,提交文件的版本 1,然后是版本 2 等)。

    我认为这个练习不值得你花时间;相反,由于您的首要任务应该是尽快将所有内容置于版本控制之下,我认为您应该将所有旧代码放入一个“存档”文件夹中,然后将其与当前代码一起导入。这样一来,至少您将所有内容都保存在存储库中,并且可以从那里开始工作。

    不要浪费时间创建虚假的修订版——从长远来看,这不会给你带来任何好处。

    【讨论】:

    • 重要的是关系——分支/合并历史。 (不是文件/修订历史)。是的,我不想预先做很多手动工作
    【解决方案2】:

    您可以尝试像 Bazaar、Mercurial 或 Git 这样的 DVCS。

    在每个版本的代码中初始化一个 repo,将所有代码添加到第一次提交,然后将不同的版本合并到一个分支中。在 DVCS 中,每个分支都可以与任何其他分支合并。

    结果可以导入subversion,如果你想保留历史差异,否则你可以删除DVCS信息并将合并的结果检查到你的SVN中。

    【讨论】:

    • Subversion 的优势在哪里?我没有任何特别的理由使用分布式源代码控制。在我最了解的 VSS 中,我认为很难合并以前没有分支的东西。虽然对我来说主要问题是将信息纳入源代码控制。
    • 正是因为在 dvcs 中你可以合并之前没有分支的树。这种灵活性可以满足这里的需求。他不需要完全改变,但对于这个任务,他可以额外使用 dvcs,然后删除 dvcs-metadata。工作完成,SVN 中的源代码,准备就绪。
    • 但这与 dvcs 的概念没有任何关系,不是吗?我也不想提前做这项工作。
    • 当然可以,因为它是 dvcs 概念,它允许您将所有内容与所有内容合并 - 因此它允许您将目录作为不同的分支处理,可以合并。您不需要从 svn do dvcs 进行更改,而是使用 dvcs 作为工具来帮助您完成任务。
    猜你喜欢
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 2012-07-17
    相关资源
    最近更新 更多