Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 如何处理遗留代码(和数据)?_Svn_Version Control_Project Management_Legacy - Fatal编程技术网

Svn 如何处理遗留代码(和数据)?

Svn 如何处理遗留代码(和数据)?,svn,version-control,project-management,legacy,Svn,Version Control,Project Management,Legacy,我目前正在重组我的本地Subversion存储库,方法是添加一些新项目,并将一些旧存储库中的遗留代码和数据合并到其中 当我过去这样做时,我通常会将遗留代码放在一个专用的“遗留”文件夹中,以免“干扰”新的和“结构良好”的代码树。然而,本着重构的精神,我觉得这有点错误。理论上,遗留代码将随着时间的推移进行重构并移动到新位置,但在实践中这种情况很少发生 如何处理遗留代码?虽然我很想把旧的罪恶藏在“遗留”文件夹中,再也不看它了,但在某种程度上,我希望通过强迫它生活在存储库中更“健康”的居民中,也许遗留代

我目前正在重组我的本地Subversion存储库,方法是添加一些新项目,并将一些旧存储库中的遗留代码和数据合并到其中

当我过去这样做时,我通常会将遗留代码放在一个专用的“遗留”文件夹中,以免“干扰”新的和“结构良好”的代码树。然而,本着重构的精神,我觉得这有点错误。理论上,遗留代码将随着时间的推移进行重构并移动到新位置,但在实践中这种情况很少发生

如何处理遗留代码?虽然我很想把旧的罪恶藏在“遗留”文件夹中,再也不看它了,但在某种程度上,我希望通过强迫它生活在存储库中更“健康”的居民中,也许遗留代码有一天会有更好的机会康复

(是的,我们都知道,但这是我的“乐趣”存储库,不是我的商业项目…)

更新


我并不担心跟踪各种版本的技术方面。我知道如何使用标签和分支。这更多的是一个心理方面,因为我更喜欢在存储库中有一个“整洁”的结构,这使人类更容易导航。

在subversion中,标记是一种非常便宜的操作。当您开始重构时,在常规阶段标记代码。这样,仍然可以很容易地访问旧代码(但功能代码),作为您闪亮的新代码(但已损坏的代码)的参考

所有代码总有一天会成为“遗留”代码,为什么要将其分开呢?源代码管理是按项目/分支或项目/平台/分支以及该层次结构类型进行的。谁在乎它在牙齿里有多长呢?

使用外部定义(属性)来引用您的遗留代码,就像使用第三方存储库一样


然后,您可以将重构工作与依赖项目分开,并(使用固定版本引用,即-r1234)非常明确地说明依赖项目所依赖的旧代码版本。

以下是您的免费心理分析:

您在这里有一个根深蒂固的愿望,即修复遗留代码,使其不再是遗留代码。当你把它藏起来的时候,你只是在压抑这种欲望,试图避免它,因为这是一种不舒服的感觉。如果你把它公开,两件事中的一件会发生:它最终会让你发疯,你不得不自杀,或者(更乐观地说),你会一遍又一遍地想起每一件乱七八糟的事情,直到你最终崩溃并清理干净


不要掩盖混乱;清洁它。否则它迟早会回来咬你。

这取决于你所说的遗产。如果说legacy是指“某个退役应用程序的代码,它非常糟糕,我们再也不会使用它了”,那么应该将它与当前代码分开。 如果它是您当前项目中的内容,但由其他人编写或不符合您当前的标准,请正常处理它,但在您的问题跟踪程序中标记它,以便将来重新分解。

它会有所不同。有些是“我应该尽快重构它,但它很无聊,所以我一直推迟它”,有些是“我十年前写的,希望保留它,以防我需要再次做类似的事情,或者我只是怀旧,想看看旧代码”。。。。有些是“在将来的某个时候,当我有很多空闲时间的时候,我想重新开始这个项目,但我不确定什么时候,甚至是否会发生,但我想保留代码,以防万一”。