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

BUG: WC-NG code crawls too high to find WC root (was: "Re: locking problems")

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Wed, 17 Mar 2010 15:46:15 -0400

C. Michael Pilato wrote:
> From time to time, I've seen evidence that our trunk code is walking up too
> far in its parent tree as well, but every time I try to create a reliable
> recipe, I can't. I have nothing but wc-1 working copies on my system for
> day-to-day use. (I run subversion 1.6.x by default.) My home directory is
> versioned, for example, as is the directory ~/tests (but nothing inside
> ~/tests is versioned). What I've seen, though, is that if I use trunk svn
> to do some testing, creating working copies and such inside ~/test/,
> sometimes I get errors that indicate that the client has crawled up out of
> that wc-ng working copy and is looking at ~/test/. Obviously, it'd be fine
> if it crawled up that far, realized that it had gone above the WC root, and
> just gracefully realized that it had crawled too far. But instead, it fails
> with an error. Unfortunately, I can't recall which error is presented:
> "working copy is too old", perhaps.

Here's a recipe for this problem.

------------------------------------------------------------
#!/bin/sh

OLD_SVN=/home/cmpilato/projects/subversion/branches/1.6.x/subversion/svn/svn
OLD_SVNADMIN=/home/cmpilato/projects/subversion/branches/1.6.x/subversion/svnadmin/svnadmin
SVN17=/home/cmpilato/projects/subversion/trunk/subversion/svn/svn

echo "### Remove junk from previous test runs."
rm -rf crawl-too-high
mkdir crawl-too-high

echo "### Create a couple of repositories to play with."
${OLD_SVNADMIN} create crawl-too-high/repos1
${OLD_SVNADMIN} create crawl-too-high/repos2

echo "### Checkout the first repository using a pre-1.7 client."
${OLD_SVN} co file://`pwd`/crawl-too-high/repos1 crawl-too-high/wc

echo "### Commit the addition of a subdirectory into the repository."
${OLD_SVN} mkdir crawl-too-high/wc/subdir
${OLD_SVN} ci -m "Create a subdirectory." crawl-too-high/wc

echo "### Now checkout the second repository again, this time using"
echo "### Subversion 1.7, into the subdir of the pre-1.7 working copy."
${SVN17} co file://`pwd`/crawl-too-high/repos2 crawl-too-high/wc/subdir

-----------------------------------------------------------

And here's what I see today when I run it:

### Remove junk from previous test runs.
### Create a couple of repositories to play with.
### Checkout the first repository using a pre-1.7 client.
Checked out revision 0.
### Commit the addition of a subdirectory into the repository.
A crawl-too-high/wc/subdir
Adding crawl-too-high/wc/subdir

Committed revision 1.
### Now checkout the second repository again, this time using
### Subversion 1.7, into the subdir of the pre-1.7 working copy.
subversion/svn/checkout-cmd.c:173: (apr_err=155036)
subversion/libsvn_client/checkout.c:168: (apr_err=155036)
subversion/libsvn_wc/lock.c:123: (apr_err=155036)
subversion/libsvn_wc/lock.c:123: (apr_err=155036)
subversion/libsvn_wc/wc_db.c:5450: (apr_err=155036)
subversion/libsvn_wc/wc_db.c:1073: (apr_err=155036)
subversion/libsvn_wc/wc_db.c:425: (apr_err=155036)
subversion/libsvn_wc/upgrade.c:1083: (apr_err=155036)
svn: Working copy format of '/home/cmpilato/tests/crawl-too-high/wc/subdir'
is too old (10); please run 'svn upgrade'

-- 
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

Received on 2010-03-17 20:46:47 CET

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