簡體   English   中英

保護svn外部

[英]protect svn externals

例如,我在svn中有一個外部項目

- myproject
|
|--------stuff1
|--------stuff2
|--------external-lib    // svn::external

我需要在external-lib目錄中添加一個文件(Makefile),我想在我的存儲庫( myproject )中而不是外部文件中粉碎它。 不要修改外部存儲庫,這一點非常重要。 可能嗎? 我想使用外部存儲庫的主修訂版。

我建議將Makefile直接存儲到myproject中。 然后您可以使用以下命令從external-lib運行它

make -f ../Makefile.external

除非您自己創建外部存儲庫的一個分支並完全放棄svn:externals,否則您將無法獲得所需的結果。 當然,這意味着您必須通過合並來維護對外部lib的更新(這可能相對容易地實現自動化,因為除了添加此文件外,您無需進行其他任何修改)。

也就是說,在您的情況下,馬丁的解決方案似乎是阻力最小的途徑...

根據對您的問題的評論,如果您的服務器和客戶端使用的是Subversion 1.6.x,則可以執行此操作。 使用Subversion 1.6.x,現在可以使用文件的外部支持。 因此,對於svn :: external路徑中包含的每個文件和目錄,您需要在myproject目錄的svn:externals屬性中創建並輸入。

svn:externals屬性看起來像這樣:

^/external-lib/file1 file1
^/external-lib/directoryA directoryA
^/external-lib/file2 file2
^/external-lib/directoryB directoryB

您可以在此處閱讀有關svn:externals的更多信息: http : //svnbook.red-bean.com/nightly/en/svn.advanced.externals.html

現在,只要external-lib和myproject 存在於同一存儲庫中 ,工作副本將允許您將更改提交到external-lib中的文件和目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM