我在多个项目中遇到过这种情况。随着代码库的发展,一些库,应用程序和组件被放弃和/或弃用。
大多数人都喜欢让他们进去。通常的说法是代码并没有真正占用任何空间,只要再次需要它就可以保持不变。
因此,存储库慢慢变成遗留代码的污水池,很难找到任何东西
保持旧代码的另一个理由是新人不会试图实现过去实现的东西,但是没有完全解决。
有些人会删除旧代码,因为它会造成混乱,为新人提出更多问题,而且无论如何都可以恢复代码库的任何旧快照。
但是,如果您不知道在哪里查找,则无法始终找到旧代码,因为我所知道的(通用)VCS都不提供对整个存储库的搜索,包括所有历史修订,以及搜索旧文件的唯一方法是检查已删除文件所在的修订版。
什么是存储库管理的好方法?
答案 0 :(得分:16)
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年左右。我非常感激它仍在那里。