2013-01-21 114 views
1

山寨(硬鏈接),我讀了SVN的「分支」使用修訂的廉價拷貝(硬鏈接)。鏈接在這裏。 http://svnbook.red-bean.com/en/1.7/svn.branchmerge.using.html 「創建分支」一章處理這個問題。在SVN分支

但書中也說,「至於顛覆而言,這兩個提交影響了不同的存儲庫位置不同的文件。」在「與你的分支合作」一章中。

我認爲這些都是衝突。 如果一個分支是硬鏈接到樹幹中的修訂版,分支的提交應該影響樹幹,而不是說分支本身。

如何'兩次提交影響了不同的版本庫位置的不同文件的可能嗎?

回答

2

呀SVN使用了一種類似於硬鏈接引用同一版本的文件的東西。但是,只要修改文件,它就會從該硬鏈接分離出來,以創建該特定文件的修訂版本。具有分支的事情是,大多數時候你只能更改幾百個文件。因此,與「便宜複製」的交易就是爲了兼顧時間和存儲效率。

當你指着文​​件說:

Subversion的版本庫有特殊的設計。當您複製 目錄,你不需要擔心資料庫日益龐大 ,顛覆並不是拷貝任何數據。相反,它 創建一個指向現有樹的新目錄條目。如果您是一位經驗豐富的Unix用戶,那麼您將認識到這與硬鏈接背後的相同概念 。

作爲進一步的更改是對文件和目錄的 複製目錄下取得,Subversion一直採用這種硬鏈接 概念,在那裏可以。只有在需要對不同版本的對象進行消歧時纔會複製數據。

+0

謝謝,'Subversion繼續使用這個硬連接概念,它可能'模糊'。但是現在,我在閱讀Subversion的「冒泡」之後才知道這意味着什麼。 – hanmomhanda

1

'svn copy'後,分支實際上是一個硬鏈接到修訂。

但是,如果對該分支提交了某些內容,則會通過「冒泡」方法創建新修訂。 因此,分支不再是一個簡單的硬鏈接。

關於'bubble-up'的文件有很多幫助。