【问题标题】:SVN best practices for project with lost revisions修改丢失项目的 SVN 最佳实践
【发布时间】:2011-11-30 13:48:34
【问题描述】:

历史: 我被要求编辑一些代码。问题是没有人能找到我们正在运行的代码。到目前为止,我们得到的最接近的是一个 jar(仅包含 .class 文件)。我尝试使用 JAD 进行反编译,但遇到了问题。然后我尝试使用 JADRetro 然后 JAD 进行反编译(这效果更好,到目前为止我只看到一个问题......但我仍然担心代码的准确性)。 对于未来的努力,我想将“代码”放入 SVN。但我想知道如何最好地做到这一点。我有这个反编译的代码(缺少所有质量未知的 cmets)并且我有一个更早版本的实际源代码(我们实际上并没有运行)。

问题: 鉴于一个版本是带有 cmets 的良好原始源代码,但它相当旧(而不是我们正在运行的版本),我将如何最好地将代码放入 SVN;另一个版本不能正确重新编译(因为至少有一个反编译错误)并且缺少任何 cmets(正在反编译)但我们正在运行(有点,因为它没有正确反编译)。

我可以签入原始代码,但是如何签入“下一个版本”(这是后来的反编译代码,并且有很多更改(添加了类、更改了代码、重命名了类、移动了类。 ...))。如果我签入第一个版本,然后删除所有内容并签入下一个版本(因为我没有对这些版本中的任何一个进行编码)我担心这会混淆/损坏 SVN。处理此类取证修订的最佳方法是什么?

【问题讨论】:

    标签: svn tags branch


    【解决方案1】:

    最好将反编译代码签入为“下一个版本”。是的,会有很多变化,但无论如何都会有很多变化。

    但是,SVN 将包含整个项目历史记录。是的,历史会有差距,但无论如何,SVN是用来追踪历史的。因此,删除旧版本并从头开始不是一种选择。

    【讨论】:

    • 我不明白我会怎么做。通常,您签入代码并进行更改。在这里,我有两个“快照”。如何签入第二个快照?我不会在两个版本之间进行编辑、添加、删除、移动、重命名。这就是为什么我提到签入,删除所有内容,再次签入(我知道那是邪恶的)。
    • 我假设,你有相同的目录结构和相同的文件名。然后您可以简单地签入,用新文件覆盖旧文件,然后将它们签出回 SVN。但是,即使文件名不同 - 那么是的,签入,删除所有文件,复制新文件并签出。
    • 问题是你的假设是错误的。目录结构与文件名基本相同,但不完全相同......这是一种皇家痛苦。我想对于那些不改变位置/名称的人,我可以做一个 mv(用较新的快照踩踏旧的“版本”)并签入新版本。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2010-09-05
    相关资源
    最近更新 更多