http://blog.csdn.net/prettyshuang/article/details/38421205php
http://www.tuicool.com/articles/M7FJbiqlinux
sudo apt-getinstall subversion subversion-toolsubuntu
svn co http:// 路徑(目錄或文件的全路徑) [本地目錄全路徑] 服務器
--username 用戶名網絡
--password 密碼app
svn co svn:// 路徑(目錄或文件的全路徑) [本地目錄全路徑] --username 用戶名 --password 密碼svn
svn checkout http:// 路徑(目錄或文件的全路徑) [本地目錄全路徑] --username用戶名工具
注:若是不帶--password 參數傳輸密碼的話,會提示輸入密碼,建議不要用明文的--password 選項。測試
其中 username 與 password前是兩個短線,不是一個。ui
不指定本地目錄全路徑,則檢出到當前目錄下。
例子:
svn co svn:// 192.168.0.3/測試工具
/home/testtools --username luke
svn co http://
192.168.0.3/test/testapp
--username luke
svn checkout svn://
192.168.0.3/測試工具
/home/testtools --username luke
svn checkout http://
192.168.0.3/test/testapp --username luke
svn export [-r 版本號] http://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username 用戶名
svn export [-r 版本號] svn://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username 用戶名
svn export 本地檢出的(即帶有.svn文件夾的)目錄全路徑 要導出的本地目錄全路徑
注:第一種從版本庫導出乾淨工做目錄樹的形式是指定URL,
若是指定了修訂版本號,會導出相應的版本,
若是沒有指定修訂版本,則會導出最新的,導出到指定位置。
若是省略本地目錄全路徑,URL的最後一部分會做爲本地目錄的名字。
第二種形式是指定 本地檢出的目錄全路徑 到要導出的本地目錄全路徑,全部的本地修改將會保留,
可是不在版本控制下(即沒提交的新文件,由於.svn文件夾裏沒有與之相關的信息記錄)的文件不會拷貝。
例子:
svn export svn://192.168.0.3/測試工具 /home/testtools --username luke
svn export http://192.168.0.3/test/testapp --username luke
svn add 文件名
注:告訴SVN服務器要添加文件了,還要用
svn commint -m
真實的上傳上去!
例子:
svn add test.php添加test.php
svn commit -m 「添加個人測試用test.php「 test.php
svn add *.php 添加當前目錄下全部的php文件
svn commit -m 「添加個人測試用所有php文件「 *.php
svn commit -m 「提交備註信息文本「 [-N] [--no-unlock] 文件名
必須帶上-m參數,參數能夠爲空,可是必須寫上-m
例子:
svn commit -m 「提交當前目錄下的所有在版本控制下的文件「 * 注意這個*表示所有文件
svn commit -m 「提交個人測試用test.php「 test.php
svn commit -m 「提交個人測試用test.php「 -N --no-unlock test.php 保持鎖就用–no-unlock開關
svn ci -m 「提交當前目錄下的所有在版本控制下的文件「 * 注意這個*表示所有文件
svn ci -m 「提交個人測試用test.php「 test.php
svn ci -m 「提交個人測試用test.php「 -N --no-unlock test.php 保持鎖就用–no-unlock開關
svn update
修正版本 文件名
svn update
例子:
svn update 後面沒有目錄,默認將當前目錄以及子目錄下的全部文件都更新到最新版本
svn update -r 200test.cpp 將版本庫中的文件 test.cpp還原到修正版本(revision)200
svn update test.php 更新與版本庫同步。
提交的時候提示過時衝突,須要先 update 修改文件,
而後清除svn resolved,最後再提交commit。
svn delete svn:// 路徑(目錄或文件的全路徑) -m 「刪除備註信息文本」
推薦以下操做:
svn delete 文件名
svn ci -m
例子:
svn delete svn://192.168.1.1/testapp/test.php -m 「刪除測試文件test.php」
推薦以下操做:
svn delete test.php
svn lock -m 「加鎖備註信息文本「 [--force] 文件名
svn unlock
例子:
svn lock -m 「鎖信測試用test.php文件「 test.php
svn unlock test.php
svn diff 文件名
例子:
svn diff test.php 將修改的文件與基礎版本比較
svn diff -r 200:201 test.php 對 修正版本號200 和 修正版本號201 比較差別
svn st 目錄路徑/名
svn status
【?:不在svn的控制中; M:內容被修改;C:發生衝突;
svn -v 目錄路徑/名
svn status -v
【第一列保持相同,第二列顯示工做版本號,
第三和第四列顯示最後一次修改的版本號和修改人】
注:svn status、svn diff和 svn revert這三條命令在沒有網絡的狀況下也能夠執行的,
svn log 文件名
例子:
svn log test.php 顯示這個文件的全部修改記錄,及其版本號的變化
svn info 文件名
例子:
svn info test.php
svn help 所有功能選項
svn help
svn list svn:// 路徑(目錄或文件的全路徑)
svn ls svn://
例子:
svn list svn:// 192.168.0.3/test
svn mkdir 目錄名
例子:
svn mkdir newdir
注:添加完子目錄後,必定要回到根目錄更新一下,否則在該目錄下提交文件會提示「提交失敗」
svn update
注:若是手工在checkout出來的目錄裏建立了一個新文件夾newsubdir,
再用svn mkdir newsubdir命令後,SVN會提示:
svn: 嘗試用 「svn add」或 「svn add --non-recursive」代替?
svn: 沒法建立目錄「hello」: 文件已經存在
此時,用以下命令解決:
svn add --non-recursive newsubdir
在進入這個newsubdir文件夾,用ls -a查看它下面的所有目錄與文件,會發現多了:.svn目錄
再用 svn mkdir -m "添hello功能模塊文件" svn://192.168.0.3/test/newdir/newsubdir 命令,
SVN提示:
svn: File already exists: filesystem '/data/svnroot/test/db', transaction '4541-1',
path '/newdir/newsubdir '
svn revert [--recursive] 文件名
注意: 本子命令不會存取網絡,而且會解除衝突的情況。可是它不會恢復被刪除的目錄。
例子:
svn revert foo.c 丟棄對一個文件的修改
svn switch http:// 目錄全路徑 本地目錄全路徑
例子:
svn switch http://192.163.0.3/test/456 . (原爲123的分支)當前所在目錄分支到192.163.0.3/test/456
svn resolved [本地目錄全路徑]
例子:
$
svn update
C foo.c
Updated to revision 31.
若是你在更新時獲得衝突,你的工做拷貝會產生三個新的文件:
$ ls
foo.c
foo.c.mine
foo.c.r30
foo.c.r31
當你解決了foo.c的衝突,而且準備提交,運行svn resolved讓你的工做拷貝知道你已經完成了全部事情。
你能夠僅僅刪除衝突的文件而且提交,可是svn resolved除了刪除衝突文件,還修正了一些記錄在工做拷貝管理區域的記錄數據,因此咱們推薦你使用這個命令。
svn cat http://
文件全路徑
例子:
svn cat http://192.168.0.3/test/readme.txt
若是想 更換svn的用戶名和密碼 的作法是針對linux:
1. 臨時切換
在全部命令下強制加上--username 和--password選項。
例如: svn up --username zhangsan --password 123456
2.永久切換
進入 ~/.subversion目錄, 命令行:cd ~/.subversion
刪除前先備份下,以防萬一: 命令行:cp -r ~/.subversion/auth/ /home/luke/
rm -rf auth/ 刪除非空目錄,不是到回收站的.
刪除目錄 ~/.subversion/auth/ 下的全部文件。下一次操做svn時會提示你從新輸入用戶名和密碼的。換成你想用的就能夠了。而後系統默認會記錄下來的。