You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2011/07/25 17:34:38 UTC

svn commit: r1150751 [1/5] - in /subversion/branches/gpg-agent-password-store: ./ build/ac-macros/ build/generator/swig/ notes/ subversion/bindings/swig/perl/native/t/ subversion/include/ subversion/include/private/ subversion/libsvn_client/ subversion...

Author: stsp
Date: Mon Jul 25 15:34:28 2011
New Revision: 1150751

URL: http://svn.apache.org/viewvc?rev=1150751&view=rev
Log:
Sync the gpg-agent-password-store branch with trunk.

Added:
    subversion/branches/gpg-agent-password-store/notes/ra-serf-testing.txt
      - copied, changed from r1145852, subversion/trunk/notes/ra-serf-testing.txt
Modified:
    subversion/branches/gpg-agent-password-store/   (props changed)
    subversion/branches/gpg-agent-password-store/CHANGES
    subversion/branches/gpg-agent-password-store/INSTALL
    subversion/branches/gpg-agent-password-store/Makefile.in
    subversion/branches/gpg-agent-password-store/build.conf
    subversion/branches/gpg-agent-password-store/build/ac-macros/apache.m4
    subversion/branches/gpg-agent-password-store/build/ac-macros/berkeley-db.m4
    subversion/branches/gpg-agent-password-store/build/generator/swig/__init__.py
    subversion/branches/gpg-agent-password-store/build/generator/swig/header_wrappers.py
    subversion/branches/gpg-agent-password-store/notes/knobs
    subversion/branches/gpg-agent-password-store/subversion/bindings/swig/perl/native/t/8lock.t
    subversion/branches/gpg-agent-password-store/subversion/include/private/svn_dep_compat.h
    subversion/branches/gpg-agent-password-store/subversion/include/private/svn_string_private.h   (contents, props changed)
    subversion/branches/gpg-agent-password-store/subversion/include/svn_config.h
    subversion/branches/gpg-agent-password-store/subversion/include/svn_error.h
    subversion/branches/gpg-agent-password-store/subversion/include/svn_mergeinfo.h
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/blame.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/client.h
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit_util.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/diff.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/externals.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/merge.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/mergeinfo.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/mergeinfo.h
    subversion/branches/gpg-agent-password-store/subversion/libsvn_client/repos_diff.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_fs/fs-loader.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_fs_fs/rep-cache.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_fs_fs/rep-cache.h
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_neon/log.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_serf/getlocationsegments.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_serf/log.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_serf/replay.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_serf/serf.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_serf/update.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_ra_serf/util.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_repos/commit.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_repos/hooks.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_subr/deprecated.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_subr/dso.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_subr/io.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_subr/mergeinfo.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_subr/subst.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_subr/svn_string.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_wc/adm_crawler.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_wc/conflicts.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_wc/copy.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_wc/wc_db.c
    subversion/branches/gpg-agent-password-store/subversion/libsvn_wc/wc_db.h
    subversion/branches/gpg-agent-password-store/subversion/mod_authz_svn/mod_authz_svn.c
    subversion/branches/gpg-agent-password-store/subversion/mod_dav_svn/repos.c
    subversion/branches/gpg-agent-password-store/subversion/mod_dav_svn/util.c
    subversion/branches/gpg-agent-password-store/subversion/po/zh_CN.po
    subversion/branches/gpg-agent-password-store/subversion/svn/resolve-cmd.c
    subversion/branches/gpg-agent-password-store/subversion/tests/cmdline/externals_tests.py
    subversion/branches/gpg-agent-password-store/subversion/tests/cmdline/lock_tests.py
    subversion/branches/gpg-agent-password-store/subversion/tests/cmdline/log_tests.py
    subversion/branches/gpg-agent-password-store/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_client/client-test.c
    subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_diff/parse-diff-test.c
    subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/gpg-agent-password-store/tools/dev/unix-build/Makefile.svn
    subversion/branches/gpg-agent-password-store/tools/dist/backport.pl
    subversion/branches/gpg-agent-password-store/tools/dist/release.py
    subversion/branches/gpg-agent-password-store/tools/dist/templates/rc-news.ezt
    subversion/branches/gpg-agent-password-store/tools/server-side/svnpredumpfilter.py

Propchange: subversion/branches/gpg-agent-password-store/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jul 25 15:34:28 2011
@@ -53,4 +53,4 @@
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
 /subversion/branches/uris-as-urls:1060426-1064427
-/subversion/trunk:1005036-1148548
+/subversion/trunk:1005036-1150750

