最近在做的一個項目,就用到了代碼管理工具,那么就對SCN進行了一個簡單的了解,即原理和一些常用命令。
那么我們為什么需要使用SVN呢,我們可以吧SVN當成是一個備份服務器,他可以幫你記住每次上傳到這個服務器的檔案內容,並且自動的賦予每次變更的一個版本。
因為如果是團隊開發的話,版本管控是非常重要,你無法保證你手頭上的版本永遠都是對的,對於團隊開發來說,數據同步非常重要,因為互相都需要各自的數據,所以SVN可以幫你解決這個問題。
1.概述
SVN 是集中式源代碼管理工具
概念:
1> Repository 代碼倉庫,保存代碼的倉庫
2> Server 服務器,保存所有版本的代碼倉庫
3> Client 客戶端,只保存當前用戶的代碼倉庫
4> 用戶名&密碼 訪問代碼倉庫需要使用自己的"用戶名和密碼",從而可以區分出不同的人對代碼做的修改
操作:
1> checkout 將服務器上最新的代碼倉庫下載到本地,"只需要做一次"
2> update 從服務器上將其他人所做的修改下載到本地,"每天上班必須要做的事情"
3> commit 將工作提交到服務器,"每天下班之前至少做一次"
常用命令:
# 切換工作目錄
$ cd 經理的工作目錄
# checkout服務器上的代碼倉庫
$ svn co http://10.0.1.15/svn/weibo --username manager --password jingli
提示:checkout(co)之后,本地代碼庫中會記錄用戶名和密碼,后續操作不用再另行指定
02. 經理添加文件
================================================================================
* svn 常用命令
--------------------------------------------------------------------------------
# 查看本地代碼庫狀態
$ svn st
錯誤提示:"is not a working copy",必須在svn的工作目錄下才能正確使用svn的命令
# 查看svn日志
$ svn log
# 查看某一個文件的日志
$ svn log filename
# 查看某一個文件某個版本的日志
$ svn log filename@1
* 創建文件
--------------------------------------------------------------------------------
# 切換到工作目錄
$ cd weibo
# 創建文件
$ touch main.c
# 打開並編寫文件內容
$ open main.c
* 將文件提交到服務器
--------------------------------------------------------------------------------
# 查看工作目錄狀態
$ svn st
# 將文件添加到本地版本庫中
$ svn add main.c
# 將文件提交到服務器的版本庫中
$ svn ci -m "添加了main.c文件"
"小結" - 添加文件的兩個步驟
--------------------------------------------------------------------------------
1> 將新建的文件添加到本地代碼庫
$ svn add main.c
2> 將剛剛添加的文件提交到服務器
$ svn ci -m "備注信息"
注意:一定要養成寫注釋的良好習慣
03. 團隊成員加入
================================================================================
1> 張三
$ svn co http://10.0.1.15/svn/weibo --username=zhangsan --password=zhang
2> 李四
$ svn co http://10.0.1.15/svn/weibo --username=lisi --password=li
"小結" 至此,一個項目的搭建工作就告一段落了
1> 項目准備工作,通常由項目經理完成
2> 程序員只需要把項目 co 到本地即可
提示:新入職一家公司后,別忘記讓經理分配 svn 的賬號和密碼
04. 張三添加文件
================================================================================
# 添加文件 Person.h Person.m
$ touch Person.h Person.m
# 修改 Person.h Person.m
$ open Person.h
$ open Person.m
# 將 Person.h Person.m 添加到本地代碼庫
$ svn add Person.*
# 將內容提交到服務器
$ svn ci -m "添加了Person類"
05. 刪除文件
================================================================================
# 刪除文件
$ svn rm Person.h
# 提交刪除
$ svn ci -m "刪除了文件"
注意:不要使用文件管理器直接刪除文件
06. 撤銷修改
================================================================================
$ svn revert Person.m
07. 恢復到之前的某個版本
================================================================================
$ svn up
08. 沖突解決
(p) postpone 對比
(mc) mine-conflict 使用我的
(tc) theirs-conflict 使用對方的
顯示的文件狀態:
第1列狀態說明:描述文件被添加、刪除或其他修改
--------------------------------------------------------------------------------
' ' 沒有修改
'A' 被添加到本地代碼倉庫
'C' 沖突
'D' 被刪除
'I' 被忽略
'M' 被修改
'R' 被替換
'X' 外部定義創建的版本目錄
'?' 文件沒有被添加到本地版本庫內
'!' 文件丟失或者不完整(不是通過svn命令刪除的文件)
'~' 受控文件被其他文件阻隔
2.工具介紹
1.先下載Cornerstone,下載地址:http://www.cr173.com/mac/121625.html,
下載完之后打開如下圖進行操作:
2.進行SVN配置:
3.HTTP配置:
4.上傳本地文件的方法:
5.填寫好信息之后會出現如下圖所示:
6.導入本地文件:
7.然后選擇你想要導入的工程文件,導入即可,如下圖:
8.導入之后,選中工程,點擊checkout導出項目,如下圖:
9.導出之后,就可以在導出的項目里面進行操作,如下圖:
10.每次上傳代碼之前,需要先update,如果有沖突的話,解決沖突,然后commit提交到SVN上面,需要填寫一下更改日志,如下圖:
11.最后提交更新就好了,這樣就把你更改的代碼上傳到SVN管理工具里面了,這樣在做項目的時候團隊成員每次只要在SVN里面修改就可以更新當前最新的版本。
3.小結:
* 使用源代碼管理工具的好處:
# 能追蹤一個項目從誕生一直到定案的過程
# 記錄一個項目的所有內容變化
# 方便地查閱特定版本的修訂情況
* 如果是團隊開發,使用源代碼管理工具是強制性的!
* 如果是單人開發,也強烈建議現在就開始使用源代碼管理工具
* 使用源代碼管理工具
# 由於使用簡單,不會增加工作量
# 不會對現有工作造成任何損害(壞的影響)
# 是一位合格的軟件開發人員必須掌握的技術