是否应从源控制存储库中删除旧/遗留/未使用的代码?

时间:2010-05-12 01:51:04

标签: version-control

我在多个项目中遇到过这种情况。随着代码库的发展,一些库,应用程序和组件被放弃和/或弃用。

  1. 大多数人都喜欢让他们进去。通常的说法是代码并没有真正占用任何空间,只要再次需要它就可以保持不变。
    因此,存储库慢慢变成遗留代码的污水池,很难找到任何东西 保持旧代码的另一个理由是新人不会试图实现过去实现的东西,但是没有完全解决。

  2. 有些人会删除旧代码,因为它会造成混乱,为新人提出更多问题,而且无论如何都可以恢复代码库的任何旧快照。
    但是,如果您不知道在哪里查找,则无法始终找到旧代码,因为我所知道的(通用)VCS都不提供对整个存储库的搜索,包括所有历史修订,以及搜索旧文件的唯一方法是检查已删除文件所在的修订版。

  3. 什么是存储库管理的好方法?

6 个答案:

答案 0 :(得分:16)

  1. 删除它。这很混乱 - 如果它不起作用或令人困惑,那就更好了。
  2. git grep或类似的。

答案 1 :(得分:10)

未使用的代码会占用人们的空间。未使用和不必要的代码使人们的心理模型变得混乱,并且更难理解存储库中的所有内容(“哦,不要担心,我们不再使用它了”) 。在这些情况下从存储库中删除代码是很好的,但是在wiki或类似文件中记录已删除的旧应用程序/组件/等,删除它们的原因以及可以找到它们的位置可能会有所帮助。

答案 2 :(得分:3)

我们有一个分支,我们将陈旧的库和项目复制到从trunk中删除之前。

repo
  +- trunk
  +- tags
  |   +- old-code
  |       +- project1
  |       +- project2
  |          ...
  +- branches

虽然,老实说,我真的不会想到我们实际上已经回到旧项目并复活它的时候......

答案 3 :(得分:2)

在我个人的Subversion存储库中,它充满了废弃的项目,我在/ attic目录下移动我不想再看到的东西。我也可以删除它们,但是,以多项目根目录中的一个额外目录为代价,当我想找到我认为不再需要的东西时,我不必去寻找历史。< / p>

答案 4 :(得分:2)

删除它。如果它没有测试,你甚至不知道它是否仍然有效。如果它的任何部分有用,请将它们拉出来。旧代码总是阻止你。如果你不能轻易地重建旧代码中的功能,要么你不应该替换它,要么你的新代码不好。

对于带来新成员的项目:你拥有的代码越多,他们学习绳索所需的时间越长,进行更改的难度就越大。克鲁夫特只会造成混乱。旧代码只对那些有效的代码有意义。

对于我的个人项目,我习惯将失败的想法移到_archive文件夹中。该文件夹仅供参考和以后尝试使用。如果是大规模消费的项目,他们将立即删除,以最小化代码基数。

答案 5 :(得分:1)

分支原始代码。清理主/主干和未来版本。

遗留代码适用于任何可能需要或不需要它的人。

至于搜索文件,我知道git可以做到这一点。但一般来说,您只需搜索任何存储库的提交日志

git log --all -- legacyfile

然后在分支中找到该文件:

git branch --contains $filehash

编辑只是想在几个场合添加它,我需要回去查找其他项目中相当陈旧的文件,大概5年或10年左右。我非常感激它仍在那里。