2010-09-03 50 views
2

我知道人們建議外部人員應該總是指向標籤或固定到特定修訂版(或者兩者都適用於皮帶和大括號旅)。當外部指向不變或緩慢變化的依賴關係時,我對此方法感到滿意。然而,有時我需要在快速變化的依賴關係上採取外部處理,然後將外部設置指向依賴關係的中繼線,這樣做的努力就會減少(儘管風險更大)。SVN外部 - 浮動和固定外部之間有什麼東西?

我真正喜歡的是一箇中間特徵,我將稱之爲「跟蹤外部」。他們方式,它應該工作如下:

a)如果我籤的頭,我得到的外部

B的頭部)如果我退房修訂X,我得到的外部

修訂X這將允許我總是重新創建舊版本,但也允許我暴露於依賴關係的最新更改。

這個特性在SVN中似乎並不存在,但它似乎是一個顯而易見的特性。有誰知道這個功能是否存在或計劃中,或者是否可以通過一些SVN欺騙來模擬?

感謝 阿卡什

回答

1

我想你的要求是不正確的使用外部。你這樣做是錯的。

外部拉代碼從...別的地方。這個「別的地方」可能是你當前版本庫中的一個不同的位置,或者它可能是你的機器上的另一個版本庫,或者是世界另一端機器上的一個版本庫...

特殊情況下,您需要將版本庫和外部版本保存在revision-lockstep中(如果您的外部版本是從同一個版本庫中的其他位置提取的,則可以這樣做),希望檢出版本庫的版本X以及相同版本外部存儲庫中的X將會以失敗告終。

如何確保主版本庫修訂版與外部版庫修訂版保持同步?當您的存儲庫處於修訂版本1000時,應該發生什麼情況,並且external'd存儲庫僅在修訂版本300上?

要真正地回答你的問題:我不知道這樣的事情是否計劃在未來的SVN版本中,但我不打算這樣做。就「欺騙」而言,你可以通過創建某種包裝腳本來實現這一點,這種包裝腳本可以修改外部屬性,將它們固定在您實際簽出之前檢查的修訂計劃中。不是我認爲實用的東西,也不是完全微不足道的。

+0

謝謝,我應該指定我從同一個存儲庫中提取外部數據。我完全同意,否則我的用例是毫無意義的。 您是否認爲在這個特殊情況下,它仍然是一個不正確的外部使用?這對我來說似乎是一個有效的場景。 – Akash 2010-09-03 19:07:11

+1

我認爲你的計劃使用它不是外部使用的目的。這是否等於'不正確'取決於你。就我個人而言,我會避而遠之。它會成爲您存儲庫中的柺杖/特殊情況。如果將來出於任何原因,您需要或想要將外部設備拆分爲不同的存儲庫,則必須更改/停止 - 使用專門的外部固定方案...現在不要改變您的方法(一個小小的'痛'),你可能會在未來造成更大的悲傷/痛苦。 – Yoopergeek 2010-09-10 19:47:42

0

如果只是用在外部的一個分支,而無需指定比這個外部是浮動的,這意味着每次更新它,你將得到該分支的頭開始的時間到一個特定版本...你可以在使用後備箱時也要這樣做。但是在你發佈之前,你必須將這個外部固定在一個特定的狀態,最好的做法是使用一個標籤。

+0

對不起,我已經整理了我的問題的格式,使其更加清晰,我正在尋找。我*不*想要一個正常的浮動外部,我也不想要一個固定的。當我檢查我的代碼的修訂版本X並獲取我的代碼的修訂版本Y時獲取外部的修訂版本Y時,我想要一個獲取外部修訂版本X的代碼。 – Akash 2010-09-03 13:12:37

相關問題