這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎樣進(jìn)行svn的使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)虞城,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792svn是每天都要用到的工具,學(xué)會更好的使用它,對提高工作效率很有幫助,小編記錄svn日常使用的一些技巧,方便溫故知新!
屬性的作用?
為每個文件或文件夾附加額外的信息,例如:
"test-results=all passing " test-results(屬性名) all passing(屬性值)
注:屬性名可以任意取,但最好不要以svn:開頭,以免與系統(tǒng)保留屬性名沖突。
當(dāng)開發(fā)分支中存在svn copy或svn move的修改時,合并回主線需要特別小心?。?!
例:
試想當(dāng)你在自己的開發(fā)分支上通過svn move將文件integer.c重命名為whole.c,事實你是在開發(fā)分支上創(chuàng)建一個新文件,并刪除了舊文件。同時在主線上,你的同事A提較了一些對integer.c的修改。這時你準(zhǔn)備將你開發(fā)分支上的修改合并回主線:
$ svn merge --reintegrate ^/calc/branches/my-calc-branch --- Merging differences between repository URLs into '.': D integer.c A whole.c U . --- Recording mergeinfo for merge between repository URLs into '.': U
所得到的結(jié)果并非是你和你的同事A想要的,svn刪掉了包含你同事A最近一次修改的integer.c,并新增了一個文件whole.c,但whole.c中并不包含同事A的最新修改,他的修改被移除了。(這個缺陷存在于當(dāng)前版本的svn中,期待后續(xù)版本能有改進(jìn))
svn switch
svn switch是svn update的一個超集,所以它們具有一些共同的特性:當(dāng)運(yùn)行這兩條命令時,任何本地工作拷貝的修改都會被保留。
試想,當(dāng)你在主線的工作拷貝上做了大量的修改,突然你意識到最好為了這次修改創(chuàng)建一個獨立的修改分支,借助上述特性,你可以簡單地通過兩步完成該操作:
$ svn copy http://svn.example.com/repos/calc/trunk \ http://svn.example.com/repos/calc/branches/newbranch \ -m "Create branch 'newbranch'." Committed revision 353. $ svn switch ^/calc/branches/newbranch At revision 353.
假設(shè)你修改完畢后準(zhǔn)備svn commit,那么所有的修改都將被移送到修改分支而非主線。
通過svn copy從歷史版本庫中恢復(fù)被刪除的文件
$ svn copy ^/calc/trunk/real.c@807 ./real.c $ svn status A + real.c
通過svn diff查看詳細(xì)的歷史修改記錄(精確到行)
檢查本地工作拷貝的修改
svn diff file
檢查本地工作拷貝與指定版本的修改
svn diff -r revision file
檢查指定的兩個版本間的修改
svn diff -r revision1:revision2 file(可以不再工作拷貝中執(zhí)行該命令,但需要指定URL)
檢查前后兩個版本間的修改
svn diff -c revision_new file
處理樹沖突
原因:當(dāng)你的同伴移動或刪除了一個你還在修改的文件,在你svn up時就會產(chǎn)生樹沖突
解決樹沖突的步驟:
①. 通過svn info可查看包含沖突項的URLS
$ svn info code/bar.c Path: code/bar.c Name: bar.c URL: http://svn.example.com/svn/repo/trunk/code/bar.c … Tree conflict: local edit, incoming delete upon update Source left: (file) ^/trunk/code/bar.c@4 Source right: (none) ^/trunk/code/bar.c@5
左邊的URL指示本地工作拷貝的信息
右邊的URL指示版本庫上與本地工作拷貝沖突時的版本信息
②.根據(jù)第①的得到信息,決定解決樹沖突的方案
可以刪除本地工作拷貝的文件,也可以刪除版本庫中的文件,視具體情況而定。
若要刪除本地文件但需要保留其中的修改,可以使用svn diff產(chǎn)生標(biāo)準(zhǔn)補(bǔ)丁文件patch,再通過svn patch打補(bǔ)丁
$svn delete --force code/bar.c D code/bar.c $ svn resolve --accept=working code/bar.c Resolved conflicted state of 'code/bar.c'
通過svn patch打補(bǔ)丁
當(dāng)實際修改的行號和補(bǔ)丁文件中的行號存在偏差時或補(bǔ)丁文件中某幾行在實際應(yīng)用修改時被忽略時,會在輸出報告中用符號'>'表示,這時我們就需要仔細(xì)審查修改是否正確了
當(dāng)補(bǔ)丁文件中修改行在實際修改中找不到對應(yīng)行時,這部分修改會被保存到一個以.svnpatch.rej為后綴的文件中。需要我們手動合入修改
上述就是小編為大家分享的怎樣進(jìn)行svn的使用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。