我想創建一個svn分支的邏輯進程,其中較新的分支指向前一分支中的文件,而不是這些文件的副本。一旦更改了較新分支中的文件,它就會與舊分支中的副本斷開連接。 (因此,寫入時複製)實際文件不是源代碼,但它們是文本文件。我在這裏探索可能性,並希望對此建議佈局提供反饋意見。版本控制文件的svn copy-on-write語義:svn:externals用例?
我們從一個典型的顛覆場景開始,在底層有分支。當我們創建一個新分支時,它將作爲最新分支的副本開始生活。例如:
^/branches/1/A
^/branches/1/B
分支1現在處於維護模式;新的發展繼續分支2
svn copy ^/branches/1 ^/branches/2
產量
^/branches/2/A (a copy of ^/branches/1/A)
^/branches/2/B (a copy of ^/branches/1/B)
我想是不是有A和B是斷開的副本,讓他們成爲指針
^/branches/2/A -> ^/branches/1/A
^/branches/2/B -> ^/branches/1/B
因此,分支2中的文件A無縫地「跟蹤分支1中的文件A的變化」。當需要分支2中的文件A與文件A中的br不同時錨1,我們「打破鏈接」,創建一個文件的實際副本,並從那裏去。
從我的閱讀,這可能與svn:externals。而不是svn copy,我會腳本化將分支1的目錄結構複製到分支2中,然後爲每個包含文件的目錄,在目錄上創建一個svn:externals屬性,並使用前一分支中的文件的URL。
這裏是我的問題/問題:
我想這是不可能向使從SVN/1/A轉換到分支:在外部組件分支機構/ 2/A複製。我相信這隻有通過將svn:externals定義與修訂相混淆,才能達到整個目的。有沒有像svn:readonly? (不是我能找到的)
svn:外部定義不是遞歸的。換句話說,^/branches/3/A - > ^/branches/2/A(它自己指向) - > ^/branches/1/A是不可能的。當有3個分公司,3個和2都必須明確地指向回支1
我試圖完成的主要事情是,一旦一個文件被一些分支建立,進一步分支總是變化該文件自動。這些文件的維護者必須採取一些明確的行動,以「斷開該鏈接」
有沒有更好的方法來設置它?