2012-08-15 82 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