SVN服務(wù)器搭建教程

前言

SVN(Subversion)是一個(gè)自由開源的版本控制系統(tǒng)箩退。當(dāng)公司的開發(fā)團(tuán)隊(duì)在進(jìn)行復(fù)雜的多項(xiàng)目開發(fā)時(shí)囱持,SVN是最好的選擇履婉。


常見的源代碼管理工具

  • CVS
    • 歷史悠久蚀腿,現(xiàn)在幾乎沒人使用
  • SVN
    • 集中式版本控制的代表
    • CVS的接班人,速度比CVS快舷嗡,功能比CVS強(qiáng)大
    • 在國內(nèi)使用率非常高(70%~90%)
  • GIT
    • 分布式源代碼管理工具
    • 目前被大多數(shù)開源項(xiàng)目使用
    • 不過在國內(nèi)企業(yè)尚未大規(guī)模普及

源代碼管理工具出現(xiàn)的意義

  • 目的
    • 為了解決在軟件開發(fā)過程中轴猎,由源代碼引發(fā)的各種繁瑣的問題
  • 常見問題
    • 無法后悔:做錯(cuò)了一個(gè)操作后,沒有后悔藥可以吃
    • 版本備份:費(fèi)空間进萄、費(fèi)時(shí)間
    • 版本混亂:因版本備份過多造成混亂税稼,難于找回正確的想要的版本
    • 代碼沖突:多人操作同一個(gè)文件(團(tuán)隊(duì)開發(fā)中的常見問題)
    • 權(quán)限控制:無法對(duì)源代碼進(jìn)行精確的權(quán)限控制
    • 追究責(zé)任:出現(xiàn)了嚴(yán)重的BUG,無法得知是誰干的垮斯,容易耍賴
  • 作用
    • 能追蹤一個(gè)項(xiàng)目從誕生一直到定案的過程
    • 記錄一個(gè)項(xiàng)目的所有內(nèi)容變化
    • 方便地查閱特定版本的修訂情況

SVN

  • 原理
  • 使用環(huán)境
    • 要想利用SVN管理源代碼,必須得有2套環(huán)境
      • 服務(wù)器
        • 用于存儲(chǔ)客戶端上傳的源代碼
        • 可以在Windows上安裝Visual SVN Server
        • 大部分情況下只祠,公司的開發(fā)人員不必親自搭建SVN服務(wù)器
      • 客戶端
        • 上傳本地的源代碼到服務(wù)器兜蠕,或者更新服務(wù)器的代碼到本地,保持同步
        • 可以在Mac上使用命令行抛寝、Versions熊杨、Cornerstone曙旭、Xcode
        • 開發(fā)人員就屬于客戶端這個(gè)角色
  • SVN下載地址

