【山外筆記-框架工具】SVN版本控制系統(tǒng)
學(xué)習(xí)資料:
1满葛、本文打印版下載地址:[山外筆記-框架工具筆記]SVN版本控制工具-打印版.pdf
2镰矿、SVN和TortoiseSVN在線中文文檔:http://svndoc.iusesvn.com/
3琐驴、SVN教程-菜鳥教程:https://www.runoob.com/svn/svn-tutorial.html
4、SVN中文手冊(cè)下載地址:svnbook1.4中文手冊(cè).pdf
5秤标、TortoiseSVN中文文檔下載地址:TortoiseSVN-1.9.3-zh_CN中文使用手冊(cè).pdf绝淡、TortoiseMerge-1.9.3-zh_CN.pdf
6、TortoiseSVN安裝包:TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi
7苍姜、TortoiseSVN語言包(中文):LanguagePack_1.13.1.28686-x64-zh_CN.msi
本文重點(diǎn)內(nèi)容:
1牢酵、SVN概述
2、SVN安裝
3衙猪、SVN生命周期
4馍乙、SVN服務(wù)端操作
5、SVN客戶端操作
6垫释、TortoiseSVN 使用教程
一丝格、SVN概述
1、SVN簡介
(1)SVN是Apache Subversion的縮寫棵譬,是一個(gè)開源的版本控制系統(tǒng)显蝌。
(2)SVN在2000年由CollabNet Inc開發(fā),現(xiàn)已發(fā)展成為Apache軟件基金會(huì)的一個(gè)項(xiàng)目订咸。
(3)SVN管理著隨時(shí)間改變的數(shù)據(jù)(比如代碼)曼尊,這些數(shù)據(jù)放置在一個(gè)中央資料檔案庫(repository)中,這個(gè)檔案庫會(huì)記住每一次文件的變動(dòng)脏嚷,可以把檔案恢復(fù)到舊的版本, 或是瀏覽文件的變動(dòng)歷史骆撇。
(4)SVN管理源代碼以行為單位,只要不是修改同一行代碼然眼,SVN都會(huì)自動(dòng)合并兩種修改艾船。如果是同一行,SVN 會(huì)提示文件沖突(Conflict)高每,需要手動(dòng)確認(rèn)屿岂。
(5)SVN相對(duì)于的RCS、CVS鲸匿,采用了分支管理系統(tǒng)爷怀,設(shè)計(jì)目標(biāo)就是取代CVS。
(6)SVN源代碼地址:https://github.com/apache/subversion
2带欢、SVN基本概念
(1)repository(源代碼庫):源代碼統(tǒng)一存放的地方运授。
(2)Checkout(提瓤揪):從版本庫創(chuàng)建一個(gè)工作副本到本地目錄。
(3)Commit(提交):提交本地已修改的代碼到版本庫(repository)中吁朦。
(4)Update (更新):更新本地工作副本柒室,和版本庫同步。
3逗宜、SVN的主要功能
(1)目錄版本控制
CVS只能跟蹤單個(gè)文件的歷史,但SVN能夠依時(shí)間跟蹤整個(gè)目錄的變動(dòng)雄右,目錄和文件都能進(jìn)行版本控制。
(2)真實(shí)的版本歷史
無論是文件還是目錄纺讲,在SVN中可以增加(add)擂仍、刪除(delete)、復(fù)制(copy)和重命名(rename)熬甚,所有的新加的文件都從一個(gè)新的逢渔、干凈的版本開始。
(3)自動(dòng)提交
SVN允許一次提交乡括,不管是單個(gè)還是多個(gè)文件都是作為一個(gè)整體提交的肃廓。允許開發(fā)人員以邏輯區(qū)間建立并提交變動(dòng),以防止當(dāng)部分提交成功時(shí)出現(xiàn)的問題粟判。
(4)納入版本管控的元數(shù)據(jù)
每一個(gè)文件與目錄都附有一組可以創(chuàng)建的屬性關(guān)鍵字和屬性值亿昏,即Key/Value。屬性是隨著時(shí)間來作版本管控的,就像文件內(nèi)容一樣档礁。
(5)選擇不同的網(wǎng)絡(luò)層
- ① SVN有抽象的檔案庫存取概念, 可以很容易地實(shí)施新的網(wǎng)絡(luò)機(jī)制角钩。
- ② SVN可以作為一個(gè)擴(kuò)展模塊嵌入到Apache HTTP服務(wù)器中。
- ③ SVN還提供了許多重要功能: 如身份認(rèn)證, 授權(quán), 在線壓縮, 以及文件庫瀏覽等等呻澜。
- ④ SVN還有一個(gè)輕量級(jí)的獨(dú)立SVN服務(wù)器递礼,使用自定義的通信協(xié)議,可通過ssh以tunnel方式使用。
(6)一致的數(shù)據(jù)處理方式
SVN使用二進(jìn)制差異算法來異表示文件的差異羹幸,將文件以壓縮形式儲(chǔ)存在檔案庫中,而且文件差異是以兩個(gè)方向在網(wǎng)絡(luò)上傳輸?shù)摹?/p>
(7)有效的分支(branch)與標(biāo)簽(tag)
SVN建立分支與標(biāo)簽的方法, 就只是復(fù)制該項(xiàng)目, 使用的方法就類似于硬連接(hard-link)脊髓。
(8)Hackability
SVN沒有任何的歷史包袱,主要是一群共用的C程序庫,具有定義完善的API栅受,便于維護(hù)将硝。
4、SVN的優(yōu)點(diǎn):優(yōu)于CVS之處
(1)原子提交:一次提交不管是單個(gè)還是多個(gè)文件屏镊,都是作為一個(gè)整體提交的依疼。
(2)重命名、復(fù)制而芥、刪除文件等動(dòng)作都保存在版本歷史記錄當(dāng)中律罢。
(3)對(duì)于二進(jìn)制文件,使用了節(jié)省空間的保存方法棍丐。
(4)目錄也有版本歷史误辑。整個(gè)目錄樹可以被移動(dòng)或者復(fù)制沧踏,而且能夠保留全部版本記錄。
(5)分支的開銷非常小巾钉。
(6)優(yōu)化數(shù)據(jù)庫訪問翘狱,減少了不必要的數(shù)據(jù)庫訪問。
二睛琳、SVN安裝
1盒蟆、Windows下安裝SVN
(1)下載地址:
(2)下載完成后,雙擊下載的安裝文件進(jìn)行安裝师骗,指定SVN的安裝目錄。
(3)添加環(huán)境變量:將SVN安裝目錄中的bin目錄添加到path路徑中讨惩。
(4)在CMD命令行窗口中輸入svnserve -help
命令驗(yàn)證是否安裝成功辟癌。
2、CentOS下安裝SVN
(1)大多數(shù)GNU/Linux發(fā)行版系統(tǒng)自帶了SVN荐捻,使用svn --version
命令檢查是否安裝黍少。
(2)如果SVN客戶端沒有安裝,將報(bào)告svn命令找不到的錯(cuò)誤处面。
(3)如果SVN客戶端已安裝厂置,將報(bào)告SVN的版本號(hào)和編譯日期。
(4)安裝命令:yum install -y subversion
3魂角、Ubuntu下安裝SVN
(1)大多數(shù)GNU/Linux發(fā)行版系統(tǒng)自帶了SVN昵济,使用svn --version
命令檢查是否安裝。
(2)如果SVN客戶端沒有安裝野揪,將報(bào)告svn沒有安裝访忿。
(3)如果SVN客戶端已安裝,將報(bào)告SVN的版本號(hào)和編譯日期斯稳。
(4)安裝命令:apt-get install subversion
三海铆、SVN生命周期
1、創(chuàng)建版本庫
(1)版本庫相當(dāng)于一個(gè)集中的空間挣惰,用于存放開發(fā)者所有的工作成果代碼卧斟。
(2)版本庫不僅能存放文件,還包括了每次修改的歷史憎茂,即每個(gè)文件的變動(dòng)歷史珍语。
(3)Create操作:用來創(chuàng)建一個(gè)新的版本庫。
2唇辨、檢出
(1)Checkout操作:用來從版本庫創(chuàng)建一個(gè)工作副本廊酣。
(2)工作副本是開發(fā)者私人的工作空間,可以進(jìn)行內(nèi)容的修改赏枚,然后提交到版本庫中亡驰。
3晓猛、更新
(1)update操作:用來更新版本庫,將版本庫同步到工作副本凡辱。
(2)版本庫一直保持最新的代碼戒职,版本庫一有更新,本地工作副本就會(huì)過期透乾。
4洪燥、執(zhí)行變更
(1)Rename操作:可以更改文件/目錄的名字。
(2)移動(dòng)操作:用來將文件/目錄從一處移動(dòng)到版本庫中的另一處乳乌。
(3)添加操作:用來添加文件/目錄捧韵,但這些添加的文件目錄只是被添加進(jìn)待變更列表中,直到執(zhí)行了commit操作后才會(huì)成為版本庫的一部分汉操。
(4)刪除操作:用來將文件從工作副本中刪除掉再来,但該文件的實(shí)際刪除只是被添加到了待變更列表中,直到執(zhí)行了commit操作后版本庫才會(huì)真正刪除磷瘤。
5芒篷、復(fù)查變化
(1)在commit操作之前復(fù)查下在工作副本中所進(jìn)行的變動(dòng)是一個(gè)很好的習(xí)慣。
(2)Status操作:列出工作副本中所進(jìn)行的變動(dòng)采缚。
(3)Status操作只是提供了一個(gè)變動(dòng)列表针炉,但并不提供變動(dòng)的詳細(xì)信息。
(4)對(duì)工作副本的任何改動(dòng)都會(huì)成為待變更列表的一部分扳抽,Status 操作就是用來查看這個(gè)待變更列表篡帕。
(5)diff操作:用來查看這些變動(dòng)的詳細(xì)信息。
6摔蓝、修復(fù)錯(cuò)誤
(1)Revert操作:重置對(duì)工作副本的修改赂苗,將會(huì)銷毀待變更列表并將工作副本恢復(fù)到原始狀態(tài)。
(2)Revert操作可以重置一個(gè)或多個(gè)文件/目錄贮尉,也可以重置整個(gè)工作副本拌滋。
7、解決沖突
(1)Merge操作:自動(dòng)處理可以安全合并的東西猜谚,其它的會(huì)被當(dāng)做沖突败砂。
(2)Resolve操作:用來幫助用戶找出沖突并告訴版本庫如何處理這些沖突。
8魏铅、提交更改
(1)Commit操作:用來將更改從工作副本到版本庫昌犹。
(2)Commit操作會(huì)修改版本庫的內(nèi)容,其它開發(fā)者可以通過更新他們的工作副本來查看這些修改览芳。
(3)Commit是一個(gè)原子操作斜姥,要么完全提交成功,要么失敗回滾,用戶不會(huì)看到成功提交一半的情況铸敏。
(4)在提交之前缚忧,必須將文件/目錄添加到待變更列表中。列表中記錄了將會(huì)被提交的改動(dòng)杈笔。
(5)當(dāng)提交的時(shí)候闪水,通常會(huì)提供一個(gè)注釋來說明改動(dòng)。這個(gè)注釋也會(huì)成為版本庫歷史記錄的一部分蒙具。
四球榆、SVN服務(wù)端操作
1、配置SVN啟動(dòng)模式
(1)新建版本庫目錄:mkdir /opt/svn
(2)創(chuàng)建版本庫:svnadmin create /opt/svn/svntest
(3)啟動(dòng)版本庫:svnserve -d -r 目錄--listen-port 端口號(hào)
- ① -r:配置方式?jīng)Q定了版本庫訪問方式禁筏。
- ② --listen-port:指定SVN監(jiān)聽端口持钉,不加此參數(shù),SVN默認(rèn)監(jiān)聽3690
(4)單庫svnserve方式:-r直接指定到版本庫
① 命令:
svnserve -d -r /opt/svn/svntest
② 一個(gè)svnserve只能為一個(gè)版本庫工作篱昔。
-
③ authz配置文件中對(duì)版本庫權(quán)限的配置:
[groups] admin=user1 dev=user2 [/]@admin=rw user2=r
④ URL:輸入svn://192.168.0.1/右钾,即可訪問svntest版本庫
(5)多庫svnserve方式:-r指定到版本庫的上級(jí)目錄
① 命令:
svnserve -d -r /opt/svn
② 一個(gè)svnserve可以為多個(gè)版本庫工作。
-
③ authz配置文件中對(duì)版本庫權(quán)限的配置:
[groups] admin=user1 dev=user2 [svntest:/]@admin=rw user2=r [svntest01:/]@admin=rw user2=r
④ 用[/]旱爆,則表示所有庫的根目錄,即[/src]表示所有庫的根目錄下的src目錄窘茁。
⑤ URL:svn://192.168.0.1/svntest怀伦,即可訪問svntest版本庫。
2山林、創(chuàng)建SVN版本庫
(1)新建版本庫目錄:mkdir /opt/svn
(2)創(chuàng)建版本庫:svnadmin create /opt/svn/svntest
(3)以多庫svnserve方式啟動(dòng)SVN:svnserve -d -r /opt/svn
房待,URL:svn://192.168.0.1/svntest01
(4)配置目錄:/opt/svn/svntest/conf,包括svnserve.conf、passwd、authz配置文件段誊。
(5)SVN服務(wù)配置文件:svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /home/svn/passwd
authz-db = /home/svn/authz
realm = tiku
① anon-access:控制非鑒權(quán)用戶訪問版本庫的權(quán)限翎迁,取值范圍為write、read和none肄程。即write為可讀可寫,read為只讀,none表示無訪問權(quán)限宣虾。默認(rèn)值:read
② auth-access:控制鑒權(quán)用戶訪問版本庫的權(quán)限。默認(rèn)值:write
③ password-db:指定用戶名口令文件温数,默認(rèn)為conf目錄中的passwd绣硝。
④ authz-db:指定權(quán)限配置文件撑刺,實(shí)現(xiàn)以路徑為基礎(chǔ)的訪問控制。默認(rèn)值:authz
-
⑤ realm:指定版本庫的認(rèn)證域,即在登錄時(shí)提示的認(rèn)證域名稱挠铲。
- ? 若兩個(gè)版本庫的認(rèn)證域相同,建議使用相同的用戶名口令數(shù)據(jù)文件淑蔚。
- ? 默認(rèn)值: UUID(Universal Unique IDentifier,全局唯一標(biāo)示)刹衫。
(6)用戶名口令文件passwd
① 用戶名口令文件由svnserve.conf的配置項(xiàng)password-db指定,默認(rèn)為conf目錄中的passwd带迟。
② passwd文件僅由一個(gè)[users]配置段組成音羞。
-
③ [users]配置段配置行格式:<用戶名> = <口令>
[users] admin = admin thinker = 123456
(7)權(quán)限配置文件authz
① 權(quán)限配置文件由svnserve.conf的配置項(xiàng)authz-db指定,默認(rèn)為conf目錄中的authz仓犬。
② authz配置文件由一個(gè)[groups]配置段和若干個(gè)版本庫路徑權(quán)限段組成搀继。
③ [groups]配置段中配置行格式如下:<用戶組> = <用戶列表>
-
④ 版本庫路徑權(quán)限段的段名格式如下:[<版本庫名>:<路徑>]
[groups] g_admin = admin,thinker [admintools:/] @g_admin = rw * = [test:/home/thinker] thinker = rw * = r
五、SVN客戶端操作
1叽躯、SVN檢出操作
(1)創(chuàng)建版本庫svntest,URL為svn://192.168.0.1/svntest,svn用戶user01有讀寫權(quán)限。
(2)檢出命令:svn checkout svn://192.168.0.1/svntest --username=user01
(3)查看檢出工作副本信息命令:svn info .
2酣难、SVN提交操作
(1)在工作副本中新建一個(gè)文件:echo “Hello黑滴,SVN” > HelloSVN.txt
(2)查看工作副本狀態(tài):svn status
,狀態(tài)顯示為菜谣?吵瞻,說明還未加到版本控制中。
(3)添加到版本控制中:svn add HelloSVN.txt
(4)查看工作副本狀態(tài):svn status
橡羞,狀態(tài)顯示為A卿泽,說明已添加到版本控制中滋觉。
(5)提交到版本庫:svn commit -m "SVN readme."
- ① -m:備注本次提交的注釋信息齐邦,如果忽略了,SVN會(huì)打開一個(gè)文本編輯器來讓你輸入提交信息措拇。
- ② 命令執(zhí)行后會(huì)輸出提交的文件,并且修訂版本號(hào)自動(dòng)增加了1浅悉。
3券犁、SVN解決沖突
(1)沖突的原因:SVN管理源代碼以行為單位,只要不是修改同一行代碼荞估,SVN都會(huì)自動(dòng)合并兩種修改稚新。如果是同一行,SVN 會(huì)提示文件沖突(Conflict)娇昙,需要手動(dòng)確認(rèn)笤妙。
(2)解決過程:假設(shè)版本庫版本號(hào)為10時(shí)噪裕,用戶A和用戶B同時(shí)對(duì)修改了svntest.txt文件中的同一行蹲盘。
- ① 用戶A先提交了自己修改的文件到版本庫,提交成功后膳音,版本庫版本號(hào)變更為11.
- ② 用戶B提交自己修改的文件到版本庫時(shí)祭陷,提交失敗,產(chǎn)生沖突兵志。
- ③ 用戶A提交后版本號(hào)已經(jīng)變更想罕,用戶B的工作副本已經(jīng)失效,SVN不會(huì)允許用戶B提交修改操作惭适。
- ④ 用戶B先查看用戶A提交的修改和自己的修改的差異,執(zhí)行
svn diff
命令癞志。 - ⑤ 用戶B需要更新工作副本凄杯,執(zhí)行
svn update
命令,可以指定更新到的版本墓臭,默認(rèn)是最新的版本妖谴。 - ⑥ 工作副本和版本庫同步后,用戶B可以提交自己的修改到版本庫嗡载。
4仍稀、SVN版本回退
(1)svn revert操作:撤銷任何文件或目錄里的局部更改,即對(duì)文件的修改遥巴。
(2)撤銷文件修改的具體操作流程:
① 查看SVN狀態(tài):執(zhí)行
svn status
命令享幽,顯示文件名及其狀態(tài),狀態(tài)為M摆霉,說明文件被修改奔坟。② 撤銷文件的修改:執(zhí)行
svn revert filename
③ 再次查看SVN狀態(tài):執(zhí)行
svn status
命令咳秉,沒有任何顯示,說明撤銷成功澜建。
(3)撤銷目錄修改操作同撤銷文件修改,只是恢復(fù)目錄用需要使用-R選項(xiàng)户誓,即svn revert -R dirname
帝美。
(4)恢復(fù)一個(gè)已經(jīng)提交的版本
① 消除舊版本,必須撤銷舊版本里的所有更改然后提交一個(gè)新版本庇忌,這種操作叫做reverse merge舰褪。
② 命令:
svn merge -r 22:21 filename
,當(dāng)前版本22略就,上一個(gè)版本21晃酒。
5、SVN查看歷史信息
通過svn命令可以根據(jù)時(shí)間或修訂號(hào)去除過去的版本崔兴,或者某一版本所做的具體的修改蛔翅。
(1)svn log:用來展示svn 的版本作者山析、日期、路徑等等。
- ① 只查看特定的某兩個(gè)版本之間的信息:
svn log -r 6:8
- ② 只查看某一個(gè)文件的版本修改信息:
svn log file_path/filename
- ③ 只查看目錄的版本修改信息:
svn log -v file_path
④ 顯示限定N條記錄的目錄信息:svn log -l N -v
(2)svn diff:用來顯示特定修改的行級(jí)詳細(xì)信息损同。
- ① 比較工作副本接本地版本庫的修改:
svn diff
- ② 比較工作副本與版本庫的修改:
svn diff -r 3 filename
- ③ 比較版本庫與版本庫的修改:
svn diff -r 2:3 filename
膏燃,版本號(hào)之間用冒號(hào)分隔。
(3)svn cat:查看在特定版本中的某文件的內(nèi)容等龙,執(zhí)行svn cat -r 版本號(hào) filename
。
(4)svn list:顯示一個(gè)目錄或某一版本存在的文件罐栈,執(zhí)行svn list -r 版本號(hào) dir_path
泥畅。
6、SVN分支
Branch分支就是trunk版(主干線)的一個(gè)copy版柑贞,也具有版本控制功能聂抢,而且和主干線相互獨(dú)立,最后可以通過合并功能有决,將分支合并到trunk上來轿亮,合并為一個(gè)項(xiàng)目我注。
(1)在本地工作副本創(chuàng)建一個(gè)分支:svn copy trunk/ branch/mybranch
(2)查看SVN狀態(tài):svn status
(3)提交新增的分支到版本庫:svn commit -m "add my_branch"
(4)合并my_branch分支到trunk中:svn merge . ./branches/my_branch/
7、SVN標(biāo)簽(tag)
SVN支持tag選項(xiàng)励七,可以給某一個(gè)具體版本的代碼一個(gè)標(biāo)簽奔缠,主要用于項(xiàng)目開發(fā)中的里程碑,往往代表一個(gè)可以固定的完整的版本。
(1)在本地工作副本創(chuàng)建一個(gè)tag分支:svn copy trunk/ tags/v1.0
(2)查看SVN狀態(tài):svn status
(3)提交tag內(nèi)容:svn commit -m "tags v1.0"
六两波、TortoiseSVN使用教程
1闷哆、TortoiseSVN簡介
TortoiseSVN是Subversion版本控制系統(tǒng)的一個(gè)免費(fèi)開源GUI客戶端
2抱怔、安裝TortoiseSVN
(1)下載地址:https://tortoisesvn.net/downloads.html, 頁面里有語言包補(bǔ)丁的下載鏈接。
(2)運(yùn)行下載的 TortoiseSVN 安裝程序
(3)運(yùn)行下載的 TortoiseSVN 中文語言包
(4)重啟電腦局冰,確認(rèn)TortoiseSVN安裝完成。
(5)修改TortoiseSVN默認(rèn)語言
- ① TortoiseSVN默認(rèn)語言英文碳胳,可以通過設(shè)置修改成已安裝語言赠摇。
- ② 鼠標(biāo)在桌面空白處右擊—>TortoiseSVN—>設(shè)置。
3烫罩、TortoiseSVN創(chuàng)建服務(wù)端版本庫
(1)在本地新建一個(gè)目錄,進(jìn)入新建的目錄.
(2)創(chuàng)建版本庫:鼠標(biāo)在空白右擊—>TortoiseSVN—>在此創(chuàng)建版本庫
(3)版本庫創(chuàng)建完成后洽故,目錄中會(huì)出現(xiàn)Server端的文件时甚,和svnserve命令創(chuàng)建的一致。
4梨熙、TortoiseSVN創(chuàng)建工作副本
(1)在本地創(chuàng)建工作目錄,進(jìn)入創(chuàng)建的目錄.
(2)SVN檢出:鼠標(biāo)在空白右擊刀诬,選擇 SVN檢出(checkout),彈出檢出會(huì)話框质欲。
- ① 版本庫URL:repository(版本庫)的位置URL糠馆,即svn://192.168.0.1/svntest
- ② 檢出至目錄:本地創(chuàng)建的工作目錄路徑又碌。
- ③ 檢出深度和版本默認(rèn)(最新版)即可,點(diǎn)擊確定毕匀。
- ④ 檢出完成后期揪,可以看到工作目錄里多了一個(gè)
.svn
的隱藏目錄规个。
5姓建、TortoiseSVN客戶端操作
(1)svn update操作:鼠標(biāo)在工作副本空白處右擊—>SVN 更新(U)
(2)svn add操作:鼠標(biāo)在工作副本空白處右擊—> TortoiseSVN—>增加(A)
(3)svn commit操作:鼠標(biāo)在工作副本空白處右擊—>SVN 提交(C)
(4)svn copy操作:鼠標(biāo)在工作副本空白處右擊—> TortoiseSVN—>分支/標(biāo)簽(T)
(5)svn merge操作:鼠標(biāo)在工作副本空白處右擊—> TortoiseSVN—>合并(M)
(6)svn import操作:鼠標(biāo)在工作副本空白處右擊—> TortoiseSVN—>導(dǎo)入(I)
(7)svn export操作:鼠標(biāo)在工作副本空白處右擊—> TortoiseSVN—>導(dǎo)出(X)
(8)svn lock操作:鼠標(biāo)在工作副本空白處右擊—> TortoiseSVN—>獲取鎖定(K)
(9)svn unlock操作:鼠標(biāo)在工作副本空白處右擊—> TortoiseSVN—>解除鎖定(K)
(10)svn cleanup操作:鼠標(biāo)在工作副本空白處右擊—> TortoiseSVN—>清理(C)
免責(zé)聲明:本文整理自《SVN中文手冊(cè)》速兔、《TortoiseSVN中文手冊(cè)》活玲、《菜鳥教程-SVN教程》和個(gè)人的學(xué)習(xí)總結(jié)舒憾,屬于個(gè)人的學(xué)習(xí)筆記,僅用于學(xué)習(xí)和分享交流丁溅,不涉及商業(yè)用途探遵。文中涉及的下載資源均來源于網(wǎng)絡(luò),版權(quán)歸原作者所有涯穷,請(qǐng)?jiān)谙螺d后24小時(shí)之內(nèi)自覺刪除藏雏,若作商業(yè)用途诉稍,請(qǐng)購買正版,由于未及時(shí)購買和付費(fèi)發(fā)生的侵權(quán)行為蚤告,與本文無關(guān)服爷。如果本文發(fā)布的內(nèi)容侵犯到相關(guān)的權(quán)益,請(qǐng)及時(shí)聯(lián)系本人進(jìn)行刪除心褐!