2008-10-06 47 views
4

所以我有這個本地SVN回購,我正在使用我的開發工作在一個特定的項目,我也有一個SVN回購安裝在客戶媒體寺帳戶進行更安全的備份。從本地服務器同步SVN回購?

我在我的筆記本電腦上做了所有的事情,所以我並不總是有互聯網連接(因此是本地SVN),所以我想知道是否有簡單的方法來推動我對本地回購到服務器回購?

回答

1

你應該做一個SVN合併。

3

我知道這是一個延伸,但是你試圖做的並不一定適合Subversion,因爲它是一個集中的版本控制系統(只有一個存儲庫的主副本)。

Git是一個分佈式版本控制系統,可以讓你離線提交,差異和合並。你應該檢查一下。

+0

使用git-svn,你也可以提交本地repo(跟蹤遠程SVN),然後把差異推送到SVN倉庫。 – 2008-12-10 16:25:16

1

您可以考慮使用Bazaar作爲本地存儲庫,然後提交給中央SVN服務器。 Bazaar有一些很好的插件可以將分佈式源代碼控制集成到現有的客戶端 - 服務器源代碼控制系統中。

1

如果您遇到SVN服務器,但希望本地存儲庫和兩個之間輕鬆同步,您應該使用SVK。它創建一個你可以分支的本地鏡像;提交鏡像合併回到主幹。

0

所以我想出的解決方案是使用svnadmin dump/load函數。我主要在一個Ruby on Rails項目中使用這個項目,我正在部署到一個媒體帳戶。這個想法是,當一個新版本的站點準備好部署時,簽入到本地存儲庫的代碼將被轉儲到一個文件中,然後該文件將通過ssh被複制到服務器。一旦在服務器上,我將使用ssh執行一個shell腳本,它將加載到服務器SVN中。然後,我將檢出該服務器代碼,將其複製到rails應用程序目錄,運行遷移,然後重新啓動服務器。

思想是,通過使用這種方法,我可以確保當前正在生產的代碼反映服務器SVN回購中的最新版本。

感謝Fernando提供鏈接到轉儲/加載功能。

對於記錄,在我發佈此問題之前,我確實評估過Git解決方案,並且由於我使用NetBeans作爲此項目的IDE(NetBeans具有非常棒的Ruby/RoR插件),因此Git插件NB似乎有點兒車,並沒有工作很正確,而SVN插件是堅如磐石的。