svn版本管理工具的使用

安裝參考http://www.cnblogs.com/macula/archive/2012/02/12/2347637.htmlhtml

主要的使用步驟以下:linux

創建版本管理庫:shell

svnadmin create mobile服務器

(mobile爲版本管理庫名稱,位置在當前登陸用戶的主目錄下,如我正在使用svnadmin用戶,則路徑爲/home/svnadmin/mobile,當如root用戶不使用/home路徑而是直接是/root/mobile)
將末版文件導入項目(這個命令用於把一個文件夾下的內容整個歸入版本前面建立的管理庫中)svn

svn import mytree file:///home/svnadmin/mobile/  -m "Initial import"post

mytree爲要導入的文件所在的文件夾路徑,file:///....爲進行過svnadmin create後的目錄 -m 'xxx'會使得'xxx'做爲日誌記錄加入日誌中spa

析出文件命令行

每次有一個用戶加入到開發時,須要先執行一次svn checkout命令將文件從版本管理庫中導出到制定工做目錄(這個目錄下采用ll命令能夠看到有.svn文件,該文件就是聯繫svn版本管理的文件)日誌

svn checkout file:///home/svnadmin/www/ code

第一次須要析出 此後每次修改前svn update便可,在工做目錄下svn update後自動將文件夾內文件更新到最後修改的版本 通常開發時都是在最新版本下作修改

提交更改

svn commit -m 'xxx'

便可,-m 後的'xxx'仍然會加入到日誌中,用於後續使用svn log查看日誌時查看,通常都會加入該版本相關的說明性內容

導出裸文件夾
svn export ~/www  ~/default   //須要強制時加--force參數

就能夠把~/www(這是一個工做目錄)中的版本(沒有指定參數時默認該文件夾下的最新版本)導出到後面制定的目錄下,且不包含.svn文件也就是「裸文件夾」。

svn在create命令時獲得的那個文件夾下(上例中是mobile文件夾)還有不少文件夾,好比hooks文件夾下能夠放置與不少事件相關的處理腳本(好比名稱爲post-commit的腳本能夠在每次一個提交發生後被執行 ),它們能夠用於在提交等事件發生時進行文件夾同步等後續操做。

注意,這些腳本是根據名稱來決定什麼時候被觸發執行的,通常剛安裝的時候每一個腳本都有一個.tmpl的後綴,此時是不會被執行的。

腳本所使用的語言能夠隨意,最終執行所使用的解釋器經過第一行指定,安裝時那些默認腳本里是#!/bin/sh,也就是shell腳本。

當使用shell腳本時注意要使用的命令必須給出完整的路徑名,好比咱們日常在linux下命令行直接svn xxxx習慣了可是實際上它調用了/usr/bin/svn程序,在腳本中若是要使用須要把/usr/bin/svn完整給出或定義變量

eg.一個完成日誌輸出和同步到指定文件夾的post-commit腳本

SVN=/usr/bin/svn
REPOS="$1"
REV="$2"
ECHO=/bin/echo
$ECHO `whoami`,$REPOS,$REV >> /home/svnadmin/www/hooks/svn_hook.log
"$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf
export LANG=en_US.UTF-8
$SVN update /home/svnadmin/www/www --no-auth-cache

注意$ECHO `whoami`,$REPOS,$REV >> /home/svnadmin/www/hooks/svn_hook.log中>>是追加而>重定向每次都會清除原文件內容再錄入

$SVN update /home/svnadmin/www/www --no-auth-cache 用於同步更新的版本到/home/svnadmin/www/www文件夾,--no-auth-cache可使得每次同步會當即執行

而後注意須要給予這些腳本可執行的權限。

有關svn的用戶權限設置能夠參見http://www.cppblog.com/sureandrew/articles/94748.html

遠程使用要求服務器上開放3690端口的訪問

若是開放,在本地pc上使用svn checkout svn://123.123.123.123/projectname localdirectory --username 用戶名 --password 密碼

便可(後面用戶名和密碼可選,projectname是遠程服務器上開放的版本庫名稱,localdirectory爲本地想要存放的工做目錄)

相關文章
相關標籤/搜索