01.源代碼管理之SVN命令的使用,Cornerstone基本使用,Xcode Svn的使用

@(〓〓 iOS-實用技術(shù))[代碼管理 Git/SVN]


目錄

  • 01.源代碼管理之SVN命令的使用,Cornerstone基本使用,Xcode Svn的使用
  • 1.UNIX基本命令
    • 1.1 必學命令
    • 1.2 常用命令
    • 1.3 UNIX基本知識
    • 1.4 使用注意
  • 2.掌握-SVN終端演練(個人開發(fā))
    • 2.1 命令格式
    • 2.2 必學命令
    1. SVN命令的使用
    • 3.1 項目經(jīng)理初始化項目,并上傳到SVN服務器
    • 3.2 程序猿從服務器下載一份完整代碼到本地開始開發(fā)
    • 3.3 修改文件提交
    • 3.4 新建文件提交
    • 3.5 刪除文件提交
    • 3.6 常用命令補充
    • 3.7 版本控制中,各個文件狀態(tài)參考
    • 3.8 注意事項
  • 4.SVN終端演練(多人開發(fā))
    • 4.0 準備工作
    • 4.1 添加文件同步
    • 4.2 修改文件同步
    • 4.3 刪除文件同步
    • 4.4 多人合作開發(fā)中的常見問題
  • 5.版本回退
    • 5.1 版本回退概念以及原因?
    • 5.2 修改了,但未提交的情況下, 回退代碼
    • 5.3 修改了,并且提交了的情況反悔
  • 6.Cornerstone基本使用
    • 6.1 Cornerstone功能介紹
    • 6.2 Cornerstone checkout遠程倉庫遠程倉庫區(qū)域
    • 6.3 Cornerstone checkout遠程倉庫本地倉庫區(qū)域
    • 6.4 忽略沒必要提交的文件
  • 7.Xcode管理SVN
    • 7.1 基本操作
    • 7.2 版本回退
    • 7.3 超時和沖突
      • 解決超時和沖突的問題
  • 8.SVN目錄規(guī)范
  • 9.SVN 托管平臺
    • 9.1 svnspot
    • 9.2 svnchina

1.UNIX基本命令

1.1 必學命令

  • help [子命令] : 查看某一個具體的子命令的使用方法

1.2 常用命令

  • cd path : 將當前路徑切換到path路徑
  • pwd :查看當前所在路徑
  • ls (-a / -l / -G) : 查看當前文件夾下所有文件及文件夾
  • touch filename1 filename2 : 創(chuàng)建一個或者多個文件
  • rm filename : 刪除文件
  • open filename :打開文件
  • cat filename :查看文件內(nèi)容
  • more filename :分頁查看文件內(nèi)容
  • mkdir 文件夾名稱 :創(chuàng)建一個文件夾
  • mv oldFilePath newFilePath :移動文件(可借助此命令給文件重命名)

1.3 UNIX基本知識

. 代表當前文件路徑
.. 代表上級目錄
.開頭的文件,代表隱藏文件

  • 顯示隱藏文件
    defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder
  • 不顯示隱藏文件
    defaults write com.apple.finder AppleShowAllFiles No && killall Finder

1.4 使用注意

  • 命令和參數(shù)之間需要添加空格
  • 如果要使用當前目錄中的文件名账锹,輸入到一半時畸陡,按TAB鍵能夠補全.

2.掌握-SVN終端演練(個人開發(fā))

2.1 命令格式

  • SVN命令格式

    命令行格式:
    svn <subcommand> [options] [args]
    svn 子命令 [選項] [參數(shù)]
    其中中括號里面的內(nèi)容可以省略

2.2 必學命令

  • SVN查詢命令help

    svn [子命令] --help
    svn help [子命令]


3. SVN命令的使用

3.1 項目經(jīng)理初始化項目,并上傳到SVN服務器

  • 1.1 方案1
- (1) 創(chuàng)建項目
- (2) `svn import [path] URL --username=用戶名 --password=密碼 -m "注釋"`
  • 1.2 方案2(推薦)
- (1) `svn checkout URL [path] --username=用戶名 --password=密碼` : 初始化本地倉庫
- (2) 創(chuàng)建項目
- (3) 使用 `svn add` 命令將項目所有文件添加到本地版本控制
- (4) 使用 `svn commit` 提交本地項目到遠程服務器

3.2 程序猿從服務器下載一份完整代碼到本地開始開發(fā)

svn checkout URL [path] --username=用戶名 --password=密碼

3.3 修改文件提交

(1) 修改文件

(2) 使用svn commit -m "注釋" : 提交本地文件到服務器

