2012-08-15 81 views
0

我们目前有两个版本库。版本库A约为100M。版本库B约为3G。 我们有一种情况,其中回购B的开发者配置了一个指向回购A的远程并推送了一个分支(称之为repo_B_branch)回购A.git推错版本库

现在,这增加了回购A到3G +的大小。不好。

回购A已将receive.denynonfastforward设置为true。难道这不应该否认在repo A上创建repo_B_branch吗?不应该阻止推动与主人不共享祖先的分支?

+0

它们是否都具有相同的'空白'根提交? – 2012-08-15 15:10:50

+0

不,他们不共享相同的房间提交。我不确定'空白'是什么意思。在repoA的根提交和repoB的根提交中添加的文件完全不同。 – 2012-08-15 15:13:58

+0

如果由于某些企业管理者而在DAG根部的sha1最终完全相同,例如,他们克隆/复制一个空的回购(初始提交持有企业知识产权和许可证文件),然后所有回购你将能够链接到任何其他.... – 2012-08-15 15:19:56

回答

0

denynonfastforward防止用没有现有分支历史记录的新版本的分支替换现有分支。如果开发人员推送了一个尚未存在于存储库中的分支,使其成为“新”分支,那么不管它是否拥有与存储库中的其他任何东西相同的祖先(如果它没有共同祖先,那么它会被创建为一个孤儿或不连贯的分支)。

+0

是的,情况就是如此。用户推了一个新的分支。有没有办法阻止这种推动? – 2012-08-15 15:27:18

+0

不是我所知道的,在接受它之前(更新或更新后的钩子),缺少写入钩子来检查正在推送的内容。 – twalberg 2012-08-15 15:43:01