所以我有這個本地SVN回購,我正在使用我的開發工作在一個特定的項目,我也有一個SVN回購安裝在客戶媒體寺帳戶進行更安全的備份。從本地服務器同步SVN回購?
我在我的筆記本電腦上做了所有的事情,所以我並不總是有互聯網連接(因此是本地SVN),所以我想知道是否有簡單的方法來推動我對本地回購到服務器回購?
所以我有這個本地SVN回購,我正在使用我的開發工作在一個特定的項目,我也有一個SVN回購安裝在客戶媒體寺帳戶進行更安全的備份。從本地服務器同步SVN回購?
我在我的筆記本電腦上做了所有的事情,所以我並不總是有互聯網連接(因此是本地SVN),所以我想知道是否有簡單的方法來推動我對本地回購到服務器回購?
您可能會想要svn merge
版本之間的版本庫。
關於如何做到這一點,有一些很好的教程。看一看http://blog.red-bean.com/sussman/?p=92或http://subversion.tigris.org/faq.html#multi-merge就可以很好的介紹這個主題
你應該做一個SVN合併。
我知道這是一個延伸,但是你試圖做的並不一定適合Subversion,因爲它是一個集中的版本控制系統(只有一個存儲庫的主副本)。
Git是一個分佈式版本控制系統,可以讓你離線提交,差異和合並。你應該檢查一下。
您可以考慮使用Bazaar作爲本地存儲庫,然後提交給中央SVN服務器。 Bazaar有一些很好的插件可以將分佈式源代碼控制集成到現有的客戶端 - 服務器源代碼控制系統中。
如果您遇到SVN服務器,但希望本地存儲庫和兩個之間輕鬆同步,您應該使用SVK。它創建一個你可以分支的本地鏡像;提交鏡像合併回到主幹。
所以我想出的解決方案是使用svnadmin dump/load函數。我主要在一個Ruby on Rails項目中使用這個項目,我正在部署到一個媒體帳戶。這個想法是,當一個新版本的站點準備好部署時,簽入到本地存儲庫的代碼將被轉儲到一個文件中,然後該文件將通過ssh被複制到服務器。一旦在服務器上,我將使用ssh執行一個shell腳本,它將加載到服務器SVN中。然後,我將檢出該服務器代碼,將其複製到rails應用程序目錄,運行遷移,然後重新啓動服務器。
思想是,通過使用這種方法,我可以確保當前正在生產的代碼反映服務器SVN回購中的最新版本。
感謝Fernando提供鏈接到轉儲/加載功能。
對於記錄,在我發佈此問題之前,我確實評估過Git解決方案,並且由於我使用NetBeans作爲此項目的IDE(NetBeans具有非常棒的Ruby/RoR插件),因此Git插件NB似乎有點兒車,並沒有工作很正確,而SVN插件是堅如磐石的。
使用git-svn,你也可以提交本地repo(跟蹤遠程SVN),然後把差異推送到SVN倉庫。 – 2008-12-10 16:25:16