svn 常用的幾個命令

1.把項目上傳到svn(import)
svn import -m "New Import" ./MyProject/ http://svn_server/ios/trunk/MyProject #將本地MyProject目錄下的所有文件提交到服務(wù)器/trunk/MyProject目錄
2.檢出代碼(checkout)
svn co http://svn_server/ios/trunk/MyProject           #檢出最新版本到本地
svn co -r 版本號 http://svn_server/ios/trunk/MyProject  #檢出指定版本到本地
3.往版本庫中添加新的文件(add)
svn add filename #添加指定文件
svn add *        #添加所有文件
4.將改動的文件提交到服務(wù)器(commit)
svn ci -m "日志消息" #將該路徑下所有修改的文件提交到服務(wù)器
5.將服務(wù)器的代碼更新到本地(update)
svn up
6.創(chuàng)建分支(copy)
svn cp -m "create branch" http://svn_server/ios/trunk/MyProject http://svn_server/ios/branches/NewBranch     #將主干MyProject拷貝一份到分支NewBranch
7.合并主干代碼到分支(merge)
cd NewBranch  #切換到本地分支目錄
svn merge http://svn_server/ios/trunk/MyProject #將服務(wù)器主干代碼合并到本地
  • 注:先將服務(wù)器上的主干代碼合并到本地分支例隆;合并好并且確保本地分支運行沒問題后再講本地分支代碼提交到服務(wù)器
8.合并分支代碼到主干(merge)
cd MyProject #切換到本地主干目錄
svn merge http://svn_server/ios/branches/NewBranch #將服務(wù)器分支代碼合并到本地
9.創(chuàng)建tags(copy)
svn cp http://svn_server/ios/trunk/MyProject http://svn_server/ios/tags/tag-1.0 -m "create tag"
10.刪除分支或tags(delete唐全、del、remove)
svn rm -m "rm branch" http://svn_server/ios/branches/NewBranch
svn rm -m "rm tag" http://svn_server/ios/tags/tag-1.0
11.沖突解決(resolve)

a. svn up時如果有沖突發(fā)送svn通常會有以下提示(注意:“#”后面是我添加的注釋):

U    Classes/Message/FriendsViewController.swift                  # U 該文件有修改
C    Classes/AppDelegate.swift                                    # C 該文件在更新時發(fā)生沖突
R    Vendor/Web.bundle/index.html                                 # R 這個文件預定要被替換
U    Demo.xcodeproj/project.pbxproj                               # U 該文件有修改
--- Recording mergeinfo for merge of r709 through r730 into '.':  # 記錄合并信息
 U   .
Summary of conflicts:                                             # 沖突總結(jié):
  Text conflicts: 1                                               # 有1個文本沖突
Conflict discovered in file 'Classes/AppDelegate.swift'.          # 文件“Classes/AppDelegate.swift”中發(fā)現(xiàn)沖突收苏。
Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,   # 選擇:(p)標記沖突,稍后解決横腿,(df)把所有的修改列出來仗扬,(e)直接編輯沖突的文件,(m)合并(這個我目前還沒用過)咒吐,
        (mc) my side of conflict, (tc) their side of conflict,    #(mc)沖突以本地為準,(tc)沖突以服務(wù)器為準 属划,
        (s) show all options:                                     #(s)顯示其他可用的命令

b. 遇到?jīng)_突我們需要和那個與我發(fā)生沖突的哥們商量一番恬叹,所以需要推遲處理。選擇:p 終端輸出如下:

Summary of conflicts:                   # 沖突總結(jié):
  Text conflicts: 1                     # 總共有1個文本沖突

c. 現(xiàn)在我們開始解決沖突同眯,打開Classes/AppDelegate.swift文件绽昼,找到?jīng)_突。(注意:“#”后面是我添加的注釋):

<<<<<<< .working           # 我當前本地的版本(我把這個“友盟統(tǒng)計”的注釋給去掉了须蜗,因為他還有用硅确。)
        // 友盟統(tǒng)計
        UMAnalyticsConfig.sharedInstance().appKey = "------"
        MobClick.start(withConfigure: UMAnalyticsConfig.sharedInstance())
        if let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
            MobClick.setAppVersion(version)
        }
||||||| .merge-left.r708   # 我修改之前的版本(以前這個“友盟統(tǒng)計”被注釋掉了)
//        // 友盟統(tǒng)計
//        UMAnalyticsConfig.sharedInstance().appKey = "------"
//        MobClick.start(withConfigure: UMAnalyticsConfig.sharedInstance())
//        if let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
//            MobClick.setAppVersion(version)
//        }
=======                    # 另外一個哥們的修改版本(他覺得這個“友盟統(tǒng)計”被注釋掉了就沒用了,所以就給刪了明肮。簡單粗暴??????)
>>>>>>> .merge-right.r730

