How to setup a subclipse project to branch/tag
I've read that branching/tagging is one of the nice features of SVN (See Mark Phippard's blog and the subversion book). However, it took me a little while to figure out how to set up my directory structure with the recommended "trunk", "branches", and "tags" folders. These are my basic step-by-step notes for how I set up my Subclipse project and then created a branch. This assumes you've already installed Subclipse and set up a repository. If you have not done that, see How to install Subversion (SVN) with Eclipse on Windows.
- Add your Eclipse project to the repository in a "trunk" folder
- Start with an Eclipse project named "myproject"
- In the "Navigator" window, right-click on your project, select "Team" > "Share Project..."
- Select "SVN" and click "Next"
- Select your repository. (This tutorial assumes it is located at "svn://localhost".) Click "Next".
- In the "Enter Folder Name" dialog, select the "Use specified folder name" option and enter "myproject/trunk". The "URL:" box should show something like "svn://localhost/myproject/trunk". Click "Next".
- Click "Finish". A new dialog will open. Select the
files to commit, enter a comment, and click "OK". I got the
following output in the "Console" window:
Filesystem has no item svn: URL 'svn://localhost/myproject/trunk' non-existent in that revision Bad URL passed to RA layer svn: URL 'svn://localhost/myproject' non-existent in revision '234' mkdir -m "Initial import." svn://localhost/myproject mkdir -m "Initial import." svn://localhost/myproject/trunk checkout -N -r HEAD svn://localhost/myproject/trunk Checked out revision 236. add -N C:\path\to\myproject\.settings A C:/path/to/myproject/.settings add -N C:\path\to\myproject\.settings\org.eclipse.cdt.core.prefs A C:/path/to/myproject/.settings/org.eclipse.cdt.core.prefs add -N C:\path\to\myproject\.cdtbuild A C:/path/to/myproject/.cdtbuild add -N C:\path\to\myproject\.settings\org.eclipse.cdt.managedbuilder.core.prefs A C:/path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs add -N C:\path\to\myproject\.cdtproject A C:/path/to/myproject/.cdtproject add -N C:\path\to\myproject\.project A C:/path/to/myproject/.project commit -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.
- Create "branches" and "tags" folders in the repository
- Switch to the "SVN Repository Exploring" perspective. (From the "Window" menu, select "Open Perspective" > "Other...". Select "SVN Repository Exploring" and click "OK".)
- In the "SVN Repository" window, expand the tree, and right-click on "myproject", select "New" > "New remote folder".
- In the "Create a new remote folder" dialog, expand the tree and select "myproject". For "Folder name:", enter "branches". Click "Next".
- Enter a comment and click "Finish".
- Expanding the "myproject" folder now shows the "branches" and "trunk" subfolders.
- I got the following output in the "Console" window:
mkdir -m "Created branches folder." svn://localhost/myproject/branches
- Repeat these steps to create a "tags" folder.
- Create a branch
- Switch back to the previous perspective.
- Commit any changes you want in the branch.
- In the "Navigator" window, right-click your project and select "Team" > "Update"
- Right-click your project and select "Team" > "Branch/Tag..."
- In the "Copy (Branch/Tag)" dialog, in the "To URL:" textbox, enter "svn://localhost/myproject/branches/mybranch". (The "From WC at URL:" box should read "svn://localhost/myproject/trunk".)
- Leave the "HEAD revision in the repository" option selected, enter a comment, and click "OK".
- I got the following output in the "Console" window:
copy -rHEAD svn://localhost/myproject/trunk svn://localhost/myproject/branches/mybranch
- Switch your working copy to the branch
- You can now switch your working copy between the trunk and the branch.
- Right-click your project and select "Team" > "Switch to another Branch/Tag..."
- In the "To URL:" textbox, enter "svn://localhost/myproject/branches/mybranch". Click "OK".
- I got the following output in the "Console" window:
switch svn://localhost/myproject/branches/mybranch C:/path/to/myproject -rHEAD At revision 239.
- You should now be able use the features discussed in Enhanced Support for Branches and Tags in Subclipse
Branching steps were taken from How to branch with Subclipse.
7
Comments
—
Comments feed for this post
#3 Chandra commented on 2009-08-03:
This short article was really helpful. I was struggling quiet a while to incorporate branches for my project. Thanks again.
#6 Clayton E. Cramer commented on 2010-08-13:
Excellent! Exactly what I needed, and couldn't find elsewhere.
#7 vikas commented on 2010-09-01:
really thanks. Struggled for 3-4 hrs but understand completely now due to this very helpful doc.Thanks again
Post a comment
About
I'm Eliot and this is my notepad for programming topics such as Python, Django, Ubuntu, Emacs, etc... more »
Search Blog
Tags
-
algorithms
(4)
-
aws
(8)
-
blogproject
(20)
-
c_cplusplus
(12)
-
cardstore
(8)
-
colinux
(2)
-
concurrency
(9)
-
conkeror
(2)
-
cygwin
(18)
-
datastructures
(15)
-
datetime
(3)
-
dell
(3)
-
django
(39)
-
emacs
(20)
-
files_directories
(10)
-
install_setup
(7)
-
javascript
(3)
-
keyboard
(6)
-
matplotlib
(5)
-
mercurial
(4)
-
nginx
(2)
-
preferences
(8)
-
processes
(3)
-
pyqt
(18)
-
python
(122)
-
ratpoison
(3)
-
regexes
(5)
-
rsync
(3)
-
softwaretools
(17)
-
sql
(13)
-
ssh
(7)
-
subversion
(6)
-
twisted
(6)
-
ubuntu
(60)
-
urxvt
(5)
-
vxworks
(25)
-
webservices
(4)
-
wmii
(7)
Blogroll
- Adam Gomaa
- Alex Clemesha
- Amir Salihefendic
- Armin Ronacher
- David Beazley
- David Ziegler
- Duncan McGreggor
- Gareth Rushgrave
- Glyph Lefkowitz
- Guido van Rossum
- Ian Bicking
- Jacob Kaplan-Moss
- James Bennett
- James Tauber
- Jesper Noehr
- Matt Harrison
- Nikolay Kolev
- Parand Darugar
- Peter Baumgartner
- Peter Bengtsson
- Rob Hudson
- Simon Willison
- Will McGugan
#1 robert commented on 2009-02-10:
Cheers for this. I've been looking for a decent explanation of all this stuff for ages. I've now spent the last 2 hours setting up all my Eclipse projects with SVN, which is something I should have done years ago. Thanks again.