On 09/08/2011 06:21 PM, Scott Palmer wrote: > Just tried 1.7.0RC2 and noticed that bugs with svn upgrade are still present. > > If you have svn:externals in the top level of your working copy they seem to > be converted, but if those external references also use svn:externals then > those nested working copies are not upgraded. > > Is anyone else seeing this?
Hi Scott, thanks for the report! I can reproduce the problem with attached test script. (The script uses my local bin/svn paths of built Subversion versions, so I also attached a screenshot output.) I am "moving" this discussion to the dev@ list, please reply there. Note that the test upgrades the external dir XB, but fails to upgrade the nested external dir XB/XC: [[[ ... Fetching external item into 'XB/XC' A XB/XC/c Updated external to revision 1. ... + svn upgrade Upgraded '.' Upgraded 'B' Upgraded 'C' Upgraded 'XB' Upgraded 'B/XC' ]]] And note that a .svn dir remains in XB/XC (seen in the final 'ls') I'll see if I can find a solution. ~Neels
#!/usr/bin/env bash
## TO MAKE THIS RUN YOUR CUSTOM COMPILED SVN, two simple options:
## 1. Adjust your PATH to point at your custom installed location:
## export PATH="$HOME/prefix/svn_trunk/bin:$PATH"
## OR
## 2. Uncomment the four lines below to use aliases into your
## built source tree. The next line is the only line you should
## need to adjust.
# SVNDIR=/path/to/built_subversion_source_tree
# function svn() { "$SVNDIR/subversion/svn/svn" "$@"; }
# function svnserve() { "$SVNDIR/subversion/svnserve/svnserve" "$@"; }
# function svnadmin() { "$SVNDIR/subversion/svnadmin/svnadmin" "$@"; }
set -e
svn --version
# current path points at Subversion 1.7.x. Change that to 1.6.x:
OLD_PATH="$PATH"
export PATH="$HOME/pat/1.6.17/prefix/bin:$OLD_PATH"
svn --version | grep version
BASE="$(mktemp -d "/tmp/$(basename "$0").XXX")"
echo "BASE = $BASE"
REPOS="$BASE/repos"
WC="$BASE/wc"
URL="file://$REPOS"
svnadmin create "$REPOS"
# enable all revprop changes
cat > "$REPOS/hooks/pre-revprop-change" <<EOF
#!/usr/bin/env sh
exit 0
EOF
chmod a+x "$REPOS/hooks/pre-revprop-change"
set +e
set -x
## ACTUAL TEST
# using Subversion 1.6.x
svn --version | grep version
svn co -q "$URL" "$WC"
cd "$WC"
echo a > a
mkdir B
echo b > B/b
mkdir C
echo c > C/c
svn add a B C
svn ps svn:externals "^/C XC" B
svn ps svn:externals "^/B XB" .
svn ci -mm
svn up
# back to using Subversion 1.7.x
set +x
export PATH="$OLD_PATH"
set -x
svn --version | grep version
svn upgrade
ls -a XB/XC/
## END
set +x
echo "BASE = $BASE"
svn, version 1.7.0-dev (under development) compiled Sep 7 2011, 21:15:48 Copyright (C) 2011 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_neon : Module for accessing a repository via WebDAV protocol using Neon. - handles 'http' scheme - handles 'https' scheme * ra_svn : Module for accessing a repository using the svn network protocol. - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme svn, version 1.6.17 (r1128011) Subversion is open source software, see http://subversion.apache.org/ BASE = /tmp/palmer.AtX + svn --version + grep version svn, version 1.6.17 (r1128011) Subversion is open source software, see http://subversion.apache.org/ + svn co -q file:///tmp/palmer.AtX/repos /tmp/palmer.AtX/wc + cd /tmp/palmer.AtX/wc + echo a + mkdir B + echo b + mkdir C + echo c + svn add a B C A a A B A B/b A C A C/c + svn ps svn:externals '^/C XC' B property 'svn:externals' set on 'B' + svn ps svn:externals '^/B XB' . property 'svn:externals' set on '.' + svn ci -mm Sending . Adding B Adding B/b Adding C Adding C/c Adding a Transmitting file data ... Committed revision 1. + svn up Fetching external item into 'XB' A XB/b U XB Fetching external item into 'XB/XC' A XB/XC/c Updated external to revision 1. Updated to revision 1. Fetching external item into 'B/XC' A B/XC/c Updated external to revision 1. Updated to revision 1. + set +x + svn --version + grep version svn, version 1.7.0-dev (under development) Subversion is open source software, see http://subversion.apache.org/ + svn upgrade Upgraded '.' Upgraded 'B' Upgraded 'C' Upgraded 'XB' Upgraded 'B/XC' + ls -a XB/XC/ . .. c .svn + set +x BASE = /tmp/palmer.AtX
signature.asc
Description: OpenPGP digital signature

