Author: julianfoad
Date: Tue Nov 25 16:26:48 2014
New Revision: 1641647

URL: http://svn.apache.org/r1641647
Log:
On the 'move-tracking-2' branch: catch up with trunk@1641646.

Added:
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/rev_file.c
      - copied unchanged from r1641646, 
subversion/trunk/subversion/libsvn_fs_x/rev_file.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/rev_file.h
      - copied unchanged from r1641646, 
subversion/trunk/subversion/libsvn_fs_x/rev_file.h
    
subversion/branches/move-tracking-2/subversion/tests/cmdline/svnadmin_tests_data/load_txdelta.dump.gz
      - copied unchanged from r1641646, 
subversion/trunk/subversion/tests/cmdline/svnadmin_tests_data/load_txdelta.dump.gz
    subversion/branches/move-tracking-2/tools/buildbot/slaves/svn-x64-macosx/
      - copied from r1641646, 
subversion/trunk/tools/buildbot/slaves/svn-x64-macosx/
    subversion/branches/move-tracking-2/tools/examples/ExampleAuthn.java
      - copied unchanged from r1641646, 
subversion/trunk/tools/examples/ExampleAuthn.java
    subversion/branches/move-tracking-2/tools/examples/ExampleAuthnOld.java
      - copied unchanged from r1641646, 
subversion/trunk/tools/examples/ExampleAuthnOld.java
    subversion/branches/move-tracking-2/tools/examples/ExampleAuthnVeryOld.java
      - copied unchanged from r1641646, 
subversion/trunk/tools/examples/ExampleAuthnVeryOld.java
Modified:
    subversion/branches/move-tracking-2/   (props changed)
    subversion/branches/move-tracking-2/Makefile.in
    subversion/branches/move-tracking-2/autogen.sh   (contents, props changed)
    subversion/branches/move-tracking-2/build/   (props changed)
    subversion/branches/move-tracking-2/build/ac-macros/apache.m4
    subversion/branches/move-tracking-2/build/run_tests.py
    subversion/branches/move-tracking-2/subversion/   (props changed)
    
subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    
subversion/branches/move-tracking-2/subversion/include/private/svn_fs_fs_private.h
    
subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h
    subversion/branches/move-tracking-2/subversion/include/svn_fs.h
    subversion/branches/move-tracking-2/subversion/include/svn_io.h
    
subversion/branches/move-tracking-2/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/checkout.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/cleanup.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/client.h
    subversion/branches/move-tracking-2/subversion/libsvn_client/commit_util.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/export.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/externals.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/import.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/info.c
    
subversion/branches/move-tracking-2/subversion/libsvn_client/locking_commands.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/merge.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/mergeinfo.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/patch.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/prop_commands.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/ra.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/resolved.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/revert.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/status.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/switch.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/update.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/util.c
    subversion/branches/move-tracking-2/subversion/libsvn_delta/path_driver.c
    subversion/branches/move-tracking-2/subversion/libsvn_delta/text_delta.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_base/reps-strings.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/cached_data.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/caching.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/dump-index.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/fs.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/fs.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/fs_fs.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/hotcopy.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/index.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/load-index.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/pack.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/pack.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/revprops.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/stats.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/structure
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/transaction.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/tree.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/util.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/util.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/verify.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_util/fs-util.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/   (props 
changed)
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/cached_data.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/cached_data.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/dag.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/fs.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/fs.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/fs_x.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/fs_x.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/hotcopy.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/hotcopy.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/id.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/id.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/index.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/index.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/lock.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/low_level.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/low_level.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/pack.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/recovery.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/temp_serializer.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/transaction.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/transaction.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/tree.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/util.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/util.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_x/verify.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/stream.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/node.c
    subversion/branches/move-tracking-2/subversion/po/de.po
    subversion/branches/move-tracking-2/subversion/svn-bench/help-cmd.c
    subversion/branches/move-tracking-2/subversion/svn-bench/svn-bench.c
    subversion/branches/move-tracking-2/subversion/svnadmin/svnadmin.c
    subversion/branches/move-tracking-2/subversion/svnfsfs/stats-cmd.c
    subversion/branches/move-tracking-2/subversion/svnfsfs/svnfsfs.c
    subversion/branches/move-tracking-2/subversion/tests/cmdline/basic_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/davautocheck.sh
    
subversion/branches/move-tracking-2/subversion/tests/cmdline/externals_tests.py
    
subversion/branches/move-tracking-2/subversion/tests/cmdline/redirect_tests.py
    
subversion/branches/move-tracking-2/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/main.py
    subversion/branches/move-tracking-2/subversion/tests/libsvn_fs/fs-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_fs_x/   (props 
changed)
    
subversion/branches/move-tracking-2/subversion/tests/libsvn_fs_x/fs-x-pack-test.c
    
subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/stream-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/wc-test.c
    
subversion/branches/move-tracking-2/subversion/tests/templates/greek-fsfs-v6.zip
    subversion/branches/move-tracking-2/tools/   (props changed)
    
subversion/branches/move-tracking-2/tools/buildbot/slaves/svn-sparc-solaris/svnbuild.sh
    subversion/branches/move-tracking-2/tools/dist/release.py
    
subversion/branches/move-tracking-2/tools/hook-scripts/mailer/tests/mailer-init.sh

Propchange: subversion/branches/move-tracking-2/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1635153-1641646

Modified: subversion/branches/move-tracking-2/Makefile.in
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/Makefile.in?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/Makefile.in (original)
+++ subversion/branches/move-tracking-2/Makefile.in Tue Nov 25 16:26:48 2014
@@ -370,6 +370,7 @@ INSTALL_EXTRA_SWIG_RB=\
   done
 
 APXS = @APXS@
+HTTPD_VERSION = @HTTPD_VERSION@
 
 PYTHON = @PYTHON@
 PERL = @PERL@
@@ -534,6 +535,9 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
          if test "$(HTTP_LIBRARY)" != ""; then                              \
            flags="--http-library $(HTTP_LIBRARY) $$flags";                  \
          fi;                                                                \
+         if test "$(HTTPD_VERSION)" != ""; then                             \
+            flags="--httpd-version $(HTTPD_VERSION) $$flags";               \
+         fi;                                                                \
          if test "$(SERVER_MINOR_VERSION)" != ""; then                      \
            flags="--server-minor-version $(SERVER_MINOR_VERSION) $$flags";  \
          fi;                                                                \

Modified: subversion/branches/move-tracking-2/autogen.sh
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/autogen.sh?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/autogen.sh (original)
+++ subversion/branches/move-tracking-2/autogen.sh Tue Nov 25 16:26:48 2014
@@ -72,48 +72,80 @@ rm -f build/config.guess build/config.su
 $libtoolize --copy --automake --force
 
 ltpath="`dirname $libtoolize`"
-ltfile=${LIBTOOL_M4-`cd $ltpath/../share/aclocal ; pwd`/libtool.m4}
 
-if [ ! -f $ltfile ]; then
-    echo "$ltfile not found (try setting the LIBTOOL_M4 environment variable)"
+if [ "x$LIBTOOL_M4" = "x" ]; then
+    ltm4_error='(try setting the LIBTOOL_M4 environment variable)'
+    if [ -d "$ltpath/../share/aclocal/." ]; then
+        ltm4=`cd "$ltpath/../share/aclocal" && pwd`
+    else
+        echo "Libtool helper path not found $ltm4_error"
+        echo "  expected at: '$ltpath/../share/aclocal'"
+        exit 1
+    fi
+else
+    ltm4_error="(the LIBTOOL_M4 environment variable is: $LIBTOOL_M4)"
+    ltm4="$LIBTOOL_M4"
+fi
+
+ltfile="$ltm4/libtool.m4"
+if [ ! -f "$ltfile" ]; then
+    echo "$ltfile not found $ltm4_error"
     exit 1
 fi
 
-echo "Copying libtool helper: $ltfile"
+echo "Copying libtool helper:  $ltfile"
 # An ancient helper might already be present from previous builds,
 # and it might be write-protected (e.g. mode 444, seen on FreeBSD).
 # This would cause cp to fail and print an error message, but leave
 # behind a potentially outdated libtool helper.  So, remove before
 # copying:
 rm -f build/libtool.m4
-cp $ltfile build/libtool.m4
+cp "$ltfile" build/libtool.m4
 
 for file in ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4; do
     rm -f build/$file
 
     if [ $lt_major_version -ge 2 ]; then
-        ltfile=${LIBTOOL_M4-`cd $ltpath/../share/aclocal ; pwd`/$file}
+        ltfile="$ltm4/$file"
 
-        if [ ! -f $ltfile ]; then
-            echo "$ltfile not found (try setting the LIBTOOL_M4 environment 
variable)"
+        if [ ! -f "$ltfile" ]; then
+            echo "$ltfile not found $ltm4_error"
             exit 1
         fi
 
