SVN 使用

前言:


1.本文講的是SVN版本控制工具常用功能愚争,包括命令行和界面化操作

2.如果想了解GIT使用方式,請移步這里 git使用

SVN使用環(huán)境

  • 使用SVN管理源代碼央串,必須有2套環(huán)境
    • 服務器
      • 用來存儲客戶端上傳的源碼
      • 一般都是在Windows環(huán)境下安裝Visual SVN Server
      • 大部分情況下,不是由開發(fā)人員搭建SVN服務器
    • 客戶端
      • 用來提交丈莺、回退、修改拐迁、下載等操作

在Windows安裝Visual SVN Server

  • 下載Visual SVN Server安裝包
  • 打開安裝包 --> next --> 同意協(xié)議 --> next --> 選擇默認選項(安裝SVN控制臺)--> next --> 選擇第一個按鈕(標準版)--> next --> location:安裝路徑 Repositories:倉庫路徑 server Port:端口 旁邊的https://選項不勾選(因為一般SVN都是在局域網(wǎng)蹭劈,不會有安全問題)--> next -->Install --> 完成
Visual SVN Server安裝

創(chuàng)建SVN倉庫

  • 打開Visual SVN Server
  • 右擊Repositories --> 新建 --> Repository --> 設置倉庫名稱 --> 下一步 --> 選擇第一項Enpty repository(空的倉庫)--> 下一步 --> 設置訪問權限(Nobody has access<無人能訪問>疗绣、All Subversion users have Read/Write access<所有人可以讀寫>线召、Customize permissions<自定義訪問>)因為是初始化倉庫,所以先設置為沒人能訪問 --> 下一步 --> 完成
使用Visual SVN Server 創(chuàng)建SVN倉庫

SVN倉庫配置

  • 在新建的倉庫中新建2個文件夾(Code多矮、Doc):新建 --> Folder --> 文件夾名稱 --> 完成
  • 創(chuàng)建用戶:右擊Users --> Create user --> User name:用戶名 Password:密碼 Confirm password:確認密碼 --> 完成
  • 創(chuàng)建用戶組(iOS缓淹、Android):右擊Groups --> Create Group --> Group name:組名 --> Add:增加成員 --> 完成
  • 配置倉庫用戶權限:右擊倉庫 --> Properties --> Add:添加成員或組 --> Permissions:設置權限(NO Access<無權限>、Read Only<只讀>塔逃、Read/Write<可讀可寫>)--> 應用
  • 配置完成
使用Visual SVN Server 配置SVN倉庫

