2012-01-20 17 views
0

我目前正在使用的項目使用SVN進行版本控制。最初創建時(由另一個當前不可用的人員),服務器上的'public_html'文件夾已簽出到以下文件夾:https://URL/project_name/,'project_name'是存儲庫的根目錄。它沒有提供任何分支/標籤的結構,因爲它看起來並不像我們所需要的那樣。我們已經意識到我們需要分支機構在幾個版本的項目中組織並行工作,因此我們決定創建一個適當結構的新存儲庫(URL/project_name/trunk /用於主版本和URL/project_name /分行/ ...爲次要分行)。組織存儲庫本身沒有問題,但是如何爲服務器上的「public_html」文件夾執行新的檢出?如果我嘗試執行'svn checkout URL/project_name/trunk/home/public_html',我收到錯誤消息,說'public_html'已經是另一個URL的工作副本。SVN重新簽出(切換/重定位/其他?)

我試着通過Tortoise SVN來查看本地測試機器上的svn switch和svn relocate選項,但前者似乎只能在同一個存儲庫的分支之間切換,後者需要指定根存儲庫(我需要指定URL/project_name/trunk作爲checkout文件夾)。任何人都可以幫助或至少在這種情況下指導我?

我對服務器有根SSH訪問權限。

回答

2

TortoiseSVN Help

換句話說,你需要搬遷時,你的工作副本是 指在同一個存儲庫中的同一個位置,但 庫本身已經沒有了。

你要移動到不同的版本庫:

,如果它不適用。在這種情況下,您應該從新的存儲庫位置執行乾淨的檢出。

您想要切換到同一個 存儲庫中的其他分支或目錄。要做到這一點,你應該使用TortoiseSVN→開關....閱讀 第4.19.2節「檢出或切換...」瞭解更多信息。

所以,你必須做的是簽出一個新的副本。刪除目錄的全部內容然後結帳,或者簽出到新目錄,然後用舊的名稱重新命名新的目錄。

+0

簽出一個新的新副本聽起來像我試圖做的。我應該如何刪除'public_html'目錄中的內容? – parrker9

+0

用Ctrl-A選擇您的Windows資源管理器中的所有內容,然後按下鍵盤上的Delete鍵。 –

+0

只要'.svn'從'public_html'消失,我應該可以做一個新的結帳,對吧? – parrker9

2

嘗試將svn移動到您的主幹。不要直接更改文件系統;它對你的repo文件沒有任何影響。改爲使用svn命令

// in URL (parent folder of project_name) 
svn mkdir trunk 
svn mkdir branches 
svn mkdir tags 
svn move project_name trunk 
svn ci -m 'moved' 

等瞧

,如果你沒有一個父文件夾,你將不得不在PROJECT_NAME根一個「SVN移動」每個文件和目錄由一個。

+0

太棒了!這實際上是解決這個問題的自然方式。是的,我們沒有父文件夾,所以我想會有一些手動工作。我想,當這完成後,爲了讓我的'public_html'目錄引用幹線文件夾,我可以使用'svn switch/home/public_html/URL/project_name/trunk'? – parrker9

+0

是的,我忘了開關選項;所以你的本地副本將指向中繼 – vaugham

1

如果project_name是你的根文件夾,您可以創建其下的分支/標籤/行李箱結構和包含在project_name每個文件/文件夾手動svn move做(當然除了分支/標籤/主幹)。所以你可以保存你提交的所有歷史記錄。這很乏味,但安全!