3.4 新建文件提交

(1) 新建文件
(2) 使用 svn add 命令將項目所有文件添加到本地版本控制
(3) 使用 svn commit -m "注釋" : 提交本地項目到遠程服務器

3.5 刪除文件提交

一定不要手動刪除文件
(1) svn remove filename 或者 svn delete filename 從本地版本控制以及對應文件刪除
(2) svn commit -m "注釋" : 提交本地操作到服務器, 使服務器也刪除對應的文件

3.6 常用命令補充

  1. svn status
    查看當前工作空間內(nèi), 所有 有變化的文件 的狀態(tài)
    如果執(zhí)行此命令什么都沒輸出, 代表本地沒有東西要提交
  2. svn log
    查看當前版本的操作日志(什么人, 什么時間, 做了什么操作)

3.7 版本控制中,各個文件狀態(tài)參考

' ' 沒有修改
'A' 被添加到本地版本控制
'C' 沖突
'D' 被刪除(通過svn命令刪除的文件)
'I' 被忽略
'M' 被修改
'R' 被替換
‘G’ 被合并
‘U’ 已經(jīng)更新
‘E’ 已經(jīng)存在
'X' 外部定義創(chuàng)建的版本目錄
'?' 文件沒有被添加到本地版本控制
'!' 文件丟失或者不完整(不是通過svn命令刪除的文件)
'' 受控文件被其他文件阻隔

3.8 注意事項

  • 任何本地的操作, 如果想讓服務器也做同樣的操作, 就直接通過 commit操作 提交到服務器
  • 任何向服務器提交的操作,都要加注釋 添加 -m參數(shù)

4.SVN終端演練(多人開發(fā))

4.0 準備工作

CoderOne代表程序猿一,CoderTwo代表程序猿二

CoderOne和CoderTwo,分別使用svn checkout URL [path] --username=用戶名 --password=密碼命令初始化本地版本控制庫

4.1 添加文件同步

  • 1.CoderOne創(chuàng)建文件并提交到服務器

svn add fileName
svn commit -m "新增文件"

  • 2.CoderTwo從服務器更新文件

svn update

4.2 修改文件同步

  • 1.CoderOne修改文件并提交到服務器

svn commit -m "修改文件"

  • 2.CoderTwo從服務器更新文件

svn update

4.3 刪除文件同步

  • 1.CoderOne刪除文件并提交到服務器

svn delete fileName
svn commit -m "刪除文件"

  • 2.CoderTwo從服務器更新文件

svn update

4.4 多人合作開發(fā)中的常見問題


  • 1.問題一 : 超時

    • 問題描述:

    當本地文件版本小于服務器文件版本時, 如果要提交本地文件,就會報 out of date 超時錯誤

    • 產(chǎn)生原因:

    SVN通過版本號管理每一個文件,如果一個文件被修改并提交到服務器,那么服務器上的對應文件版本號就會加1, 如果你的版本號小于服務器版本號,就說明,肯定有別人在后來又修改了那個文件

    • 解決方案:

    針對于超時問題,對應的解決方案,就是先從服務器更新下最新版本, 保證本地版本號與服務器版本號一致,這是文件可以提交的前提


  • 2.問題二 : 沖突

    • 問題描述:

    為了解決超時問題,只能更新.而在更新過程中,如果幾個人修改了同一文件的同一行代碼,此時就會產(chǎn)生沖突

    • 產(chǎn)生原因:

    版本控制器不會那么智能, 去決定應該使用誰的代碼作為最終代碼,只能將選擇權(quán)拋給用戶,讓用戶解決

    • 解決方案:

    系統(tǒng)提供三種解決方案:
    (p) postpone,
    延遲處理(待會我自己處理), 如果選擇這一種, 會自動生成三個文件供用戶參考決策. 并將沖突部分代碼塊合并到一起. 而一旦解決完畢, 需要執(zhí)行 svn resolved fileName 來告訴版本控制器已經(jīng)解決, 然后版本控制器就會自動刪除三個參考文件

    (mc) mine-conflict
    使用我的(本地的), 如果代碼產(chǎn)生沖突, 則以本地代碼為準

    (tc) theirs-conflict
    使用他人的(服務器), 如果代碼產(chǎn)生沖突, 則以服務器代碼為準

<<<<<<< .mine
    此處代表是我的代碼
=======
    此處代表服務器代碼
>>>>>>> .r7

5.版本回退

5.1 版本回退概念以及原因?

概念: 是指將代碼(本地代碼或者服務器代碼), 回退到之前記錄的某一特定版本
原因: 如果代碼做錯了, 想返回之前某個狀態(tài)重做;


