2009-11-04 26 views
1

我有一個大的項目,但我只需要在我的svn存儲庫的一些文件夾。使用SVN與大型項目

現在,這些都是我的項目結構的前兩個層次

folder_1 
    subfolder_1.1 
    subfolder_1.2 
folder_2 
    subfolder_2.1 
    subfolder_2.2 
    subfolder_2.3 
folder_3 
    subfolder_3.1 
    subfolder_3.2 

我只需要

folder_1 
    subfolder_1.1 
folder_3 
    subfolder_3.2 

和他們的版本控制下,當然子文件夾。

如何導入只有這些文件夾中創建新的SVN庫?
如何忽略未來犯任何其他文件夾的變化?

預先感謝任何提示,一步一步的指示極大的讚賞,因爲我沒有真正處理SVN管理方面經驗豐富。


編輯:爲了澄清什麼,我需要做的:創建一個新的存儲庫(已完成),導入的文件夾如上述,檢查他們使用SVN客戶端(沒什麼大不了),並確保來自其他文件夾的文件不在版本vontrol中(例如來自folder_2的文件)在提交時被SVN忽略。

+0

我編輯我的問題,抱歉不清楚。 – Max 2009-11-04 11:08:56

回答

4

首先,將致力於顛覆的唯一的東西是那些你明確添加到跟蹤 - 所以僅僅只添加要跟蹤的文件夾。其餘的可以存在於你的工作副本中,而不用在Subversion的跟蹤列表中。

如果您不希望Subversion工具提示您可能添加其他文件夾,則可以通過設置svn-ignore property來排除這些路徑,從而強制完全忽略它們。

1

嘗試使用TortoiseSVN來做到這一點,但您應該添加第一個子文件夾_1.1,而不是右鍵單擊子文件夾_2和TortoiseSVN>添加到忽略列表>子文件夾_2,並且只有在添加文件夾_1到SVN之後。其餘的文件夾/子文件夾也是如此,這個想法是排除你不感興趣的子文件夾,你也可以通過命令行來做到這一點。

0

你有兩個選擇,這取決於你究竟要與前面的代碼做:

  • 出口(和查不出來!)現有的目錄到一個新的本地目錄結構,你可以導入進入新的倉庫
  • 新的存儲庫鏈接到前一個。

1)使用以下命令對於第一種選擇:

mkdir project 
cd project 
svn export <URL old project>/folder_1 folder_1 
svn export <URL old project>/folder_3 folder_3 
svn mkdir <URL new project>/trunk -m "Initial trunk" 
svn import <URL new project>/trunk -m "Initial files" 

這將創造在你的倉庫中/ trunk目錄,並將這兩個文件夾在其中。

然後你需要檢查你的項目的某個地方開始在本地副本上工作。上面創建的「項目」目錄是臨時的,可以刪除。

2)第二個選項僅在您不需要觸摸現有代碼但將其用於新項目時有用。你可以有以下結構:

folder_1 (link to your old repository) 
    subfolder_1.1 
folder_3 (link to your old repository) 
    subfolder_3.2 
new_folder 

爲了做到這一點,檢查svn:externals性能在documentation是如何工作的,這是更長的時間來解釋,它看起來並不像你想的解決方案,所以我就提可能性。


編輯:我離開了忽略的一部分,但它已被Dav已經回答了。知道有可能告訴SVN忽略所有定義擴展的文件,對於工作站上的所有項目,這在我給出鏈接的文檔中進行了描述。

0

如果您希望在其他存儲庫中只有一部分存儲庫 - 只需從存儲庫1中檢出選定的內容,並將其檢入到存儲庫2中。 如果您希望repository2與repository1同步 - 可以使用svnsync實現,但是repository2將只讀。 如果你想要repository2與repository1同步,並仍然提交到repository2 - 這是不能實現的顛覆