-        echo "Copying libtool helper: $ltfile"
-        cp $ltfile build/$file
+        echo "Copying libtool helper:  $ltfile"
+        cp "$ltfile" "build/$file"
     fi
 done
 
 if [ $lt_major_version -ge 2 ]; then
+    if [ "x$LIBTOOL_CONFIG" = "x" ]; then
+        ltconfig_error='(try setting the LIBTOOL_CONFIG environment variable)'
+        if [ -d "$ltpath/../share/libtool/config/." ]; then
+            ltconfig=`cd "$ltpath/../share/libtool/config" && pwd`
+        elif [ -d "$ltpath/../share/libtool/build-aux/." ]; then
+            ltconfig=`cd "$ltpath/../share/libtool/build-aux" && pwd`
+        else
+            echo "Autoconf helper path not found $ltconfig_error"
+            echo "  expected at: '$ltpath/../share/libtool/config'"
+            echo "           or: '$ltpath/../share/libtool/build-aux'"
+            exit 1
+        fi
+    else
+        ltconfig_error="(the LIBTOOL_CONFIG environment variable is: 
$LIBTOOL_CONFIG)"
+        ltconfig="$LIBTOOL_CONFIG"
+    fi
+
     for file in config.guess config.sub; do
-        configfile=${LIBTOOL_CONFIG-`cd $ltpath/../share/libtool/config ; 
pwd`/$file}
+        configfile="$ltconfig/$file"
 
-        if [ ! -f $configfile ]; then
-            echo "$configfile not found (try setting the LIBTOOL_CONFIG 
environment variable)"
+        if [ ! -f "$configfile" ]; then
+            echo "$configfile not found $ltconfig_error"
             exit 1
         fi
 
-       cp $configfile build/$file
+        echo "Copying autoconf helper: $configfile"
+       cp "$configfile" build/$file
     done
 fi
 

Propchange: subversion/branches/move-tracking-2/autogen.sh
------------------------------------------------------------------------------
  Merged /subversion/trunk/autogen.sh:r1634607-1641646

Propchange: subversion/branches/move-tracking-2/build/
------------------------------------------------------------------------------
  Merged /subversion/trunk/build:r1634607-1641646

Modified: subversion/branches/move-tracking-2/build/ac-macros/apache.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/ac-macros/apache.m4?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/ac-macros/apache.m4 (original)
+++ subversion/branches/move-tracking-2/build/ac-macros/apache.m4 Tue Nov 25 
16:26:48 2014
@@ -162,6 +162,11 @@ if test -n "$APXS" && test "$APXS" != "n
     BUILD_APACHE_RULE=apache-mod
     INSTALL_APACHE_RULE=install-mods-shared
     INSTALL_APACHE_MODS=true
+    HTTPD="`$APXS -q sbindir`/`$APXS -q PROGNAME`"
+    if ! test -e $HTTPD ; then
+      HTTPD="`$APXS -q bindir`/`$APXS -q PROGNAME`"
+    fi
+    HTTPD_VERSION=["`$HTTPD -v | $SED -e 's@^.*/\([0-9.]*\)\(.*$\)@\1@ ; 1q'`"]
 
     case $host in
       *-*-cygwin*)
@@ -180,6 +185,7 @@ AC_SUBST(APACHE_LDFLAGS)
 AC_SUBST(APACHE_INCLUDES)
 AC_SUBST(APACHE_LIBEXECDIR)
 AC_SUBST(INSTALL_APACHE_MODS)
+AC_SUBST(HTTPD_VERSION)
 
 # there aren't any flags that interest us ...
 #if test -n "$APXS" && test "$APXS" != "no"; then

Modified: subversion/branches/move-tracking-2/build/run_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/run_tests.py?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/run_tests.py (original)
+++ subversion/branches/move-tracking-2/build/run_tests.py Tue Nov 25 16:26:48 
2014
@@ -29,6 +29,7 @@
             [--fs-type=<fs-type>] [--fsfs-packing] [--fsfs-sharding=<n>]
             [--list] [--milestone-filter=<regex>] [--mode-filter=<type>]
             [--server-minor-version=<version>] [--http-proxy=<host>:<port>]
+            [--httpd-version=<version>]
             [--config-file=<file>] [--ssl-cert=<file>]
             [--exclusive-wc-locks] [--memcached-server=<url:port>]
             <abs_srcdir> <abs_builddir>
@@ -127,7 +128,8 @@ class TestHarness:
                list_tests=None, svn_bin=None, mode_filter=None,
                milestone_filter=None, set_log_level=None, ssl_cert=None,
                http_proxy=None, http_proxy_username=None,
