簡體   English   中英

從2條不同路徑進行SVN結帳

[英]SVN checkout from 2 different paths

我們有一個svn信息庫。

我想從該存儲庫中檢出一些文件夾到本地計算機。特別是我想從svn檢出7個文件夾到我的工作區,該工作區位於C:/ workspace。 (這樣,結帳后結構便變成了C:/ workspace /(所有7個文件夾))。

問題是:在7個文件夾中,有4個在path1上,其他3個文件夾在path2上。

這是我嘗試過的

  1. 轉到C。
  2. 右鍵單擊工作區,
  3. 結帳,然后輸入path1,然后得到4個文件夾。 (現在結構變為C:/ workspace /(來自path1的4個文件夾))。 一切正常,直到這里。 4.現在,如果我再次右鍵單擊工作區(以從path2獲取其他3個文件夾),則找不到檢出選項。
  4. 我嘗試過手動在工作區中創建文件夾(使用“新建文件夾”選項),並從svn中檢出內容,但這會使該文件夾與svn不同步(工作區上沒有格里克勾號)。

    我正在使用svn Tortoise Windows Shell實用程序。

    請建議需要做什么才能獲得結構C:/ workspace /(svn的所有7個文件夾)。

選項4是正確的方法。 但是您是正確的,不會對workspace目錄進行版本控制。 那是因為您從未檢出-您僅檢出了其下的目錄。 您將得到的是,這7個目錄中的每個目錄都有自己的.svn目錄,而不是workspace一級的目錄。 在這種情況下,我認為您無法將更改提交到多個根目錄中。

您可能考慮的另一種選擇是將所需的文件夾標記或分支到存儲庫的另一部分,然后將其簽出。

您可以將其他三個文件夾從第二個存儲庫檢出到一個單獨的文件夾,並將這些文件夾移至第一個檢出。 有用。

  1. 轉到C。
  2. 右鍵單擊工作區,
  3. 簽出path1,我得到了4個文件夾。 (現在結構變成C:/ workspace /(路徑1的4個文件夾))。
  4. 在C下創建一個新的文件夾path2
  5. 右鍵單擊並選中checkolut路徑2(現在結構為path2 /(3個文件夾)
  6. 將三個文件夾移至上一個簽出文件夾(現在結構為C:/ workpace /(7folders)\\
  7. 第二組的3個文件夾已版本化(顯示綠色對勾)。 這些文件夾中的所有簽入將轉到第二個SVN路徑)

要獲取所需的布局,請檢出c:/Workspace下的七個文件夾中的每個文件夾的根-進行7個獨立檢出。

在評論中,您詢問了有關標記/分支的問題-不要對c:/Workspace中的文件夾執行此操作。 相反,要么;要么。

  1. 使用“ copy to...命令在repobrowser中執行此操作,或者
  2. 在不同位置檢出每個項目的主干,並將其用於分支/標記。 無論如何,您可能都需要這些來進行合並(再次,也不要在c:workspace上這樣做!)。

...然后svn根據需要在c:/ workspace中切換文件夾。

由於這當然很容易出錯,因此請考慮編寫重復部分的腳本。 ant build.xml對於檢出和切換很容易。

如果這是經常一起結帳的文件夾的組合,則可以考慮使用svn:externals :在path1上 ,設置svn:externals -property以從path2獲得4個文件夾。

或者,您可以在任一存儲庫中創建一個全新的文件夾並設置_svn_externals_,以便檢出所有7個文件夾。 (請注意,從Subversion 1.5開始,您還可以為同一存儲庫內的路徑使用相對定義。)

暫無
暫無

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

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