經(jīng)過討論這個“友盟統(tǒng)計”還是有用的菱农,所以以我當前本地版本為準。修改如下:

        // 友盟統(tǒng)計
        UMAnalyticsConfig.sharedInstance().appKey = "------"
        MobClick.start(withConfigure: UMAnalyticsConfig.sharedInstance())
        if let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
            MobClick.setAppVersion(version)
        }

d. 沖突文件修改好了柿估。在終端輸入svn st命令查看下當前svn狀態(tài):

leolideMacBook-Pro:Demo leo$ svn st
U       Classes/Message/FriendsViewController.swift
C       Classes/AppDelegate.swift
R       Vendor/Web.bundle/index.html
U       Demo.xcodeproj/project.pbxproj
?       Demo.xcodeproj/project.xcworkspace/xcshareddata/Demo.xcscmblueprint
?       Demo.xcodeproj/project.xcworkspace/xcuserdata/leoli.xcuserdatad
?       Demo.xcodeproj/xcuserdata/leoli.xcuserdatad
leolideMacBook-Pro: Demo leo$

我們發(fā)現(xiàn)Classes/AppDelegate.swift這個文件的標記還是沖突“C”狀態(tài)循未。我們需要用resolve命令去掉這個標記。命令如下:

leolideMacBook-Pro: Demo leo$ svn resolve --accept working Classes/AppDelegate.swift
Resolved conflicted state of 'Classes/AppDelegate.swift'
leolideMacBook-Pro: Demo leo$

再次查看svn狀態(tài)秫舌。Classes/AppDelegate.swift的標記已經(jīng)變成“M”了的妖。

leolideMacBook-Pro:Demo leo$ svn st
M       Classes/Message/FriendsViewController.swift
M       Classes/AppDelegate.swift
R       Vendor/Web.bundle/index.html
M       Demo.xcodeproj/project.pbxproj
?       Demo.xcodeproj/project.xcworkspace/xcshareddata/Demo.xcscmblueprint
?       Demo.xcodeproj/project.xcworkspace/xcuserdata/leoli.xcuserdatad
?       Demo.xcodeproj/xcuserdata/leoli.xcuserdatad
leolideMacBook-Pro: Demo leo$

到此svn已經(jīng)恢復正常狀態(tài)。我們可以進行commit等操作了足陨。

12.加鎖(lock)
svn lock -m "日志消息" test.h     #給test.h文件加鎖
13.解鎖(unlock)
svn unlock test.h     #給test.h文件解鎖
14.查看日志(log)
svn log test.h #顯示test.h文件的所有修改日志
15.查看文件詳細信息(info)
svn info test.h #查看test.h文件詳細信息
16.比較差異(diff)注:推薦使用xcode會更加清晰明了
svn di test.h         #比較修改后的test.h文件與基礎(chǔ)版本的差異
svn di -r m:n test.h  #比較版本m和版本n的差異
17.SVN幫助(help)
svn help
svn help ci #查詢ci命令的幫助
18.變更svn地址(switch)
svn switch --relocate http://old_svn_server http://new_svn_server
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嫂粟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子墨缘,更是在濱河造成了極大的恐慌星虹,老刑警劉巖零抬,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搁凸,居然都是意外死亡媚值,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門护糖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嚼松,你說我怎么就攤上這事嫡良。” “怎么了献酗?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵寝受,是天一觀的道長。 經(jīng)常有香客問我罕偎,道長很澄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任颜及,我火速辦了婚禮甩苛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俏站。我一直安慰自己讯蒲,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布肄扎。 她就那樣靜靜地躺著墨林,像睡著了一般。 火紅的嫁衣襯著肌膚如雪犯祠。 梳的紋絲不亂的頭發(fā)上旭等,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音衡载,去河邊找鬼搔耕。 笑死,一個胖子當著我的面吹牛月劈,可吹牛的內(nèi)容都是我干的度迂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼猜揪,長吁一口氣:“原來是場噩夢啊……” “哼惭墓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起而姐,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤腊凶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钧萍,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡褐缠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了风瘦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片队魏。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖万搔,靈堂內(nèi)的尸體忽然破棺而出胡桨,到底是詐尸還是另有隱情,我是刑警寧澤瞬雹,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布昧谊,位于F島的核電站,受9級特大地震影響酗捌,放射性物質(zhì)發(fā)生泄漏呢诬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一胖缤、第九天 我趴在偏房一處隱蔽的房頂上張望尚镰。 院中可真熱鬧,春花似錦草姻、人聲如沸钓猬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敞曹。三九已至,卻和暖如春综膀,著一層夾襖步出監(jiān)牢的瞬間澳迫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工剧劝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留橄登,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓讥此,卻偏偏與公主長得像拢锹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子萄喳,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

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