5.2 修改了,但未提交的情況下, 回退代碼

方案1: (大力推薦)
svn revert (作用:返回到上次提交后版本對應的最原始的狀態(tài))

方案2: (不推薦)
刪除整個項目,重新checkout


5.3 修改了,并且提交了的情況反悔

  • 方案1: 大力推薦

    • svn update
      (作用: 將本地代碼更新到與服務器相同的版本)
    • svn merge 文件名 -r 版本1:版本2
      (作用: 把版本1 -> 版本2 的 diff 作用在當前版本)
    • svn commit -m “本地和服務器都回退到某一指定版本”
      (作用: 讓服務器代碼也退回到之前某個版本狀態(tài))
  • 方案2:

    • svn update -r 指定版本號(此時本地代碼已經(jīng)變化,但是服務器沒有改變)
      --------以下步驟是為了讓服務器代碼也回滾到以前的版本----------
    • 修改部分文件
    • svn update (此時會產(chǎn)生沖突, 選擇使用自己的代碼即可)
    • 再次提交代碼
  • 方案3:

    • 手動保存需要回退的文件內(nèi)容
    • 刪除文件,提交到服務器
    • 重新添加文件,上傳到服務器

6.Cornerstone基本使用

  • 1.掌握如何添加遠程代碼倉庫的關(guān)聯(lián)
  • 2.掌握如何checkout, 下載服務器代碼, 以及初始化本地版本控制庫
  • 3.掌握如何新建文件提交, 修改文件提交, 刪除文件提交
  • 4.掌握版本日志查看, 以及了解版本回退
  • 5.掌握多人開發(fā)中的超時問題和沖突問題的解決

6.1 Cornerstone功能介紹

  • 1.Cornerstone界面區(qū)域
    • 1.頂部工具條區(qū)域
      • 對應svn命令: checkout(檢出),tag(重要版本備份),branch(分支),revert(重置),update(更新),commit(提交),merge(合并),import(導入),export(導出)
    • 2.本地倉庫區(qū)域
    • 3.遠程倉庫區(qū)域
    • 4.選中倉庫區(qū)域
    • 5.底部工具條區(qū)域
      • 對應svn命令: add(添加),resolved(解決沖突),log(查看日志)
      • Timeline: 各版本的內(nèi)容比較
01.Cornerstone功能介紹.png

  • 2.頂部工具條
02.頂部工具條.png

  • 3.底部工具條
03.底部工具條.png

6.2 Cornerstone checkout遠程倉庫遠程倉庫區(qū)域

  • checkout遠程倉庫到遠程倉庫區(qū)域
04.checkout遠程倉庫遠程倉庫區(qū)域.png

6.3 Cornerstone checkout遠程倉庫本地倉庫區(qū)域

  • checkout遠程倉庫到本地倉庫區(qū)域
05.checkout遠程倉庫本地倉庫區(qū)域.png

6.4 忽略沒必要提交的文件

  • 開發(fā)經(jīng)驗: 最好忽略沒必要提交的文件

    • 過濾不需要上傳的文件, 忽略文件(xcuserdata文件夾)

    文件打開狀態(tài)
    斷點信息
    文件夾關(guān)閉打開狀態(tài)

    • 注意:projct setting文件不要忽略

    存放一些文件順序和文件夾結(jié)構(gòu),文件引用等信息


  • 忽略或刪除文件操作
06.忽略或刪除文件操作.png

7.Xcode管理SVN

  • 1.掌握怎樣添加遠程代碼倉庫的關(guān)聯(lián)
  • 2.掌握怎樣checkout, 下載服務器代碼, 以及初始化本地版本控制庫
  • 3.掌握怎樣新建文件提交, 修改文件提交, 刪除文件提交
  • 4.掌握版本日志查看, 以及了解版本回退
  • 5.掌握多人開發(fā)中的超時問題和沖突問題的解決

7.1 基本操作

  • 1.管理帳號
    • command + ,選中Account
07.管理帳號.png

  • 2.Xcode checkout項目操作
    • 打開Xcode選中Source Control/Check out,選中以上配置項目
    • 根據(jù)提示保存到本地文件夾中
08.Xcode checkout項目操作.png

  • 3.Xcode版本比較,責任追究,日志查看
09.Xcode版本比較,責任追究,日志查看.png
  • 4.XCode SVN提交
10.XCode SVN提交.png
  • 5.Xcode中的Source Control介紹
11.Source Control介紹.png

7.2 版本回退


  • 1.單個文件版本回退
12.單個文件版本回退.gif

7.3 超時和沖突

