簡體   English   中英

如何管理SVN的歷史外部

[英]How to manage historical externals in SVN

我有一些項目使用了一些可能會改變加班時間的外部(庫)。 我嘗試使用trunk / branches / tags模式保持項目清潔,當我制作標簽(或發布)時,我想及時凍結整個源代碼,即當時的外部因素。

我可以想到兩種方法:

  • 我可以設置外部指向一個特定的修訂,但這似乎有點麻煩,除非有一個自動化(一些很好的shell命令,使所有外部指向那一刻的最新修訂?)
  • 我可以本地化外部,如果再次有一些很好的自動化將抓住當前外部並“本地化”它,即使其成為項目中的永久硬拷貝。

TortoiseSVN存在這樣的事情嗎? 還是我以某種方式破壞了系統?

據我所知,TortoiseSVN不提供如此復雜的功能。 您需要實現自己的腳本來檢查這些外部/更改它們,即您所謂的自動化。

實際上,我們在項目中也有同樣的不便。 我們有一個項目樹(主干 - 我們的工作源),外部標簽(其他團隊工作源),他們有自己的標簽,而且,我們有一個項目樹的標簽當然。 所以,我們嵌套了3,4和更多訂單的外部。 我們此時所做的是perl腳本(調用svn命令行工具並處理其結果),它以遞歸方式檢查項目樹標記中的所有外部是否都是標記的外部(這是我們自己的規則 - 標記所有外部必須是標簽)。 這個檢查的要點是,如果至少有一個外部指向主干 - 我們項目樹背后的主要思想將變得毫無意義(基於另一個重要規則 - 永遠不會對標簽進行更改)。 通常,如果違反這些規則(以及甚至無法從這些來源構建應用程序),獲取特定的源代碼是一個問題。

總而言之,我建議在可能的情況下開發自己的概念,規則並使用腳本進行自動化。

暫無
暫無

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

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