I thought I was pretty well acquainted with Subversion, but now something I thought would be trivial is stumping me.
First, I created a branch off of my trunk of a specific version, like so:
# svn copy http://server/project/trunk@13708 http://server/project/branches/b2012_03
Committed revision 13717
This seems happy. Note that my trunk has had additional commits, thus the 13717 committed revision and my need to branch off of a specific version. Anyway there it is.
Next, I want to checkout from the branch, but exactly at 13708 (where it was created) NOT 13717 … this is important for my build process, don’t ask it’s not relavent to the problem.
First, I tried this (using the subdirectory ‘conf’ as a test):
# svn co http://server/project/branches/b2012_03/conf conf
yada yada ...
Checked out revision 13717.
# cd conf
# svn info
Path: .
Working Copy Root Path: C:\Users\Brett\conf
URL: http://server/project/branches/b2012_03/conf
Repository Root: http://server/project
Repository UUID: f3edbe5d-cdcd-4b35-8400-34e3054bdd74
Revision: 13717
...
That’s not what I need, I need the revision at 13708… wipe out ‘conf’ and try this:
# svn -r 13708 co http://server/project/branches/b2012_03/conf conf
yada yada ...
Checked out revision 13708.
Hey, that looks encouraging, until …
# cd conf
# svn info
Path: .
Working Copy Root Path: C:\Users\Brett\conf
URL: http://server/project/trunk/conf
Repository Root: http://server/project
Repository UUID: f3edbe5d-cdcd-4b35-8400-34e3054bdd74
Revision: 13708
The revision is right, but notice the URL. It says ‘trunk’ instead of branch, in spite of checking out from the branch.
Two questions:
How is that possible?
How do I checkout a specific version from a branch?
Your branch did not exist at
r13708. Thus you’ve got nothing there to check out.Whatever piece of your build system is dependent upon this behavior probably needs to be fixed.