解決超時和沖突的問題

  • 超時提示: 當修改完文件,使用Xcode中的Source Control/Commit提交時彈出以下提示表示超時up to date
13.超時提示.png
  • 解決超時方案

1.先更新Update

14.更新操作.png

2.更新完后,彈出沖突提示

15.沖突提示.png

3.根據(jù)實際情況選擇對應的沖突解決方案

16.沖突解決方案.png

4.最后修改完沖突后,點擊Update提交到服務器,必須填寫提交信息,否則無法提交.


8.SVN目錄規(guī)范

  • 1.文件目錄作用?

    • trunk : 主干易核,當前開發(fā)項目的主目錄;
      我們之前更新代碼,提交代碼都是在這個文件夾進行操作
    • brannches:分支目錄
      添加非主線功能時使用,開發(fā)測試之后装蓬,可以合并到主干項目中橙垢。修復Bug,研發(fā)不確定的新功能都在這里做
    • tags:標記目錄额获,通常作為重大版本的備份;
      如果有發(fā)布版本出現(xiàn)Bug恭应,可以快速的找到對應版本的項目備份抄邀,然后開一個分支,進行Bug修復昼榛,用于與主干區(qū)分
  • 2.掌握利用圖形客戶端版本備份流程

  • 3.了解已發(fā)布版本bug解決流程


9.SVN 托管平臺

9.1 svnspot

鏈接: http://code.svnspot.com

9.2 svnchina

鏈接: http://www.svnchina.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末境肾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胆屿,更是在濱河造成了極大的恐慌奥喻,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件非迹,死亡現(xiàn)場離奇詭異环鲤,居然都是意外死亡,警方通過查閱死者的電腦和手機憎兽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門冷离,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纯命,你說我怎么就攤上這事酒朵」钣遥” “怎么了峭状?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵猛铅,是天一觀的道長筐咧。 經(jīng)常有香客問我寂诱,道長真椿,這世上最難降的妖魔是什么撵摆? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任伯顶,我火速辦了婚禮碍粥,結(jié)果婚禮上鳖眼,老公的妹妹穿的比我還像新娘。我一直安慰自己嚼摩,他們只是感情好钦讳,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布矿瘦。 她就那樣靜靜地躺著,像睡著了一般愿卒。 火紅的嫁衣襯著肌膚如雪缚去。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天琼开,我揣著相機與錄音易结,去河邊找鬼。 笑死柜候,一個胖子當著我的面吹牛搞动,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渣刷,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鹦肿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辅柴?” 一聲冷哼從身側(cè)響起箩溃,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碌识,沒想到半個月后碾篡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虱而,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡筏餐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了牡拇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魁瞪。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惠呼,靈堂內(nèi)的尸體忽然破棺而出导俘,到底是詐尸還是另有隱情,我是刑警寧澤剔蹋,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布旅薄,位于F島的核電站,受9級特大地震影響泣崩,放射性物質(zhì)發(fā)生泄漏少梁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一矫付、第九天 我趴在偏房一處隱蔽的房頂上張望凯沪。 院中可真熱鬧,春花似錦买优、人聲如沸妨马。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烘跺。三九已至湘纵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間液荸,已是汗流浹背瞻佛。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娇钱,地道東北人伤柄。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像文搂,于是被迫代替她去往敵國和親适刀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

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

  • 源代碼管理工具-SVN 一. 了解-源代碼管理工具概述 1. 源代碼管理工具的作用?> 能追蹤一個項目從誕生一直到...
    Louis_hey閱讀 11,429評論 1 8
  • iOS 開發(fā) SVN 版本控制器 更多技術(shù)交流請加群 iOS技術(shù)聯(lián)盟 27512466 SVN是Subversio...
    Sunny_Fight閱讀 8,777評論 7 63
  • &開發(fā)過程中離不開源代碼的管理煤蹭, 目地:為了解決在軟件開發(fā)過程中笔喉,由源代碼引發(fā)的各種蛋疼、繁瑣的問題硝皂。 目前開發(fā)使...
    早起的蟲兒子被鳥吃閱讀 2,430評論 0 16
  • 源代碼管理工具的起源 為什么會出現(xiàn)源代碼管理工具常挚? 為了解決在軟件開發(fā)過程中,由源代碼引發(fā)的各種蛋疼繁瑣問題 源代...
    小白文_Vincent閱讀 3,172評論 2 8
  • 前往漠河的綠皮火車呼呼的響著稽物,在原野中疾馳而過奄毡。我的臉頰緊貼著車壁,冰冷得像我的心贝或。車壁上扭曲的皮質(zhì)一...
    五月mz閱讀 385評論 2 12