2014-01-17 131 views
2

我設置了Subgit SVN和Git之間的同步。
Subgit運行守護進程來偵聽SVN更新。如何掛鉤SVN更新與子集

我想在守護程序合併SVN到Git存儲庫後運行一些東西,
我該怎麼辦?

+0

能否請你說明你要通過,要實現什麼?你在不同的機器上託管你的Subversion和Git倉庫嗎? – vadishev

+0

@vadishev這是故事。我試圖讓Gerrit和Subgit一起工作。首先,我用Subgit設置一個git倉庫A來同步一個遠程SVN倉庫。然後我從A製作一個Git鏡像B以供Gerrit使用。到目前爲止,我使用Gerrit replcation插件將鏡像B推送到A,但通過命令'git remote update'手動更新B從A到SVN的合併。如果Subgit從SVN更新並且調用B自動更新,那將是完美的。 – jmuok

回答

2

SubGit 2.0.x在從Subversion存儲庫獲取新修訂版時不會觸發任何掛鉤。有一個功能要求,隨時upvote它:SGT-360

作爲一種解決辦法,我建議你使用一個定期運行以下命令cron作業:通過運行以下命令遠程

subgit fetch <GIT_REPO> 
SubGit <version> 
Translating SVN revisions to Git commits... 
    rN => <hash> 
Done. 

您也可以觸發針對Git SVN同步:

$ cd <working_tree> && git push <remote> +:refs/subgit/command/fetch-sync 
remote: Synchronizing SVN and Git... 
remote: translating SVN revisions to Git commits... 
remote:  translated revision N to commit <hash> 
remote: ... done. 

可以通過解析其輸出來瞭解SubGit是否獲取了新的SVN修訂版。

如果你打算使用這種週期性的工作,這是有道理的禁用後臺翻譯的過程,因爲它是不再需要:

$ edit <GIT_REPO>/subgit/config 
# [daemon] 
#  idleTimeout = 0 
$ subgit install <GIT_REPO> 
+0

我無法弄清楚你的例子中正確的GIT_REPO參數,但是一個簡單的'subgit fetch''爲我做了訣竅。 – userfuser