SVN沖突解決和如何使用VisualSVN Server搭建SVN服務(wù)器

今天閑聊的時候辞槐,有位程序媛姐姐吐槽了一下小烏龜(TortoiseSVN):感覺小烏龜不好用咏删,我還是習(xí)慣用IDE里的svn工具悄蕾,但是IDE里的svn工具有的時候提交會有問題嵌灰,唉...

我:不會啊弄匕,我覺得小烏龜挺好用的,你還是別用IDE里的svn了沽瞭,誰知道IDE有沒有對svn做什么私人訂制(純意淫)~

程序媛姐姐:可是我一直搞不太清楚小烏龜?shù)臎_突應(yīng)該怎么解決

我秒回:我知道迁匠,有空跟你科普一下唄?

程序媛姐姐:好啊驹溃,晚上加班的時候吧城丧。

想象一下程序媛姐姐的內(nèi)心活動:翻了一個360度的白眼,切豌鹤,姐只是隨便找個理由來表示一下自己不喜歡小烏龜而已~看把你能的

拿到了一次裝逼的機會亡哄,當然要好好對待。到晚上還有時間布疙,不如搭建個svn服務(wù)器蚊惯,上傳份代碼,實況演示一下灵临。說干就干截型。

這里使用VisualSVN Server來搭建svn服務(wù)器∪甯龋可以到這里根據(jù)需要進行下載宦焦。怎么安裝就跳過了,這里主要看一下怎么創(chuàng)建倉庫。

安裝好VisualSVN Server以后赶诊,運行起來頁面是這樣的:


VisualSVN Server主頁面

在創(chuàng)建代碼倉庫之前笼平,需要先創(chuàng)建個用戶园骆,右鍵點擊Users->Create User...舔痪,在彈出的頁面里創(chuàng)建用戶,用戶名根據(jù)你自己的需要來锌唾,我這里寫的wht:


創(chuàng)建用戶

然后點擊OK锄码,這個用戶就創(chuàng)建好了。你可以通過創(chuàng)建Groups來給用戶分組晌涕,對每個組的成員進行權(quán)限限制滋捶。

創(chuàng)建好了用戶,就可以創(chuàng)建代碼倉庫了余黎,右鍵點擊Repositories->Create New Repository...重窟,彈出頁面選擇倉庫類型:


選擇倉庫類型

兩種偏好:一種普通的基于標準FSFS數(shù)據(jù)存儲的倉庫,一種基于VDFS的分布式的倉庫惧财。具體細節(jié)可以點擊彈框的左下角鏈接查看巡扇。我這里選擇的第一種,點擊下一步垮衷,給倉庫起個名字:


倉庫名稱

依然下一步厅翔,這里選擇倉庫初始的目錄結(jié)構(gòu),根據(jù)需要進行選擇搀突,我這里選的空倉庫刀闷,也是VisualSVN Server推薦的。我們可以通過新建文件夾來自定義倉庫目錄結(jié)構(gòu)仰迁,比較靈活:


倉庫初始目錄結(jié)構(gòu)

接下來是倉庫訪問權(quán)限甸昏,同樣根據(jù)需要進行選擇,我這里選擇自定義徐许,然后點擊custom...按鈕筒扒,選擇我們創(chuàng)建的用戶wht,給他讀/寫權(quán)限:


配置權(quán)限

然后點擊Create绊寻,代碼倉庫創(chuàng)建成功花墩,你會看到如下界面:


代碼倉庫創(chuàng)建成功

至此,我們的代碼倉庫就創(chuàng)建完成了澄步,Repository URL就是代碼倉庫的地址冰蘑,將來用svn客戶端(小烏龜)checkout代碼的時候會用到。

目前TestRepo倉庫是空的村缸,你可以通過右鍵點擊倉庫名祠肥,選擇新建Folder來給倉庫創(chuàng)建目錄結(jié)構(gòu),我這里為TestRepo創(chuàng)建了trunk(放代碼的地方)梯皿,tags(打標簽)仇箱,branches(代碼分支)三個目錄县恕。接下來就可以導(dǎo)入工程到svn服務(wù)器了,這步操作需要在svn的客戶端(小烏龜)上來進行剂桥。

找到工程目錄忠烛,右鍵點擊文件夾>TortoisSVN>Import...,彈出頁面:


導(dǎo)入到svn服務(wù)器

倉庫地址欄填入剛創(chuàng)建的代碼倉庫的url(可以右鍵點擊倉庫名权逗,點擊Copy url to Clipboard獲让朗),點擊OK完成導(dǎo)入斟薇。導(dǎo)入完成后你就可以在代碼倉庫的trunk目錄下看到你導(dǎo)入的工程了师坎。

這里提一下,每次使用svn客戶端上傳代碼的時候最好都填寫一下備注信息堪滨,這樣有利于版本維護胯陋,這個地方是可以通過客戶端進行必填設(shè)置的。

現(xiàn)在svn服務(wù)器搭建完成了袱箱,坐等程序媛姐姐的召喚遏乔。

...

終于等來這一神圣的裝逼時刻。我們來看看代碼沖突怎么發(fā)生以及怎么解決的犯眠。

1. 來到程序媛姐姐的座位上按灶,用她的小烏龜客戶端checkout一份工程代碼到本地,打開工程筐咧,找個文件鸯旁,修改一行代碼,保存量蕊,注意铺罢,不提交。

