僅供參考,我在服務器上運行CentOS 5.5。如何通過cron同步Git-Svn克隆?
我正與其他幾位開發人員一起開發分佈式項目,我們正在使用Git來管理我們的存儲庫。所有東西都在Gitorious上生活,並且工作得很好。但是,我們需要在我們的存儲庫中有一個分支,以便與外部Subversion回購庫保持同步 - 就像Git中的「供應商分支」一樣。原因是:我們正在基於現有的開源項目(WordPress)構建幾件事情,並希望我們的工作副本繼承它們在其自己的回購庫中發佈的任何錯誤修正。
我已經設置了一些東西,以便我們有一個名爲「wordpress」的獨立分支,可以與現場Subversion回購庫保持同步。要做到這一點,它是那樣簡單:
git checkout wordpress
git svn rebase
git gc
git push origin wordpress
這些命令:
- 確保我們在WordPress的分支
- 重新同步與實時svn的分支
- 運行垃圾收集(否則庫逐漸變得難以管理大)
- 將更新的分支推送到我們在Gitorious上的託管存儲庫
每當WordPress主幹更新時運行這四個命令都很簡單,但這很麻煩,而且很麻煩。我很樂意將其設置爲cron工作,但我似乎無法弄清楚如何!
我寫了一個名爲wordpress.sh
腳本,並將其放置在/etc/
文件夾在服務器上:
#!/bin/bash
cd /var/www/git/wordpress
git checkout wordpress
git svn rebase
git gc
git push origin wordpress
運行該腳本就好了。我可以SSH進入我的服務器,以root身份登錄,並輸入. /etc/wordpress.sh
,一切正常。但是我怎麼能設置這個以使cron能爲我做些事情?
我試過手動將它添加到crontab(失敗),在CentOS中使用Webadmin界面將它添加爲小時腳本(失敗),現在我不知所措!我的系統日誌要求,它的發射(下面登錄):
Feb 4 07:00:01 ---- crond[27745]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 07:01:01 ---- crond[27773]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 08:00:01 ---- crond[29095]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 08:01:01 ---- crond[29142]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 09:00:01 ---- crond[29708]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 09:01:01 ---- crond[29718]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 10:00:01 ---- crond[30328]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 10:01:01 ---- crond[30337]: (root) CMD (run-parts /etc/cron.hourly)
但沒有真正發生,除非我登錄並手動運行該腳本。想法?
我也試過使用命令`。/etc/wordpress.sh`在cron作業中,但沒有做任何不同的事情。 – EAMann 2011-02-04 15:41:41
對於那些對如何最終來到解決方案(基於@ ygram的建議)進行更長時間討論感興趣的人,請查看我博客上的後續文章:http://eam.me/e1 – EAMann 2011-02-15 20:41:29