2013-05-28 132 views
3

這個問題可能是因爲缺乏理解,因爲我對SVN和版本控制一般都比較陌生,所以請在理解任何基本問題時給我打電話! :)在Delphi XE4中使用SVN進行單文件版本控制

我們最近購買了德爾福XE4,我們試圖得到一些用於本地SVN集成的用例。所以這裏是這個問題的場景。

比方說,我們有一個「項目」目錄中,該目錄中,我們有兩個測試項目

TestSVNA.dproj TestSVNB.dproj

另外,在目錄是不是一部分的單位或者項目,我們將其稱爲CommonU.pas。 TestSVNA和TestSVNB都使用CommonU.pas,所以在其中任何一個項目下對文件進行版本控制都是不合邏輯的,但它確實經常更改,因此版本控制是必需的。我正在嘗試學習如何在SVN中版本化該文件。爲該文件創建一個全新的項目似乎很愚蠢

回答

3

爲共享文件創建一個單獨的項目,並將其作爲external添加到每個使用它的項目。有關SVN Book的信息,請參閱Advanced Topics - Externals Definitions主題。 (該頁面還設立了一個項目的外部的一個例子,它使用的命令行版本,但它很容易制定出使用TortoiseSVN或IDE集成。)

Subversion提供了外部支持定義。外部定義是將本地目錄映射到版本化目錄的URL(最好是特定修訂版本)。在Subversion中,使用svn:externals屬性聲明外部定義。您可以使用svn propset或svn propedit創建或修改此屬性(請參閱「操作屬性」一節)。它可以在任何版本化的目錄中設置,其值描述了該位置應該檢出的外部存儲庫位置和客戶端目錄。

svn:externals屬性的便利之處在於,一旦將它設置在版本化的目錄中,那些簽出該目錄的工作副本的所有人都將獲得外部定義的好處。換句話說,一旦一個人努力定義嵌套的工作副本結構,其他人就不必費神 - Subversion在檢出原始工作副本後,還會自動檢查外部工作副本。

如果您還沒有這樣做,您應該按照教程中的基礎知識和高級主題(或者您可以下載PDF版本,以便在本地使用)。這本書寫得很好,並且由實際上在SVN上工作的人員更新。

+0

爲什麼downvote? – Kromster

+0

我沒有投票,不知道從哪裏來。感謝您的幫助,這正是我需要的信息。看起來你需要爲一個班級創建一個完整的項目,但事實就是這樣。 –

+0

這確實是如何做到的。 svn:外部是一種痛苦的想法。惱人的限制。並注意如何指定修訂。如果您使用HEAD,則在一個項目中進行更改將「升級」所有其他項目。這通常是一個壞主意。所以指定一個特定的版本。在這種情況下,當您需要將外部更新到最新時,這很麻煩。我有腳本來做到這一點。整個地區都很薄弱。從我所看到的,svn比主流的分佈式vcs系統更好地管理這個。 –

相關問題