1. 程式人生 > >使用 Eclipse 的 SVN 外掛建立專案的主幹/分支/標籤

使用 Eclipse 的 SVN 外掛建立專案的主幹/分支/標籤

               

原文正文

讀了 Mark Phippard 的部落格以及《Subversion 與版本控制》之後,我瞭解到 分支/標籤 是 SVN 很棒的特性之一。但我在使用推薦的 "trunk"、"branches"以及"tags"資料夾建立我自己的目錄結構的時候頗是花了一點時間。本文將分步介紹建立  Subclipse 專案然後建立一個分支。本文假定你已經安裝好了 Subclipse 並建立了一個 SVN 倉庫。如果你還沒有,參考《整合 SVN 外掛到 Eclipse 全過程》。

1. 把你的 Eclipse 專案新增到 SVN 倉庫裡的一個 "trunk" 資料夾中

  • 從一個名為 "myproject" 的 Eclipse 專案開始;
  • 在 "Navigator" 視窗中,右擊你的專案,選擇 "Team" -> "Share Project...";
  • 選中 "SVN" 然後點選 "Next";
  • 選中你的 SVN 倉庫(本文假定使用的倉庫在 "svn://localhost")然後點選 "Next";
  • 在 "Enter Folder Name" 對話方塊中,選中 "Use specified folder name" 選項並輸入 "myproject/trunk"。 "URL:" 框會有類似於"svn://localhost/myproject/trunk"的顯示。點選 "Next";
  • 點選 "Finish"。將會開啟一個新的對話方塊。選中你要提交的所有檔案,輸入一個註釋,然後點選 "OK"。我的 Eclipse 的 "Console" 有以下輸出:
    Filesystem has no itemsvn: URL 'svn://localhost/myproject/trunk' non-existent in that revision    Bad URL passed to RA layersvn: URL 'svn://localhost/myproject' non-existent in revision '234'mkdir -m "Initial import." svn://localhost/myprojectmkdir -m "Initial import." svn://localhost/myproject/trunkcheckout -N -r HEAD svn://localhost/myproject/trunk    Checked out revision 236.add -N C:\path\to\myproject\.settings    A         C:/path/to/myproject/.settingsadd -N C:\path\to\myproject\.settings\org.eclipse.cdt.core.prefs    A         C:/path/to/myproject/.settings/org.eclipse.cdt.core.prefsadd -N C:\path\to\myproject\.cdtbuild    A         C:/path/to/myproject/.cdtbuildadd -N C:\path\to\myproject\.settings\org.eclipse.cdt.managedbuilder.core.prefs    AC:/path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefsadd -N C:\path\to\myproject\.cdtproject    A         C:/path/to/myproject/.cdtprojectadd -N C:\path\to\myproject\.project    A         C:/path/to/myproject/.projectcommit -m "Initial import." C:/path/to/myproject/.cdtbuild C:/path/to/myproject/.cdtproject C:/path/to/myproject/.project C:/path/to/myproject/.settings C:/path/to/myproject/.settings/org.eclipse.cdt.core.prefs C:/path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs    Adding         path/to/myproject/.cdtbuild    Adding         path/to/myproject/.cdtproject    Adding         path/to/myproject/.project    Adding         path/to/myproject/.settings    Adding         path/to/myproject/.settings/org.eclipse.cdt.core.prefs    Adding         path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs    Transmitting file data ...    Committed revision 237.

2. 在 SVN 倉庫中建立 "branches" 和 "tags" 資料夾

  • 切換到 "SVN Repository Exploring" 檢視模式(Eclipse -> 點選 "Window" 選單 -> 選擇 "Open Perspective" -> "Other..." -> 在開啟的 "Open perspective" 對話方塊中選中 "SVN Repository Exploring" 並點選 "OK");
  • 在 "SVN Repository" 視窗中,展開 SVN 樹並右擊 "myproject" -> 選擇 "New" -> "New remote folder";
  • 在 "Create a new remote folder" 對話方塊中,展開 SVN 樹並選中 "myproject"。"Folder name:" 輸入 "branches"。點選 "Next";
  • 現在開啟 "myproject" 目錄可以看到 "branches" 和  "trunk" 子目錄;
  • 我的 Eclipse 控制檯有以下輸出:
mkdir -m "Created branches folder." svn://localhost/myproject/branches
  • 重複這幾步來建立一個 "tags" 目錄;

3. 建立一個分支

  • 切換回原來的檢視模式;
  • 在分支中提交任何你想要的修改;
  • 在 "Navigator" 視窗中右擊你的專案,選擇 "Team" -> "Update";
  • 右擊你的專案然後選擇 "Team" -> "Branch/Tag...";
  • 彈出的 "Copy (Branch/Tag)" 對話方塊中,"To URL:" 文字框輸入 "svn://localhost/myproject/branches/mybranch"("From WC at URL:" 應該顯示為 "svn://localhost/myproject/trunk");
  • 保留 "HEAD revision in the repository" 選項的選中狀態,輸入一條註釋,然後點選 "OK";
  • 我的 Eclipse 控制檯輸出如下:
copy -rHEAD svn://localhost/myproject/trunk svn://localhost/myproject/branches/mybranch

4. 切換你的工作副本到分支

  • 你現在可以隨意在主幹和分支之間切換你的工作副本了;
  • 右擊你的專案,選擇 "Team" -> "Switch to another Branch/Tag...";
  • "To URL:" 文字框輸入 "svn://localhost/myproject/branches/mybranch",點選 "OK";
  • 我的控制檯輸出如下:
switch svn://localhost/myproject/branches/mybranch C:/path/to/myproject -rHEAD At revision 239.
本文開分支步驟參考自《如何使用 Subclipse 建分支》。

譯者續文

作者寫這篇文章的時間是 07 年,那會 Eclipse 才出到 3.3(現在已經 4.4 了),Subclipse 也就出到 1.3.1(現在已經出到 2.0 了)。所以原文很多步驟都不太適合最新版本的 svn 外掛了。所以譯者在原作者的基礎上,結合最新版的 Eclipse/Subclipse,對原文做了一些改進,以備自己參考,同時也希望可以方便到更多的同行。譯者的 Eclipse 版本是 4.4.1(也就是 luna-SR1),Subclipse 版本是 2.0.1,這些都是截至本文發博日為止最新版的。以下是譯者實際操作的步驟記錄。

1. 把你的 Eclipse 專案新增到 SVN 倉庫裡的一個 "trunk" 資料夾中

  • 從一個名為 "swifton" 的 Eclipse 專案開始;
  • 在 "Navigator" 視窗中,右擊你的專案,選擇 "Team" -> "Share Project...";
  • 選中 "SVN" 然後點選 "Next";
  • 選中你的 SVN 倉庫(本文假定使用的倉庫在 "svn://localhost")然後點選 "Next";
  • 這時進入了 "Specify the project(s) location" 步驟;
  • 選擇 "Advanced Mode:" -> "Name on Repository" 選擇 "Use project name"(你也可以給它取個別名,如果你不怕專案多了混淆的話。譯者喜歡所見即所得模式,保留專案名),"Project Repository Layout" 框選擇 "Use single project layout"(你也可以選擇 "Use Repository Location Layout",一個 trunk 下面有多個專案。譯者手底下目前只有這一個專案,所以選擇一個專案下一個 trunk 的模式,以後增加專案的話,同目錄下加專案然後挨個建 trunk),勾選上 "Use Subversion recommended layout ('trunk','branches' and 'tags')":
Specify the project(s) location
  • 點選 "Finish"。將會開啟一個新的對話方塊。選中你要提交的所有檔案,輸入一個註釋,然後點選 "OK";
  • 切換到 "SVN Repository Exploring" 檢視模式(Eclipse -> 點選 "Window" 選單 -> 選擇 "Open Perspective" -> "Other..." -> 在開啟的 "Open perspective" 對話方塊中選中 "SVN Repository Exploring" 並點選 "OK");
  • 可以看到 swifton 專案 SVN 倉庫的主幹、分支、標籤都已經建好;
  • 這是 TortoiseSVN 的檢視結果:
TortoiseSVN由此看來,原來 3 步才能完成的事情,如今一步即可,不愧是 Subclipse 最新版。

2. 建立一個分支

  • 切換回原來的檢視模式;
  • 在分支中提交任何你想要的修改;
  • 在 "Navigator" 視窗中右擊你的專案,選擇 "Team" -> "Update";
  • 右擊你的專案然後選擇 "Team" -> "Branch..." 
  • 彈出 "Create Branch" 對話方塊中
  • "Branch:" 輸入 "swifton1217"(分支名隨便起。譯者在專案名後面加的日期代表在該日下建的一個分支),勾選 "Start working in the branch"(可選項。譯者準備在該分支下進行開發,所以選中):
create_branch_swifton1217
  • 輸入一個註釋,然後點選 "OK"。等待 SVN 倉庫建立分支結束;
  • Eclipse 的 Navigator 視窗可以看出你現在已經在 swifton1217 分支副本下進行開發了:
navigator_swifton1217
  • 切換到 "SVN Repository Exploring" 檢視模式,可以看到 swifton1217 分支下已經有了一個該專案的副本:

SVN_Repository_Exploring_swifton1217