Python 清理巨大的Git存储库

Python 清理巨大的Git存储库,python,git,newrelic,inotify,Python,Git,Newrelic,Inotify,我的公司有一个超过15年的git存储库,它非常庞大,大约60%可以存档。我想找到这些脚本(python、perl、ruby、java等),并创建一个只包含常用脚本的新git存储库。这些脚本还具有交叉依赖性 我想到的一个解决方案是设置inotify来监视git repo中的文件,收集最近访问的脚本的名称,在几个月内收集数据,然后根据这些数据创建新的repo。不过,我不确定这会有多高效 我认为的另一个解决方案是对每个文件使用git提交日期,并删除超过5年的文件 有谁能告诉我一个有效的解决办法来清理这

我的公司有一个超过15年的git存储库,它非常庞大,大约60%可以存档。我想找到这些脚本(python、perl、ruby、java等),并创建一个只包含常用脚本的新git存储库。这些脚本还具有交叉依赖性

我想到的一个解决方案是设置inotify来监视git repo中的文件,收集最近访问的脚本的名称,在几个月内收集数据,然后根据这些数据创建新的repo。不过,我不确定这会有多高效

我认为的另一个解决方案是对每个文件使用git提交日期,并删除超过5年的文件


有谁能告诉我一个有效的解决办法来清理这个烂摊子吗?或者任何类似于NewRelic的监控文件系统的工具?

首先,不清楚您要解决什么问题。15年的git历史是否减缓了克隆的速度?如果是这样的话,也许只是做一个浅git克隆?(即,浅锥体不会下载历史记录。)

正如蒂洛指出的那样,将回购协议削减一半不会让事情变得更快

但是,如果脚本真的那么杂乱无章,那么很可能其中一些脚本需要重写、记录等等。如果你只是将脚本向前推进,很可能你也在推进许多低效率的问题。我会一次摘下一个,给他们一点爱,测试他们,等等


一个想法是:您可以使用
strace-ff-o strace.out./myscript
来计算脚本打开的其他文件。

请注意,删除60%的回购将使大小减少到大约三分之一,这听起来并不会产生很大的差异。在考虑更复杂的程序时要考虑的东西。lol。你有沼泽吗?祝你好运。你必须至少去一整年,因为你不知道每年会调用什么。手动,由一个你从未见过的人,他在一个你不知道存在的办公室里的工作你从未听说过。在那样的沼泽地里没有分配的责任。我从未见过任何一家公司,曾经,成功地清理了一个。搞砸的政治曝光太让人无法忍受了。60%的削减是巨大的。我很高兴能得到10%的折扣。听起来很疯狂,我们运气不错,只是用核武器把所有看起来不需要的东西都炸了,如果有人抱怨它们失踪了,我们就把它们带回来。显然,这取决于你的商业环境是否可行。哈哈。。这听起来是个不错的计划@AndrewC。。。是的,60%对我们来说也是巨大的。此外,在分析时,我甚至发现了.mp3、.wav、.tar.bz文件。。。这是疯狂的,是的,这是一个沼泽。你想减少Git的历史记录来解决.Git目录的克隆时间和磁盘大小,还是签出大小有问题?主要问题是,由于性能问题,我们无法很好地利用类似Git的分支。这是一堆乱七八糟的东西,而且一天比一天大。因此,我的目标是使用常用脚本保持代码库的干净和最新:)@user2896673:为什么存储库的大小会阻止分支?