-               http_proxy_password=None, exclusive_wc_locks=None,
+               http_proxy_password=None, httpd_version=None,
+               exclusive_wc_locks=None,
                memcached_server=None, skip_c_tests=None):
     '''Construct a TestHarness instance.
 
@@ -185,6 +187,7 @@ class TestHarness:
     self.http_proxy = http_proxy
     self.http_proxy_username = http_proxy_username
     self.http_proxy_password = http_proxy_password
+    self.httpd_version = httpd_version
     self.exclusive_wc_locks = exclusive_wc_locks
     self.memcached_server = memcached_server
     if not sys.stdout.isatty() or sys.platform == 'win32':
@@ -527,6 +530,8 @@ class TestHarness:
           svntest.main.options.http_proxy_username = self.http_proxy_username
     if self.http_proxy_password is not None:
         svntest.main.options.http_proxy_password = self.http_proxy_password
+    if self.httpd_version is not None:
+        svntest.main.options.httpd_version = self.httpd_version
     if self.exclusive_wc_locks is not None:
       svntest.main.options.exclusive_wc_locks = self.exclusive_wc_locks
     if self.memcached_server is not None:
@@ -700,7 +705,8 @@ def main():
                             'log-to-stdout', 'list', 'milestone-filter=',
                             'mode-filter=', 'set-log-level=', 'ssl-cert=',
                             'http-proxy=', 'http-proxy-username=',
-                            'http-proxy-password=','exclusive-wc-locks',
+                            'http-proxy-password=', 'httpd-version=',
+                            'exclusive-wc-locks',
                             'memcached-server='])
   except getopt.GetoptError:
     args = []
@@ -713,11 +719,11 @@ def main():
     http_library, server_minor_version, fsfs_sharding, fsfs_packing, \
     parallel, config_file, log_to_stdout, list_tests, mode_filter, \
     milestone_filter, set_log_level, ssl_cert, http_proxy, \
-    http_proxy_username, http_proxy_password, exclusive_wc_locks, \
-    memcached_server = \
+    http_proxy_username, http_proxy_password, httpd_version, \
+    exclusive_wc_locks, memcached_server = \
             None, None, None, None, None, None, None, None, None, None, \
             None, None, None, None, None, None, None, None, None, None, \
-            None, None, None
+            None, None, None, None,
   for opt, val in opts:
     if opt in ['-u', '--url']:
       base_url = val
@@ -761,6 +767,8 @@ def main():
       http_proxy_username = val
     elif opt in ['--http-proxy-password']:
       http_proxy_password = val
+    elif opt in ['--httpd-version']:
+      httpd_version = val
     elif opt in ['--exclusive-wc-locks']:
       exclusive_wc_locks = 1
     elif opt in ['--memcached-server']:
@@ -784,6 +792,7 @@ def main():
                    http_proxy=http_proxy,
                    http_proxy_username=http_proxy_username,
                    http_proxy_password=http_proxy_password,
+                   httpd_version=httpd_version,
                    exclusive_wc_locks=exclusive_wc_locks,
                    memcached_server=memcached_server,
                    skip_c_tests=skip_c_tests)

Propchange: subversion/branches/move-tracking-2/subversion/
------------------------------------------------------------------------------
  Merged /subversion/trunk/subversion:r1635153-1641646

Modified: 
subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
 (original)
+++ 
subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
 Tue Nov 25 16:26:48 2014
@@ -701,6 +701,47 @@ public class BasicTests extends SVNTests
     }
 
     /**
+     * Test SVNClient.status on externals.
+     * @throws Throwable
+     */
+    public void testExternalStatus() throws Throwable
+    {
+        // build the test setup
+        OneTest thisTest = new OneTest();
+
+
+        // Add an externals reference to the working copy.
+        client.propertySetLocal(thisTest.getWCPathSet(), "svn:externals",
+                                "^/A/D/H ADHext".getBytes(),
+                                Depth.empty, null, false);
+
+        // Update the working copy to bring in the external subtree.
+        client.update(thisTest.getWCPathSet(), Revision.HEAD,
+                      Depth.unknown, false, false, false, false);
+
+        // Test status of an external file
+        File psi = new File(thisTest.getWorkingCopy() + "/ADHext", "psi");
+
+        MyStatusCallback statusCallback = new MyStatusCallback();
+        client.status(fileToSVNPath(psi, false), Depth.unknown,
+                      false, true, true, false, false, false,
+                      null, statusCallback);
+
+        final int statusCount = statusCallback.getStatusArray().length;
+        if (statusCount == 1)
+        {
+            Status st = statusCallback.getStatusArray()[0];
+            assertFalse(st.isConflicted());
+            assertEquals(Status.Kind.normal, st.getNodeStatus());
+            assertEquals(NodeKind.file, st.getNodeKind());
+        }
+        else if (statusCount > 1)
+            fail("File psi should not return more than one status.");
+        else
+            fail("File psi should return exactly one status.");
+    }
+
+    /**
      * Test the basic SVNClient.checkout functionality.
      * @throws Throwable
      */

Modified: 
subversion/branches/move-tracking-2/subversion/include/private/svn_fs_fs_private.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/private/svn_fs_fs_private.h?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/include/private/svn_fs_fs_private.h
 (original)
+++ 
subversion/branches/move-tracking-2/subversion/include/private/svn_fs_fs_private.h
 Tue Nov 25 16:26:48 2014
@@ -51,7 +51,7 @@ extern "C" {
 typedef struct svn_fs_fs__large_change_info_t
 {
   /* size of the (deltified) representation */
-  apr_size_t size;
+  apr_uint64_t size;
 
   /* Revision of the representation. SVN_INVALID_REVNUM for unused entries. */
   svn_revnum_t revision;
@@ -70,7 +70,7 @@ typedef struct svn_fs_fs__largest_change
   apr_size_t count;
 
   /* size of the smallest change */
-  apr_size_t min_size;
+  apr_uint64_t min_size;
 
   /* changes kept in this struct */
   svn_fs_fs__large_change_info_t **changes;
@@ -81,10 +81,10 @@ typedef struct svn_fs_fs__largest_change
 typedef struct svn_fs_fs__histogram_line_t
 {
   /* number of item that fall into this bracket */
-  apr_int64_t count;
+  apr_uint64_t count;
 
   /* sum of values in this bracket */
-  apr_int64_t sum;
+  apr_uint64_t sum;
 } svn_fs_fs__histogram_line_t;
 
 /* A histogram of 64 bit integer values.
@@ -119,16 +119,16 @@ typedef struct svn_fs_fs__extension_info
 typedef struct svn_fs_fs__rep_pack_stats_t
 {
   /* number of representations */
-  apr_int64_t count;
+  apr_uint64_t count;
 
   /* total size after deltification (i.e. on disk size) */
-  apr_int64_t packed_size;
+  apr_uint64_t packed_size;
 
   /* total size after de-deltification (i.e. plain text size) */
-  apr_int64_t expanded_size;
+  apr_uint64_t expanded_size;
 
   /* total on-disk header size */
-  apr_int64_t overhead_size;
+  apr_uint64_t overhead_size;
 } svn_fs_fs__rep_pack_stats_t;
 
 /* Statistics we collect over a given set of representations.
@@ -146,11 +146,11 @@ typedef struct svn_fs_fs__representation
   svn_fs_fs__rep_pack_stats_t shared;
 
   /* sum of all ref_counts */
-  apr_int64_t references;
+  apr_uint64_t references;
 
   /* sum of ref_count * expanded_size,
    * i.e. total plaintext content if there was no rep sharing */
-  apr_int64_t expanded_size;
+  apr_uint64_t expanded_size;
 } svn_fs_fs__representation_stats_t;
 
 /* Basic statistics we collect over a given set of noderevs.
@@ -158,10 +158,10 @@ typedef struct svn_fs_fs__representation
 typedef struct svn_fs_fs__node_stats_t
 {
   /* number of noderev structs */
-  apr_int64_t count;
+  apr_uint64_t count;
 
   /* their total size on disk (structs only) */
-  apr_int64_t size;
+  apr_uint64_t size;
 } svn_fs_fs__node_stats_t;
 
 /* Comprises all the information needed to create the output of the
@@ -170,16 +170,16 @@ typedef struct svn_fs_fs__node_stats_t
 typedef struct svn_fs_fs__stats_t
 {
   /* sum total of all rev / pack file sizes in bytes */
-  apr_int64_t total_size;
+  apr_uint64_t total_size;
 
   /* number of revisions in the repository */
-  apr_int64_t revision_count;
+  apr_uint64_t revision_count;
 
   /* total number of changed paths */
-  apr_int64_t change_count;
+  apr_uint64_t change_count;
 
   /* sum of all changed path list sizes on disk in bytes */
-  apr_int64_t change_len;
+  apr_uint64_t change_len;
 
   /* stats on all representations */
   svn_fs_fs__representation_stats_t total_rep_stats;

Modified: 
subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h 
(original)
+++ 
subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h 
Tue Nov 25 16:26:48 2014
@@ -622,7 +622,6 @@ svn_wc__node_get_base(svn_node_kind_t *k
                       svn_wc_context_t *wc_ctx,
                       const char *local_abspath,
                       svn_boolean_t ignore_enoent,
-                      svn_boolean_t show_hidden,
                       apr_pool_t *result_pool,
                       apr_pool_t *scratch_pool);
 

Modified: subversion/branches/move-tracking-2/subversion/include/svn_fs.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_fs.h?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_fs.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_fs.h Tue Nov 25 
16:26:48 2014
@@ -126,6 +126,16 @@ typedef struct svn_fs_t svn_fs_t;
  */
 #define SVN_FS_CONFIG_FSFS_SHARD_SIZE           "fsfs-shard-size"
 
+/** Enable / disable the FSFS format 7 logical addressing feature for a
+ * newly created repository.
+ *
+ * This option will only be used during the creation of new repositories
+ * and is otherwise ignored.
+ *
+ * @since New in 1.9.
+ */
+#define SVN_FS_CONFIG_FSFS_LOG_ADDRESSING       "fsfs-log-addressing"
+
 /* Note to maintainers: if you add further SVN_FS_CONFIG_FSFS_CACHE_* knobs,
    update fs_fs.c:verify_as_revision_before_current_plus_plus(). */
 
@@ -2249,13 +2259,13 @@ typedef svn_error_t *
  * upon doing so.  Use @a pool for allocations.
  *
  * This function is intended to support zero copy data processing.  It may
- * not be implemented for all data backends or not applicable for certain
- * content.  In that case, @a *success will always be @c FALSE.  Also, this
- * is a best-effort function which means that there is no guarantee that
- * @a processor gets called at all for some content.
+ * not be implemented for all data backends or not be applicable for certain
+ * content.  In those cases, @a *success will always be @c FALSE.  Also,
+ * this is a best-effort function which means that there is no guarantee
+ * that @a processor gets called at all.
  *
- * @note @a processor is expected to be relatively short function with
- * at most O(content size) runtime.
+ * @note @a processor is expected to be a relatively simple function with
+ * a runtime of O(content size) or less.
  *
  * @since New in 1.8.
  */
@@ -3032,6 +3042,9 @@ typedef struct svn_fs_fsfs_info_t {
    * @note Zero (0) if (but not iff) the format does not support packing. */
   svn_revnum_t min_unpacked_rev;
 
+  /* TRUE if logical addressing is enabled for this repository.
+   * FALSE if repository uses physical addressing. */
+  svn_boolean_t log_addressing;
   /* ### TODO: information about fsfs.conf? rep-cache.db? write locks? */
 
   /* If you add fields here, check whether you need to extend svn_fs_info()

Modified: subversion/branches/move-tracking-2/subversion/include/svn_io.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_io.h?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_io.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_io.h Tue Nov 25 
16:26:48 2014
@@ -1265,6 +1265,8 @@ svn_stream_read(svn_stream_t *stream,
  * of reads or a simple seek operation. If the stream implementation has
  * not provided a skip function, this will read from the stream and
  * discard the data.
+ *
+ * @since New in 1.7.
  */
 svn_error_t *
 svn_stream_skip(svn_stream_t *stream,

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
 (original)
+++ 
subversion/branches/move-tracking-2/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
 Tue Nov 25 16:26:48 2014
@@ -49,120 +49,19 @@
 /*-----------------------------------------------------------------------*/
 
 
-struct gnome_keyring_baton
-{
-  const char *keyring_name;
-  GnomeKeyringInfo *info;
-  GMainLoop *loop;
-};
-
-
-/* Callback function to destroy gnome_keyring_baton. */
-static void
-callback_destroy_data_keyring(void *data)
-{
-  struct gnome_keyring_baton *key_info = data;
-
-  if (data == NULL)
-    return;
-
-  free((void*)key_info->keyring_name);
-  key_info->keyring_name = NULL;
-
-  if (key_info->info)
-    {
-      gnome_keyring_info_free(key_info->info);
-      key_info->info = NULL;
-    }
-
-  return;
-}
-
-
-/* Callback function to complete the keyring operation. */
-static void
-callback_done(GnomeKeyringResult result,
-              gpointer data)
-{
-  struct gnome_keyring_baton *key_info = data;
-
-  g_main_loop_quit(key_info->loop);
-  return;
-}
-
-
-/* Callback function to get the keyring info. */
-static void
-callback_get_info_keyring(GnomeKeyringResult result,
-                          GnomeKeyringInfo *info,
-                          void *data)
-{
-  struct gnome_keyring_baton *key_info = data;
-
-  if (result == GNOME_KEYRING_RESULT_OK && info != NULL)
-    {
-      key_info->info = gnome_keyring_info_copy(info);
-    }
-  else
-    {
-      if (key_info->info != NULL)
-        gnome_keyring_info_free(key_info->info);
-
-      key_info->info = NULL;
-    }
-
-  g_main_loop_quit(key_info->loop);
-
-  return;
-}
-
-
-/* Callback function to get the default keyring string name. */
-static void
-callback_default_keyring(GnomeKeyringResult result,
-                         const char *string,
-                         void *data)
-{
-  struct gnome_keyring_baton *key_info = data;
-
-  if (result == GNOME_KEYRING_RESULT_OK && string != NULL)
-    {
-      key_info->keyring_name = strdup(string);
-    }
-  else
-    {
-      free((void*)key_info->keyring_name);
-      key_info->keyring_name = NULL;
-    }
-
-  g_main_loop_quit(key_info->loop);
-
-  return;
-}
-
 /* Returns the default keyring name, allocated in RESULT_POOL. */
 static char*
 get_default_keyring_name(apr_pool_t *result_pool)
 {
-  char *def = NULL;
-  struct gnome_keyring_baton key_info;
-
-  key_info.info = NULL;
-  key_info.keyring_name = NULL;
+  char *name, *def;
+  GnomeKeyringResult gkr;
 
-  /* Finds default keyring. */
-  key_info.loop = g_main_loop_new(NULL, FALSE);
-  gnome_keyring_get_default_keyring(callback_default_keyring, &key_info, NULL);
-  g_main_loop_run(key_info.loop);
+  gkr = gnome_keyring_get_default_keyring_sync(&name);
+  if (gkr != GNOME_KEYRING_RESULT_OK)
+    return NULL;
 
-  if (key_info.keyring_name == NULL)
-    {
-      callback_destroy_data_keyring(&key_info);
-      return NULL;
-    }
-
-  def = apr_pstrdup(result_pool, key_info.keyring_name);
-  callback_destroy_data_keyring(&key_info);
+  def = apr_pstrdup(result_pool, name);
+  g_free(name);
 
   return def;
 }
@@ -171,28 +70,22 @@ get_default_keyring_name(apr_pool_t *res
 static svn_boolean_t
 check_keyring_is_locked(const char *keyring_name)
 {
-  struct gnome_keyring_baton key_info;
+  GnomeKeyringInfo *info;
+  svn_boolean_t locked;
+  GnomeKeyringResult gkr;
 
-  key_info.info = NULL;
-  key_info.keyring_name = NULL;
+  gkr = gnome_keyring_get_info_sync(keyring_name, &info);
+  if (gkr != GNOME_KEYRING_RESULT_OK)
+    return FALSE;
 
-  /* Get details about the default keyring. */
-  key_info.loop = g_main_loop_new(NULL, FALSE);
-  gnome_keyring_get_info(keyring_name, callback_get_info_keyring, &key_info,
-                         NULL);
-  g_main_loop_run(key_info.loop);
+  if (gnome_keyring_info_get_is_locked(info))
+    locked = TRUE;
+  else
+    locked = FALSE;
 
-  if (key_info.info == NULL)
-    {
-      callback_destroy_data_keyring(&key_info);
-      return FALSE;
-    }
+  gnome_keyring_info_free(info);
 
-  /* Check if keyring is locked. */
-  if (gnome_keyring_info_get_is_locked(key_info.info))
-    return TRUE;
-  else
-    return FALSE;
+  return locked;
 }
 
 /* Unlock the KEYRING_NAME with the KEYRING_PASSWORD. If KEYRING was
@@ -202,34 +95,19 @@ unlock_gnome_keyring(const char *keyring
                      const char *keyring_password,
                      apr_pool_t *pool)
 {
-  struct gnome_keyring_baton key_info;
-
-  key_info.info = NULL;
-  key_info.keyring_name = NULL;
+  GnomeKeyringInfo *info;
+  GnomeKeyringResult gkr;
 
-  /* Get details about the default keyring. */
-  key_info.loop = g_main_loop_new(NULL, FALSE);
-  gnome_keyring_get_info(keyring_name, callback_get_info_keyring,
-                         &key_info, NULL);
-  g_main_loop_run(key_info.loop);
+  gkr = gnome_keyring_get_info_sync(keyring_name, &info);
+  if (gkr != GNOME_KEYRING_RESULT_OK)
+    return FALSE;
 
-  if (key_info.info == NULL)
-    {
-      callback_destroy_data_keyring(&key_info);
-      return FALSE;
-    }
-  else
-    {
-      key_info.loop = g_main_loop_new(NULL, FALSE);
-      gnome_keyring_unlock(keyring_name, keyring_password,
-                           callback_done, &key_info, NULL);
-      g_main_loop_run(key_info.loop);
-    }
-  callback_destroy_data_keyring(&key_info);
-  if (check_keyring_is_locked(keyring_name))
+  gkr = gnome_keyring_unlock_sync(keyring_name, keyring_password);
+  gnome_keyring_info_free(info);
+  if (gkr != GNOME_KEYRING_RESULT_OK)
     return FALSE;
 
-  return TRUE;
+  return check_keyring_is_locked(keyring_name);
 }
 
 

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_client/checkout.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/checkout.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/checkout.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/checkout.c Tue 
Nov 25 16:26:48 2014
@@ -67,6 +67,7 @@ initialize_area(const char *local_abspat
 
 svn_error_t *
 svn_client__checkout_internal(svn_revnum_t *result_rev,
+                              svn_boolean_t *timestamp_sleep,
                               const char *url,
                               const char *local_abspath,
                               const svn_opt_revision_t *peg_revision,
@@ -74,16 +75,16 @@ svn_client__checkout_internal(svn_revnum
                               svn_depth_t depth,
                               svn_boolean_t ignore_externals,
                               svn_boolean_t allow_unver_obstructions,
-                              svn_boolean_t *timestamp_sleep,
+                              svn_ra_session_t *ra_session,
                               svn_client_ctx_t *ctx,
-                              apr_pool_t *pool)
+                              apr_pool_t *scratch_pool)
 {
   svn_node_kind_t kind;
   svn_client__pathrev_t *pathrev;
 
   /* Sanity check.  Without these, the checkout is meaningless. */
   SVN_ERR_ASSERT(local_abspath != NULL);
-  SVN_ERR_ASSERT(svn_uri_is_canonical(url, pool));
+  SVN_ERR_ASSERT(svn_uri_is_canonical(url, scratch_pool));
   SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
 
   /* Fulfill the docstring promise of svn_client_checkout: */
@@ -92,21 +93,38 @@ svn_client__checkout_internal(svn_revnum
       && (revision->kind != svn_opt_revision_head))
     return svn_error_create(SVN_ERR_CLIENT_BAD_REVISION, NULL, NULL);
 
-  {
-    apr_pool_t *session_pool = svn_pool_create(pool);
-    svn_ra_session_t *ra_session;
-
-    /* Get the RA connection. */
-    SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &pathrev,
-                                              url, NULL, peg_revision,
-                                              revision, ctx, session_pool));
-
-    pathrev = svn_client__pathrev_dup(pathrev, pool);
-    SVN_ERR(svn_ra_check_path(ra_session, "", pathrev->rev, &kind,
-                              session_pool));
+  /* Get the RA connection, if needed. */
+  if (ra_session)
+    {
+      svn_error_t *err = svn_ra_reparent(ra_session, url, scratch_pool);
 
-    svn_pool_destroy(session_pool);
-  }
+      if (err)
+        {
+          if (err->apr_err == SVN_ERR_RA_ILLEGAL_URL)
+            {
+              svn_error_clear(err);
+              ra_session = NULL;
+            }
+          else
+            return svn_error_trace(err);
+        }
+      else
+        {
+          SVN_ERR(svn_client__resolve_rev_and_url(&pathrev,
+                                                  ra_session, url,
+                                                  peg_revision, revision,
+                                                  ctx, scratch_pool));
+        }
+    }
+
+  if (!ra_session)
+    {
+      SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &pathrev,
+                                                url, NULL, peg_revision,
+                                                revision, ctx, scratch_pool));
+    }
+
+  SVN_ERR(svn_ra_check_path(ra_session, "", pathrev->rev, &kind, 
scratch_pool));
 
   if (kind == svn_node_none)
     return svn_error_createf(SVN_ERR_RA_ILLEGAL_URL, NULL,
@@ -116,31 +134,35 @@ svn_client__checkout_internal(svn_revnum
       (SVN_ERR_UNSUPPORTED_FEATURE , NULL,
        _("URL '%s' refers to a file, not a directory"), pathrev->url);
 
-  SVN_ERR(svn_io_check_path(local_abspath, &kind, pool));
+  SVN_ERR(svn_io_check_path(local_abspath, &kind, scratch_pool));
 
   if (kind == svn_node_none)
     {
       /* Bootstrap: create an incomplete working-copy root dir.  Its
          entries file should only have an entry for THIS_DIR with a
          URL, revnum, and an 'incomplete' flag.  */
-      SVN_ERR(svn_io_make_dir_recursively(local_abspath, pool));
-      SVN_ERR(initialize_area(local_abspath, pathrev, depth, ctx, pool));
+      SVN_ERR(svn_io_make_dir_recursively(local_abspath, scratch_pool));
+      SVN_ERR(initialize_area(local_abspath, pathrev, depth, ctx,
+                              scratch_pool));
     }
   else if (kind == svn_node_dir)
     {
       int wc_format;
       const char *entry_url;
 
-      SVN_ERR(svn_wc_check_wc2(&wc_format, ctx->wc_ctx, local_abspath, pool));
+      SVN_ERR(svn_wc_check_wc2(&wc_format, ctx->wc_ctx, local_abspath,
+                               scratch_pool));
+
       if (! wc_format)
         {
-          SVN_ERR(initialize_area(local_abspath, pathrev, depth, ctx, pool));
+          SVN_ERR(initialize_area(local_abspath, pathrev, depth, ctx,
+                                  scratch_pool));
         }
       else
         {
           /* Get PATH's URL. */
           SVN_ERR(svn_wc__node_get_url(&entry_url, ctx->wc_ctx, local_abspath,
-                                       pool, pool));
+                                       scratch_pool, scratch_pool));
 
           /* If PATH's existing URL matches the incoming one, then
              just update.  This allows 'svn co' to restart an
@@ -150,24 +172,25 @@ svn_client__checkout_internal(svn_revnum
                           SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
                           _("'%s' is already a working copy for a"
                             " different URL"),
-                          svn_dirent_local_style(local_abspath, pool));
+                          svn_dirent_local_style(local_abspath, scratch_pool));
         }
     }
   else
     {
       return svn_error_createf(SVN_ERR_WC_NODE_KIND_CHANGE, NULL,
                                _("'%s' already exists and is not a directory"),
-                               svn_dirent_local_style(local_abspath, pool));
+                               svn_dirent_local_style(local_abspath,
+                                                      scratch_pool));
     }
 
   /* Have update fix the incompleteness. */
-  SVN_ERR(svn_client__update_internal(result_rev, local_abspath,
-                                      revision, depth, TRUE,
+  SVN_ERR(svn_client__update_internal(result_rev, timestamp_sleep,
+                                      local_abspath, revision, depth, TRUE,
                                       ignore_externals,
                                       allow_unver_obstructions,
                                       TRUE /* adds_as_modification */,
-                                      FALSE, FALSE,
-                                      timestamp_sleep, ctx, pool));
+                                      FALSE, FALSE, ra_session,
+                                      ctx, scratch_pool));
 
   return SVN_NO_ERROR;
 }
@@ -190,10 +213,12 @@ svn_client_checkout3(svn_revnum_t *resul
 
   SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, pool));
 
-  err = svn_client__checkout_internal(result_rev, URL, local_abspath,
+  err = svn_client__checkout_internal(result_rev, &sleep_here,
+                                      URL, local_abspath,
                                       peg_revision, revision, depth,
                                       ignore_externals,
-                                      allow_unver_obstructions, &sleep_here,
+                                      allow_unver_obstructions,
+                                      NULL /* ra_session */,
                                       ctx, pool);
   if (sleep_here)
     svn_io_sleep_for_timestamps(local_abspath, pool);

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/cleanup.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/cleanup.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/cleanup.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/cleanup.c Tue 
Nov 25 16:26:48 2014
@@ -148,8 +148,8 @@ cleanup_status_walk(void *baton,
               notify = svn_wc_create_notify(local_abspath,
                                             svn_wc_notify_cleanup_external,
                                             scratch_pool);
-              (*b->ctx->notify_func2)(b->ctx->notify_baton2, notify,
-                                      scratch_pool);
+              b->ctx->notify_func2(b->ctx->notify_baton2, notify,
+                                   scratch_pool);
             }
 
           err = do_cleanup(local_abspath,
@@ -208,7 +208,7 @@ cleanup_status_walk(void *baton,
       notify = svn_wc_create_notify(local_abspath, svn_wc_notify_delete,
                                     scratch_pool);
       notify->kind = kind_on_disk;
-      (*b->ctx->notify_func2)(b->ctx->notify_baton2, notify, scratch_pool);
+      b->ctx->notify_func2(b->ctx->notify_baton2, notify, scratch_pool);
     }
 
   return SVN_NO_ERROR;

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/client.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/client.h?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/client.h 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/client.h Tue 
Nov 25 16:26:48 2014
@@ -523,10 +523,14 @@ svn_client__make_local_parents(const cha
    (with depth=empty) any parent directories of the requested update
    target which are missing from the working copy.
 
+   If RA_SESSION is NOT NULL, it may be used to avoid creating a new
+   session. The session may point to a different URL after returning.
+
    NOTE:  You may not specify both INNERUPDATE and MAKE_PARENTS as true.
 */
 svn_error_t *
 svn_client__update_internal(svn_revnum_t *result_rev,
+                            svn_boolean_t *timestamp_sleep,
                             const char *local_abspath,
                             const svn_opt_revision_t *revision,
                             svn_depth_t depth,
@@ -536,7 +540,7 @@ svn_client__update_internal(svn_revnum_t
                             svn_boolean_t adds_as_modification,
                             svn_boolean_t make_parents,
                             svn_boolean_t innerupdate,
-                            svn_boolean_t *timestamp_sleep,
+                            svn_ra_session_t *ra_session,
                             svn_client_ctx_t *ctx,
                             apr_pool_t *pool);
 
@@ -552,11 +556,6 @@ svn_client__update_internal(svn_revnum_t
 
    DEPTH must be a definite depth, not (e.g.) svn_depth_unknown.
 
-   RA_CACHE is a pointer to a cache of information for the URL at
-   REVISION based on the PEG_REVISION.  Any information not in
-   *RA_CACHE is retrieved by a round-trip to the repository.  RA_CACHE
-   may be NULL which indicates that no cache information is available.
-
    If IGNORE_EXTERNALS is true, do no externals processing.
 
    Set *TIMESTAMP_SLEEP to TRUE if a sleep is required; otherwise do not
@@ -567,9 +566,13 @@ svn_client__update_internal(svn_revnum_t
    unversioned children of LOCAL_ABSPATH that obstruct items added from
    the repos are tolerated; if FALSE, these obstructions cause the checkout
    to fail.
+
+   If RA_SESSION is NOT NULL, it may be used to avoid creating a new
+   session. The session may point to a different URL after returning.
    */
 svn_error_t *
 svn_client__checkout_internal(svn_revnum_t *result_rev,
+                              svn_boolean_t *timestamp_sleep,
                               const char *URL,
                               const char *local_abspath,
                               const svn_opt_revision_t *peg_revision,
@@ -577,7 +580,7 @@ svn_client__checkout_internal(svn_revnum
                               svn_depth_t depth,
                               svn_boolean_t ignore_externals,
                               svn_boolean_t allow_unver_obstructions,
-                              svn_boolean_t *timestamp_sleep,
+                              svn_ra_session_t *ra_session,
                               svn_client_ctx_t *ctx,
                               apr_pool_t *pool);
 
@@ -1010,6 +1013,9 @@ svn_client__do_commit(const char *base_u
    change *TIMESTAMP_SLEEP.  The output will be valid even if the function
    returns an error.
 
+   If RA_SESSION is NOT NULL, it may be used to avoid creating a new
+   session. The session may point to a different URL after returning.
+
    Use POOL for temporary allocation. */
 svn_error_t *
 svn_client__handle_externals(apr_hash_t *externals_new,
@@ -1018,6 +1024,7 @@ svn_client__handle_externals(apr_hash_t 
                              const char *target_abspath,
                              svn_depth_t requested_depth,
                              svn_boolean_t *timestamp_sleep,
+                             svn_ra_session_t *ra_session,
                              svn_client_ctx_t *ctx,
                              apr_pool_t *pool);
 

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_client/commit_util.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/commit_util.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/commit_util.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/commit_util.c 
Tue Nov 25 16:26:48 2014
@@ -779,7 +779,6 @@ harvest_status_callback(void *status_bat
                                       wc_ctx, svn_dirent_dirname(local_abspath,
                                                                  scratch_pool),
                                       FALSE /* ignore_enoent */,
-                                      FALSE /* show_hidden */,
                                       scratch_pool, scratch_pool));
 
       if (copy_mode_root || status->switched || node_rev != dir_rev)
@@ -1650,7 +1649,7 @@ do_item_commit(void **dir_baton,
         {
           notify->kind = item->kind;
           notify->path_prefix = icb->notify_path_prefix;
-          (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+          ctx->notify_func2(ctx->notify_baton2, notify, pool);
         }
     }
 

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c Tue Nov 
25 16:26:48 2014
@@ -1612,7 +1612,6 @@ repos_to_wc_copy_single(svn_boolean_t *t
     {
       if (same_repositories)
         {
-          svn_boolean_t sleep_needed = FALSE;
           const char *tmpdir_abspath, *tmp_abspath;
 
           /* Find a temporary location in which to check out the copy source. 
*/
@@ -1641,14 +1640,14 @@ repos_to_wc_copy_single(svn_boolean_t *t
             ctx->notify_func2 = notification_adjust_func;
             ctx->notify_baton2 = &nb;
 
-            err = svn_client__checkout_internal(&pair->src_revnum,
+            err = svn_client__checkout_internal(&pair->src_revnum, 
timestamp_sleep,
                                                 pair->src_original,
                                                 tmp_abspath,
                                                 &pair->src_peg_revision,
                                                 &pair->src_op_revision,
                                                 svn_depth_infinity,
                                                 ignore_externals, FALSE,
-                                                &sleep_needed, ctx, pool);
+                                                ra_session, ctx, pool);
 
             ctx->notify_func2 = old_notify_func2;
             ctx->notify_baton2 = old_notify_baton2;
@@ -1741,7 +1740,7 @@ repos_to_wc_copy_single(svn_boolean_t *t
       svn_wc_notify_t *notify = svn_wc_create_notify(
                                   dst_abspath, svn_wc_notify_add, pool);
       notify->kind = pair->src_kind;
-      (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+      ctx->notify_func2(ctx->notify_baton2, notify, pool);
     }
 
   return SVN_NO_ERROR;

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/export.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/export.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/export.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/export.c Tue 
Nov 25 16:26:48 2014
@@ -1581,7 +1581,7 @@ svn_client_export5(svn_revnum_t *result_
         = svn_wc_create_notify(to_path,
                                svn_wc_notify_update_completed, pool);
       notify->revision = edit_revision;
-      (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+      ctx->notify_func2(ctx->notify_baton2, notify, pool);
     }
 
   if (result_rev)

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_client/externals.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/externals.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/externals.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/externals.c 
Tue Nov 25 16:26:48 2014
@@ -150,6 +150,7 @@ switch_dir_external(const char *local_ab
                     const svn_opt_revision_t *revision,
                     const char *defining_abspath,
                     svn_boolean_t *timestamp_sleep,
+                    svn_ra_session_t *ra_session,
                     svn_client_ctx_t *ctx,
                     apr_pool_t *pool)
 {
@@ -185,7 +186,6 @@ switch_dir_external(const char *local_ab
                                 &repos_root_url, &repos_uuid,
                                 NULL, ctx->wc_ctx, local_abspath,
                                 TRUE, /* ignore_enoent */
-                                TRUE, /* show hidden */
                                 pool, pool));
   if (kind != svn_node_unknown)
     {
@@ -226,12 +226,12 @@ switch_dir_external(const char *local_ab
              externals definition, perform an update. */
           if (strcmp(node_url, url) == 0)
             {
-              SVN_ERR(svn_client__update_internal(NULL, local_abspath,
+              SVN_ERR(svn_client__update_internal(NULL, timestamp_sleep,
+                                                  local_abspath,
                                                   revision, svn_depth_unknown,
                                                   FALSE, FALSE, FALSE, TRUE,
                                                   FALSE, TRUE,
-                                                  timestamp_sleep,
-                                                  ctx, subpool));
+                                                  ra_session, ctx, subpool));
               svn_pool_destroy(subpool);
               goto cleanup;
             }
@@ -348,9 +348,11 @@ switch_dir_external(const char *local_ab
     }
 
   /* ... Hello, new hotness. */
-  SVN_ERR(svn_client__checkout_internal(NULL, url, local_abspath, peg_revision,
+  SVN_ERR(svn_client__checkout_internal(NULL, timestamp_sleep,
+                                        url, local_abspath, peg_revision,
                                         revision, svn_depth_infinity,
-                                        FALSE, FALSE, timestamp_sleep,
+                                        FALSE, FALSE,
+                                        ra_session,
                                         ctx, pool));
 
   SVN_ERR(svn_wc__node_get_repos_info(NULL, NULL,
@@ -377,14 +379,15 @@ switch_dir_external(const char *local_ab
   return SVN_NO_ERROR;
 }
 
-/* Try to update a file external at LOCAL_ABSPATH to URL at REVISION using a
-   access baton that has a write lock.  Use SCRATCH_POOL for temporary
+/* Try to update a file external at LOCAL_ABSPATH to SWITCH_LOC. This function
+   assumes caller has a write lock in CTX.  Use SCRATCH_POOL for temporary
    allocations, and use the client context CTX. */
 static svn_error_t *
 switch_file_external(const char *local_abspath,
-                     const char *url,
-                     const svn_opt_revision_t *peg_revision,
-                     const svn_opt_revision_t *revision,
+                     const svn_client__pathrev_t *switch_loc,
+                     const char *record_url,
+                     const svn_opt_revision_t *record_peg_revision,
+                     const svn_opt_revision_t *record_revision,
                      const char *def_dir_abspath,
                      svn_ra_session_t *ra_session,
                      svn_client_ctx_t *ctx,
@@ -461,7 +464,8 @@ switch_file_external(const char *local_a
               SVN_ERR_CLIENT_FILE_EXTERNAL_OVERWRITE_VERSIONED, 0,
              _("The file external from '%s' cannot overwrite the existing "
                "versioned item at '%s'"),
-             url, svn_dirent_local_style(local_abspath, scratch_pool));
+             switch_loc->url,
+             svn_dirent_local_style(local_abspath, scratch_pool));
         }
     }
   else
@@ -483,25 +487,17 @@ switch_file_external(const char *local_a
     void *report_baton;
     const svn_delta_editor_t *switch_editor;
     void *switch_baton;
-    svn_client__pathrev_t *switch_loc;
     svn_revnum_t revnum;
     apr_array_header_t *inherited_props;
-    const char *dir_abspath;
-    const char *target;
+    const char *target = svn_dirent_basename(local_abspath, scratch_pool);
 
-    svn_dirent_split(&dir_abspath, &target, local_abspath, scratch_pool);
-
-    /* Open an RA session to 'source' URL */
-    SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &switch_loc,
-                                              url, dir_abspath,
-                                              peg_revision, revision,
-                                              ctx, scratch_pool));
     /* Get the external file's iprops. */
     SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props, "",
                                        switch_loc->rev,
                                        scratch_pool, scratch_pool));
 
-    SVN_ERR(svn_ra_reparent(ra_session, svn_uri_dirname(url, scratch_pool),
+    SVN_ERR(svn_ra_reparent(ra_session,
+                            svn_uri_dirname(switch_loc->url, scratch_pool),
                             scratch_pool));
 
     SVN_ERR(svn_wc__get_file_external_editor(&switch_editor, &switch_baton,
@@ -515,7 +511,9 @@ switch_file_external(const char *local_a
                                              use_commit_times,
                                              diff3_cmd, preserved_exts,
                                              def_dir_abspath,
-                                             url, peg_revision, revision,
+                                             record_url,
+                                             record_peg_revision,
+                                             record_revision,
                                              ctx->cancel_func,
                                              ctx->cancel_baton,
                                              ctx->notify_func2,
@@ -526,7 +524,7 @@ switch_file_external(const char *local_a
      invalid revnum, that means RA will use the latest revision. */
     SVN_ERR(svn_ra_do_switch3(ra_session, &reporter, &report_baton,
                               switch_loc->rev,
-                              target, svn_depth_unknown, url,
+                              target, svn_depth_unknown, switch_loc->url,
                               FALSE /* send_copyfrom */,
                               TRUE /* ignore_ancestry */,
                               switch_editor, switch_baton,
@@ -549,7 +547,7 @@ switch_file_external(const char *local_a
           = svn_wc_notify_state_inapplicable;
         notify->lock_state = svn_wc_notify_lock_state_inapplicable;
         notify->revision = revnum;
-        (*ctx->notify_func2)(ctx->notify_baton2, notify, scratch_pool);
+        ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
       }
   }
 
@@ -662,7 +660,7 @@ handle_external_item_removal(const svn_c
       notify->kind = kind;
       notify->err = err;
 
-      (ctx->notify_func2)(ctx->notify_baton2, notify, scratch_pool);
+      ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
 
       if (err && err->apr_err == SVN_ERR_WC_LEFT_LOCAL_MOD)
         {
@@ -672,7 +670,7 @@ handle_external_item_removal(const svn_c
           notify->kind = svn_node_dir;
           notify->err = err;
 
-          (ctx->notify_func2)(ctx->notify_baton2, notify, scratch_pool);
+          ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
         }
     }
 
@@ -693,10 +691,10 @@ handle_external_item_change(svn_client_c
                             const char *local_abspath,
                             const char *old_defining_abspath,
                             const svn_wc_external_item2_t *new_item,
+                            svn_ra_session_t *ra_session,
                             svn_boolean_t *timestamp_sleep,
                             apr_pool_t *scratch_pool)
 {
-  svn_ra_session_t *ra_session;
   svn_client__pathrev_t *new_loc;
   const char *new_url;
   svn_node_kind_t ext_kind;
@@ -717,12 +715,39 @@ handle_external_item_change(svn_client_c
                                                 scratch_pool, scratch_pool));
 
   /* Determine if the external is a file or directory. */
-  /* Get the RA connection. */
-  SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &new_loc,
-                                            new_url, NULL,
-                                            &(new_item->peg_revision),
-                                            &(new_item->revision), ctx,
-                                            scratch_pool));
+  /* Get the RA connection, if needed. */
+  if (ra_session)
+    {
+      svn_error_t *err = svn_ra_reparent(ra_session, new_url, scratch_pool);
+
+      if (err)
+        {
+          if (err->apr_err == SVN_ERR_RA_ILLEGAL_URL)
+            {
+              svn_error_clear(err);
+              ra_session = NULL;
+            }
+          else
+            return svn_error_trace(err);
+        }
+      else
+        {
+          SVN_ERR(svn_client__resolve_rev_and_url(&new_loc,
+                                                  ra_session, new_url,
+                                                  &(new_item->peg_revision),
+                                                  &(new_item->revision), ctx,
+                                                  scratch_pool));
+
+          SVN_ERR(svn_ra_reparent(ra_session, new_loc->url, scratch_pool));
+        }
+    }
+
+  if (!ra_session)
+    SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &new_loc,
+                                              new_url, NULL,
+                                              &(new_item->peg_revision),
+                                              &(new_item->revision), ctx,
+                                              scratch_pool));
 
   SVN_ERR(svn_ra_check_path(ra_session, "", new_loc->rev, &ext_kind,
                             scratch_pool));
@@ -746,7 +771,7 @@ handle_external_item_change(svn_client_c
   /* First notify that we're about to handle an external. */
   if (ctx->notify_func2)
     {
-      (*ctx->notify_func2)(
+      ctx->notify_func2(
          ctx->notify_baton2,
          svn_wc_create_notify(local_abspath,
                               svn_wc_notify_update_external,
@@ -770,7 +795,7 @@ handle_external_item_change(svn_client_c
                                     &(new_item->peg_revision),
                                     &(new_item->revision),
                                     parent_dir_abspath,
-                                    timestamp_sleep, ctx,
+                                    timestamp_sleep, ra_session, ctx,
                                     scratch_pool));
         break;
       case svn_node_file:
@@ -828,6 +853,7 @@ handle_external_item_change(svn_client_c
           }
 
         SVN_ERR(switch_file_external(local_abspath,
+                                     new_loc,
                                      new_url,
                                      &new_item->peg_revision,
                                      &new_item->revision,
@@ -878,6 +904,7 @@ handle_externals_change(svn_client_ctx_t
                         apr_hash_t *old_externals,
                         svn_depth_t ambient_depth,
                         svn_depth_t requested_depth,
+                        svn_ra_session_t *ra_session,
                         apr_pool_t *scratch_pool)
 {
   apr_array_header_t *new_desc;
@@ -946,7 +973,7 @@ handle_externals_change(svn_client_ctx_t
                                                   local_abspath, url,
                                                   target_abspath,
                                                   old_defining_abspath,
-                                                  new_item,
+                                                  new_item, ra_session,
                                                   timestamp_sleep,
                                                   iterpool),
                       iterpool));
@@ -969,6 +996,7 @@ svn_client__handle_externals(apr_hash_t 
                              const char *target_abspath,
                              svn_depth_t requested_depth,
                              svn_boolean_t *timestamp_sleep,
+                             svn_ra_session_t *ra_session,
                              svn_client_ctx_t *ctx,
                              apr_pool_t *scratch_pool)
 {
@@ -1018,7 +1046,7 @@ svn_client__handle_externals(apr_hash_t 
                                       local_abspath,
                                       desc_text, old_external_defs,
                                       ambient_depth, requested_depth,
-                                      iterpool));
+                                      ra_session, iterpool));
     }
 
   /* Remove the remaining externals */

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/import.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/import.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/import.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/import.c Tue 
Nov 25 16:26:48 2014
@@ -245,7 +245,7 @@ import_file(const svn_delta_editor_t *ed
       notify->content_state = notify->prop_state
         = svn_wc_notify_state_inapplicable;
       notify->lock_state = svn_wc_notify_lock_state_inapplicable;
-      (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+      ctx->notify_func2(ctx->notify_baton2, notify, pool);
     }
 
   /* If this is a special file, we need to set the svn:special
@@ -328,7 +328,7 @@ get_filtered_children(apr_hash_t **child
               notify->content_state = notify->prop_state
                 = svn_wc_notify_state_inapplicable;
               notify->lock_state = svn_wc_notify_lock_state_inapplicable;
-              (*ctx->notify_func2)(ctx->notify_baton2, notify, iterpool);
+              ctx->notify_func2(ctx->notify_baton2, notify, iterpool);
             }
 
           svn_hash_sets(dirents, base_name, NULL);
@@ -470,7 +470,7 @@ import_children(const char *dir_abspath,
                   notify->content_state = notify->prop_state
                     = svn_wc_notify_state_inapplicable;
                   notify->lock_state = svn_wc_notify_lock_state_inapplicable;
-                  (*ctx->notify_func2)(ctx->notify_baton2, notify, iterpool);
+                  ctx->notify_func2(ctx->notify_baton2, notify, iterpool);
                 }
             }
           else
@@ -559,7 +559,7 @@ import_dir(const svn_delta_editor_t *edi
         notify->content_state = notify->prop_state
           = svn_wc_notify_state_inapplicable;
         notify->lock_state = svn_wc_notify_lock_state_inapplicable;
-        (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+        ctx->notify_func2(ctx->notify_baton2, notify, pool);
       }
   }
 

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/info.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/info.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/info.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/info.c Tue Nov 
25 16:26:48 2014
@@ -388,8 +388,7 @@ svn_client_info4(const char *abspath_or_
   SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &pathrev,
                                             abspath_or_url, NULL, peg_revision,
                                             revision, ctx, pool));
-
-  svn_uri_split(NULL, &base_name, pathrev->url, pool);
+  base_name = svn_uri_basename(pathrev->url, pool);
 
   /* Get the dirent for the URL itself. */
   SVN_ERR(svn_ra_stat(ra_session, "", pathrev->rev, &the_ent, pool));

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_client/locking_commands.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/locking_commands.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/libsvn_client/locking_commands.c 
(original)
+++ 
subversion/branches/move-tracking-2/subversion/libsvn_client/locking_commands.c 
Tue Nov 25 16:26:48 2014
@@ -375,7 +375,6 @@ organize_lock_targets(apr_array_header_t
                                             &wli->lock_token,
                                             wc_ctx, local_abspath,
                                             FALSE /* ignore_enoent */,
-                                            FALSE /* show_hidden */,
                                             result_pool, iterpool));
 
               if (kind != svn_node_file)

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/merge.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/merge.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/merge.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/merge.c Tue 
Nov 25 16:26:48 2014
@@ -1288,8 +1288,8 @@ record_skip(merge_cmd_baton_t *merge_b,
       notify->kind = kind;
       notify->content_state = notify->prop_state = state;
 
-      (*merge_b->ctx->notify_func2)(merge_b->ctx->notify_baton2, notify,
-                                    scratch_pool);
+      merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
+                                 scratch_pool);
     }
   return SVN_NO_ERROR;
 }
@@ -1415,8 +1415,8 @@ record_tree_conflict(merge_cmd_baton_t *
                                     scratch_pool);
       notify->kind = local_node_kind;
 
-      (*merge_b->ctx->notify_func2)(merge_b->ctx->notify_baton2, notify,
-                                    scratch_pool);
+      merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
+                                 scratch_pool);
     }
 
   return SVN_NO_ERROR;
@@ -1450,8 +1450,8 @@ record_update_add(merge_cmd_baton_t *mer
       notify = svn_wc_create_notify(local_abspath, action, scratch_pool);
       notify->kind = kind;
 
-      (*merge_b->ctx->notify_func2)(merge_b->ctx->notify_baton2, notify,
-                                    scratch_pool);
+      merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
+                                 scratch_pool);
     }
 
   return SVN_NO_ERROR;
@@ -1484,8 +1484,8 @@ record_update_update(merge_cmd_baton_t *
       notify->content_state = content_state;
       notify->prop_state = prop_state;
 
-      (*merge_b->ctx->notify_func2)(merge_b->ctx->notify_baton2, notify,
-                                    scratch_pool);
+      merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
+                                 scratch_pool);
     }
 
   return SVN_NO_ERROR;
@@ -1551,8 +1551,8 @@ handle_pending_notifications(merge_cmd_b
           notify->kind = svn_node_kind_from_word(
                                     apr_hash_this_val(hi));
 
-          (*merge_b->ctx->notify_func2)(merge_b->ctx->notify_baton2,
-                                        notify, scratch_pool);
+          merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
+                                     notify, scratch_pool);
         }
 
       db->pending_deletes = NULL;
@@ -1618,9 +1618,9 @@ mark_dir_edited(merge_cmd_baton_t *merge
           notify->kind = svn_node_dir;
           notify->content_state = notify->prop_state = db->skip_reason;
 
-          (*merge_b->ctx->notify_func2)(merge_b->ctx->notify_baton2,
-                                        notify,
-                                        scratch_pool);
+          merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
+                                     notify,
+                                     scratch_pool);
         }
 
       if (merge_b->merge_source.ancestral
@@ -1700,9 +1700,9 @@ mark_file_edited(merge_cmd_baton_t *merg
           notify->kind = svn_node_file;
           notify->content_state = notify->prop_state = fb->skip_reason;
 
-          (*merge_b->ctx->notify_func2)(merge_b->ctx->notify_baton2,
-                                        notify,
-                                        scratch_pool);
+          merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
+                                     notify,
+                                     scratch_pool);
         }
 
       if (merge_b->merge_source.ancestral
@@ -3680,8 +3680,8 @@ notify_merge_begin(merge_cmd_baton_t *me
       notify->merge_range = NULL;
     }
 
-  (*merge_b->ctx->notify_func2)(merge_b->ctx->notify_baton2, notify,
-                                scratch_pool);
+  merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
+                             scratch_pool);
 
   return SVN_NO_ERROR;
 }
@@ -4706,7 +4706,6 @@ calculate_remaining_ranges(svn_client__m
                                 NULL, NULL, NULL, NULL,
                                 ctx->wc_ctx, child->abspath,
                                 TRUE /* ignore_enoent */,
-                                FALSE /* show_hidden */,
                                 scratch_pool, scratch_pool));
   /* If CHILD has no base revision then it hasn't been committed yet, so it
      can't have any "future" history. */

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_client/mergeinfo.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/mergeinfo.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/mergeinfo.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/mergeinfo.c 
Tue Nov 25 16:26:48 2014
@@ -224,7 +224,6 @@ svn_client__get_wc_mergeinfo(svn_mergein
   SVN_ERR(svn_wc__node_get_base(NULL, &base_revision, NULL, NULL, NULL, NULL,
                                 ctx->wc_ctx, local_abspath,
                                 TRUE /* ignore_enoent */,
-                                FALSE /* show_hidden */,
                                 scratch_pool, scratch_pool));
 
   iterpool = svn_pool_create(scratch_pool);
@@ -295,7 +294,7 @@ svn_client__get_wc_mergeinfo(svn_mergein
           SVN_ERR(svn_wc__node_get_base(NULL, &parent_base_rev, NULL, NULL,
                                         NULL, NULL,
                                         ctx->wc_ctx, local_abspath,
-                                        TRUE, FALSE,
+                                        TRUE /* ignore_enoent */,
                                         scratch_pool, scratch_pool));
 
           /* ### This checks the WORKING changed_rev, so invalid on replacement

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/patch.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/patch.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/patch.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/patch.c Tue 
Nov 25 16:26:48 2014
@@ -2017,7 +2017,7 @@ send_hunk_notification(const hunk_info_t
   notify->hunk_fuzz = hi->fuzz;
   notify->prop_name = prop_name;
 
-  (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+  ctx->notify_func2(ctx->notify_baton2, notify, pool);
 
   return SVN_NO_ERROR;
 }
@@ -2079,7 +2079,7 @@ send_patch_notification(const patch_targ
         notify->prop_state = svn_wc_notify_state_changed;
     }
 
-  (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+  ctx->notify_func2(ctx->notify_baton2, notify, pool);
 
   if (action == svn_wc_notify_patch)
     {
@@ -2133,7 +2133,7 @@ send_patch_notification(const patch_targ
       notify = svn_wc_create_notify(target->local_abspath,
                                     svn_wc_notify_delete, pool);
       notify->kind = svn_node_file;
-      (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+      ctx->notify_func2(ctx->notify_baton2, notify, pool);
     }
 
   return SVN_NO_ERROR;

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_client/prop_commands.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/prop_commands.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/libsvn_client/prop_commands.c 
(original)
+++ 
subversion/branches/move-tracking-2/subversion/libsvn_client/prop_commands.c 
Tue Nov 25 16:26:48 2014
@@ -520,7 +520,7 @@ svn_client_revprop_set2(const char *prop
       notify->prop_name = propname;
       notify->revision = *set_rev;
 
-      (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+      ctx->notify_func2(ctx->notify_baton2, notify, pool);
     }
 
   return SVN_NO_ERROR;

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/ra.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/ra.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/ra.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/ra.c Tue Nov 
25 16:26:48 2014
@@ -431,7 +431,7 @@ svn_client__open_ra_session_internal(svn
                 svn_wc_create_notify_url(corrected,
                                          svn_wc_notify_url_redirect,
                                          scratch_pool);
-              (*ctx->notify_func2)(ctx->notify_baton2, notify, scratch_pool);
+              ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
             }
 
           /* Our caller will want to know what our final corrected URL was. */

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_client/resolved.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/resolved.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/resolved.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/resolved.c Tue 
Nov 25 16:26:48 2014
@@ -77,7 +77,7 @@ svn_client__resolve_conflicts(svn_boolea
                                         ctx->notify_func2, ctx->notify_baton2,
                                         iterpool));
 
-      if (conflicts_remain)
+      if (conflicts_remain && !*conflicts_remain)
         {
           svn_error_t *err;
           svn_boolean_t text_c, prop_c, tree_c;

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/revert.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/revert.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/revert.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/revert.c Tue 
Nov 25 16:26:48 2014
@@ -98,7 +98,7 @@ revert(void *baton, apr_pool_t *result_p
           || err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
         {
           if (b->ctx->notify_func2)
-            (*b->ctx->notify_func2)(
+            b->ctx->notify_func2(
                b->ctx->notify_baton2,
                svn_wc_create_notify(b->local_abspath, svn_wc_notify_skip,
                                     scratch_pool),

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/status.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/status.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/status.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/status.c Tue 
Nov 25 16:26:48 2014
@@ -577,7 +577,7 @@ svn_client_status6(svn_revnum_t *result_
             = svn_wc_create_notify(target_abspath,
                                    svn_wc_notify_status_completed, pool);
           notify->revision = edit_revision;
-          (ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+          ctx->notify_func2(ctx->notify_baton2, notify, pool);
         }
 
       /* If the caller wants the result revision, give it to them. */

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/switch.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/switch.c?rev=1641647&r1=1641646&r2=1641647&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/switch.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/switch.c Tue 
Nov 25 16:26:48 2014
@@ -407,7 +407,7 @@ switch_internal(svn_revnum_t *result_rev
                                            new_depths,
                                            switch_loc->repos_root_url,
                                            local_abspath,
-                                           depth, timestamp_sleep,
+                                           depth, timestamp_sleep, ra_session,
                                            ctx, pool));
     }
 
@@ -422,7 +422,7 @@ switch_internal(svn_revnum_t *result_rev
         = svn_wc_notify_state_inapplicable;
       notify->lock_state = svn_wc_notify_lock_state_inapplicable;
       notify->revision = revnum;
-      (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
+      ctx->notify_func2(ctx->notify_baton2, notify, pool);
     }
 
   /* If the caller wants the result revision, give it to them. */


Reply via email to