Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9A111200AC0 for ; Tue, 10 May 2016 00:15:13 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 988471609A8; Mon, 9 May 2016 22:15:13 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id E2EEC160A0F for ; Tue, 10 May 2016 00:15:12 +0200 (CEST) Received: (qmail 69091 invoked by uid 500); 9 May 2016 22:15:12 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 69079 invoked by uid 99); 9 May 2016 22:15:12 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 May 2016 22:15:12 +0000 Received: by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org, from userid 3316) id DAB031A010F; Mon, 9 May 2016 22:15:11 +0000 (UTC) Date: Mon, 09 May 2016 22:15:11 +0000 From: Daniel Shahaf To: "Tati, Aslesh" Cc: users@subversion.apache.org Subject: Re: Subversion checkout behavior at non-existent revision Message-ID: <20160509221511.GA9667@tarsus.local2> References: <8517C4DAB8F1C742A2CAEA251CB0D73A5A3D9656@PMEXGMB03.juniper.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <8517C4DAB8F1C742A2CAEA251CB0D73A5A3D9656@PMEXGMB03.juniper.com> User-Agent: Mutt/1.5.23 (2014-03-12) archived-at: Mon, 09 May 2016 22:15:13 -0000 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 /branches/@500 --> svn info on that gives the URL as expected i.e. /branches/ > > svn co -r 500 /branches/ --> svn info on that gives an unexpected result i.e. /trunk > > Shouldn't subversion complain that the branch doesn't exist at revision 500? No. «svn checkout -r 500 /branches/» means "Look what BRANCH is in rHEAD, trace copies back to r500, then operate on that", which is why it checks out trunk@r500. «svn checkout -r 500 /branches/@500» will do what you expect (error out with "does not exist at that revision"). The peg revision of URLs defaults to HEAD. The operative revision defaults to the peg revision. http://svnbook.red-bean.com/en/1.8/svn.advanced.pegrevs.html#svn.advanced.pegrevs.algorithm Cheers, Daniel > If it has checked out without complaining, why does svn info using the second way of checkout show the unexpected result?