[英]Symbolic link in svn working copy for a switched directory
我在單個存儲庫中處理了幾個(2-20)個非共享祖先項目,這些項目僅在一個地方共享存儲在資源庫中的GB二進制數據的公共資源。 這些項目利用svn switch
將其適當的文件夾映射到共享二進制數據的單個svn URL。
當要簽出多個副本時,我想在工作副本中執行相同的操作,從而避免重新下載已經擁有的相同GB的二進制數據。
(注意:另一個壞消息是,這些項目還利用svn 1.7可執行文件進行修改。)
我完成的工作是檢出項目A ,執行-es鍵。 然后檢出項目B ,而不是常規切換,而不是svn switch --set-depth=empty --ignore-ancestry http://foobar
,因此項目B的此工作副本知道應該指向何處。 然后,我做了mv foobar old_foobar
和mklink /D foobar ../project_A/foobar
。 (1)
現在的問題是,如果我做svn status
與符號鏈接的廁所,它會列出所有文件中的“foobar的”非版本(如?
狀態)。
我也使用TortoiseSVN,它將圖標疊加層顯示為黃色三角形“!”。 (意味着可能已被混淆?),但我在svn status
沒有實際沖突(也沒有樹沖突),如果我確實在“ foobar”中進行了svn up
攻擊,則表示它是最新的。
二進制文件容器不會經常更改,即使它們發生更改,更改通常也是向后兼容的。 因此,工作副本對它們中的文件版本有錯誤的想法(至少對我而言)不是問題。
我不應該改變項目或回購的結構不允許我這樣做,“正式”。
我使用的是svn 1.7 ,由於這些項目實際上是使用一個自包含的svn可執行二進制文件來進行自身的工作,因此,我盡可能地堅持這一點。
有沒有一種方法可以利用符號鏈接(或其他方式)來避免在硬盤驅動器上復制相同的GB數據? (如果可能,也避免下載。)
(1):我在Windows上; 為了簡便起見,假設在我的文件系統中 ,文件夾“ project_B”和“ project_A”是鄰居。 共享一個共同的祖先,並且該文件夾foobar在兩個項目中都是頂層。
我們遇到的情況是,多個項目可能相互嵌套。
我們使用的解決方案可能適合您;
svn:ignore
條目,並確保未跟蹤該路徑。 現在,您所有的項目都將忽略這些多余的文件,但是您仍然可以通過svn管理數據。
是的,這意味着您需要記住svn update && svn update data/
以確保您的項目是最新的,但這並沒有什么麻煩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.