[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Subversion checkout behavior at non-existent revision

From: Stefan <luke1410_at_posteo.de>
Date: Tue, 10 May 2016 01:34:54 +0200

Hi Aslesh,
>
> Hello Stefan,
>
> I’ve verified that the branch doesn’t exist at revision 500 and only
> trunk has revision 500.
>
> I should have mentioned the subversion server and the client version
> in my initial email. These are the server and the client versions that
> I’m using.
>
> svnadmin --version
>
> svnadmin, version 1.8.13 (r1667537)
>
> compiled Mar 23 2015, 11:55:34 on x86_64-unknown-linux-gnu
>
> svn --version
>
> svn, version 1.8.13 (r1667537)
>
> compiled Mar 23 2015, 11:55:34 on x86_64-unknown-linux-gnu
>
I've now tried to reproduce the case using MaxSVN 1.8.15-1 [1] and with
my simple repro case am still failing to reproduce the behavior you are
describing here.
In my case I did the following steps:

1. svnadmin create E:\testRepo
2. mkdir E:\testWC
3. svn co file:///E:/testRepo E:\testWC
4. mkdir E:\testWC\trunk
5. mkdir E:\testWC\branches
6. svn add E:\testWC\*
7. svn ci E:\testWC -m"created trunk/branches"
8. svn cp file:///E:/testRepo/trunk file:///E:/testRepo/branches/a
-m"copied trunk"
9. mkdir E:\testWC2
10. svn co file:///E:/testRepo/branches/a_at_1 E:\testWC2
svn: E17000: URL 'file:///E:/testRepo/branches/a' doesn't exist.

Can you come up with some repro case which demonstrates the different
behavior you are experiencing?

[1] http://www.luke1410.de/typo3/fileadmin/user_upload/maxsvn_1.8.15-1.rar

Regards,
Stefan
>
> *From:*Stefan Hett [mailto:stefan_at_egosoft.com]
> *Sent:* Monday, May 09, 2016 3:11 AM
> *To:* users_at_subversion.apache.org
> *Subject:* Re: Subversion checkout behavior at non-existent revision
>
> Hi Aslesh,
>
> 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?
>
> If it has checked out without complaining, why does svn info using
> the second way of checkout show the unexpected result?
>
> Which version of SVN are you using?
> I just tried to reproduce the behavior you are describing here using
> SVN 1.9.4.
>
> For the first test (aka: co with a peg-revision prior to the creation
> of the branch) I'm getting the expected svn error: "svn: E170000: URL
> '<REPO_URL>/branches/<BRANCH>' doesn't exist".
> Could it be possible that you somehow mistook the revisions in your
> case and the branch in fact already existed in revision 500?
>
>
> The second case brings up some different behavior on my test run too -
> and I can't quite make out much sense here (even after refreshing my
> memories re-reading the peg revision algorithm):
>
> (note: r1 was the initial creation of trunk/branches/tags folders in
> my test repository --- 'a' was the name of the test branch I created)
> Running in E:\test:
> svn co -r 1 <REPO_URL>/branches/a resulted in:
> Checked out revision 1.
>
> However, that then working directory in a subdirectory E:\test\a
> (instead of one in E:\test).
> If I change the svn co-command and explicitly specify the wc-path, I
> get the same result you are describing (aka: co of trunk instead of
> the branch):
> svn co -r 1 <REPO_URL>/branches/a .
>
> TBH I would have expected the same outcome as you are describing (aka:
> some error, since the branch to be checked-out is not present in the
> given operative revision).
> I've attached a repro case (Windows batch file) for this. Maybe some
> of the SVN developers can catch that up and make some sense out of that?
>
> I take it there are two separate questions at hand here:
> 1) Why does the svn co command not error out, if specifying a path
> which doesn't exist in the operative revision?
> 2) Why does the svn co command create a subdirectory 'a' instead of
> taking the specified URL as the path to checkout entirely?
>
>
> --
> Regards,
> Stefan Hett
>
> Barclaycard
>
> www.barclaycardus.com <http://www.barclaycardus.com>
>
> This email and any files transmitted with it may contain confidential
> and/or proprietary information. It is intended solely for the use of
> the individual or entity who is the intended recipient. Unauthorized
> use of this information is prohibited. If you have received this in
> error, please contact the sender by replying to this message and
> delete this material from any system it may be on.
>
Received on 2016-05-10 01:35:25 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.