svn版本管理工具的使用


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

主要的使用步驟如下:

建立版本管理庫:

svnadmin create mobile

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

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

mytree為要導入的文件所在的文件夾路徑,file:///....為進行過svnadmin create后的目錄 -m 'xxx'會使得'xxx'作為日志記錄加入日志中

析出文件

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

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

第一次需要析出 此后每次修改前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為本地想要存放的工作目錄)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM