2012-04-17 86 views
2

我有一個關於如何將項目導入到Subversion存儲庫的問題。我通過Google搜索發現了很多答案,但我無法理解它背後的邏輯。在SVN中導入項目的正確方法?

我理解的步驟是:分支,標籤和主幹:

  1. 有三個子目錄創建一個項目目錄。

  2. 將所有代碼放在主幹下。

  3. 運行命令:

    svn import project_dir file:///repository_name/project -m "First Import"

    其中PROJECT_DIR包含三個子目錄。

在此之後,我需要出去再次檢查我的代碼到另一個目錄:

  1. svn checkout file:///repository_name/project/trunk new_project_dir

  2. 繼續在new_project_dir工作。

在我看來,我們創建的project_dir僅供使用一次而忽略它。

我的問題是:

  1. 後,我檢出代碼到new_project_dir,是老PROJECT_DIR仍然有用嗎?或者只是給SVN的佈局?

  2. 我們是否曾經需要處理其他兩個子目錄:我們自己的分支和標籤(例如,檢出那裏的內容)?或者僅僅是SVN內部使用?如果是SVN內部使用,爲什麼SVN不能自動爲我們創建它?

回答

4

如果您願意,您可以直接在SVN中創建佈局;在你的問題中使用步驟3)使得它更容易,因爲它可以一次完成。如果您遵循它,則導入後不需要該初始文件夾。實際上,您從中導入的文件夾並未置於版本控制之下,因此所做的更改將不會返回到存儲庫

至於佈局:通常這樣做,但SVN不會強制限制:你可以按你想要的方式組織你的項目。傳統的邏輯是:

  • trunk表示最新的已知工作副本
  • branches有表示各種發展努力(可能由不同的人)的子文件夾 - 例如對於特定的錯誤修復。您對它的工作不會受到主幹或其他分支變化的影響,然後在您準備好時將您的更改合併到主幹。
  • 標籤是幹線的標記版本,用於表示特定時間/階段的幹線狀態 - 例如,可以輕鬆定位屬於同一版本的內容,而不必記住多個版本號
+0

謝謝。很煩人,我不能使用相同的文件夾,但總是必須創建另一個文件夾 – ericn 2013-08-29 03:03:08

1

舊的project_dir只是給SVN的佈局。 代碼被複制到存儲庫,但SVN只讀取這個目錄和文件,而不是觸摸它們。因此它不是「工作副本」。

在您結帳到新的位置後,它包含代碼AND svn元數據,這使得魔法發生。

AFAIK幹線,標籤和分支只是一個命名約定。 SVN不需要它們,你將來可能需要它們。如果您不計劃分支或標記,則可以直接將文件導入到根目錄。

+0

從SVN的角度來看,它們都只是目錄。你可以將分支合併到主幹或主幹中,SVN不關心。你必須關心和命名目錄足夠清晰,以便你理解。 – 2012-04-17 16:26:10