从 TFS 数据库中 "销毁" Git 代码库

4
我正在尝试寻找与 Git 存储库的 tf destroy 相当的操作。也就是说,永久删除 Git 存储库并在数据库中恢复空间。运行 TFS 2017 U3。
我们有许多 Git 存储库,其中一些是错误添加的或现在已过时,可以丢弃。仅"删除"存储库似乎无法恢复数据库中的空间。我知道 TFS 清理运行在 5 或 7 天周期内以恢复空间。
看起来 TFS 在一个表 - dbo.tbl_GitDeletedRepository 中内部跟踪已删除的存储库,这也表明它们可以被恢复(尽管没有恢复选项)。
注意:我知道如果只剩下单个存储库,则无法删除。
另外,是否有推荐的方法来清除存储库的所有内容,压缩存储库(gc?),将其推送到 TFS 并在数据库中恢复空间?

1
你有没有找到解决这个问题的方法?我遇到了完全相同的问题,等待了应该修剪它的7天,但仍然没有修剪。我甚至有一个完全删除的数据空间,但它还没有被清理。看起来它最终会被修剪掉(我有两个已经被修剪了)。但是我有一些将近两周的数据仍然存在。 - AJ Henderson
1个回答

0
TFS集合数据库中存储了许多不同类型的文件,包括Team Foundation版本控制文件、Git文件、工作项附件、测试用例附件、构建输出等。并非所有文件都支持清理。此外,请注意,文件内容通常不会在删除后立即清理,而是由定期运行的后台作业(通常每天一次)来完成清理。

对于Git,您可以尝试运行以下命令,然后删除存储库。(如果不再需要项目,则删除整个团队项目)

git reflog expire --all --expire=now
git gc --prune=now --aggressive

有关详细信息,请参考此主题:减少git存储库大小

您还可以参考以下文章清理GIT存储库:


1
我不相信这个建议适用。它并不是关于从repo中删除内容,而是从TFS中删除repo本身。从UI中,选择设置下的版本控制,选择一个repo,右键单击,删除。最终结果是它现在成为DB [dbo]中的一个条目。[tbl_GitDeletedRepository]。该条目也保留在[dbo].[tbl_Repository]中,其[State]=4。这表明:1)它并没有真正消失(与tf destroy对于tfvc对象所做的操作不同),2)它是可恢复的,尽管没有关于如何恢复的文档。 - Ian W

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接