測試SVN倉庫鏈連接是否正常

  • 連接倉庫分為測試連接和遠程連接2種
    • 測試連接:也叫本地連接讯壶,就是在搭建SVN的服務器上測試是否可以連接,步驟如下:
      • 右鍵倉庫 --> Copy URL to Clipboard --> 打開瀏覽器 --> 在地址欄粘貼(我這邊的地址:http://yeshaoji-ef1f42/svn/test/)并回車 --> 輸入用戶名密碼 --> 這樣就連接上倉庫了
本地測試SVN是否可以正常連接
  • 遠程連接:測試完畢后就可以將地址發(fā)放給成員使用了
  • 服務器地址獲取方式
    • 在服務器端打開命令行工具 --> $ ipconfig --> IP Address就是我們服務器地址
    • 拼接鏈接地址
    • 格式:http://服務器地址/SVN倉庫路徑 (比如我的:http://172.16.153.128/svn/test/
    • 使用者打開瀏覽器 --> 在地址欄粘貼并回車 --> 輸入用戶名密碼 --> 這樣就連接上倉庫了
遠程測試SVN是否可以正常連接.gif

管理者初始化項目

  • 將遠程倉庫下載到本地
    • 進入我們需要放置的文件件下
      • $ cd /Users/yeshaojian/Desktop/SVN/mgr
    • 連接并下載
      • $ svn checkout 倉庫路徑 --username=用戶名 --password=密碼
    • 下載成功后湾盗,在我們的文件夾下會出現(xiàn)下載下來的倉庫伏蚊,倉庫里面有.svn的隱藏文件(顯示和隱藏mac上文件的方法)
      • 進入本地倉庫
        - $ cd 本地倉庫目錄(就是有.svn隱藏文件的目錄)
    • 創(chuàng)建文件 main.m
      • $ touch main.m
    • 查看文件狀態(tài)
      • $ svn status
        說明:
        1.?表示該文件不受SVN管理
        2.A表示該文件受SVN管理
        3.M表示該文件被修改
    • 將文件添加到svn管理中
      • $ svn add main.m (也可使用 $ svn add * <表示提交所有文件>)
    • 將main.m文件提交到遠程倉庫
      • $ svn commit main.m -m "注釋"
管理者配置SVN項目

新成員使用SVN和多人開發(fā)

新成員篇:

  • 第一次加入項目需要進行下面操作
  • 獲取到SVN賬號與密碼與遠程倉庫路徑
  • 連接遠程倉庫并將倉庫下載到本地
    • 進入我們需要放置的文件件下
      • $ cd /Users/yeshaojian/Desktop/SVN/newTest
    • 連接并下載
      • $ svn checkout 倉庫路徑 --username=用戶名 --password=密碼
    • 添加文件
      • $ touch test1.m test2.m test3.m
    • 查看文件狀態(tài)
      • $ svn status
    • 將不受SVN管理的文件添加到管理中
      • $ svn add test1.m test2.m test3.m
    • 將文件提交到遠程倉庫
      • $ svn commit test1.m test2.m test3.m -m "注釋" 或者 $ svn commit -m "注釋"(不寫表示全部提交)
新成員加入開發(fā)操作
  • 在后面的開發(fā)中(多人開發(fā))就只根據(jù)需要提交代碼就可以了:

管理者篇:

  • 管理者加入開發(fā)步驟:
    • 進入我們需要放置的文件件下
      • $ cd /Users/yeshaojian/Desktop/SVN/mgr
    • 更新代碼
      • $ svn update
    • 在test1.m文件中修改文件內(nèi)容,上傳服務器
      • $ svn commit -m "注釋"
多人開發(fā)-管理者

新成員篇:

  • 進入我們需要放置的文件件下
    - $ cd /Users/yeshaojian/Desktop/SVN/newTest
  • 新成員更新服務器上的代碼到本地
    • $ svn update
  • 提交代碼到遠程倉庫
    • $ svn commit -m "注釋"

注意:每次要修改前先更新一下代碼再進行修改格粪。

多人開發(fā)-其它成員

SVN命令行方式刪除文件

  • SVN不能使用普通的右鍵刪除方式刪除文件
  • 使用命令行刪除
    • $ svn remove test3.m
  • 為確認文件被刪除躏吊,查看下狀態(tài)
    • $ svn status
      說明:
      1.?表示該文件不受SVN管理
      2.A表示該文件受SVN管理
      3.M表示該文件被修改
      4.D表示該文件已被刪除
  • 提交更改
    • $ svn commit -m "刪除了test3.m文件"
  • 別的成員修改前需要更新代碼,才能繼續(xù)操作
    • $ svn update
SVN刪除文件(命令行)

SVN一些命令行簡寫

  • 最常用的簡寫
    • checkout --> co
    • status --> st
    • commit --> ci
    • update --> up
SVN命令行簡寫

SVN版本查看和回退

  • SVN查看版本信息很簡單帐萎,使用下面指令就可以

    • $ svn log
  • SVN中有2中恢復或回退的情況比伏,下面會介紹:

    • 情況一:我們本地修改了文件,但還沒有提交到服務器
      • 解決方法:$ svn revert 需要恢復的文件
SVN回退版本(還未提交到遠程倉庫情況)
  • 情況二:回退到以前的版本
  • 首先要先更新本地版本到最新版
    • $ svn update 版本
    • 解決方法:
      1.查看歷史版本

      - $ svn log
      2.合并版本

      - $ svn merge -r版本:版本 .(比如現(xiàn)在最新版本為9 --> $ svn merge -r9:r5 .)

      說明:這邊會提示“U”標識疆导,表示該文件為合并狀態(tài)

      注意:這邊最后面的 "." 要敲赁项,表示當前目錄
  1. 提交到遠程服務器

    - $ svn commit -m "注釋"
SVN回退版本(已提交到遠程倉庫的情況).gif

多人開發(fā)常見沖突解決

  • 場景描述:多個人同時修改了同一個文件的同一個地方,且有人已經(jīng)提交到遠程倉庫澈段,后面的人還在繼續(xù)開發(fā)悠菜,且后面開發(fā)的人不是最新版本了,所以無法提交(SVN中如果遠程服務器版本大于要提交的版本败富,就無法提交)李剖,這樣的情況下就需要通過下面的步驟解決:
    • 先獲取最新版本(這時會提示沖突,并給出了解決方案囤耳,因為我們修改了同一文件的同一個地方)

      • $ svn update

      提示:在提示解決方案中篙顺,經(jīng)常用到的是以下幾項
      - (p) postpone:延遲處理 (最常用,先不解決)
      - (mc) mine-conflict:以我的為準充择,覆蓋掉倉庫
      - (tc) theirs-conflict:以原創(chuàng)倉庫為準德玫,覆蓋掉本地版本
      - (s) show all options:顯示所有選項

    • 方式一:這邊選擇mc(以我的為準)--> 回車
      說明:如果看到顯示了大寫的 "G" 就說明沖突已經(jīng)解決

    • 提交

      • svn commit -m "覆蓋了遠程倉庫代碼,解決沖突"
    • 方式二:這邊選擇tc (以遠程版本為準椎麦,覆蓋掉本地版本) --> 回車

    • 提交

      • svn commit -m "添加了某某屬性宰僧,但不成功,稍后添加"
        注:因為此次提交不會有提示观挎,因為本地版本和遠程版本一樣
    • 方式三:這邊選擇p(延遲處理)--> 回車

      • 這時我們的本地倉庫內(nèi)會多生成3個文件琴儿,這是我們需要手動解決相應的問題
      • 打開沖突文件段化,根據(jù)沖突提示進行相應修改
      • 修改完成后,告訴遠程倉庫造成,我們已經(jīng)解決沖突
        • $ svn resoved 沖突文件名
      • 提交
        • $ svn commit -m "手動解決了沖突"

SVN圖形化管理軟件(Cornerstone)使用

  • Cornerstone界面介紹
Snip20160510_1.png
  • 初始化項目管理
    • 連接SVN服務器 --> 左下角(REPOSITORIES)欄的 “+” 號 --> 選擇HTTP Server --> 填寫相應信息后點擊Add
Cornerstone 連接遠程倉庫操作.gif
  • 下載遠程倉庫內(nèi)容到本地 --> 點擊左上角的Check out --> 選擇需要保存的位置 --> 打開下面的隱藏選項 --> 將Format選項調(diào)制最高(不然可能出現(xiàn)未知錯誤)--> check out --> 完成
Cornerstone 下載倉庫操作.gif
  • 創(chuàng)建項目 --> 文件存放位置為SVN的工作區(qū)的Code中
創(chuàng)建項目.gif
  • 忽略不需要管理的文件 --> Cornerstone --> 點擊Commit --> 在彈出的對話框中選擇ignore(忽略) --> 打開項目中的.xcodeproj --> project.xcworkspace --> 刪除2個xcuserdate文件 --> 提交 --> 修改項目中的任意地方(比如打個斷點或者聲明變量等) --> 運行項目 --> 回到Cornerstone --> 會發(fā)現(xiàn)剛剛刪除的2個文件又出現(xiàn)了 --> 分別右擊選擇Ignore --> 然后更新倉庫版本 --> 提交
忽略不需要的文件.gif
  • 測試文件是否忽略成功 --> 隨便修改任意文件 --> 點擊Source Control --> Commit --> 發(fā)現(xiàn)只有我們修改的文件需要提交怎么已經(jīng)成功忽略文件
測試文件是否已經(jīng)忽略成功.gif
  • 這樣項目的初始化就完成了显熏,以后就只需要用XCode來進行版本控制操作就可以了,不需要再進行忽略文件操作
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晒屎,一起剝皮案震驚了整個濱河市喘蟆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鼓鲁,老刑警劉巖蕴轨,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異骇吭,居然都是意外死亡橙弱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門燥狰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棘脐,“玉大人,你說我怎么就攤上這事碾局【2校” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵净当,是天一觀的道長内斯。 經(jīng)常有香客問我,道長像啼,這世上最難降的妖魔是什么俘闯? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮忽冻,結果婚禮上真朗,老公的妹妹穿的比我還像新娘。我一直安慰自己僧诚,他們只是感情好遮婶,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著湖笨,像睡著了一般旗扑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慈省,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天臀防,我揣著相機與錄音,去河邊找鬼。 笑死袱衷,一個胖子當著我的面吹牛捎废,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播致燥,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼登疗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了篡悟?” 一聲冷哼從身側響起谜叹,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤匾寝,失蹤者是張志新(化名)和其女友劉穎搬葬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艳悔,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡急凰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了猜年。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抡锈。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乔外,靈堂內(nèi)的尸體忽然破棺而出床三,到底是詐尸還是另有隱情,我是刑警寧澤杨幼,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布撇簿,位于F島的核電站,受9級特大地震影響差购,放射性物質(zhì)發(fā)生泄漏四瘫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一欲逃、第九天 我趴在偏房一處隱蔽的房頂上張望找蜜。 院中可真熱鬧,春花似錦稳析、人聲如沸洗做。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诚纸。三九已至,卻和暖如春裕菠,著一層夾襖步出監(jiān)牢的瞬間咬清,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旧烧,地道東北人影钉。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像掘剪,于是被迫代替她去往敵國和親平委。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • SVN版本:1.5 及更新版本 名詞說明: WC:Working Copy 你的工作區(qū) Versioned:受控的...
    日風和閱讀 4,269評論 1 23
  • SVN SVN使用 基本操作svn checkout:把項目源碼下載到本地夺谁,只需要做一次svn update:將本...
    彼岸的黑色曼陀羅閱讀 1,607評論 0 4
  • 一. SVN和Git區(qū)別 SVN : 集中式的版本控制工具Git : 分布式的版本控制工具 二. SVN介紹 SV...
    奮斗的蝸牛閱讀 3,062評論 0 1
  • TortoiseSVN is an easy-to-use SCM / source control softwa...
    旅行家John閱讀 2,810評論 0 2
  • 抖落昨日的塵埃匾鸥,眨眼又是一年蜡塌。來不及欣賞,來不及道別勿负,匆匆趕赴下一場離殤馏艾。就像一葉落英,在猜悟不透的秋風,里奴愉,轉(zhuǎn)瞬...
    古城蒼狼閱讀 802評論 6 15