今天部署了一下SVN 服務器,開始我是按照RUBY COOKBOOK上面介紹的部署的
在服務器上運行OK,但是一旦想遠程下載,失敗
原因: 遠程的SVN CO 代碼主要可以通過三種方式 1、svnserve 2、svn + ssh 3、apache ,而我在服務器上所做的三個都不是。所以不能遠程checkout代碼
解決方案: 我採用了簡單的svn server
第一步:創建svn serve的repo
mkdir -p /home/server/xiaofeng
cd /home/server/xiaofeng/
svnadmin create opengoss_wiki
第二步: 導入項目代碼:(將你的工程項目 導入到 你剛纔創建的svn 目錄下)
svn import -m 'opengoss_wiki' /home/server/xiaofeng/wiki_opengoss/
file:///home/server/xiaofeng/opengoss_wiki --force-log
第三步: 創建svn服務器
首先確定 repo 在本機上的儲存的位置,比如我準備把 repo 放在 D:\svnprojetcs\ 下,那麼在命令行運行 svnserve -d -r d:\svnprojects 就可以了。其中 -d 參數讓 svnserve 運行在後臺,-r 參數限定了 repo 在網絡上可以訪問的地址。 這樣如果網絡上其它的計算機要 checkout 這個服務器,只需要輸入
/usr/bin/svnserve -d -r /home/server/xiaofeng/
就是將我們的repo創建的svn服務器中,遠程可以通過這個svn服務器checkout代碼
第四步:修尬 conf/svnserve的配置文件
project1 目錄下有一堆目錄,進入 conf 並打開 svnserve.conf 這個文件,找到以下幾行,並把前面的註解符號 ‘#’ 去掉,注意千萬在每行的前面別留任何空格 。
anon-access = read
auth-access = write
password-db = passwd
其中 anon-access 和 auth-access 分別爲匿名和有權限用戶的權限,默認給匿名用戶只讀的權限,這很好,我們不需要改它們。但如果想拒絕匿名用戶的訪問,只需把
read 改成 none
就能達到目的。password-db 後的 passwd 則爲定義用戶名及密碼的文件路徑。這個文件默認
跟
snvserve.conf 在同一個目錄,下面看看怎麼配置 passwd 中的內容。
[user]
# harry = harryssecret
# xiaofeng =xxxxxx
harry 和 sally 這兩行分別定義了可以對 repo 進行寫入的用戶的用戶名和密碼。我們可以在下面加上自己的用戶名和密碼,比如
testsvn = tester
這樣就給了用戶 testsvn 往 repo 中寫的權限。存盤退出後,svn 服務器就算正式 可以運行了!把所有需要管理的項目都放在 /home/server/xiaofeng 這個目錄下
第五步:遠程測試chenkout 代碼
svn co svn://myserver/projectname
或者svn co svn://myserver/projectname --user xiaofeng --password xxxxxx
至此SVN 服務器部署完成