2009-11-24 97 views
0

當我從TRUNK版本創建一個分支時,我的結果分支沒有任何mergeinfo設置,因爲據我可以告訴它不可能找出分支來自哪個版本。從mergeinfo版本Subversion分支

我有一些腳本應該在稍後自動生成差異對TRUNK,但我沒有我需要的版本號。如果我再次與main合併,我將設置merginfo,以便腳本可以將其拉出。我

也可以做

svn merge --record-only svn+ssh://{url}/[email protected]{revision} 

這將設置修改。但速度很慢,需要檢查源代碼並將修改回來。

我也可以更改腳本以僅從分支中的更改生成差異,除非有合併信息,然後回退到主幹上的差異,但特殊情況下使這非常複雜。

有沒有更簡單的方法?

說明: 在做了更多的顛覆研究之後,我讀了this。我需要的是訪問IMPLICIT mergeinfo的編程方式,因爲當您通過副本創建分支時,您不會獲得顯式合併信息屬性。

隱含屬性有效/TRUNK:1-BRANCHPOINT指示分支包含的所有修訂最多包含BRANCHPOINT。我試圖找到的是BRANCHPOINT分支已經完成之後。

回答

3

從這個問題,我不完全確定你想要產生的差異。 但是,你總是可以得到一個分支是從哪裏來的使用修訂:

svn log -v --stop-on-copy -r 1:HEAD -l 1 svn+ssh://{url}/branch 

這第一筆訂單最古老的版本,不回去超出了該分支的複製操作,並限制到1修訂版(複製操作本身)。但是,svn mergeinfo考慮到分支操作並認爲它們已經合併(我認爲有一段時間它沒有這樣做,這很煩人,但它已經修復了一段時間),所以使用mergeinfo來查看什麼nees要合併在任一方向將告訴你一些明智的。

+0

嗯,我想我可以解析svn log -v的輸出來獲取它的修訂版本,但這並不理想。我現在補充一些說明,並將其保留。 – rhettg 2009-11-24 19:23:50