日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Subversion版本升級兼容性以及合并跟蹤相關問題報道下篇

 本文接著上篇文章繼續(xù)報道Subsverion版本升級、兼容性以及Subversion合并跟蹤問題,歡迎大家一起來討論研究。

創(chuàng)新互聯(lián)公司專注于和平網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供和平營銷型網(wǎng)站建設,和平網(wǎng)站制作、和平網(wǎng)頁設計、和平網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務,打造和平網(wǎng)絡公司原創(chuàng)品牌,更為您提供和平網(wǎng)站排名全網(wǎng)營銷落地服務。

Subversion1.5支持的合并跟蹤是“基礎的”:最重要的部分已經(jīng)實現(xiàn),但是在我們最初的規(guī)格中還有一部分需要去實現(xiàn)(特別是對于reflectivemerges的正確支持,更好的change-availabilityreporting和更好的trackingofrenamedfiles),雖然在1.5還要加入一些主要的特性,但我們不希望為等待某個特性延遲我們的發(fā)布。更多的合并跟蹤改進希望在Subversion1.6或以后的版本出現(xiàn)。

概述Subversion的合并跟蹤設計為:  
◆減少分支維護的記錄負擔
◆防止常見的“重復合并”問題
◆允許對于變更的cherry-picking

每個變更集都可以通過修訂版本號識別,通過新的svn:mergeinfo屬性在合并的目標存放在合并變更集的信息(通俗來說就是“合并信息(mergeinfo)”),Subversion會自動保持合并信息的為最新,但是也有辦法手工記錄/消除合并信息,這是因為總會有些時候人們知道一些Subversion不知道的事情。用戶界面從主干合并分支不再需要指明修訂版本范圍,每當你希望與trunk同步,你可以這樣做:
$cdBRANCH_WORKING_COPY
$svnmergeURL_TO_TRUNKSubversion能夠計算出從URL_TO_TRUNK有哪些變更沒有合并,并只處理這些變更,當將分支合并回主干,我們只需要:
$cdTRUNK_WORKING_COPY
$svnmerge--reintegrateURL_TO_BRANCH下面是所有合并跟蹤相關接口變更的正式描述。

svnmerge命令使用兩個新的選項:--record-only和--reintegrate。
–record-only選項至于-r結(jié)合工作,并且和你所想的一樣:它只是用來將修訂版本標記為已合并(或未合并的,使用“-”作為否定語法),而實際上除了合并信息(mergeinfo),什么也沒有做。例如,當因為效率某個人手工修改了這個文件而合并了這個其他地方修改的變更時,這非常有效,與其讓讓變更在下次合并時加入進來,從而引起文本沖突,我們不如記錄這個變更已經(jīng)合并。(細節(jié)見Subversion書的merge-trackingrequirements,andBlockingChanges。)–reintegrate選項在將分支合并回主干時使用;它會檢查一些防護措施條件并快速有效的進行合并,更多內(nèi)容見Subversionbook的Keepingabranchinsync。新的svnmergeinfo命令可以顯示一個目錄已經(jīng)接收的變更集,以及哪些變更集還適合接收,Subversion手冊的MergeinfoandPreviews有更多信息。svnlog和svnblame命令有了新的-g(--use-merge-history)選項,使之將mergeinfo納入考慮,如果沒有提供這個選項,它們就會參考合并信息。

使用-g選項的原因是有時候忽略合并歷史會更好,在blame輸出中,有時候你希望看到合并變更的人物B,而有些時候你希望看到最初作出這些修改人物A;使用-g可以得到后者的信息。在日志輸出中,你有時候希望看到某一行提交的修訂版本,而有時你希望看到最初的修改做合并修訂版本轉(zhuǎn)移走了;再次,-g顯示后者的信息(使用”Mergedvia:“標識,后面是合并發(fā)生的修訂版本號碼),見Subversion手冊的Merge-SensitiveLogsandAnnotations。Subversion合并跟蹤和兼容性前面已經(jīng)說了,在隨server升級版本庫以前不支持合并跟蹤。

如果你正在使用svnmerge包裹程序來進行合并,而現(xiàn)在希望使用Subversion1.5本身的合并跟蹤功能功能,你一定要使用svnmerge-migrate-history.py腳本來轉(zhuǎn)化svnmerge的自定義屬性為Subversion使用的svn:mergeinfo屬性。

已知問題1.5.0的合并跟蹤還有許多已知的問題,我們首先解決了最重要的,下面是:  
◆issue#3128:merge--reintegrate應該更好的處理重命名
◆issue#2897:對反向合并的更好支持
◆issue#3126:更好已知變更報告(svnmergeinfo顯示了太少或太多的合適修訂版本)
◆issue#2837:當執(zhí)行循環(huán)合并時合并跟蹤能起效果
◆issue#3056:防止以智能方式重復合并
◆issue#2898:當刪除/添加子時無需處理合并信息
◆issue#3067:在合并范圍內(nèi)不存在的樹不應該破壞合并
◆issue#3157:從路徑的自然歷史合并變更會創(chuàng)建引用自己的合并信息
◆issue#3174:合并算法需要對重命名的子樹特別關注

(可以看listofallmerge-relatedopenissues,盡管很多不是關于Subversion合并跟蹤)

Issue#3157可能是會很容易遇到的,所以下面是如何解決這個問題的詳細描述:合并跟蹤信息現(xiàn)在可以保存在路徑的“本身歷史”中,當從trunk的特定修訂版本x創(chuàng)建了一個分支,然后將分支的所有變更合并回trunk時,如果沒有明確的限制合并范圍并且沒有使用--reintegrate選項時,后果是,trunk的合并跟蹤信息將會列出x之前的信息。這對以后的合并操作沒有壞處,但是對于trunk上的svnlog-g會使用以前修訂版本的合并跟蹤信息(而不只是HEAD)。

注意,這一定不會是一個發(fā)布分支(也叫做“維護分支”)的問題,因為一個人通常不會將其合并回主干,相反,推薦的時間是對于進入trunk的新變更使用特性分支,可以在分支的生命周期結(jié)尾一次合并到主干。 一個辦法是在提交合并修訂之前修正合并跟蹤信息,通過恢復“本身歷史”信息:svnmerge--record-only-rX:1。另一個方案是完全防止這種情形,通過在第一次就明確的指定合并范圍,例如-rX:HEAD,更多信息可以看這個郵件?!‘擲ubversion合并一個特性分支,最佳方案是使用--reintegrate選項。

 【編輯推薦】

  1. 全面剖析:CentOS下如何安裝Subversion
  2. 簡單剖析Subversion1.4.4在Apache2.2系列中配置
  3. 經(jīng)驗總結(jié):淺談Subversion安裝在Windows和Linux下的區(qū)別
  4. Subversion和TortoiseSVN如何在Windows下進行構(gòu)建SVN版本控制
  5. 學習筆記:剖析Collabnet Subversion集成

當前題目:Subversion版本升級兼容性以及合并跟蹤相關問題報道下篇
轉(zhuǎn)載來于:http://www.dlmjj.cn/article/cocgeho.html