我試圖設置一個git倉庫的darcs鏡像。我有一些工作正常,但有一個重要的問題:如果我將一大堆提交到git倉庫,這些提交合併到一個darcs補丁集中。我真的想確保每個git commit都被設置爲一個darcs補丁集。我敢打賭,這可以通過做一些git fetch
然後審問遠程分支的本地副本,但我的git fu不能勝任這項工作。如何從遠程git存儲庫一次提交一個提交?
這是我現在使用的(KSH)代碼,或多或少:
git pull -v # pulls all the commits from remote --- bad!
# gets information about only the last commit pulled -- bad!
author="$(git log HEAD^..HEAD --pretty=format:"%an <%ae>")"
logfile=$(mktemp)
git log HEAD^..HEAD --pretty=format:"%s%n%b%n" > $logfile
# add all new files to darcs and record a patchset. this part is OK
darcs add -q --umask=0002 -r .
darcs record -a -A "$author" --logfile="$logfile"
darcs push -a
rm -f $logfile
我的想法是
- 嘗試
git fetch
獲得遠程分支的本地副本(不知道到底需要什麼參數) - 以某種方式詢問本地副本以獲取自上次鏡像操作以來每次提交的哈希值(我不知道該如何操作)
- 通過所有的哈希值,拉動只是承諾並記錄相關的補丁集循環(我敢肯定,我知道如何做到這一點,如果我得到我的手哈希)
我歡迎任何幫助去肉在以上的情況或關於的建議我應該嘗試。
想法?
正如一個提醒,有幾個新的答案,你還沒有評論。 (顯然其中一個我認爲其實很好地回答你的問題;)) – 2011-05-16 09:58:24