2012-02-17 25 views
0

我目前正在尋找phpfog作爲一個小團隊維護的應用程序平臺。我喜歡git,並且非常喜歡他們讓你通過git推到phpfog平臺的事實。使用git作爲在svn中管理的代碼庫的部署機制?

我期待在託管都是目前版本SVN控制的應用程序。不幸的是,這不能改變,因爲我無法控制的許多無聊的理由。

我試圖找到一個好的工作流程,讓這個SVN倉庫和phpfog平臺之間的不斷融合。從本質上講,buildserver應該檢查SVN中是否有修改,如果是,請將它們拉下來,然後對phpfog執行更改。我有一個buildserver,它安裝了git和svn,但我遇到了一些問題。

我到目前爲止嘗試過的主要事情是在svn repo上執行git svn clone,將phpfog添加爲遠程,然後推送到該目錄。然而,這種失敗與此:

$ git push phpfog master 
To [email protected]:example.phpfogapp.com 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:example.phpfogapp.com' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

我認爲這個問題是phpfog有我預計第一克隆出一個Git倉庫,然而git svn創建自己的資源庫。

我試過了,從phpfog克隆空回購,然後嘗試做一些git svn clone回購,但這似乎並沒有工作。

這樣做的最好方法是什麼?

回答

1

林不知道這是否是最好的辦法,但這裏是你可以試試。如果你純粹部署到PHPFog和不使用回購的版本控制,你可以嘗試每次強制推。

git push --force 
+0

我只是嘗試這樣做,它似乎工作一種享受。在獲取更新的svn修訂版後,我會仔細檢查它是否能夠持續工作,但這看起來像解決方案。 – growse 2012-02-17 19:34:25

1

考慮使用SubGit

如果你有你的Subversion版本庫的本地接入,可以安裝SubGit進去:

$ subgit install $SVN_REPOS 

之後,你得到$ SVN_REPOS/git的Git倉庫,並不斷與初始SVN倉庫同步。通常您可以使用創建的Git存儲庫。

提交到SVN每一個新版本自動被轉換到合適的git的承諾,反之亦然,SubGit每次轉換推git的承諾成相應的SVN版本。

看到SubGit documentation更多信息。

相關問題