安裝

  • 第一步
    • 雙擊打開VisualSVN-Server-2.7.7.msi
  • 第二步
    • 同意遵守協(xié)議
  • 第三步
    • 選擇Visual VSN 服務(wù)器和管理控制臺(tái), 和添加SVN命令行工具到系統(tǒng)Path路徑, 然后下一步
  • 第四步
    • 選擇版本
  • 第五步
    • 由于SVN都是在公司內(nèi)網(wǎng)里使用,不存在數(shù)據(jù)被截取的安全問題
    • 所以為了速度更快晶府,不要使用https
    • 取消勾選 Use secure connection(https://)
  • 第六步
    • 開始安裝
  • 第七步
    • 安裝完成后會(huì)詢問你是否需要運(yùn)行
  • 第八步
    • 安裝成功打開軟件

創(chuàng)建代碼倉庫

  • 第一步
  • 第二步
    • 填寫代碼倉庫的名稱
  • 第三步
  • 倉庫目錄說明

    • db目錄:就是所有版本控制的數(shù)據(jù)存放文件桂躏。
    • hooks目錄:腳本文件的目錄。
    • locks目錄:用放置hook來放置Subversion文件庫鎖定數(shù)據(jù)的目錄川陆,用來追蹤存取文件庫的客戶端剂习。
    • format文件是一個(gè)文本文件,里面只放了一個(gè)整數(shù)较沪,表示當(dāng)前文件庫配置的版本號(hào)鳞绕。
    • conf目錄:是這個(gè)倉庫的配置文件(倉庫的用戶訪問帳號(hào)、權(quán)限等)
  • 第四步


添加用戶


訪問SVN服務(wù)器

  • 本機(jī)直接訪問
  • 如果其他電腦想要訪問倉庫
    • 要把倉庫地址的前綴換成電腦的IP

對(duì)比Git

  • 適用對(duì)象不同尸曼。 Git 適用于參與開源項(xiàng)目的開發(fā)者们何。 他們由于水平高,更在乎的是效率而不是易用性控轿。Svn 則不同冤竹, 它適合普通的公司開發(fā)團(tuán)隊(duì)。使用起來更加容易茬射。

  • 使用的場合不同鹦蠕。 Git 適用于通過Internet,有多個(gè)開發(fā)角色的單個(gè)項(xiàng)目開發(fā)躲株, Svn 適合企業(yè)內(nèi)部由項(xiàng)目經(jīng)理統(tǒng)一協(xié)調(diào)的多個(gè)并行項(xiàng)目的開發(fā)片部。

  • 權(quán)限管理策略不同。 Git 沒有嚴(yán)格的權(quán)限管理控制霜定,只要有帳號(hào)档悠,就可以導(dǎo)出、導(dǎo)入代碼望浩,甚至執(zhí)行回退操作辖所。 Svn 則有嚴(yán)格的權(quán)限管理, 可以按組磨德、按個(gè)人進(jìn)行針對(duì)某個(gè)子目錄的權(quán)限控制缘回。區(qū)分讀、寫權(quán)限典挑。更嚴(yán)格的酥宴,不支持回退操作。保證代碼永遠(yuǎn)可以追蹤您觉。

  • 分支( branch )的使用范圍不一樣拙寡。 Git 中, 你只能針對(duì)整個(gè)倉庫作 branch, 而且一旦刪除琳水,便無法恢復(fù)肆糕。而 svn 中般堆, branch 可以針對(duì)任何子目錄,它本質(zhì)上是一個(gè)拷貝操作诚啃。 所以淮摔,可以建立非常多、層次性的 branch, 并且始赎,在不需要時(shí)將其刪除和橙,而以后需要時(shí)只要 checkout 老的 svn 版本就可以了。

  • 基于第三點(diǎn)极阅, Git 適用于單純的軟件項(xiàng)目胃碾,典型的就是一些開源項(xiàng)目,比如 Linux 內(nèi)核筋搏、 busybox 等仆百。相反, Svn 擅長多項(xiàng)目管理奔脐。 比如俄周,你可以在一個(gè) svn 倉庫中存放一個(gè)手機(jī)項(xiàng)目的 bsp/ 設(shè)計(jì)文檔 / 文件系統(tǒng)/ 應(yīng)用程序 / 自動(dòng)化編譯腳本, 或者在一個(gè) svn 中存放 5 款手機(jī)項(xiàng)目的文件系統(tǒng)髓迎。 git 中必須建立 n ( 項(xiàng)目數(shù) )* m (組件數(shù)) 個(gè)倉庫峦朗。 Svn 中只需要最多 n 或者 m 個(gè)就可以了。

  • Git 使用 128 位 ID 作為版本號(hào)排龄, 而且 checkout 時(shí)要注明是哪個(gè) branch, 而 svn 使用一個(gè)遞增的序列號(hào)作為全局唯一的版本號(hào)波势, 更加簡明易懂。雖然可以使用 git tag 來建立一些文字化的別名橄维,但是畢竟那只是針對(duì)特殊版本尺铣。

  • 可跟蹤性,git 的典型開發(fā)過程為: 建立分支争舞,進(jìn)行開發(fā)凛忿,提交到本地 master,刪除分支竞川。這樣做的后果是以前 的修改 細(xì)節(jié)會(huì)丟失店溢。 而在 svn 下做同樣的事情,不會(huì)丟失任何細(xì)節(jié)委乌。 這里是一個(gè)有趣的鏈接床牧,表明了 git 下典型的工作方式:(以master為核心,不斷創(chuàng)建新branch, 刪除舊branch):

  • 局部更新遭贸,局部還原叠赦。SVN由于是在每個(gè)文件夾建立一個(gè).svn文件夾來實(shí)現(xiàn)管理,所以可以很簡單實(shí)現(xiàn)局部更新或者還原。假如你只希望更新某些部分除秀,則svn可以很好實(shí)現(xiàn)。同時(shí)代碼寫錯(cuò)了算利,同時(shí)可以很好實(shí)現(xiàn)局部還原册踩,當(dāng)然git也可以通過歷史版本還原,但是無法簡單地實(shí)現(xiàn)局部還原效拭。


最后

養(yǎng)成使用源代碼管理工具暂吉,會(huì)讓我們的開發(fā)更加高效。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缎患,一起剝皮案震驚了整個(gè)濱河市慕的,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挤渔,老刑警劉巖肮街,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異判导,居然都是意外死亡嫉父,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門眼刃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绕辖,“玉大人,你說我怎么就攤上這事擂红∫羌剩” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵昵骤,是天一觀的道長树碱。 經(jīng)常有香客問我,道長涉茧,這世上最難降的妖魔是什么赴恨? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮伴栓,結(jié)果婚禮上伦连,老公的妹妹穿的比我還像新娘。我一直安慰自己钳垮,他們只是感情好惑淳,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著饺窿,像睡著了一般歧焦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天绢馍,我揣著相機(jī)與錄音向瓷,去河邊找鬼。 笑死舰涌,一個(gè)胖子當(dāng)著我的面吹牛猖任,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓷耙,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼朱躺,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了搁痛?” 一聲冷哼從身側(cè)響起长搀,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸡典,沒想到半個(gè)月后源请,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轿钠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年巢钓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疗垛。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡症汹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贷腕,到底是詐尸還是另有隱情背镇,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布泽裳,位于F島的核電站瞒斩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涮总。R本人自食惡果不足惜胸囱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瀑梗。 院中可真熱鬧烹笔,春花似錦、人聲如沸抛丽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亿鲜。三九已至允蜈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饶套。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工漩蟆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凤跑。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓爆安,卻偏偏與公主長得像,于是被迫代替她去往敵國和親仔引。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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