安裝及使用VisualSVN-Server(SVN服務(wù)器工具)
SVN是一款集中式版本庫控制工具
VisualSVN-Server及Cornerstone下載鏈接
VisualSVN-Server的安裝及使用
-
在windows平臺上安裝VisualSVN-Server圖解:
<pre>
由于軟件不會自己創(chuàng)建快捷方式啊研,為了簡單操作酣溃,可以自己創(chuàng)建快捷方式:
</pre>
2 . VisualSVN-Server常見操作圖解
<pre>
-
創(chuàng)建倉庫圖解
-
在倉庫中創(chuàng)建新文件夾
-
創(chuàng)建新用戶
-
添加分組
-
設(shè)置讀寫權(quán)限
</pre>
SVN初始化項目及常用操作
- 將服務(wù)器已有的內(nèi)容下載到本地(提示:checkout(co)之后吻谋,命令行會記錄用戶名和密碼喊熟,后續(xù)操作不用再另行指定)
checkout==co
<pre>
$ svn checkout https://172.16.83.128/svn/ingke/ --username=用戶名 --password=密碼
</pre>
錯誤提示:"is not a working copy"挽拂,必須在svn的工作目錄下才能正確使用svn的命令
如果出現(xiàn)https://
協(xié)議問題,在問題代碼后直接鍵入p
按回車
- 初始化項目
- 進入工作目錄 (含有
.svn
文件夾的目錄)
- 初始化項目 (將工程拖到工作目錄下)
- 將初始化的項目添加到本地代碼倉庫中
svn add 文件名 - 將文件提交到服務(wù)器(
commit==ci
)
svn commit -m "注釋" - 參看本地代碼庫狀態(tài)
svn status / svn st 顯示的文件狀態(tài)(`st==status`)
狀態(tài)碼 描述文字
空白
沒有修改A
文件已被添加到本地倉庫管理中誓竿,但是還未添加到服務(wù)器中(服務(wù)器的倉庫還未管理該文件)C
沖突D
該文件已經(jīng)在本地被刪除辨泳,但還沒有將刪除操作共享給服務(wù)器I
被忽略M
文件已經(jīng)被本地管理,并且服務(wù)器也有該文件唉铜,但是新修改的修改內(nèi)容沒有被提交到服務(wù)器R
被替換X
外部定義創(chuàng)建的版本目錄?
svn不識別該文件台舱,或者該文件被刪除過,或者該文件是新添加的文件潭流,還沒有被本地代碼倉庫進行管理!
文件丟失或者不完整(不是通過svn命令刪除的文件)~
受控文件被其他文件阻隔個人基本操作
- 修改文件之后竞惋,使用
svn commit -m "注釋"
重新提交到服務(wù)器
刪除文件(一定要使用svn操作指令刪除文件)
svn remove 文件名
(remove==rm==delete==del
)撤銷修改:
$ svn revert 文件名
多人開發(fā)
svn update
從服務(wù)器上下載更新最新的內(nèi)容
- 錯誤提示
out of date
表示文件過期 (不能提交代碼的情況:當本地的版本號小于服務(wù)器的版本號時,不能進行提交) - 錯誤提示
Conflict discovered in '沖突路徑'
沖突解決選項:
1. 常用選項:
(p) postpone :生成文件灰嫉,讓使用者對比沖突,手動修改拆宛,(修改完成后,使用代碼:`svn resolved 文件名` 刪除生成的多余文件)
(mc) mine-conflict :使用我的代碼覆蓋服務(wù)器的代碼
(tc) theirs-conflict :使用服務(wù)器的代碼覆蓋我的代碼
2.不常用選像
(e) edit :在命令行中編輯文件
(df) diff-full : 在命令行中展示所有的不同
(s) show all options :重新展示所有選項
svn版本回退操作(借鑒crazy hacking的專欄)
查看之前更新過的版本
$ svn log
//查看svn日志
$ svn log filename
//查看某一個文件的日志
$ svn log filename@1
//查看某一個文件某一個版本的日志更新到之前某個版本
$ svn update -r 版本號
使服務(wù)器恢復(fù)到之前某個版本
1). 使用
svn update -r 版本號
回到之前版本讼撒,查看是否是我們需要的版本
2). 使用svn update
回到最新版本
3). 將最新版本合并到某一個版本svn merge -r 最新版本號:回退版本號 希望回退的文件名
4). 使用svn ci -m "注釋"
重新提交改變服務(wù)器文件內(nèi)容
注意:還可以使用svn merge --dry-run來模擬假裝merge一下胰挑,看一下merge會發(fā)生什么,而不是真正的做這個動作椿肩。
(svn merge --dry-run -r:2011:2010 http://my.repository.com/my/project/trunk
svn merge -r:2011:2010 http://my.repository.com/my/project/trunk
svn commit -m "Reverted to revision 2010."
)
- 使用cornerstone實現(xiàn)版本回退
IOS開發(fā)中瞻颂,SVN如何恢復(fù)到某一個版本(以Cornerstone為例)