Modified: subversion/branches/gpg-agent-password-store/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/CHANGES?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/CHANGES (original)
+++ subversion/branches/gpg-agent-password-store/CHANGES Mon Jul 25 15:34:28 2011
@@ -1,3 +1,12 @@
+Version 1.8.0
+(?? ??? 2011, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.0
+
+ Developer-visible changes:
+  - API changes:
+    * fix inconsistent handling of log revs without changed paths (issue #3694)
+
+
 Version 1.7.0
 (?? ??? 2011, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.0

Modified: subversion/branches/gpg-agent-password-store/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/INSTALL?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/INSTALL (original)
+++ subversion/branches/gpg-agent-password-store/INSTALL Mon Jul 25 15:34:28 2011
@@ -96,9 +96,9 @@ I.    INTRODUCTION
          These diff streams are used everywhere -- over the network,
          in the repository, and in the client's working copy.
 
-      * libserf  (OPTIONAL for client)
+      * libserf or libneon  (OPTIONAL for client)
 
-         The Serf libraries both allow the Subversion client
+         The Serf and Neon libraries both allow the Subversion client
          to send HTTP requests.  This is necessary if you want your
          client to access a repository served by the Apache HTTP
          server.  There is an alternate 'svnserve' server as well,
@@ -106,14 +106,19 @@ I.    INTRODUCTION
          svnserve protocol.  Thus it's not strictly necessary for your
          client to be able to speak HTTP... though we still recommend
          that your client be built to speak both HTTP and svnserve
-         protocols.
+         protocols.  Your client can be compiled against either
+         libserf or libneon (or both), as they offer competing
+         implementations.
 
       * OpenSSL (OPTIONAL for client and server)
 
          OpenSSL enables your client to access SSL-encrypted https://
-         URLs (using libserf) in addition to unencrypted http:// URLs.
-         To use SSL with Subversion's WebDAV server, Apache needs to
-         be compiled with OpenSSL as well.
+         URLs (using libserf or libneon) in addition to unencrypted
+         http:// URLs.  To use SSL with Subversion's WebDAV server,
+         Apache needs to be compiled with OpenSSL as well.
+
+         The Neon library can use the GnuTLS library as an alternative
+         to OpenSSL.
 
       * Berkeley DB (OPTIONAL for client and server)
 
@@ -311,31 +316,43 @@ I.    INTRODUCTION
       newer. The autogen.sh script knows about that.
 
 
-      5.  An HTTP client library:  serf.  (OPTIONAL)
+      5.  An HTTP client library:  serf or neon.  (OPTIONAL)
 
       If you want your client to be able to speak to an Apache
       server (via a http:// or https:// URL), you must link against
-      serf.  Though optional, we strongly recommend this.
-
-      Serf is at http://code.google.com/p/serf/, and the 0.3.0
-      release is at:
-        http://serf.googlecode.com/files/serf-0.3.0.tar.bz2
-
-      serf is a library for HTTP and WebDAV which is used to access
-      Subversion repositories over http:// and https:// URLs.  serf
-      is designed as an asynchronous library which can take
-      advantage of multiple connections and HTTP pipelining.
-
-      In order to use ra_serf, you must install serf, and run
-      Subversion's ./configure with the argument --with-serf.  If
-      serf is installed in a non-standard place, you should use
+      at least one of these libraries.  Though optional, we strongly
+      recommend this.
 
-          --with-serf=/path/to/serf/install
-
-      instead.
-
-      For more information on serf and Subversion's ra_serf, see
-      the file subversion/libsvn_ra_serf/README.
+      (If you link against both, Subversion will use ra_serf by
+      default.  Add "http-library = neon" to the [global] section of
+      your ~/.subversion/servers file to use ra_neon instead.)
+
+        a. Serf library 0.7.1 or newer (http://code.google.com/p/serf/)
+
+           In order to use ra_serf, you must install serf, and run
+           Subversion's ./configure with the argument --with-serf.  If
+           serf is installed in a non-standard place, you should use
+
+               --with-serf=/path/to/serf/install
+
+           instead.
+
+           For more information on serf and Subversion's ra_serf, see
+           the file subversion/libsvn_ra_serf/README.
+
+        b. Neon library 0.25 through 0.29 (http://www.webdav.org/neon/)
+
+           In order to use ra_neon, you must install neon, and run
+           Subversion's ./configure with the argument --with-neon.
+           Subversion's configuration mechanism should then detect the
+           installed Neon.  If it does not, you may need to set the
+           LDFLAGS environment variable when you run "./configure", or
+           specify Neon's location by passing the "--with-neon="
+           option to "./configure".  Look for the "neon-config" script
+           in a "bin/" subdirectory of the target of "--with-neon".
+           For example, if you pass "--with-neon=/usr/local/myneon/",
+           then there should be a file
+           "/usr/local/myneon/bin/neon-config".
 
 
       6. OpenSSL  (OPTIONAL)
@@ -344,46 +361,51 @@ I.    INTRODUCTION
       ### finding OpenSSL, but we may need more docco here. and w.r.t
       ### zlib.
 
-      The Serf library has support for SSL encryption by relying on
-      the OpenSSL library.
+      The Serf and Neon libraries have support for SSL encryption by
+      relying on the OpenSSL library.
+
+        a. Using OpenSSL on the client through Serf
+
+        b. Using OpenSSL on the client through Neon
 
-      When Neon is created with this dependency, then the Subversion
-      client inherits the ability to support SSL connections.  Neon
-      also has support for sending compressed data using the zlib
-      library which a Subversion client can take advantage of.
-
-      On Unix systems, if you are building neon as part of the
-      Subversion build process (as described in section I.4 above),
-      you can pass flags to Subversion's "./configure", and they will
-      be passed on to neon's "./configure".  You need OpenSSL
-      installed on your system, and you must add "--with-ssl" as a
-      "./configure" parameter.  If your OpenSSL installation is hard
-      for Neon to find, you may need to use "--with-libs=/path/to/lib"
-      in addition.  In particular, on Red Hat (but not Fedora Core) it
-      is necessary to specify "--with-libs=/usr/kerberos" for OpenSSL
-      to be found.  The zlib library is included in the Subversion
-      dependencies package, but if you are compiling Neon from a
-      different source you can also specify a path to the library
-      using "--with-libs".  Consult the Neon documentation for more
-      information on how to use these parameters and versions of
-      libraries you need.
-
-      Under Windows, you can specify the paths to these libraries by
-      passing the options --with-zlib and --with-openssl to gen-make.py.
-
-      You can also add support for these features to an Apache httpd server
-      to be used for Subversion using the same support libraries.  The
-      Subversion build system will not provide them, however.  You add them
-      by specifying parameters to the "./configure" script of the Apache
-      Server instead.
-
-      For getting SSL on your server, you would add the "--enable-ssl"
-      or "--with-ssl=/path/to/lib" option to Apache's "./configure"
-      script.  Apache enables zlib support by default, but you can
-      specify a nonstandard location for the library with the
-      "--with-z=/path/to/dir" option.  Consult the Apache documentation
-      for more details, and for other modules you may wish to install
-      to enhance your Subversion server.
+          When Neon is created with this dependency, then the Subversion
+          client inherits the ability to support SSL connections.  Neon
+          also has support for sending compressed data using the zlib
+          library which a Subversion client can take advantage of.
+
+          On Unix systems, to build Neon with OpenSSL, you need OpenSSL
+          installed on your system, and you must add "--with-ssl" as a
+          "./configure" parameter.  If your OpenSSL installation is hard
+          for Neon to find, you may need to use "--with-libs=/path/to/lib"
+          in addition.  In particular, on Red Hat (but not Fedora Core) it
+          is necessary to specify "--with-libs=/usr/kerberos" for OpenSSL
+          to be found.  You can also specify a path to the zlib library
+          using "--with-libs".  Consult the Neon documentation for more
+          information on how to use these parameters and versions of
+          libraries you need.
+
+          Under Windows, you can specify the paths to these libraries by
+          passing the options --with-zlib and --with-openssl to gen-make.py.
+
+            ### Is that right? In-tree build of Neon was disabled in r875974.
+                This may now apply to Serf, or else gen-make.py should be
+                updated to remove such options.
+
+        c. Using OpenSSL on the Apache server
+
+          You can also add support for these features to an Apache httpd
+          server to be used for Subversion using the same support libraries.
+          The Subversion build system will not provide them, however.  You
+          add them by specifying parameters to the "./configure" script of
+          the Apache Server instead.
+
+          For getting SSL on your server, you would add the "--enable-ssl"
+          or "--with-ssl=/path/to/lib" option to Apache's "./configure"
+          script.  Apache enables zlib support by default, but you can
+          specify a nonstandard location for the library with the
+          "--with-z=/path/to/dir" option.  Consult the Apache documentation
+          for more details, and for other modules you may wish to install
+          to enhance your Subversion server.
 
       If you don't already have it, you can get a copy of OpenSSL,
       including instructions for building and packaging on both Unix

Modified: subversion/branches/gpg-agent-password-store/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/Makefile.in?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/Makefile.in (original)
+++ subversion/branches/gpg-agent-password-store/Makefile.in Mon Jul 25 15:34:28 2011
@@ -533,6 +533,11 @@ check-clean:
 	       subversion/tests/libsvn_subr/z                  \
 	       subversion/tests/libsvn_wc/fake-wc              \
 	       subversion/tests/libsvn_client/test-patch*      \
+	       subversion/tests/libsvn_client/test-*/          \
+	       subversion/tests/libsvn_diff/B2                 \
+	       subversion/tests/libsvn_diff/T1                 \
+	       subversion/tests/libsvn_diff/T2                 \
+	       subversion/tests/libsvn_diff/T3                 \
 	       subversion/tests/svnserveautocheck.pid          \
 	       tests.log fails.log
 

Modified: subversion/branches/gpg-agent-password-store/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/build.conf?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/build.conf (original)
+++ subversion/branches/gpg-agent-password-store/build.conf Mon Jul 25 15:34:28 2011
@@ -188,7 +188,7 @@ description = Subversion GNOME Keyring L
 type = lib
 install = gnome-keyring-lib
 path = subversion/libsvn_auth_gnome_keyring
-libs = apr gnome-keyring libsvn_subr
+libs = libsvn_subr apr gnome-keyring
 
 # Support for KWallet
 [libsvn_auth_kwallet]
@@ -196,7 +196,7 @@ description = Subversion KWallet Library
 type = lib
 install = kwallet-lib
 path = subversion/libsvn_auth_kwallet
-libs = apr kwallet libsvn_subr
+libs = libsvn_subr apr kwallet
 link-cmd = $(LINK_CXX_LIB)
 
 # Library needed by all subversion clients

Modified: subversion/branches/gpg-agent-password-store/build/ac-macros/apache.m4
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/build/ac-macros/apache.m4?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/build/ac-macros/apache.m4 (original)
+++ subversion/branches/gpg-agent-password-store/build/ac-macros/apache.m4 Mon Jul 25 15:34:28 2011
@@ -146,7 +146,7 @@ if test -n "$APXS" && test "$APXS" != "n
         APACHE_LDFLAGS="-shrext .so"
         ;;
     esac
-else
+elif test x"$APXS" != x"no"; then
     echo "=================================================================="
     echo "WARNING: skipping the build of mod_dav_svn"
     echo "         try using --with-apxs"

Modified: subversion/branches/gpg-agent-password-store/build/ac-macros/berkeley-db.m4
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/build/ac-macros/berkeley-db.m4?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/build/ac-macros/berkeley-db.m4 (original)
+++ subversion/branches/gpg-agent-password-store/build/ac-macros/berkeley-db.m4 Mon Jul 25 15:34:28 2011
@@ -36,7 +36,7 @@ dnl   search is skipped.
 AC_DEFUN(SVN_LIB_BERKELEY_DB,
 [
   db_version=$1.$2.$3
-  dnl  Process the `with-berkeley-db' switch.  We set `status' to one
+  dnl  Process the `with-berkeley-db' switch.  We set `bdb_status' to one
   dnl  of the following values:
   dnl    `required' --- the user specified that they did want to use
   dnl        Berkeley DB, so abort the configuration if we cannot find it.
@@ -55,7 +55,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
                           used by APR-UTIL.])],
   [
     if test "$withval" = "no"; then
-      status=skip
+      bdb_status=skip
     elif test "$withval" = "yes"; then
       apu_db_version="`$apu_config --db-version`"
       if test $? -ne 0; then
@@ -70,7 +70,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
                         APR-UTIL with the appropiate options.])
         fi
         
-        status=required
+        bdb_status=required
 
       elif test "$apu_found" != "reconfig"; then
         if test "$apu_db_version" -lt 4; then
@@ -78,7 +78,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
                         possible to use the specified Berkeley DB: $withval])
         fi
 
-        status=required
+        bdb_status=required
       fi
     else
       if echo "$withval" | $EGREP ":.*:.*:" > /dev/null; then
@@ -97,7 +97,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
         done
         SVN_DB_LIBS="${SVN_DB_LIBS## }"
 
-        status=required
+        bdb_status=required
       else
         AC_MSG_ERROR([Invalid syntax of argument of --with-berkeley-db option])
       fi
@@ -114,15 +114,15 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
       AC_MSG_WARN([Detected older version of APR-UTIL, trying to determine
                    whether apr-util is linked against Berkeley DB
                    $db_version])
-      status=try-link
+      bdb_status=try-link
     elif test "$apu_db_version" -lt "4"; then
-      status=skip
+      bdb_status=skip
     else
-      status=try-link
+      bdb_status=try-link
     fi
   ])
 
-  if test "$status" = "skip"; then
+  if test "$bdb_status" = "skip"; then
     svn_lib_berkeley_db=no
   else
     AC_MSG_CHECKING([for availability of Berkeley DB])
@@ -133,7 +133,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
     else
       AC_MSG_RESULT([no])
       svn_lib_berkeley_db=no
-      if test "$status" = "required"; then
+      if test "$bdb_status" = "required"; then
         AC_MSG_ERROR([Berkeley DB $db_version or newer wasn't found.])
       fi
     fi
@@ -180,7 +180,9 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB_TRY,
     # Or that it resides in a non-standard location which we would have
     # to compensate with using something like -R`$apu_config --prefix`/lib.
     #
-    SVN_DB_LIBS=["${SVN_DB_LIBS-`$apu_config --libs | $SED -e 's/.*\(-ldb[^[:space:]]*\).*/\1/' | $EGREP -- '-ldb[^[:space:]]*'`}"]
+    if test -z "$SVN_DB_LIBS"; then
+      SVN_DB_LIBS=["`$apu_config --libs | $SED -e 's/.*\(-ldb[^[:space:]]*\).*/\1/' | $EGREP -- '-ldb[^[:space:]]*'`"]
+    fi
 
     CPPFLAGS="$SVN_DB_INCLUDES $SVN_APRUTIL_INCLUDES $CPPFLAGS" 
     LIBS="`$apu_config --ldflags` $SVN_DB_LIBS $LIBS"

Modified: subversion/branches/gpg-agent-password-store/build/generator/swig/__init__.py
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/build/generator/swig/__init__.py?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/build/generator/swig/__init__.py (original)
+++ subversion/branches/gpg-agent-password-store/build/generator/swig/__init__.py Mon Jul 25 15:34:28 2011
@@ -59,19 +59,12 @@ class Generator:
 
     # Calculate SWIG paths
     self.swig_path = swig_path
-    try:
-      self.swig_libdir = _exec.output([self.swig_path, "-swiglib"], strip=1)
-    except AssertionError:
-      pass
+    self.swig_libdir = _exec.output([self.swig_path, "-swiglib"], strip=1)
 
   def version(self):
     """Get the version number of SWIG"""
-    try:
-      swig_version = _exec.output([self.swig_path, "-version"])
-      m = re.search("Version (\d+).(\d+).(\d+)", swig_version)
-      if m:
-        return (m.group(1), m.group(2), m.group(3))
-    except AssertionError:
-      pass
+    swig_version = _exec.output([self.swig_path, "-version"])
+    m = re.search("Version (\d+).(\d+).(\d+)", swig_version)
+    if m:
+      return (m.group(1), m.group(2), m.group(3))
     return (0, 0, 0)
-

Modified: subversion/branches/gpg-agent-password-store/build/generator/swig/header_wrappers.py
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/build/generator/swig/header_wrappers.py?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/build/generator/swig/header_wrappers.py (original)
+++ subversion/branches/gpg-agent-password-store/build/generator/swig/header_wrappers.py Mon Jul 25 15:34:28 2011
@@ -65,7 +65,13 @@ class Generator(generator.swig.Generator
       )
     makefile.write('SWIG_WRAPPERS = %s\n\n' % ' '.join(wrapper_fnames))
     for short_name in self.short.values():
-      makefile.write('autogen-swig-%s: $(SWIG_WRAPPERS)\n' % short_name)
+      # swig-pl needs the '.swig_checked' target here; swig-rb and swig-py
+      # already reach it via a different dependency chain:
+      #
+      #    In build-outputs.mk, swig-py and swig-rb targets depend on *.la
+      #    targets, which depend on *.lo targets, which depend on *.c targets,
+      #    which depend on .swig_checked target.
+      makefile.write('autogen-swig-%s: .swig_checked $(SWIG_WRAPPERS)\n' % short_name)
     makefile.write('\n\n')
 
   def proxy_filename(self, include_filename):

Modified: subversion/branches/gpg-agent-password-store/notes/knobs
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/notes/knobs?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/notes/knobs (original)
+++ subversion/branches/gpg-agent-password-store/notes/knobs Mon Jul 25 15:34:28 2011
@@ -52,6 +52,7 @@ SVN_DEBUG
 SVN_CLIENT_COMMIT_DEBUG
 SVN_DEBUG_CACHE_DUMP_STATS
 SVN_DEBUG_CACHE_MEMBUFFER
+SVN_DEBUG_DSO
 SVN_DEBUG_WORK_QUEUE
 PACK_AFTER_EVERY_COMMIT
 DEBUG_DOUBLE_FREE
@@ -262,6 +263,14 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Default:   not defined
   Suggested: defined, not defined
 
+5.6 SVN_DEBUG_DSO
+
+  Scope:     libsvn_subr (dso)
+  Purpose:   detection of failures of dynamic loading of libraries
+  Range:     definedness
+  Default:   not defined
+  Suggested: defined, not defined
+
 5.7 SVN_DEBUG_WORK_QUEUE
 
   Scope:     libsvn_wc (workqueue)
@@ -278,7 +287,7 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Default:   not defined
   Suggested: defined, not defined
 
-5.6 DEBUG_DOUBLE_FREE
+5.9 DEBUG_DOUBLE_FREE
 
   Scope:     serf
   Purpose:   detect double-free calls to serf_bucket_mem_free()
@@ -286,7 +295,7 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Default:   defined
   Suggested: defined, not defined
 
-5.9 SERF_VERBOSE
+5.10 SERF_VERBOSE
 
   Scope:     serf
   Purpose:   write protocol handling debug information to stdout
@@ -294,7 +303,7 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Default:   not defined
   Suggested: defined, not defined
 
-5.10 SSL_VERBOSE
+5.11 SSL_VERBOSE
 
   Scope:     serf
   Purpose:   write SSL bucket handling debug information to stdout
@@ -302,7 +311,7 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Default:   not defined
   Suggested: defined, not defined
 
-5.11 SVN_DEPRECATED
+5.12 SVN_DEPRECATED
 
   Scope:     (everywhere)
   Purpose:   disable "deprecated function calls" warnings
@@ -310,7 +319,7 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Default:   (compiler dependant)
   Suggested: "" (disable deprecation warnings), or compiler-specific decorators
 
-5.12 SVN_FS__TRAIL_DEBUG
+5.13 SVN_FS__TRAIL_DEBUG
 
   Scope:     libsvn_fs_base
   Purpose:   

Copied: subversion/branches/gpg-agent-password-store/notes/ra-serf-testing.txt (from r1145852, subversion/trunk/notes/ra-serf-testing.txt)
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/notes/ra-serf-testing.txt?p2=subversion/branches/gpg-agent-password-store/notes/ra-serf-testing.txt&p1=subversion/trunk/notes/ra-serf-testing.txt&r1=1145852&r2=1150751&rev=1150751&view=diff
==============================================================================
--- subversion/trunk/notes/ra-serf-testing.txt (original)
+++ subversion/branches/gpg-agent-password-store/notes/ra-serf-testing.txt Mon Jul 25 15:34:28 2011
@@ -53,5 +53,298 @@ RAW NOTES (from some earlier thinking)
         d) partial in-mem consumption, new content lands in diskbuf
         e) partial diskbuf consumption, new content lands in diskbuf
 
-   
-*/
+  4) pending->head != NULL && pending->spill != NULL. content in file
+  
+     Enought content has orrived during a paused state that it was
+     spilled into a file. Playback of the pending content *may*
+     have occurred, but it has not (yet) emptied the memory buffer.
+     
+     The parser may be paused, or not-paused.
+
+  5) pending->head != NULL && pending->spill != NULL. no content in file
+
+     THEORETICAL.
+     
+     If a spill file gets created, then *some* content will be
+     written into the file. The content will not be read/removed
+     from the file until the memory buffer is exhausted. Thus, this
+     state is not possible since the spill file could not be
+     emptied since the membuf has not been emptied.
+     
+     Also, once the spill file has been created, we will never
+     write into the memory buffer (for ordering reasons). Thus, we
+     cannot empty both membuf and spill file, and place more
+     content into the memory buffer.
+     
+     At some point in the future, we may decide to place arriving
+     content back into the membuf after the spill file has been
+     exhausted. The code does not do this today.
+     
+     The parser may be paused, or not-paused.
+
+  6) pending->head == NULL && pending->spill != NULL. content in file
+
+     At some point, enough content arrived to construct a spill
+     file. Since that point, the memory buffer contents have been
+     injected into the parser, emptying the membuf.
+     
+     The parser may be paused, or not-paused.
+
+  7) pending->head == NULL && pending->spill != NULL. no content in file
+
+     At some point, enough content arrived to construct a spill
+     file. Since that point, all content (from memory and file) has
+     been injected into the parser.
+     
+     The parser may be paused, or not-paused.
+
+Note that all states are doubled, based on the PAUSED flag.
+
+There are four operations that occur:
+
+  1) network content is present
+     a) If parser is paused, then append content to PENDING. All six(*)
+        PAUSED states must be considered.
+     b) If parser is NOT paused, then:
+        i) If PENDING contains data, then append content to
+           PENDING. Three of the NOT-PAUSED states must be
+           considered: (3), (4), (6)
+        ii) PENDING is empty, so inject content into the parser
+
+  2) network content is not present [at this time]
+     a) Exit network processing. The PENDING states are irrelevant.
+
+  3) network content completed
+     a) Exit network processing. The PENDING states are irrelevant.
+
+  4) process content from the pending structures
+     a) When parser is NOT paused, and PENDING contains data, then
+        take content from the start of PENDING and inject it into the
+        parser. Three of the NOT-PAUSED states must be considered:
+        (3), (4), (6)
+
+
+(*) we don't need to test state (5).
+
+
+
+INDIVIDUAL TESTS
+
+Normal operation will cover: 1(b)(ii), (2), and (3). Thus, we must
+arrange to test:
+
+  1) operation 1(a) with six states
+  2) operation 1(b)(i) with three states
+  3) operation 4(a) with three states
+
+
+TEST 1.1
+
+Force the parser to pause the first time, then have arriving content
+saved to the pending data.
+
+Exits in state (3).
+
+
+TEST 1.2
+
+We need to force the parser to pause, then we need content saved (to
+reach state (3)), then unpause the parser and inject all the content,
+returning to state (2). Then force the parser to pause again, and
+stash some data to pending.
+
+Exits in state (3).
+
+
+TEST 1.3
+
+Two blocks of content from the network must arrive while the parser is
+paused, and assume no spill file. The first block moves us from state
+(1) or (2) into state (3). The second block performs this test.
+
+Exits in state (3) or (4).
+
+Note: while technically, we want to test the transition to *both*
+states (3) and (4), the setup requirements for 1.4 tests the second
+condition. We merely want to add more memory content while already in
+state (3).
+
+
+TEST 1.4
+
+Pause the parser, then force enough content into pending to create a
+spill file (now in state (4)). Then have one more block arrive.
+
+Exits in state (4).
+
+
+TEST 1.6
+
+Pause the parser, then force enough content into pending to create a
+spill file (state (4)). Then unpause the parser and force the
+injection of the memory content (but not the spill file) into the
+parser to move to state (6). Then pause the parser again and get one
+more block of content.
+
+Exits in state (6).
+
+
+TEST 1.7
+
+Pause the parser, then force enough content into pending to create a
+spill file (state (4)). Then unpause the parser and force the
+injection of ALL that content (memory and disk) to move into state
+(7). Then pause the parser again and save one more block to pending.
+
+Exits in state (6).
+
+
+TEST 2.3
+
+Pause the parser, then save one block of content to move to state
+(3). Unpause the parser and receive one more block of content (before
+injecting the saved content).
+
+Exits in state (3).
+
+
+TEST 2.4
+
+Pause the parser, then save enough content to state (4).  Unpause the
+parser and receive one more block of content.
+
+Exits in state (4).
+
+
+TEST 2.6
+
+Pause the parser, then save enough content to reach state (4). Unpause
+the parser and inject all the memory content, moving to state
+(6). Stop the injection, then receive one block of content from the
+network.
+
+Exits in state (6).
+
+
+TEST 3.3
+
+Pause the parser, then save enough content to reach state (3). Unpause
+the parser and inject some content.
+
+Exits in state (2) or (3).
+
+
+TEST 3.4
+
+Pause the parser, then save enough content to reach state (4). Unpause
+the parser and inject some content.
+
+Exits in state (2), (3), (4), (6), or (7).
+
+Note: if we merely inject from memory, then we exit in (4) or (6).
+
+
+TEST 3.6
+
+Pause the parser, then save enough content to reach state (4). Unpause
+the parser and inject all memory content to reach state (6). Then
+inject some disk content.
+
+Exits in state (6) or (7).
+
+
+OVERALL TEST MECHANISM
+
+If we can get a "large enough" [update] report, then we could create
+one large internal test that will move through all the necessary
+states to perform each of the operations. We need control over
+incoming network blocks, the pause/unpause, and when to process
+PENDING data. These controls are typically based on the number of
+outstanding requests in the upate processing. These variables can be
+precisely controlled except for the network content. Thankfully, serf
+does tend to "spill out" of serf_context_run() often enough that we
+may be able to sequence through the test as desired.
+
+At the moment, serf states that a response handler (e.g our handler
+that shoves the incoming data into the XML parser) must consume all
+content found on the network. A future version of serf may allow the
+repsonse handler to push back on that. For now, we're applying the
+push-back as application-level logic.
+
+We can implement the entire test suite in libsvn_ra_serf/util.c as a
+sequence of actions to take for each step. This can be controlled by a
+global variable to track the step, and an array of actions to take at
+each step. The code will use a special #define to enable it, and the
+test will be run manually by a developer by building the appropriate
+subversion, then executing an "svn checkout". When the steps conclude,
+the logic will revert to normal.
+
+Following are the list of steps. We attempt to minimize this list in
+order to get the system tested with as few steps/transitions as
+possible.
+
+1. paused. content arrival is TEST 1.1. step on state (3).
+2. paused. content arrival is TEST 1.3. [no spill]
+3a. network: unpaused. content arrival is TEST 2.3. [no spill]
+3b. loop: no injection
+4a. network: unpaused. extra content is TEST 2.3. [no spill]
+4b. loop: unpaused. inject all memory content. TEST 3.3. step on state (2).
+5. paused. content arrival is TEST 1.2. step on state (3).
+6. paused. content arrival is spilled. step on state (4).
+7. paused. content arrival is TEST 1.4.
+8a. network: unpaused. content arrival is TEST 2.4.
+8b. loop: no injection
+9a. network: unpaused. extra content is TEST 1.4.
+9b. loop: unpaused. inject all memory content. TEST 3.4. step on state (6)
+10. paused. content arrival is TEST 1.6.
+11a. network: unpaused. content arrival is TEST 2.6.
+11b. loop: no injection
+12a. network: unpaused. extra content is TEST 2.6.
+12b. loop: unpaused. inject all disk content. TEST 3.6. step on state (7)
+13. paused. content arrival is TEST 1.7. step on state (6)
+14. return to default/normal processing
+
+note: "extra content" means that TEST has been previously tested, so
+      we don't really need this particular test. but since the network
+      content is uncontrolled, we may end up (re)testing.
+note: we advance the step when reaching a particular state. if the
+      state is not mentioned, then we advance once new content has
+      been received (which actually means the same state as before),
+      or we advance after injection to the parser.
+note: we cannot detect whether content exists in the spill file due to
+      the information we (currently) record. thus, we have to do the
+      transition manually:
+        step 6: writing the spill moves us to state (4)
+        step 9b: injecting all moves us to state (6)
+        step 12b: injecting all moves us to state (7)
+        step 13: appending to spill moves us to state (6)
+note: after each injection of pending content into the parser, we
+      will pause the parser. that will immediately cause the
+      processing of the PENDING data to stop.
+
+
+IMPLEMENTATION NOTES
+
+* gotta figure out low-impact (this can all live in util.c)
+* array of structures with: paused, inject, force_spill
+* set ->paused on each step increment since we don't know if the next
+  entry point will be the network or the processing loop
+* set ->paused on each return from the xml parser callbacks so that we
+  do not have to invade update.c (which wouldn't know when we turn off
+  the debugging at step 14)
+* the processing loop may clear ->paused and call the pending
+  processing function, which can then reset ->paused and exit if
+  necessary for the current step
+* there are three content injection steps. transition to next step is
+  straight-forward after injection is complete
+* transition based on network has three transitions from the unpaused
+  state.
+* when paused, there are seven network transitions. exit upon reaching
+  a state? yes. occurs *after* network content is saved (the saving of
+  the content is of of the TEST scenarios)
+* when force_spill is defined, the pending content goes right to disk,
+  independent of the memory_size. since we will put further pending
+  data into the spill file, we don't need to check force_spill ever
+  again. oh... we can just look for step==6 rather than a flag.
+* transitions occur on five of the seven states (not 1 or 5)
+

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/swig/perl/native/t/8lock.t
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/swig/perl/native/t/8lock.t?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/swig/perl/native/t/8lock.t (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/swig/perl/native/t/8lock.t Mon Jul 25 15:34:28 2011
@@ -54,10 +54,12 @@ print $stream 'orz';
 }
 $txn->commit;
 
-$fs->lock('/testfile', 'hate software', 'we hate software', 0, 0, $fs->youngest_rev, 0);
+my $token = "opaquelocktoken:notauuid-$$";
+
+$fs->lock('/testfile', $token, 'we hate software', 0, 0, $fs->youngest_rev, 0);
 
 ok(my $lock = $fs->get_lock('/testfile'));
-is($lock->token, 'hate software');
+is($lock->token, $token);
 is($lock->owner, 'foo');
 
 $acc = SVN::Fs::create_access('fnord');
@@ -65,7 +67,7 @@ is($acc->get_username, 'fnord');
 $fs->set_access($acc);
 
 eval {
-$fs->lock('/testfile', 'hate software', 'we hate software', 0, 0, $fs->youngest_rev, 0);
+$fs->lock('/testfile', $token, 'we hate software', 0, 0, $fs->youngest_rev, 0);
 };
 
 like($@, qr/already locked/);

Modified: subversion/branches/gpg-agent-password-store/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/include/private/svn_dep_compat.h?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/include/private/svn_dep_compat.h Mon Jul 25 15:34:28 2011
@@ -62,6 +62,11 @@ extern "C" {
 #define apr_array_clear(arr)         (arr)->nelts = 0
 #endif
 
+#if !APR_VERSION_AT_LEAST(1,0,0)
+#define APR_UINT64_C(val) UINT64_C(val)
+#define APR_FPROT_OS_DEFAULT APR_OS_DEFAULT
+#endif
+
 #if !APR_VERSION_AT_LEAST(1,3,0)
 #define APR_UINT16_MAX  0xFFFFU
 #define APR_INT16_MAX   0x7FFF

Modified: subversion/branches/gpg-agent-password-store/subversion/include/private/svn_string_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/include/private/svn_string_private.h?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/include/private/svn_string_private.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/include/private/svn_string_private.h Mon Jul 25 15:34:28 2011
@@ -53,6 +53,11 @@ extern "C" {
  */
 svn_string_t *
 svn_stringbuf__morph_into_string(svn_stringbuf_t *strbuf);
+
+/** Like apr_strtoff but provided here for backward compatibility
+ *  with APR 0.9 */
+apr_status_t
+svn__strtoff(apr_off_t *offset, const char *buf, char **end, int base);
 /** @} */
 
 /** @} */

Propchange: subversion/branches/gpg-agent-password-store/subversion/include/private/svn_string_private.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jul 25 15:34:28 2011
@@ -53,4 +53,4 @@
 /subversion/branches/tree-conflicts/subversion/include/svn_string.h:868291-873154
 /subversion/branches/tree-conflicts-notify/subversion/include/svn_string.h:873926-874008
 /subversion/branches/uris-as-urls/subversion/include/svn_string.h:1060426-1064427
-/subversion/trunk/subversion/include/private/svn_string_private.h:1005036-1148548
+/subversion/trunk/subversion/include/private/svn_string_private.h:1005036-1150750

Modified: subversion/branches/gpg-agent-password-store/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/include/svn_config.h?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/include/svn_config.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/include/svn_config.h Mon Jul 25 15:34:28 2011
@@ -146,7 +146,7 @@ typedef struct svn_config_t svn_config_t
  * but we don't want the # character to end up in the variable.
  */
 #define SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_1 \
-  "*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo"
+  "*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__"
 #define SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_2 \
   "*.rej *~ #*# .#* .*.swp .DS_Store"
 

Modified: subversion/branches/gpg-agent-password-store/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/include/svn_error.h?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/include/svn_error.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/include/svn_error.h Mon Jul 25 15:34:28 2011
@@ -391,7 +391,8 @@ svn_error_t *svn_error_purge_tracing(svn
 #define SVN_ERR_IS_LOCK_ERROR(err)                          \
   (err->apr_err == SVN_ERR_FS_PATH_ALREADY_LOCKED ||        \
    err->apr_err == SVN_ERR_FS_NOT_FOUND           ||        \
-   err->apr_err == SVN_ERR_FS_OUT_OF_DATE)
+   err->apr_err == SVN_ERR_FS_OUT_OF_DATE         ||        \
+   err->apr_err == SVN_ERR_FS_BAD_LOCK_TOKEN)
 
 /**
  * Return TRUE if @a err is an error specifically related to unlocking

Modified: subversion/branches/gpg-agent-password-store/subversion/include/svn_mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/include/svn_mergeinfo.h?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/include/svn_mergeinfo.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/include/svn_mergeinfo.h Mon Jul 25 15:34:28 2011
@@ -270,20 +270,38 @@ svn_rangelist_diff(apr_array_header_t **
                    apr_pool_t *pool);
 
 /** Merge two rangelists consisting of @c svn_merge_range_t *
- * elements, @a *rangelist and @a changes, placing the results in
- * @a *rangelist.  Either rangelist may be empty.
+ * elements, @a rangelist and @a changes, placing the results in
+ * @a rangelist. New elements added to @a rangelist are allocated
+ * in @a result_pool. Either rangelist may be empty.
  *
  * When intersecting rangelists are merged, the inheritability of
  * the resulting svn_merge_range_t depends on the inheritability of the
  * operands: see svn_mergeinfo_merge().
  *
- * Note: @a *rangelist and @a changes must be sorted as said by @c
- * svn_sort_compare_ranges().  @a *rangelist is guaranteed to remain
+ * Note: @a rangelist and @a changes must be sorted as said by @c
+ * svn_sort_compare_ranges().  @a rangelist is guaranteed to remain
  * in sorted order and be compacted to the minimal number of ranges
  * needed to represent the merged result.
  *
+ * Use @a scratch_pool for temporary allocations.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_rangelist_merge2(apr_array_header_t *rangelist,
+                     const apr_array_header_t *changes,
+                     apr_pool_t *result_pool,
+                     apr_pool_t *scratch_pool);
+
+/** Like svn_rangelist_merge2(), but with @a rangelist as an input/output
+ * argument. This function always allocates a new rangelist in @a pool and
+ * returns its result in @a *rangelist. It does not modify @a *rangelist
+ * in place. If not used carefully, this function can use up a lot of memory
+ * if called in a loop.
+ *
  * @since New in 1.5.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_rangelist_merge(apr_array_header_t **rangelist,
                     const apr_array_header_t *changes,

Modified: subversion/branches/gpg-agent-password-store/subversion/libsvn_client/blame.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/libsvn_client/blame.c?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/libsvn_client/blame.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/libsvn_client/blame.c Mon Jul 25 15:34:28 2011
@@ -107,6 +107,7 @@ struct delta_baton {
   svn_txdelta_window_handler_t wrapped_handler;
   void *wrapped_baton;
   struct file_rev_baton *file_rev_baton;
+  svn_stream_t *source_stream;  /* the delta source */
   const char *filename;
 };
 
@@ -319,6 +320,13 @@ window_handler(svn_txdelta_window_t *win
   if (window)
     return SVN_NO_ERROR;
 
+  /* Close the source file used for the delta.
+     It is important to do this early, since otherwise, they will be deleted
+     before all handles are closed, which leads to failures on some platforms
+     when new tempfiles are to be created. */
+  if (dbaton->source_stream)
+    SVN_ERR(svn_stream_close(dbaton->source_stream));
+
   /* If we are including merged revisions, we need to add each rev to the
      merged chain. */
   if (frb->include_merged_revisions)
@@ -445,11 +453,12 @@ file_rev_handler(void *baton, const char
 
   /* Prepare the text delta window handler. */
   if (frb->last_filename)
-    SVN_ERR(svn_stream_open_readonly(&last_stream, frb->last_filename,
+    SVN_ERR(svn_stream_open_readonly(&delta_baton->source_stream, frb->last_filename,
                                      frb->currpool, pool));
   else
     /* Means empty stream below. */
-    last_stream = NULL;
+    delta_baton->source_stream = NULL;
+  last_stream = svn_stream_disown(delta_baton->source_stream, pool);
 
   if (frb->include_merged_revisions && !frb->merged_revision)
     filepool = frb->filepool;

Modified: subversion/branches/gpg-agent-password-store/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/libsvn_client/client.h?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/libsvn_client/client.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/libsvn_client/client.h Mon Jul 25 15:34:28 2011
@@ -595,8 +595,6 @@ svn_client__switch_internal(svn_revnum_t
 
    DEPTH is the depth to recurse.
 
-   DRY_RUN is set if this is a dry-run merge. It is not relevant for diff.
-
    RA_SESSION defines the additional RA session for requesting file
    contents.
 
@@ -615,15 +613,13 @@ svn_client__get_diff_editor(const svn_de
                             svn_ra_session_t *ra_session,
                             svn_revnum_t revision,
                             svn_boolean_t walk_deleted_dirs,
-                            svn_boolean_t dry_run,
                             const svn_wc_diff_callbacks4_t *diff_callbacks,
                             void *diff_cmd_baton,
                             svn_cancel_func_t cancel_func,
                             void *cancel_baton,
                             svn_wc_notify_func2_t notify_func,
                             void *notify_baton,
-                            apr_pool_t *result_pool,
-                            apr_pool_t *scratch_pool);
+                            apr_pool_t *result_pool);
 
 
 /* ---------------------------------------------------------------- */

Modified: subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit.c?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit.c Mon Jul 25 15:34:28 2011
@@ -1451,8 +1451,10 @@ svn_client_commit5(const apr_array_heade
 
  cleanup:
   /* Abort the commit if it is still in progress. */
+  svn_pool_clear(iterpool); /* Close open handles before aborting */
   if (commit_in_progress)
-    svn_error_clear(editor->abort_edit(edit_baton, pool));
+    cmt_err = svn_error_compose_create(cmt_err,
+                                       editor->abort_edit(edit_baton, pool));
 
   /* A bump error is likely to occur while running a working copy log file,
      explicitly unlocking and removing temporary files would be wrong in

Modified: subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit_util.c?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit_util.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/libsvn_client/commit_util.c Mon Jul 25 15:34:28 2011
@@ -587,7 +587,7 @@ harvest_committables(svn_wc_context_t *w
   /* Check for the deletion case.
      * We delete explicitly deleted nodes (duh!)
      * We delete not-present children of copies
-     * We delete nodes that directly replace a node in it's ancestor
+     * We delete nodes that directly replace a node in its ancestor
    */
 
   if (is_deleted || is_replaced)
@@ -1845,11 +1845,14 @@ svn_client__do_commit(const char *base_u
                                          result_pool, iterpool);
 
       if (err)
-        return svn_error_trace(fixup_commit_error(item->path,
-                                                  base_url,
-                                                  item->session_relpath,
-                                                  svn_node_file,
-                                                  err, ctx, iterpool));
+        {
+          svn_pool_destroy(iterpool); /* Close tempfiles */
+          return svn_error_trace(fixup_commit_error(item->path,
+                                                    base_url,
+                                                    item->session_relpath,
+                                                    svn_node_file,
+                                                    err, ctx, scratch_pool));
+        }
 
       if (md5_checksums)
         apr_hash_set(*md5_checksums, item->path, APR_HASH_KEY_STRING,

Modified: subversion/branches/gpg-agent-password-store/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/libsvn_client/diff.c?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/libsvn_client/diff.c Mon Jul 25 15:34:28 2011
@@ -778,6 +778,9 @@ struct diff_cmd_baton {
   /* Whether we're producing a git-style diff. */
   svn_boolean_t use_git_diff_format;
 
+  /* Whether deletion of a file is summarized versus showing a full diff. */
+  svn_boolean_t no_diff_deleted;
+
   svn_wc_context_t *wc_ctx;
 
   /* The RA session used during diffs involving the repository. */
@@ -1173,28 +1176,40 @@ diff_file_added(svn_wc_notify_state_t *c
 
 /* An svn_wc_diff_callbacks4_t function. */
 static svn_error_t *
-diff_file_deleted_with_diff(svn_wc_notify_state_t *state,
-                            svn_boolean_t *tree_conflicted,
-                            const char *path,
-                            const char *tmpfile1,
-                            const char *tmpfile2,
-                            const char *mimetype1,
-                            const char *mimetype2,
-                            apr_hash_t *original_props,
-                            void *diff_baton,
-                            apr_pool_t *scratch_pool)
+diff_file_deleted(svn_wc_notify_state_t *state,
+                  svn_boolean_t *tree_conflicted,
+                  const char *path,
+                  const char *tmpfile1,
+                  const char *tmpfile2,
+                  const char *mimetype1,
+                  const char *mimetype2,
+                  apr_hash_t *original_props,
+                  void *diff_baton,
+                  apr_pool_t *scratch_pool)
 {
   struct diff_cmd_baton *diff_cmd_baton = diff_baton;
 
   if (diff_cmd_baton->anchor)
     path = svn_dirent_join(diff_cmd_baton->anchor, path, scratch_pool);
 
-  if (tmpfile1)
-    SVN_ERR(diff_content_changed(path,
-                                 tmpfile1, tmpfile2, diff_cmd_baton->revnum1,
-                                 diff_cmd_baton->revnum2,
-                                 mimetype1, mimetype2,
-                                 svn_diff_op_deleted, NULL, diff_baton));
+  if (diff_cmd_baton->no_diff_deleted)
+    {
+      SVN_ERR(file_printf_from_utf8(
+                diff_cmd_baton->outfile,
+                diff_cmd_baton->header_encoding,
+                "Index: %s (deleted)" APR_EOL_STR "%s" APR_EOL_STR,
+                path, equal_string));
+    }
+  else
+    {
+      if (tmpfile1)
+        SVN_ERR(diff_content_changed(path,
+                                     tmpfile1, tmpfile2,
+                                     diff_cmd_baton->revnum1,
+                                     diff_cmd_baton->revnum2,
+                                     mimetype1, mimetype2,
+                                     svn_diff_op_deleted, NULL, diff_baton));
+    }
 
   /* We don't list all the deleted properties. */
 
@@ -1208,36 +1223,6 @@ diff_file_deleted_with_diff(svn_wc_notif
 
 /* An svn_wc_diff_callbacks4_t function. */
 static svn_error_t *
-diff_file_deleted_no_diff(svn_wc_notify_state_t *state,
-                          svn_boolean_t *tree_conflicted,
-                          const char *path,
-                          const char *tmpfile1,
-                          const char *tmpfile2,
-                          const char *mimetype1,
-                          const char *mimetype2,
-                          apr_hash_t *original_props,
-                          void *diff_baton,
-                          apr_pool_t *scratch_pool)
-{
-  struct diff_cmd_baton *diff_cmd_baton = diff_baton;
-
-  if (diff_cmd_baton->anchor)
-    path = svn_dirent_join(diff_cmd_baton->anchor, path, scratch_pool);
-
-  if (state)
-    *state = svn_wc_notify_state_unknown;
-  if (tree_conflicted)
-    *tree_conflicted = FALSE;
-
-  return file_printf_from_utf8
-          (diff_cmd_baton->outfile,
-           diff_cmd_baton->header_encoding,
-           "Index: %s (deleted)" APR_EOL_STR "%s" APR_EOL_STR,
-           path, equal_string);
-}
-
-/* An svn_wc_diff_callbacks4_t function. */
-static svn_error_t *
 diff_dir_added(svn_wc_notify_state_t *state,
                svn_boolean_t *tree_conflicted,
                svn_boolean_t *skip,
@@ -1313,6 +1298,18 @@ diff_dir_closed(svn_wc_notify_state_t *c
   return SVN_NO_ERROR;
 }
 
+static const svn_wc_diff_callbacks4_t diff_callbacks =
+{
+  diff_file_opened,
+  diff_file_changed,
+  diff_file_added,
+  diff_file_deleted,
+  diff_dir_deleted,
+  diff_dir_opened,
+  diff_dir_added,
+  diff_dir_props_changed,
+  diff_dir_closed    
+};
 
 /*-----------------------------------------------------------------*/
 
@@ -1740,11 +1737,11 @@ diff_repos_repos(const svn_wc_diff_callb
   SVN_ERR(svn_client__get_diff_editor(
                 &diff_editor, &diff_edit_baton,
                 NULL, "", depth,
-                extra_ra_session, rev1, TRUE, FALSE,
+                extra_ra_session, rev1, TRUE,
                 callbacks, callback_baton,
                 ctx->cancel_func, ctx->cancel_baton,
                 NULL /* no notify_func */, NULL /* no notify_baton */,
-                pool, pool));
+                pool));
 
   /* We want to switch our txn into URL2 */
   SVN_ERR(svn_ra_do_diff3
@@ -2214,24 +2211,12 @@ svn_client_diff5(const apr_array_header_
                  apr_pool_t *pool)
 {
   struct diff_cmd_baton diff_cmd_baton = { 0 };
-  svn_wc_diff_callbacks4_t diff_callbacks;
 
   /* We will never do a pegged diff from here. */
   svn_opt_revision_t peg_revision;
   peg_revision.kind = svn_opt_revision_unspecified;
 
   /* setup callback and baton */
-  diff_callbacks.file_opened = diff_file_opened;
-  diff_callbacks.file_changed = diff_file_changed;
-  diff_callbacks.file_added = diff_file_added;
-  diff_callbacks.file_deleted = no_diff_deleted ? diff_file_deleted_no_diff :
-                                                  diff_file_deleted_with_diff;
-  diff_callbacks.dir_added =  diff_dir_added;
-  diff_callbacks.dir_deleted = diff_dir_deleted;
-  diff_callbacks.dir_props_changed = diff_dir_props_changed;
-  diff_callbacks.dir_opened = diff_dir_opened;
-  diff_callbacks.dir_closed = diff_dir_closed;
-
   diff_cmd_baton.orig_path_1 = path1;
   diff_cmd_baton.orig_path_2 = path2;
 
@@ -2248,6 +2233,7 @@ svn_client_diff5(const apr_array_header_
   diff_cmd_baton.force_binary = ignore_content_type;
   diff_cmd_baton.relative_to_dir = relative_to_dir;
   diff_cmd_baton.use_git_diff_format = use_git_diff_format;
+  diff_cmd_baton.no_diff_deleted = no_diff_deleted;
   diff_cmd_baton.wc_ctx = ctx->wc_ctx;
   diff_cmd_baton.visited_paths = apr_hash_make(pool);
   diff_cmd_baton.ra_session = NULL;
@@ -2281,20 +2267,8 @@ svn_client_diff_peg5(const apr_array_hea
                      apr_pool_t *pool)
 {
   struct diff_cmd_baton diff_cmd_baton = { 0 };
-  svn_wc_diff_callbacks4_t diff_callbacks;
 
   /* setup callback and baton */
-  diff_callbacks.file_opened = diff_file_opened;
-  diff_callbacks.file_changed = diff_file_changed;
-  diff_callbacks.file_added = diff_file_added;
-  diff_callbacks.file_deleted = no_diff_deleted ? diff_file_deleted_no_diff :
-                                                  diff_file_deleted_with_diff;
-  diff_callbacks.dir_added =  diff_dir_added;
-  diff_callbacks.dir_deleted = diff_dir_deleted;
-  diff_callbacks.dir_props_changed = diff_dir_props_changed;
-  diff_callbacks.dir_opened = diff_dir_opened;
-  diff_callbacks.dir_closed = diff_dir_closed;
-
   diff_cmd_baton.orig_path_1 = path;
   diff_cmd_baton.orig_path_2 = path;
 
@@ -2311,6 +2285,7 @@ svn_client_diff_peg5(const apr_array_hea
   diff_cmd_baton.force_binary = ignore_content_type;
   diff_cmd_baton.relative_to_dir = relative_to_dir;
   diff_cmd_baton.use_git_diff_format = use_git_diff_format;
+  diff_cmd_baton.no_diff_deleted = no_diff_deleted;
   diff_cmd_baton.wc_ctx = ctx->wc_ctx;
   diff_cmd_baton.visited_paths = apr_hash_make(pool);
   diff_cmd_baton.ra_session = NULL;

Modified: subversion/branches/gpg-agent-password-store/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/libsvn_client/externals.c?rev=1150751&r1=1150750&r2=1150751&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/libsvn_client/externals.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/libsvn_client/externals.c Mon Jul 25 15:34:28 2011
@@ -1044,6 +1044,9 @@ handle_externals_change(const struct ext
 
       svn_pool_clear(iterpool);
 
+      if (eb->ctx->cancel_func)
+        SVN_ERR(eb->ctx->cancel_func(eb->ctx->cancel_baton));
+
       target_abspath = svn_dirent_join(local_abspath, new_item->target_dir,
                                        iterpool);