从linux迁移svn数据到windows 将svn数据库从linux迁移到windows的VisualSVN
從linux遷移svn數(shù)據(jù)到windows 將svn數(shù)據(jù)庫(kù)從linux遷移到windows的VisualSVN
近期換服務(wù)器,要將svn數(shù)據(jù)遷移。原來(lái)是linux系統(tǒng)上的svn服務(wù)器,新的服務(wù)器為windows2008 server,便使用了免費(fèi)的VisualSVN,簡(jiǎn)單方便,重要的是使用視圖操作,直觀易懂。但是在數(shù)據(jù)遷移上,在網(wǎng)上搜索了半天都沒(méi)有現(xiàn)成的例子可借鑒,便自己手動(dòng)嘗試。
在linux上也是目錄結(jié)構(gòu),先把項(xiàng)目的整個(gè)目錄拷過(guò)來(lái),如repository目錄下的項(xiàng)目project1的全部文件,只要文件沒(méi)有漏,而且拷的過(guò)程中沒(méi)有對(duì)這個(gè)目錄做提交操作,那把整個(gè)目錄拷到VisualSVN的Repositories目錄下后,在主界面的左側(cè)菜單欄Repositories右鍵刷新就可以看到原來(lái)項(xiàng)目的數(shù)據(jù)已經(jīng)遷移過(guò)來(lái)了。在項(xiàng)目名稱右鍵選Browse,就可以在瀏覽器上查看該目錄的內(nèi)容。當(dāng)然,新的庫(kù)要先創(chuàng)建用戶,用該用戶的驗(yàn)證信息登錄就可以看到新的項(xiàng)目數(shù)據(jù)了。
這期間出了個(gè)問(wèn)題,刷新項(xiàng)目后點(diǎn)擊提示版本XXXX找不到,無(wú)法打開(kāi)!開(kāi)始以為是拷文件的時(shí)候漏了,后來(lái)想到,既然提示是版本找不到,是不是某個(gè)地方記錄了版本信息,而那個(gè)版本對(duì)應(yīng)的文件沒(méi)有呢?循著這個(gè)思路,去項(xiàng)目目錄下查找,果然找到了版本的數(shù)據(jù)文件,在project1\db\revs目錄下,按照版本號(hào)的第一個(gè)數(shù)據(jù)組織,我提示的是缺少版本9383,就到9的文件夾下查找,果然沒(méi)有9383的文件!而在project1\db\revprops\9\目錄下,也沒(méi)有該文件。那么,哪里加載最新的版本信息呢?返回到db目錄下,有個(gè)recent的文件,用記事本打開(kāi),里面只有一條數(shù)據(jù),就是9383!把這個(gè)改成較早的最后的版本號(hào),重新刷新項(xiàng)目,可以打開(kāi)了!那個(gè)開(kāi)心啊:)回到原來(lái)的服務(wù)器上查看日志,原來(lái)在拷文件的期間,由于項(xiàng)目比較大,費(fèi)了不少時(shí)間,而這期間居然有人提交了代碼!導(dǎo)致部分?jǐn)?shù)據(jù)不一致,因而遷移到新服務(wù)器上時(shí)打不開(kāi)!因此在遷移數(shù)據(jù)期間不能對(duì)該項(xiàng)目有任何操作。
導(dǎo)完數(shù)據(jù),到用戶和權(quán)限數(shù)據(jù)了。在linux下,儲(chǔ)存用戶的文件名為svn_auth_file,而在VisualSVN的根目錄Repositories下,保存用戶信息的文件為htpasswd,數(shù)據(jù)的組織方式是一致的,都是每個(gè)用戶一行,用名值對(duì)的方式保存,如zz=xxxxxxx,這就好辦,直接拷過(guò)來(lái)就行了。然后在visualSVN的菜單users下刷新就可以看到導(dǎo)入的用戶了。不過(guò)這樣有個(gè)問(wèn)題,可能是不同系統(tǒng)下密碼的加密方式不一樣還是其他原因,有的原來(lái)的密碼不行了-_-!只要重設(shè),好在visualSVN好操作,右鍵用戶名set password就行了。
權(quán)限數(shù)據(jù)更重要,哪個(gè)目錄對(duì)哪個(gè)用戶開(kāi)放了什么權(quán)限,要是重設(shè)是個(gè)繁瑣耗時(shí)的工作,即使在視圖操作的方式下。而在linux下,用一個(gè)文件svn_access_file就儲(chǔ)存了所有的信息,visualSVN下沒(méi)找到類似的文件。于是先在visualSVN下給某個(gè)用戶開(kāi)放某個(gè)目錄的權(quán)限,看看哪個(gè)文件改變了。通過(guò)這個(gè)操作,發(fā)現(xiàn)conf目錄下有個(gè)VisualSVN-SvnAuthz.ini的文件,記錄了該項(xiàng)目下各目錄的權(quán)限分配信息,只是方式有所不同,原來(lái)linux下是指明哪個(gè)項(xiàng)目的,所有目錄前有project1:這樣的信息,現(xiàn)在只針對(duì)本目錄,就去掉了項(xiàng)目名,把linux下關(guān)于該目錄的所有信息拷到這個(gè)ini文件中,去掉項(xiàng)目名,保存,然后測(cè)試,發(fā)現(xiàn)是可以的!雖然該文件提示不要手動(dòng)變更,但是改了一樣可以:)
總結(jié)
以上是生活随笔為你收集整理的从linux迁移svn数据到windows 将svn数据库从linux迁移到windows的VisualSVN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux svn服务器启动停止命令
- 下一篇: linux下svn命令大全