添加
在test項(xiàng)目文件下,新建一個(gè)b.txt文件,提交到版本庫(kù)的方法如下2種:
1. 先提到變更列表中吉嚣,再commit到配置庫(kù)中,選擇新增文件蹬铺,右鍵SVN菜單執(zhí)行“Add“操作提交到”變更列表中”尝哆,然后右鍵SVN菜單執(zhí)行”SVN Commit”提交到版本庫(kù)中。
2. 不提交到變更列表中甜攀,而是直接commit配置庫(kù)中秋泄,選擇該文件,右鍵svn菜單執(zhí)行”SVN Commit”操作规阀。
刪除
如果被刪除的文件還未入版本庫(kù)恒序,則可以直接使用操作系統(tǒng)的刪除操作刪除該文件。
如果被刪除的文件已入版本庫(kù)谁撼,則刪除的方法如下:
選擇被刪除文件奸焙,右鍵svn菜單執(zhí)行”delete”操作,然后選擇被刪除文件的父目錄,右鍵svn菜單執(zhí)行”SVN Commit”.
使用操作系統(tǒng)的刪除操作刪除該文件与帆,然后選擇被刪除文件的父目錄,右鍵svn菜單執(zhí)行”SVN Commit”,在變更列表中選擇被刪除的文件墨榄。
改名
修改文件名玄糟,選中需要重命名的文件或文件夾,然后右鍵“TortoiseSVNàRename“袄秩,在彈出的對(duì)話框中輸入新名稱阵翎,點(diǎn)擊”ok”按鈕,并將修改文件名后的文件或文件夾通過(guò) “SVN Commit”提交到SVN服務(wù)器上之剧。
還原
右擊想要回退的文件或者文件夾郭卫,在TortoiseSVN彈出菜單中選擇”Update to reversion…” 然后會(huì)彈出一個(gè)窗口,比如說(shuō)我們要回退到第10個(gè)版本只需要在Revision中填寫(xiě)相應(yīng)的版本號(hào)背稼,然后點(diǎn)擊ok即可贰军。
更新
此功能可以顯示你所做的修改有哪些還沒(méi)有提交的,此功能不光能看到對(duì)文件的修改變化蟹肘,所有的變化都能看到词疼,包括增加文件或者目錄,刪除文件或者目錄帘腹,移動(dòng)文件或者目錄等贰盗,如果你點(diǎn)擊了檢查版本庫(kù),那你還可以看到版本庫(kù)里的改動(dòng)阳欲,既別人提交了哪些文件的改動(dòng)舵盈,你還沒(méi)更新到本地
更新本地代碼與SVN服務(wù)器上最新的版本一致,只要在需要更新的文件夾上點(diǎn)擊右鍵或者在文件下空白處點(diǎn)擊右鍵球化,選擇”SVN Update” (獲取指定版本中的內(nèi)容秽晚,點(diǎn)擊右鍵執(zhí)行SVN菜單中的“Update to reversion“),就可以了赊窥。
沖突
為什么會(huì)產(chǎn)生沖突代碼呢爆惧?原因很簡(jiǎn)單就是因?yàn)椴煌娜耍瑫r(shí)修改了同一個(gè)文件的同一個(gè)地方锨能,這時(shí)候扯再,他提交了,我沒(méi)有提交址遇,我就提交不了熄阻,這個(gè)時(shí)候我們要進(jìn)行先更新,然后在進(jìn)行提交即可倔约,那如果產(chǎn)生沖突秃殉,會(huì)生成3個(gè)文件。
解決方案如下:
首先我們可以看下1.txt代碼如下:
<<<<<<< .mine
aaaasdf11222333 dderderder
=======
b
>>>>>>> .r5
然后我去掉多余的代碼,1.txt變成這樣
aaaasdf11222333 dderderder
進(jìn)行提交钾军,還是提交不了
為什么鳄袍?因?yàn)闆_突會(huì)產(chǎn)生上面的三個(gè)文件,有上面3個(gè)文件存在肯定提交不了吏恭,這三個(gè)文件代碼及解釋如下:
1.txt.mine 是沖突前自己的文件拗小。
可以看下內(nèi)容如下:
aaaasdf11222333 dderderder
2.? 1.txt.r4 是沖突前本地的版本文件
內(nèi)容如下:aaaasdf11222333
3.? 1.txt.r5? 是別人趕在你之前提交的版本
1.使用revert(回滾)操作,該操作表示用戶放棄自己的更新代碼樱哼,然后直接提交哀九,這個(gè)時(shí)候你的代碼就會(huì)使服務(wù)器上最新的代碼,即A用戶提交的新代碼搅幅,你的代碼不會(huì)被提交
點(diǎn)擊ok按鈕后 可以看到其他三個(gè)文件都自動(dòng)刪掉了阅束,1.txt代碼變成如下代碼:
66666666666aaaaaaaaaa666
也就是a用戶提交的代碼,我自己更新的代碼需要自己動(dòng)手復(fù)制進(jìn)去即可提交commit茄唐。
2.選擇文件->右鍵Editconficts:這種方法需要沖突雙方經(jīng)過(guò)協(xié)商之后將代碼更改統(tǒng)一之后再提交息裸。不僅解決了沖突而且還保證了代碼是正確的,因?yàn)橹挥幸环降拇a被提交
紅色的部分是沖突代碼:theirs表示當(dāng)前服務(wù)器端最新的代碼琢融,Mine表示自己修改后的代碼界牡,Merged表示合并后的代碼。點(diǎn)擊紅色后右鍵選擇:use this text block就可以將該部分代碼作為合并后的代碼.
接下來(lái)再說(shuō)說(shuō)由于沖突導(dǎo)致重要代碼被覆蓋的情況漾抬。沖突發(fā)生時(shí)如果采取的措施不對(duì)可能會(huì)導(dǎo)致部分代碼丟失宿亡,如果想要還原之前的代碼也很容易。
選擇文件->右鍵選擇show log在這里面你可以看見(jiàn)之前提交的所有版本纳令,找到你想要恢復(fù)的版本右鍵選擇revert to this version 就可以恢復(fù)了.
分支
比如我現(xiàn)在項(xiàng)目所有的文件放在主干上(trunk)中挽荠,由于需求的變更,需要增加新的需求平绩,但是我們主干上還要繼續(xù)往下開(kāi)發(fā)圈匆,在此我們可以新建一個(gè)分支,來(lái)做增加新的需求那一塊捏雌,主干上繼續(xù)開(kāi)發(fā)跃赚,等分支上代碼沒(méi)有問(wèn)題的時(shí)候,再合并到主干上來(lái)
創(chuàng)建分支的最大的目的就是跟主線進(jìn)行并行開(kāi)發(fā)時(shí)候不影響主線的開(kāi)發(fā)
假如我本地新建一個(gè)文件夾test下有2個(gè)文件夾trunk(存放主干上的代碼)和branch(存放分支上的代碼)
點(diǎn)擊trunk --> 鼠標(biāo)右鍵 --> 點(diǎn)擊SVN Checkout
從trunk(主干上)創(chuàng)建分支(branch)步驟如下:
1. 右鍵trunk --> branch/Tag
點(diǎn)擊ok按鈕后性湿,就可以在VisualSVN Serval服務(wù)器上新增newBranch纬傲,是從如上服務(wù)器qianduan3上的文件拷貝一份的,
現(xiàn)在我們可以再來(lái)看看本地branch文件夾了肤频,我現(xiàn)在直接進(jìn)入branch文件下叹括,右鍵 --> Chenckout下,就可以把newBranch下的所有文件提取出來(lái)了
分支目前建立在svn的服務(wù)器端宵荒,本地并沒(méi)有更新汁雷,對(duì)本地branch文件夾 右鍵--> update即可净嘀,就可以更新到分支代碼
我現(xiàn)在想把分支上的代碼3.txt合并到主干上trunk,現(xiàn)在要怎么合并呢侠讯?步驟如下:
1. 回到我們剛剛的主干(trunk)文件夾下挖藏,鼠標(biāo)右鍵該文件夾 --> TortoiseSVN --> Merge