====== SVN Server for Linux ===== 文章出處:http://ssh.tw/doc/svn.txt ===== 安裝 ===== * Install svn install subversion rpm * 建立資料庫 svnadmin create /var/lib/svn chmod 2775 /home/svn * 設定 /etc/service svnserve 3690/tcp # Subversion svnserve svnserve 3690/udp # Subversion svnserve * 設定 inetd service svnserve { disable = no socket_type = stream protocol = tcp wait = no user = svn server = /usr/bin/svnserve server_args = -i -r /var/lib/svn } service xinetd restart ===== 透過 Httpd 協定使用 SVN ===== * Install httpd module install mod_dav_svn rpm * 設定 inetd 修改 user = apache * 修改檔案權限 chown apache.apache -R /var/lib/svn * 增加 /etc/httpd/conf.d/subversion.conf LoadModule dav_sn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so DAV svn SVNPath /var/lib/svn AuthType Basic AuthNmae "SVN Authorization " AuthUserFile /etc/svn/.htpasswd Require valid-user * 重新啟動 httpd service httpd restart ===== 透過 SSH 協定使用 SVN ===== * 修改 /home/svn/conf/svnserv.conf anon-access = none auth-access = write * 參數說明 anon-access 任何人都可以存取 auth-access 透過SSH認證存取 none 表示無法讀取 read 表示只能讀取 write 可寫入/讀取 ===== SVN 指令 ===== * 先設定環境變數 SVN_EDITOR=vi * 管理者指令 * svnadmin create /var/lib/svn \\ 建立 svn 資料庫 * 客戶端指令 * svn import foo svn://sss.vvv.nnn/var/lib/svn/foo \\ 建立一個新的專案 * svn co svn://sss.vvv.nnn/var/lib/svn/foo \\ 下載一個專案 * svn commit --message "modify foo.html" test/foo.html * svn ci test/xxx.html \\ 更新 xxx.html 至 SVN * svn status -vq \\ 檢視 SVN 狀態 * svn diff \\ 檢視 SVN 版本差異處 * svnlook log /var/lib/svn \\ 檢視 Log * svn log foo.html \\ 檢視 foo.html Log * svn diff --revision 1:3 foo.html \\ 比較第一版和第三版 foo.html 差異性 * svn cat --revision 2 foo.html \\ 檢視第二版本 foo.html * svn log --revision 2 foo.html \\ 檢視第二版本 foo.html 修改紀錄 * svn update --revision 1 foo.html \\ 恢復第一版本 foo.html ===== Win32 Clinet ===== Win32上可以安裝 Tortoisesvn 此程式, 這是用來存取 SVN 的 Clinet軟體 === 安裝 Tortoisesvn === 下載點: [[http://tortoisesvn.tigris.org/]] Tortoisesvn 可以透過 http, svn, svn+ssh 協定來存取 SVN , 不過使用 svn+ssh 需要安裝 ssh clinet 套件 === 安裝 plink === 下載點: [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html]] plink 只是一個程式, 無須安裝. 在 Tortoisesvn 中 SSH Clinet 指定 plink 位置, 並且加上參數 plink -l usernaem -pw password 指定之後, 就可以使用 svn+ssh 協定存取 SVN