2. 回到我電腦上残炮,找到同樣的文件韭赘,定位到同一行代碼,做出修改势就,保存泉瞻,這里提交到svn服務(wù)器。

3. 再次來到程序媛姐姐的電腦上苞冯,用小烏龜從svn服務(wù)器上更新一下代碼到本地袖牙,發(fā)現(xiàn)小烏龜在抱怨代碼沖突了(conflicted)。


代碼沖突

看到?jīng)]舅锄,小烏龜抱怨說main.js沖突鞭达!因為程序媛姐姐和我對同一個文件的同一個位置進行了修改,小烏龜不知道到底應(yīng)該用誰的版本,所以報出沖突的警告畴蹭。

看下工程目錄坦仍,是這個鬼樣子:


沖突后的目錄

別慌,這幾個文件分別是原始文件(main.js)叨襟,程序媛姐姐本地修改后的版本(.mine)繁扎,另外兩個一個是程序媛姐姐本地修改前的版本,一個是svn服務(wù)器上目前的版本芹啥,也就是我修改后的版本锻离。直接打開main.js看得更清楚:


沖突的地方

代碼里面已經(jīng)標出來哪個是目前本地的修改铺峭,哪個是svn服務(wù)器上的版本(我用的是VSCode墓怀,在一些其他編輯器或IDE環(huán)境上會同時列出mine,r5卫键,r6三個版本的代碼)傀履。這時候只需要根據(jù)具體情況來判斷到底應(yīng)該使用哪個版本。如果你需要繼續(xù)使用你自己的版本莉炉,就刪掉======和>>>>>>.r6之間的代碼钓账;如果你想更新成svn服務(wù)器上的代碼,就刪掉<<<<<<.mine和=======之間的代碼絮宁。這里梆暮,我們保留程序媛姐姐自己的修改,所以刪掉了我的修改(也就是svn上的版本)绍昂。插一句啦粹,在真實場景中,如果你和同事的代碼沖突了窘游,不要隨意做決定唠椭,一定要和當事人溝通好,到底用你修改的版本還是他修改的版本忍饰,再做操作贪嫂。

到這里還差一步,就是告訴小烏龜艾蓝,我已經(jīng)解決掉沖突了力崇。右鍵點擊沖突的文件>TortoiseSVN>Resolved...,這樣那三個文件就消失了赢织。至此亮靴,代碼沖突解決完畢。

還有一種情況敌厘,沖突的代碼是你由于某種原因(比如不小心碰到了鍵盤台猴,臨時作了修改)修改的,是鐵定不會上傳到svn上的,那就不用像上面那樣操作了饱狂,直接連同原始文件一起刪掉曹步,然后重新update一下就ok了。

一頓操作下來休讳,程序媛姐姐捧場的說:啊讲婚,是這樣啊。內(nèi)心活動估計又是一個驚天大白眼:就跟誰不知道似的~

反正我臉皮厚俊柔,我就當你不知道筹麸,哈!

希望對你有幫助雏婶。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末物赶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子留晚,更是在濱河造成了極大的恐慌酵紫,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件错维,死亡現(xiàn)場離奇詭異奖地,居然都是意外死亡,警方通過查閱死者的電腦和手機赋焕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門参歹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人隆判,你說我怎么就攤上這事犬庇。” “怎么了蜜氨?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵械筛,是天一觀的道長。 經(jīng)常有香客問我飒炎,道長埋哟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任郎汪,我火速辦了婚禮赤赊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘煞赢。我一直安慰自己抛计,他們只是感情好,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布照筑。 她就那樣靜靜地躺著吹截,像睡著了一般瘦陈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上波俄,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天晨逝,我揣著相機與錄音,去河邊找鬼懦铺。 笑死捉貌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的冬念。 我是一名探鬼主播趁窃,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼急前!你這毒婦竟也來了醒陆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤叔汁,失蹤者是張志新(化名)和其女友劉穎统求,沒想到半個月后检碗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體据块,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年折剃,在試婚紗的時候發(fā)現(xiàn)自己被綠了另假。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡怕犁,死狀恐怖边篮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奏甫,我是刑警寧澤戈轿,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站阵子,受9級特大地震影響思杯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挠进,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一色乾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧领突,春花似錦暖璧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘲碱。三九已至,卻和暖如春局蚀,著一層夾襖步出監(jiān)牢的瞬間悍汛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工至会, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留离咐,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓奉件,卻偏偏與公主長得像宵蛀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子县貌,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

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

  • 一术陶、SVN1、什么是svnsvn:全稱Subversion煤痕,是代碼版本管理軟件梧宫,管理著隨時間改變的數(shù)據(jù)。這些數(shù)據(jù)放...
    peng_js閱讀 3,212評論 0 0
  • iOS 開發(fā) SVN 版本控制器 更多技術(shù)交流請加群 iOS技術(shù)聯(lián)盟 27512466 SVN是Subversio...
    Sunny_Fight閱讀 8,753評論 7 63
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理摆碉,服務(wù)發(fā)現(xiàn)塘匣,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 命令的使用 1巷帝、檢出 svn cohttp://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username...
    小李龍彪閱讀 4,431評論 0 9
  • SVN SVN使用 基本操作svn checkout:把項目源碼下載到本地忌卤,只需要做一次svn update:將本...
    彼岸的黑色曼陀羅閱讀 1,613評論 0 4