標籤:eclipse subversion svn分支 subclipse 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
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.
5. 現在你就可以使用《Subclipse 分支和標籤支援加強版》中討論的那些特性了本文開分支步驟參考自《如何使用 Subclipse 建分支》。
原文連結:http://www.saltycrane.com/blog/2007/03/how-to-setup-subclipse-project-to/。
譯者續文作者寫這篇文章的時間是 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"(你也可以給它取個別名,如果你不怕項目多了混淆的話。譯者喜歡所見即所得 (WYSIWYG)模式,保留項目名),"Project Repository Layout" 框選擇 "Use single project layout"(你也可以選擇 "Use Repository Location Layout",一個 trunk 下面有多重專案。譯者手底下目前只有這一個項目,所以選擇一個項目下一個 trunk 的模式,以後增加項目的話,同目錄下加項目然後挨個建 trunk),勾選上 "Use Subversion recommended layout (‘trunk‘,‘branches‘ and ‘tags‘)":
- 點擊 "Finish"。將會開啟一個新的對話方塊。選中你要提交的所有檔案,輸入一個注釋,然後點擊 "OK";
- 切換到 "SVN Repository Exploring" 視圖模式(Eclipse -> 點擊 "Window" 菜單 -> 選擇 "Open Perspective" -> "Other..." -> 在開啟的 "Open perspective" 對話方塊中選中 "SVN Repository Exploring" 並點擊 "OK");
- 可以看到 swifton 項目 SVN 倉庫的主幹、分支、標籤都已經建好;
- 這是 TortoiseSVN 的查看結果:
由此看來,原來 3 步才能完成的事情,如今一步即可,不愧是 Subclipse 最新版。
2. 建立一個分支
- 切換回原來的視圖模式;
- 在分支中提交任何你想要的修改;
- 在 "Navigator" 視窗中右擊你的項目,選擇 "Team" -> "Update";
- 右擊你的項目然後選擇 "Team" -> "Branch..."
- 彈出 "Create Branch" 對話方塊中
- "Branch:" 輸入 "swifton1217"(分支名隨便起。譯者在項目名後面加的日期代表在該日下建的一個分支),勾選 "Start working in the branch"(可選項。譯者準備在該分支下進行開發,所以選中):
- 輸入一個注釋,然後點擊 "OK"。等待 SVN 倉庫建立分支結束;
- Eclipse 的 Navigator 視窗可以看出你現在已經在 swifton1217 分支副本下進行開發了:
- 切換到 "SVN Repository Exploring" 視圖模式,可以看到 swifton1217 分支下已經有了一個該項目的副本:
使用 Eclipse 的 SVN 外掛程式建立項目的主幹/分支/標籤