2011-11-07 167 views
3

我们为我们的Git存储库(它将作为远程存储库在云上)设置配额限制。我们必须在此限制内限制存储库的大小。Git存储库大小和git推送大小

为此,我试图在远程存储库的预接收钩子中获取'git push'的大小。如果我得到push的大小,我会用这个push的大小来总结当前的git repo的大小,以查找push后的总存储大小。然后,如果总大小超过配额或接受推送,如果大小不超过配额,我可以限制推送。

基本上,我需要同时计算git远程存储库的大小以及git push的大小。

+2

您是否有拒绝推送后的行动计划? git rm不会从对象中删除大文件,只能从文件系统中删除,所以下一次尝试再次推送它们。 – deejayy

回答

0

来实现,这将是最可靠的办法:

  • 推到本地回购
  • 检查推
  • 后,当地的回购协议的大小,如果大小符合您的约束条件, 然后推到远程回购的可能。
+0

让我们考虑一下A公司在云中托管1 GB的git仓库。用户B在这个云中创建一个git仓库并将其克隆到他的本地机器中。在他工作之后,B将他的改变推向了云端的远程回购。 公司A想要验证存储库配额。如果用户未通过此推送达到配额,则无问题。否则,推动应该被公司拒绝。在这种情况下,公司将如何访问用户的本地回购? – Mani

+0

@Mani:你可以在云上创建另一个临时回购,B可以推到,A可以克隆,检查大小并推送给官方回购? – VonC