On 5/10/2016 00:15, Daniel Shahaf wrote:
Tati, Aslesh wrote on Fri, May 06, 2016 at 21:33:40 +0000:
Hi,

I have a question about the behavior of svn checkout. Here is the scenario:
I have a standard trunk, branches, tags structure for one of my apps in a repo 
and I created a branch, say at revision 500 of trunk.
Later, I delete the branch and the recreate another branch with the same name 
and at the same revision 500 of trunk.

Now I'm trying to check out the branch at revision 500. I know that the branch 
doesn't exist at r500 (it will be some higher revision), only trunk does and it 
probably doesn't make sense to check out a branch at that revision; but I'm 
interested in knowing why this behavior occurs and if it is expected.

svn co <REPO_URL>/branches/<BRANCH>@500 --> svn info on that gives the URL as expected i.e. 
<REPO_URL>/branches/<BRANCH>

svn co -r 500 <REPO_URL>/branches/<BRANCH> --> svn info on that gives an unexpected 
result i.e. <REPO_URL>/trunk

Shouldn't subversion complain that the branch doesn't exist at revision 500?
No.

«svn checkout -r 500 <REPO_URL>/branches/<BRANCH>» means "Look what
BRANCH is in rHEAD, trace copies back to r500, then operate on that",
which is why it checks out trunk@r500.
Thanks for the explanation. After you realize that the branch which is being worked on in the given example is basically the trunk in r500, that's all quite logical.

Regards,
Stefan

Reply via email to