我在一個單獨的repo中處理非共享祖先的幾個(2-20)項目,它們共享存儲在存儲庫中的GB二進制數據的公用資源一個地方。這些項目利用svn switch
將其適當的文件夾映射到共享二進制數據的單個svn URL。svn工作副本中的符號鏈接切換的目錄
我想在我的工作副本中執行同樣的操作時檢出多個副本,從而避免重新下載已有的二進制數據的相同GB。
(注:另一個不好的消息是,該項目還利用一個SVN 1.7可執行文件,以便修改自己。)
我做了什麼
我所做的是檢查出項目一 ,做開關-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可執行二進制文件來處理它們自己,所以我想堅持這一點,如果可能的話。
問題
是否有利用以符號鏈接(或其他任何東西),以避免重複相同的數據綠帶我的硬盤驅動器上的方法嗎? (也可以避免在可能的情況下下載。)
(1):我在Windows上;爲了方便起見,假設我的文件系統中的,文件夾「project_B」和「project_A」是鄰居即ie。共享一個共同的祖先,該文件夾foobar是兩個項目的頂級水平。
嗯,可以'的svn:ignore'存儲在*工作副本* ** **只有在這個解決方案?未提交給*存儲庫*? (因爲我不應該改變工作過程中我的[幾百]同事)。 – n611x007 2013-07-17 06:46:59
我得知有一個每用戶忽略設置,這可能是合適的一個,http://stackoverflow.com/questions/52398/ignore -svn-ignore-possible – n611x007 2013-07-17 07:14:01
數百名同事?哇。 那麼將它作爲一個組織範圍的解決方案值得提出嗎? 我認爲'全球ignores'指令可能是一個可行的解決方案。即使您有其他具有相同文件夾名稱的項目(該*應該*成爲存儲庫的一部分),只要您明確地添加它們,它們就可以正常工作。 – MrTrick 2013-07-18 01:36:18