2014-03-25 55 views
2

我們擁有一箇中央git裸機,所有用戶都從中克隆,我們將其用於用戶之間的同步。git pre-receive hook原始目錄

目前這個目錄已經變得巨大,我們想刪除它的舊歷史。

問題是,刪除歷史記錄會改變保留的提交的哈希。 我想使用「pre-receive」掛鉤來檢測用戶在更改之前是否嘗試從新克隆推送而不是舊克隆。

命令「git rev-list --max-parents=0 HEAD」應該給我哈希,如果第一次提交,問題是,當預接收執行時,我們已經在裸回購,我還需要確定什麼是起點用戶數據。

那麼,我怎麼才能知道用戶目錄是什麼?

+0

你是什麼意思的用戶目錄? –

+0

用戶目錄是用戶所做的克隆目錄,並且從 –

回答

0

您沒有關於推送起源的信息。

可能check the commit message在你的鉤子,爲了檢查一個預先定義的政策,說:

從現在開始,如果你要推到回購,你需要包括一些信息在提交消息中允許中央倉庫識別您的下游倉庫的第一次提交。

但這是需要與您的用戶溝通才能就位的事情。
這不是Git自己可以強制執行的事情。

0

感謝所有的答案。 我發現解決方案只是簡單地使用perl腳本作爲預接收,然後如果我檢查$ {ENV {PWD}}我有用戶的目錄。