SVN代碼管理

必學(xué)命令 help 子命令

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

補(bǔ)充

. 代表當(dāng)前文件路徑
.. 代表上級(jí)目錄

以 .開(kāi)頭的文件,代表隱藏文件

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

提示

  • 如果要使用當(dāng)前目錄中的文件名鞠眉,輸入到一半時(shí)草巡,按TAB鍵能夠補(bǔ)全

個(gè)人開(kāi)發(fā)操作

  • 從服務(wù)器下載一份完整代碼到本地開(kāi)始開(kāi)發(fā)

  • svn checktout URL [path] —-username=用戶名 —-password=密碼

  • 修改文件提交

    • svn commit -m “注釋”
  • 新建文件提交

    • svn add filename (將文件添加到本地版本控制進(jìn)行管理
    • svn commit -m “注釋”
    • 提交多有 svn add *
  • 刪除文件提交
    一定不要直接手動(dòng)刪除文件

    • svn remove filename / svn delete filename 先從本地代碼倉(cāng)庫(kù)管理中移除,然后刪除
    • svn commit -m “注釋” (提交,讓服務(wù)器也刪除對(duì)應(yīng)文件)

任何向服務(wù)器提交的操作,都要加注釋 添加 -m參數(shù)

常用命令補(bǔ)充

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

常見(jiàn)狀態(tài)

' ' 沒(méi)有修改

'A' 被添加到本地代碼倉(cāng)庫(kù)

'C' 沖突

'D' 被刪除(通過(guò)svn命令刪除的文件)

'I' 被忽略

'M' 被修改

'R' 被替換

‘G’ 被合并

‘U’ 已經(jīng)更新

‘E’ 已經(jīng)存在

'X' 外部定義創(chuàng)建的版本目錄

'?' 文件沒(méi)有被添加到本地版本庫(kù)內(nèi)

'!' 文件丟失或者不完整(不是通過(guò)svn命令刪除的文件)

'' 受控文件被其他文件阻隔

團(tuán)隊(duì)開(kāi)發(fā)操作

  • 添加文件同步
  • 修改文件同步
  • 刪除文件同步
  • 超時(shí)和沖突解決演練
多人開(kāi)發(fā)中最常遇到的問(wèn)題: 超時(shí)和沖突
超時(shí)
  • 超時(shí): 當(dāng)本地文件版本小于服務(wù)器文件版本時(shí), 如果要提交本地文件,就會(huì)報(bào) out of date 超時(shí)錯(cuò)誤

  • 原因: SVN通過(guò)版本號(hào)管理每一個(gè)文件,如果一個(gè)文件被修改并提交到服務(wù)器,那么服務(wù)器上的對(duì)應(yīng)文件版本號(hào)就會(huì)加1, 如果你的版本號(hào)小于服務(wù)器版本號(hào),就說(shuō)明,肯定有別人在后來(lái)又修改了那個(gè)文件

    • 大版本提交或合并到小版本,會(huì)把小版本內(nèi)容覆蓋
    • 大小版本不能提交到大版本
  • 超時(shí)解決方案: 針對(duì)于超時(shí)問(wèn)題,對(duì)應(yīng)的解決方案,就是先從服務(wù)器更新下最新版本, 保證本地版本號(hào)與服務(wù)器版本號(hào)一致,這是文件可以提交的前提

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

  • 原因: 版本控制器不會(huì)那么智能, 去決定應(yīng)該使用誰(shuí)的代碼作為最終代碼,只能將選擇權(quán)拋給用戶,讓用戶解決

(df) diff-full, (e) edit, (s) show all options:

(p) postpone, // 延遲處理(待會(huì)我自己處理)

(mc) mine-conflict, // 使用我的(本地的)

(tc) theirs-conflict, // 使用服務(wù)器
<<<<<<< .mine

本地代碼

=======

服務(wù)器代碼


svn resolved 文件名
svn commit -m "解決沖突"

SVN終端-版本回退

  • 做錯(cuò)了,想反悔到前面某個(gè)狀態(tài)
  1. 修改了,但未提交的情況反悔
方案1: (大力推薦)
svn revert (作用:返回到上次提交后的狀態(tài))
方案2: (不推薦)
刪除整個(gè)項(xiàng)目,重新checkout
  1. 修改了,并且提交了的情況反悔
方案1: 大力推薦
svn update (將本地代碼更新到與服務(wù)器相同的版本)
svn merge 文件名 -r 版本1:版本2
(作用:把版本1 -> 版本2 的 diff 作用在當(dāng)前版本)
svn commit -m “本地和服務(wù)器都回退到某一指定版本”
方案2:
svn update -r 指定版本號(hào)(此時(shí)本地代碼已經(jīng)變化,但是服務(wù)器沒(méi)有改變)
修改部分文件
svn update (此時(shí)會(huì)產(chǎn)生沖突, 選擇使用自己的代碼即可)
再次提交代碼
方案3:(垃圾,最不推薦)
手動(dòng)保存需要回退的文件內(nèi)容
刪除文件,提交到服務(wù)器
重新添加文件,上傳到服務(wù)器

Cornerstone基本使用

Xcode管理SVN

演示靜態(tài)庫(kù)的提交
  • .a靜態(tài)庫(kù)文件,必須使用命令行手動(dòng)添加到版本控制器中,然后提交
怎樣忽略文件
  • 過(guò)濾不需要上傳的文件, 忽略文件(xcuserdata文件夾)

    • 文件打開(kāi)狀態(tài)

    • 斷點(diǎn)信息

  • 文件夾關(guān)閉打開(kāi)狀態(tài)

注意:projct setting文件不要忽略

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

SVN目錄規(guī)范

  • trunk :主干百宇,當(dāng)前開(kāi)發(fā)項(xiàng)目的主目錄
    我們之前更新代碼庆锦,提交代碼都是在這個(gè)文件夾進(jìn)行操作

  • brannches:分支目錄辫继,添加非主線功能時(shí)使用硼婿,開(kāi)發(fā)測(cè)試之后锌半,可以合并到主干項(xiàng)目中。
    修復(fù)Bug寇漫,研發(fā)不確定的新功能都在這里做

  • tags:標(biāo)記目錄刊殉,通常作為重大版本的備份;
    如果有發(fā)布版本出現(xiàn)Bug猪腕,可以快速的找到對(duì)應(yīng)版本的項(xiàng)目備份冗澈,然后開(kāi)一個(gè)分支,進(jìn)行Bug修復(fù)陋葡,用于與主干區(qū)分

    • 畫(huà)圖說(shuō)明三個(gè)目錄使用流程
    • 演示版本備份流程
    • 演示已發(fā)布版本bug解決流程
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亚亲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捌归,老刑警劉巖肛响,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異惜索,居然都是意外死亡特笋,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)巾兆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)猎物,“玉大人,你說(shuō)我怎么就攤上這事角塑∧枘ィ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵圃伶,是天一觀的道長(zhǎng)堤如。 經(jīng)常有香客問(wèn)我,道長(zhǎng)窒朋,這世上最難降的妖魔是什么搀罢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮侥猩,結(jié)果婚禮上榔至,老公的妹妹穿的比我還像新娘。我一直安慰自己拭宁,他們只是感情好洛退,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布瓣俯。 她就那樣靜靜地躺著杰标,像睡著了一般。 火紅的嫁衣襯著肌膚如雪彩匕。 梳的紋絲不亂的頭發(fā)上腔剂,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音驼仪,去河邊找鬼掸犬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛绪爸,可吹牛的內(nèi)容都是我干的湾碎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼奠货,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼介褥!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柔滔,失蹤者是張志新(化名)和其女友劉穎溢陪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體睛廊,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡形真,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了超全。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咆霜。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嘶朱,靈堂內(nèi)的尸體忽然破棺而出裕便,到底是詐尸還是另有隱情,我是刑警寧澤见咒,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布偿衰,位于F島的核電站,受9級(jí)特大地震影響改览,放射性物質(zhì)發(fā)生泄漏下翎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一宝当、第九天 我趴在偏房一處隱蔽的房頂上張望视事。 院中可真熱鬧,春花似錦庆揩、人聲如沸俐东。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)虏辫。三九已至,卻和暖如春锈拨,著一層夾襖步出監(jiān)牢的瞬間砌庄,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工奕枢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娄昆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓缝彬,卻偏偏與公主長(zhǎng)得像萌焰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谷浅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理扒俯,服務(wù)發(fā)現(xiàn)族购,斷路器,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • @(〓〓 iOS-實(shí)用技術(shù))[代碼管理 Git/SVN] 作者: Liwx 郵箱: 1032282633@qq....
    Liwx閱讀 46,368評(píng)論 5 84
  • 源代碼管理工具-SVN 一. 了解-源代碼管理工具概述 1. 源代碼管理工具的作用? 能追蹤一個(gè)項(xiàng)目從誕生一直到定...
    牧馬人_hlc閱讀 1,072評(píng)論 0 11
  • 目錄 一. 了解-源代碼管理工具概述二. 掌握-SVN的基本介紹三. 了解-SVN服務(wù)器配置四. 掌握-UNIX基...
    Mg明明就是你閱讀 3,190評(píng)論 2 11
  • 源代碼管理工具-SVN 一. 了解 - 源代碼管理工具概述 1. 源代碼管理工具的作用? 2. 常見(jiàn)的源代碼管理工...
    iYeso閱讀 450評(píng)論 0 3