You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2012/09/12 16:43:59 UTC

svn commit: r1383980 [1/6] - in /subversion/branches/master-passphrase: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ contrib/client-side/emacs/ subversion/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversio...

Author: cmpilato
Date: Wed Sep 12 14:43:54 2012
New Revision: 1383980

URL: http://svn.apache.org/viewvc?rev=1383980&view=rev
Log:
Bring the 'master-passphrase' branch into sync with recent trunk changes.
(Merged /subversion/trunk:r1372418-1383954.)

Added:
    subversion/branches/master-passphrase/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stderr
      - copied unchanged from r1383954, subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stderr
    subversion/branches/master-passphrase/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stdout
      - copied unchanged from r1383954, subversion/trunk/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stdout
    subversion/branches/master-passphrase/tools/fsfs/
      - copied from r1383954, subversion/trunk/tools/fsfs/
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/rc.d/svnpubsub
      - copied unchanged from r1383954, subversion/trunk/tools/server-side/svnpubsub/rc.d/svnpubsub
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/rc.d/svnpubsub.freebsd
      - copied unchanged from r1383954, subversion/trunk/tools/server-side/svnpubsub/rc.d/svnpubsub.freebsd
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/rc.d/svnwcsub
      - copied unchanged from r1383954, subversion/trunk/tools/server-side/svnpubsub/rc.d/svnwcsub
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/rc.d/svnwcsub.freebsd
      - copied unchanged from r1383954, subversion/trunk/tools/server-side/svnpubsub/rc.d/svnwcsub.freebsd
Removed:
    subversion/branches/master-passphrase/build/strip-po-charset.py
Modified:
    subversion/branches/master-passphrase/   (props changed)
    subversion/branches/master-passphrase/CHANGES
    subversion/branches/master-passphrase/Makefile.in
    subversion/branches/master-passphrase/build.conf
    subversion/branches/master-passphrase/build/ac-macros/apache.m4
    subversion/branches/master-passphrase/build/ac-macros/macosx.m4
    subversion/branches/master-passphrase/build/ac-macros/sqlite.m4
    subversion/branches/master-passphrase/build/generator/gen_base.py
    subversion/branches/master-passphrase/build/generator/gen_make.py
    subversion/branches/master-passphrase/build/generator/gen_win.py
    subversion/branches/master-passphrase/build/generator/templates/build_locale.ezt
    subversion/branches/master-passphrase/build/generator/templates/makefile.ezt
    subversion/branches/master-passphrase/build/generator/templates/svn_locale.vcxproj.ezt
    subversion/branches/master-passphrase/build/run_tests.py
    subversion/branches/master-passphrase/configure.ac
    subversion/branches/master-passphrase/contrib/client-side/emacs/dsvn.el
    subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
    subversion/branches/master-passphrase/subversion/include/private/svn_debug.h
    subversion/branches/master-passphrase/subversion/include/private/svn_eol_private.h
    subversion/branches/master-passphrase/subversion/include/private/svn_sqlite.h
    subversion/branches/master-passphrase/subversion/include/svn_config.h
    subversion/branches/master-passphrase/subversion/include/svn_dav.h
    subversion/branches/master-passphrase/subversion/include/svn_fs.h
    subversion/branches/master-passphrase/subversion/include/svn_repos.h
    subversion/branches/master-passphrase/subversion/include/svn_string.h
    subversion/branches/master-passphrase/subversion/include/svn_version.h
    subversion/branches/master-passphrase/subversion/include/svn_wc.h
    subversion/branches/master-passphrase/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
    subversion/branches/master-passphrase/subversion/libsvn_client/diff.c
    subversion/branches/master-passphrase/subversion/libsvn_client/merge.c
    subversion/branches/master-passphrase/subversion/libsvn_client/ra.c
    subversion/branches/master-passphrase/subversion/libsvn_client/update.c
    subversion/branches/master-passphrase/subversion/libsvn_diff/diff_file.c
    subversion/branches/master-passphrase/subversion/libsvn_diff/parse-diff.c
    subversion/branches/master-passphrase/subversion/libsvn_fs/fs-loader.c
    subversion/branches/master-passphrase/subversion/libsvn_fs/fs-loader.h
    subversion/branches/master-passphrase/subversion/libsvn_fs_base/fs.c
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/caching.c
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/fs.c
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/fs.h
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/rep-cache-db.sql
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/rep-cache.c
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/rep-cache.h
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/temp_serializer.c
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/temp_serializer.h
    subversion/branches/master-passphrase/subversion/libsvn_fs_fs/tree.c
    subversion/branches/master-passphrase/subversion/libsvn_ra_local/split_url.c
    subversion/branches/master-passphrase/subversion/libsvn_ra_serf/commit.c
    subversion/branches/master-passphrase/subversion/libsvn_ra_serf/options.c
    subversion/branches/master-passphrase/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/master-passphrase/subversion/libsvn_ra_serf/replay.c
    subversion/branches/master-passphrase/subversion/libsvn_ra_serf/serf.c
    subversion/branches/master-passphrase/subversion/libsvn_ra_serf/update.c
    subversion/branches/master-passphrase/subversion/libsvn_ra_serf/util.c
    subversion/branches/master-passphrase/subversion/libsvn_repos/commit.c
    subversion/branches/master-passphrase/subversion/libsvn_repos/fs-wrap.c
    subversion/branches/master-passphrase/subversion/libsvn_repos/hooks.c
    subversion/branches/master-passphrase/subversion/libsvn_repos/repos.c
    subversion/branches/master-passphrase/subversion/libsvn_repos/repos.h
    subversion/branches/master-passphrase/subversion/libsvn_subr/auth.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/cache_config.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/cmdline.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/config.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/config_file.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/deprecated.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/dirent_uri.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/eol.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/gpg_agent.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/io.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/nls.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/opt.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/opt.h
    subversion/branches/master-passphrase/subversion/libsvn_subr/simple_providers.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/sqlite.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/string.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/sysinfo.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/sysinfo.h
    subversion/branches/master-passphrase/subversion/libsvn_subr/temp_serializer.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/utf.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/utf_validate.c
    subversion/branches/master-passphrase/subversion/libsvn_subr/version.c
    subversion/branches/master-passphrase/subversion/libsvn_wc/conflicts.c
    subversion/branches/master-passphrase/subversion/libsvn_wc/tree_conflicts.c
    subversion/branches/master-passphrase/subversion/libsvn_wc/update_editor.c
    subversion/branches/master-passphrase/subversion/mod_dav_svn/activity.c
    subversion/branches/master-passphrase/subversion/mod_dav_svn/dav_svn.h
    subversion/branches/master-passphrase/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/master-passphrase/subversion/mod_dav_svn/posts/create_txn.c
    subversion/branches/master-passphrase/subversion/mod_dav_svn/reports/update.c
    subversion/branches/master-passphrase/subversion/mod_dav_svn/repos.c
    subversion/branches/master-passphrase/subversion/mod_dav_svn/version.c
    subversion/branches/master-passphrase/subversion/po/zh_CN.po
    subversion/branches/master-passphrase/subversion/svn/cl.h
    subversion/branches/master-passphrase/subversion/svn/file-merge.c
    subversion/branches/master-passphrase/subversion/svn/log-cmd.c
    subversion/branches/master-passphrase/subversion/svn/main.c
    subversion/branches/master-passphrase/subversion/svn/tree-conflicts.c
    subversion/branches/master-passphrase/subversion/svn_private_config.hw
    subversion/branches/master-passphrase/subversion/svnadmin/main.c
    subversion/branches/master-passphrase/subversion/svnserve/serve.c
    subversion/branches/master-passphrase/subversion/svnversion/main.c
    subversion/branches/master-passphrase/subversion/svnversion/svnversion.1
    subversion/branches/master-passphrase/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/master-passphrase/subversion/tests/cmdline/getopt_tests.py
    subversion/branches/master-passphrase/subversion/tests/cmdline/getopt_tests_data/svn--version_stdout
    subversion/branches/master-passphrase/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
    subversion/branches/master-passphrase/subversion/tests/cmdline/log_tests.py
    subversion/branches/master-passphrase/subversion/tests/cmdline/merge_tests.py
    subversion/branches/master-passphrase/subversion/tests/libsvn_subr/dirent_uri-test.c
    subversion/branches/master-passphrase/subversion/tests/libsvn_subr/string-test.c
    subversion/branches/master-passphrase/tools/dev/unix-build/Makefile.svn
    subversion/branches/master-passphrase/tools/server-side/svnauthz-validate.c
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/README.txt
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/example.conf
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/rc.d/svnpubsub.debian
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/rc.d/svnwcsub.debian
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/rc.d/svnwcsub.solaris
    subversion/branches/master-passphrase/tools/server-side/svnpubsub/svnwcsub.py
    subversion/branches/master-passphrase/win-tests.py

Propchange: subversion/branches/master-passphrase/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1372418-1383954

Modified: subversion/branches/master-passphrase/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/CHANGES?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/CHANGES (original)
+++ subversion/branches/master-passphrase/CHANGES Wed Sep 12 14:43:54 2012
@@ -26,6 +26,7 @@ http://svn.apache.org/repos/asf/subversi
     * ra_serf avoids re-downloading content present in pristine store (r1333936)
     * 'svn mergeinfo' now honors the --revision (-r) option (issue #4199)
     * new --search and --isearch options for 'svn log' (r1354666, -830)
+    * new --search-and and --isearch-and options for 'svn log' (r1383518)
     * new built-in interactive text conflict merge tool (r1357864, et al)
     * new 'svn --version --verbose' option shows runtime environment info
 
@@ -487,6 +488,20 @@ the 1.6 release:  http://subversion.apac
     * fixed setting binary properties in JavaHL (issue #3770)
     * fix type mapping of svn_txdelta_window_t in python bindings (issue #3688)
 
+Version 1.6.19
+(10 Sep 2012, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.19
+
+  - Client-side bugfixes:
+    * handle missing svn:date reported by svnserve gracefully (r1306111)
+
+  - Server-side bugfixes:
+    * fix possible server hang if a hook script fails to start (r1330410)
+    * fix write-through proxy commit regression introduced in 1.6.17 (r1088602)
+    * partial sync drops properties when converting to adds (issue #4184)
+
+  - Developer-visible changes:
+    * fix the testsuite to avoid FAILs on APR hash order (r1230714, et al)
 
 Version 1.6.18
 (29 Mar 2012, from /branches/1.6.x)

Modified: subversion/branches/master-passphrase/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/Makefile.in?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/Makefile.in (original)
+++ subversion/branches/master-passphrase/Makefile.in Wed Sep 12 14:43:54 2012
@@ -250,6 +250,7 @@ INSTALL_INCLUDE = $(INSTALL) -m 644
 INSTALL_MOD_SHARED = @APXS@ -i -S LIBEXECDIR="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@
 INSTALL_DATA = $(INSTALL) -m 644
 INSTALL_LOCALE = $(INSTALL_DATA)
+INSTALL_APACHE_MODS = @INSTALL_APACHE_MODS@
 
 ### this isn't correct yet
 INSTALL_SWIG_PY = $(INSTALL_LIB)

Modified: subversion/branches/master-passphrase/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build.conf?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build.conf (original)
+++ subversion/branches/master-passphrase/build.conf Wed Sep 12 14:43:54 2012
@@ -83,6 +83,27 @@ swig-checkout-files = common.swg swigrun
 #
 # BUILD TARGETS
 #
+# Target parameters:
+#    description      - optional build target description
+#    type             - the target type, defines how to build it
+#    when             - the name of an autoconf-substed variable that muset be
+#                       defined to either "true" or "false", that determines
+#                       whether this target should be built and installed.
+#    path             - relative path to target sources
+#    sources          - explicit list of target sources
+#    install          - the installation group/type
+#    manpages         - the man pages associated with this target
+#    libs             - libraries that this target depends on
+#    nonlibs          - dependencies that are not linked into the target
+#    lang             - bindings for language $(lang)
+#    msvc-libs        - additional libraries to link with on Windows
+#    msvc-export      - additional list of files to expose in dsp/vc(x)proj
+#    msvc-static      - visual studio target produces only a static lib
+#    add-deps         - expands to additional autoconf-defined dependencies
+#    add-install-deps - like add-deps, but for the install step
+#    external-lib     - expands to additional autoconf-defined libs
+#    external-project - visual studio project to depend on
+#
 
 # The subversion command-line client
 [svn]
@@ -327,6 +348,7 @@ msvc-export = svn_wc.h private\svn_wc_pr
 # Subversion plugin for Apache's mod_dav
 [mod_dav_svn]
 description = Subversion plug-in for the Apache DAV module
+when = INSTALL_APACHE_MODS
 type = apache-mod
 path = subversion/mod_dav_svn
 sources = *.c reports/*.c posts/*.c
@@ -337,6 +359,7 @@ msvc-libs = mod_dav.lib libhttpd.lib
 
 [mod_authz_svn]
 description = Subversion path-based authorization module for Apache
+when = INSTALL_APACHE_MODS
 type = apache-mod
 path = subversion/mod_authz_svn
 nonlibs = mod_dav_svn apr aprutil
@@ -346,6 +369,7 @@ msvc-libs = libhttpd.lib
 
 [mod_dontdothat]
 description = Apache Httpd module to block certain kinds of Apache Subversion requests
+when = INSTALL_APACHE_MODS
 type = apache-mod
 path = tools/server-side/mod_dontdothat
 nonlibs = mod_dav_svn apr aprutil
@@ -1156,7 +1180,7 @@ libs = __ALL__
        ra-local-test
        svndiff-test vdelta-test
        entries-dump atomic-ra-revprop-change wc-lock-tester wc-incomplete-tester
-       diff diff3 diff4
+       diff diff3 diff4 reorg-fsfs
        client-test
        conflict-data-test db-test pristine-store-test entries-compat-test
        op-depth-test dirent_uri-test wc-queries-test
@@ -1205,6 +1229,13 @@ libs = __JAVAHL__ javahl-tests javahl-co
 # ----------------------------------------------------------------------------
 # Contrib and tools
 
+[reorg-fsfs]
+type = exe
+path = tools/fsfs
+sources = reorg.c
+install = tools
+libs = libsvn_delta libsvn_subr apr
+
 [diff]
 type = exe
 path = tools/diff

Modified: subversion/branches/master-passphrase/build/ac-macros/apache.m4
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/ac-macros/apache.m4?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/ac-macros/apache.m4 (original)
+++ subversion/branches/master-passphrase/build/ac-macros/apache.m4 Wed Sep 12 14:43:54 2012
@@ -128,6 +128,7 @@ AC_ARG_WITH(apache-libexecdir,
     APACHE_LIBEXECDIR="$withval"
 ])
 
+INSTALL_APACHE_MODS=false
 if test -n "$APXS" && test "$APXS" != "no"; then
     APXS_CC="`$APXS -q CC`"
     APACHE_INCLUDES="$APACHE_INCLUDES -I$APXS_INCLUDE"
@@ -140,6 +141,7 @@ if test -n "$APXS" && test "$APXS" != "n
 
     BUILD_APACHE_RULE=apache-mod
     INSTALL_APACHE_RULE=install-mods-shared
+    INSTALL_APACHE_MODS=true
 
     case $host in
       *-*-cygwin*)
@@ -157,6 +159,7 @@ AC_SUBST(APXS)
 AC_SUBST(APACHE_LDFLAGS)
 AC_SUBST(APACHE_INCLUDES)
 AC_SUBST(APACHE_LIBEXECDIR)
+AC_SUBST(INSTALL_APACHE_MODS)
 
 # there aren't any flags that interest us ...
 #if test -n "$APXS" && test "$APXS" != "no"; then

Modified: subversion/branches/master-passphrase/build/ac-macros/macosx.m4
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/ac-macros/macosx.m4?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/ac-macros/macosx.m4 (original)
+++ subversion/branches/master-passphrase/build/ac-macros/macosx.m4 Wed Sep 12 14:43:54 2012
@@ -19,6 +19,32 @@ dnl ====================================
 dnl
 dnl  Mac OS X specific checks
 
+dnl SVN_LIB_MACHO_ITERATE
+dnl Check for _dyld_image_name and _dyld_image_header availability
+AC_DEFUN(SVN_LIB_MACHO_ITERATE,
+[
+  AC_MSG_CHECKING([for Mach-O dynamic module iteration functions])
+
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+    #include <mach-o/dyld.h>
+    #include <mach-o/loader.h>
+    int check(void) {
+      const struct mach_header *header = _dyld_get_image_header(0);
+      const char *name = _dyld_get_image_name(0);
+      if (name && header) return 1;
+      return 0;
+    }
+  ]],[[]])],[have_macho_iterate=yes],[have_macho_iterate=no])
+
+  if test "$have_macho_iterate" = "yes"; then
+    AC_DEFINE([SVN_HAVE_MACHO_ITERATE], [1],
+              [Is Mach-O low-level _dyld API available?])
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+  fi
+])
+
 dnl SVN_LIB_MACOS_PLIST
 dnl Assign variables for Mac OS property list support
 AC_DEFUN(SVN_LIB_MACOS_PLIST,

Modified: subversion/branches/master-passphrase/build/ac-macros/sqlite.m4
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/ac-macros/sqlite.m4?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/ac-macros/sqlite.m4 (original)
+++ subversion/branches/master-passphrase/build/ac-macros/sqlite.m4 Wed Sep 12 14:43:54 2012
@@ -189,10 +189,15 @@ AC_DEFUN(SVN_SQLITE_FILE_CONFIG,
 SQLITE_VERSION_OKAY
 #endif],
                  [AC_MSG_RESULT([amalgamation found and is okay])
+                  _SVN_SQLITE_DSO_LIBS
                   AC_DEFINE(SVN_SQLITE_INLINE, 1,
                   [Defined if svn should use the amalgamated version of sqlite])
                   SVN_SQLITE_INCLUDES="-I`dirname $sqlite_amalg`"
-                  SVN_SQLITE_LIBS="-ldl -lpthread"
+                  if test -n "$svn_sqlite_dso_ldflags"; then
+                    SVN_SQLITE_LIBS="$svn_sqlite_dso_ldflags -lpthread"
+                  else
+                    SVN_SQLITE_LIBS="-lpthread"
+                  fi
                   svn_lib_sqlite="yes"],
                  [AC_MSG_RESULT([unsupported amalgamation SQLite version])])
   fi
@@ -244,3 +249,50 @@ AC_DEFUN(SVN_DOWNLOAD_SQLITE,
   echo ""
   AC_MSG_ERROR([Subversion requires SQLite])
 ])
+
+dnl _SVN_SQLITE_DSO_LIBS() dnl Find additional libraries that the
+dnl sqlite amalgamation code should link in order to load
+dnl shared libraries.  Copied from build/libtool.m4
+AC_DEFUN(_SVN_SQLITE_DSO_LIBS,
+[
+  case $host_os in
+  beos* | mingw* | pw32* | cegcc* | cygwin*)
+    svn_sqlite_dso_ldflags=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+                [lt_cv_dlopen="dlopen" svn_sqlite_dso_ldflags="-ldl"],[
+    svn_sqlite_dso_ldflags=
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+          [svn_sqlite_dso_ldflags=],
+      [AC_CHECK_LIB([dld], [shl_load],
+            [svn_sqlite_dso_ldflags="-ldld"],
+        [AC_CHECK_FUNC([dlopen],
+              [svn_sqlite_dso_ldflags=],
+          [AC_CHECK_LIB([dl], [dlopen],
+                [svn_sqlite_dso_ldflags="-ldl"],
+            [AC_CHECK_LIB([svld], [dlopen],
+                  [svn_sqlite_dso_ldflags="-lsvld"],
+              [AC_CHECK_LIB([dld], [dld_link],
+                    [svn_sqlite_dso_ldflags="-ldld"])
+              ])
+            ])
+          ])
+        ])
+      ])
+    ;;
+  esac
+
+  AC_MSG_CHECKING([additional libraries for sqlite])
+  if test -n "$svn_sqlite_dso_ldflags"; then
+    AC_MSG_RESULT(${svn_sqlite_dso_ldflags})
+  else
+    AC_MSG_RESULT(none)
+  fi
+])

Modified: subversion/branches/master-passphrase/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/generator/gen_base.py?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/generator/gen_base.py (original)
+++ subversion/branches/master-passphrase/build/generator/gen_base.py Wed Sep 12 14:43:54 2012
@@ -300,15 +300,16 @@ for _dt in dep_types:
   globals()[_dt] = _dt
 
 class DependencyNode:
-  def __init__(self, filename):
+  def __init__(self, filename, when = None):
     self.filename = filename
+    self.when = when
 
   def __str__(self):
     return self.filename
 
 class ObjectFile(DependencyNode):
-  def __init__(self, filename, compile_cmd = None):
-    DependencyNode.__init__(self, filename)
+  def __init__(self, filename, compile_cmd = None, when = None):
+    DependencyNode.__init__(self, filename, when)
     self.compile_cmd = compile_cmd
     self.source_generated = 0
 
@@ -362,6 +363,7 @@ class Target(DependencyNode):
     self.name = name
     self.gen_obj = gen_obj
     self.desc = options.get('description')
+    self.when = options.get('when')
     self.path = options.get('path', '')
     self.add_deps = options.get('add-deps', '')
     self.add_install_deps = options.get('add-install-deps', '')
@@ -434,7 +436,7 @@ class TargetLinked(Target):
           else:
             raise GenError('ERROR: unknown file extension on ' + src)
 
-          ofile = ObjectFile(objname, self.compile_cmd)
+          ofile = ObjectFile(objname, self.compile_cmd, self.when)
 
           # object depends upon source
           self.gen_obj.graph.add(DT_OBJECT, ofile, SourceFile(src, reldir))
@@ -554,7 +556,7 @@ class TargetI18N(Target):
       else:
         raise GenError('ERROR: unknown file extension on ' + src)
 
-      ofile = ObjectFile(objname, self.compile_cmd)
+      ofile = ObjectFile(objname, self.compile_cmd, self.when)
 
       # object depends upon source
       self.gen_obj.graph.add(DT_OBJECT, ofile, SourceFile(src, reldir))
@@ -699,7 +701,8 @@ class TargetJavaHeaders(TargetJava):
       class_pkg_list = self.package.split('.')
       class_pkg = build_path_join(*class_pkg_list)
       class_file = ObjectFile(build_path_join(self.classes, class_pkg,
-                                              class_name + self.objext))
+                                              class_name + self.objext),
+                              self.when)
       class_file.source_generated = 1
       class_file.class_name = class_name
       hfile = HeaderFile(class_header, self.package + '.' + class_name,
@@ -759,7 +762,7 @@ class TargetJavaClasses(TargetJava):
       else:
         raise GenError('ERROR: unknown file extension on "' + src + '"')
 
-      ofile = ObjectFile(objname, self.compile_cmd)
+      ofile = ObjectFile(objname, self.compile_cmd, self.when)
       sfile = SourceFile(src, reldir)
       sfile.sourcepath = sourcepath
 
@@ -1126,6 +1129,10 @@ class IncludeDependencyInfo:
       #   of <>/"" convention.
     return hdrs
 
+class FileInfo:
+    def __init__(self, filename, when):
+        self.filename = filename
+        self.when = when
 
 def _sorted_files(graph, area):
   "Given a list of targets, sort them based on their dependencies."
@@ -1163,9 +1170,9 @@ def _sorted_files(graph, area):
           s = graph.get_sources(DT_LINK, t.name)
           for d in s:
             if d not in targets:
-              files.append(d.filename)
+              files.append(FileInfo(d.filename, d.when))
         else:
-          files.append(t.filename)
+          files.append(FileInfo(t.filename, t.when))
 
         # don't consider this target any more
         targets.remove(t)

Modified: subversion/branches/master-passphrase/build/generator/gen_make.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/generator/gen_make.py?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/generator/gen_make.py (original)
+++ subversion/branches/master-passphrase/build/generator/gen_make.py Wed Sep 12 14:43:54 2012
@@ -289,6 +289,7 @@ class Generator(gen_base.GeneratorBase):
                             add_deps=target_ob.add_deps,
                             objects=objects,
                             deps=deps,
+                            when=target_ob.when,
                             )
       data.target.append(ezt_target)
 
@@ -375,11 +376,11 @@ class Generator(gen_base.GeneratorBase):
 
       def apache_file_to_eztdata(file):
           # cd to dirname before install to work around libtool 1.4.2 bug.
-          dirname, fname = build_path_splitfile(file)
+          dirname, fname = build_path_splitfile(file.filename)
           base, ext = os.path.splitext(fname)
           name = base.replace('mod_', '')
-          return _eztdata(fullname=file, dirname=dirname,
-                          name=name, filename=fname)
+          return _eztdata(fullname=file.filename, dirname=dirname,
+                          name=name, filename=fname, when=file.when)
       if area == 'apache-mod':
         data.areas.append(ezt_area)
 
@@ -396,7 +397,8 @@ class Generator(gen_base.GeneratorBase):
 
         # ### TODO: This is a hack.  See discussion here:
         # ### http://mid.gmane.org/20120316191639.GA28451@daniel3.local
-        apache_files = [t.filename for t in inst_targets
+        apache_files = [gen_base.FileInfo(t.filename, t.when)
+                        for t in inst_targets
                         if isinstance(t, gen_base.TargetApacheMod)]
 
         files = [f for f in files if f not in apache_files]
@@ -404,9 +406,9 @@ class Generator(gen_base.GeneratorBase):
           ezt_area.apache_files.append(apache_file_to_eztdata(file))
         for file in files:
           # cd to dirname before install to work around libtool 1.4.2 bug.
-          dirname, fname = build_path_splitfile(file)
-          ezt_file = _eztdata(dirname=dirname, fullname=file,
-                              filename=fname)
+          dirname, fname = build_path_splitfile(file.filename)
+          ezt_file = _eztdata(dirname=dirname, fullname=file.filename,
+                              filename=fname, when=file.when)
           if area == 'locale':
             lang, objext = os.path.splitext(fname)
             installdir = '$(DESTDIR)$(%sdir)/%s/LC_MESSAGES' % (area_var, lang)
@@ -456,6 +458,7 @@ class Generator(gen_base.GeneratorBase):
 
     for objname, sources in obj_deps:
       dep = _eztdata(name=str(objname),
+                     when=objname.when,
                      deps=list(map(str, sources)),
                      cmd=objname.compile_cmd,
                      source=str(sources[0]))

Modified: subversion/branches/master-passphrase/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/generator/gen_win.py?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/generator/gen_win.py (original)
+++ subversion/branches/master-passphrase/build/generator/gen_win.py Wed Sep 12 14:43:54 2012
@@ -1615,7 +1615,6 @@ class POFile:
   "Item class for holding po file info"
   def __init__(self, base):
     self.po = base + '.po'
-    self.spo = base + '.spo'
     self.mo = base + '.mo'
 
 # MSVC paths always use backslashes regardless of current platform

Modified: subversion/branches/master-passphrase/build/generator/templates/build_locale.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/generator/templates/build_locale.ezt?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/generator/templates/build_locale.ezt (original)
+++ subversion/branches/master-passphrase/build/generator/templates/build_locale.ezt Wed Sep 12 14:43:54 2012
@@ -22,11 +22,8 @@ cd ..\..\..\subversion\po
 mkdir ..\..\%1\mo
 set exitcode=0
 [for pofiles]echo Running msgfmt on [pofiles.po]...
-python ..\..\build\strip-po-charset.py [pofiles.po] [pofiles.spo]
+msgfmt.exe -c -o ..\..\%1\mo\[pofiles.mo] [pofiles.po]
 if errorlevel 1 goto err
-msgfmt.exe -c -o ..\..\%1\mo\[pofiles.mo] [pofiles.spo]
-if errorlevel 1 goto err
-del [pofiles.spo]
 [end]
 goto end
 @rem **************************************************************************

Modified: subversion/branches/master-passphrase/build/generator/templates/makefile.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/generator/templates/makefile.ezt?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/generator/templates/makefile.ezt (original)
+++ subversion/branches/master-passphrase/build/generator/templates/makefile.ezt Wed Sep 12 14:43:54 2012
@@ -112,7 +112,7 @@ $([target.varname]_OBJECTS): $([target.v
 [else][target.varname]_DEPS = [target.add_deps][for target.objects] [target.objects][end][for target.deps] [target.deps][end]
 [target.varname]_OBJECTS =[for target.objnames] [target.objnames][end]
 [target.filename]: $([target.varname]_DEPS)
-	cd [target.path] && [target.link_cmd] $([target.varname]_LDFLAGS) -o [target.basename] [target.undefined_flag] $([target.varname]_OBJECTS)[for target.libs] [target.libs][end] $(LIBS)
+	[if-any target.when]if $([target.when]) ; then [else][end]cd [target.path] && [target.link_cmd] $([target.varname]_LDFLAGS) -o [target.basename] [target.undefined_flag] $([target.varname]_OBJECTS)[for target.libs] [target.libs][end] $(LIBS)[if-any target.when] ; else echo "fake" > [target.filename] ; fi[else][end]
 [end][end][end]
 
 ########################################
@@ -127,13 +127,13 @@ $([target.varname]_OBJECTS): $([target.v
 ########################################
 [for areas]
 [is areas.type "apache-mod"]install-mods-shared:[for areas.files] [areas.files.fullname][end][for areas.files]
-	cd [areas.files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED) -n [areas.files.name] [areas.files.filename][end]
+	[if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED) -n [areas.files.name] [areas.files.filename][if-any areas.files.when] ; fi[else][end][end]
 [else]install-[areas.type]: [for areas.files][if-index areas.files first][else] [end][areas.files.fullname][end] [for areas.apache_files] [areas.apache_files.fullname][end]
 	$(MKDIR) $(DESTDIR)$([areas.varname]dir)[for areas.files][is areas.type "locale"]
 	$(MKDIR) [areas.files.installdir]
-	cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] [areas.files.installdir]/$(PACKAGE_NAME)[areas.files.objext][else]
-	cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] $(DESTDIR)[areas.files.install_fname][end][end][for areas.apache_files]
-	cd [areas.apache_files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED) -n [areas.apache_files.name] [areas.apache_files.filename][end]
+	[if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] [areas.files.installdir]/$(PACKAGE_NAME)[areas.files.objext][if-any areas.files.when] ; fi[else][end][else]
+	[if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] $(DESTDIR)[areas.files.install_fname][if-any areas.files.when] ; fi[else][end][end][end][for areas.apache_files]
+	[if-any areas.apache_files.when]if $([areas.apache_files.when]) ; then [else][end]cd [areas.apache_files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED) -n [areas.apache_files.name] [areas.apache_files.filename][if-any areas.apache_files.when] ; fi[else][end][end]
 [if-any areas.extra_install]	$(INSTALL_EXTRA_[areas.uppervar])
 [end][end][end]
 
@@ -156,5 +156,5 @@ install-include:[for includes] [includes
 ########################################
 [for deps]
 [deps.name]:[for deps.deps] [deps.deps][end][if-any deps.cmd]
-	[deps.cmd] [if-any deps.generated][else]$(canonicalized_srcdir)[end][deps.source][end]
+	[if-any deps.when]if $([deps.when]) ; then [else][end][deps.cmd] [if-any deps.generated][else]$(canonicalized_srcdir)[end][deps.source][end][if-any deps.when] ; else echo "fake" > [deps.name] ; fi[else][end]
 [end]

Modified: subversion/branches/master-passphrase/build/generator/templates/svn_locale.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/generator/templates/svn_locale.vcxproj.ezt?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/generator/templates/svn_locale.vcxproj.ezt (original)
+++ subversion/branches/master-passphrase/build/generator/templates/svn_locale.vcxproj.ezt Wed Sep 12 14:43:54 2012
@@ -32,7 +32,7 @@
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
-    <ConfigurationType>Utility</ConfigurationType>
+    <ConfigurationType>Makefile</ConfigurationType>
     <CLRSupport>false</CLRSupport>
     <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>

Modified: subversion/branches/master-passphrase/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/build/run_tests.py?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/build/run_tests.py (original)
+++ subversion/branches/master-passphrase/build/run_tests.py Wed Sep 12 14:43:54 2012
@@ -317,6 +317,12 @@ class TestHarness:
       print("WARNING: no failures, but '%s' exists from a previous run."
             % self.faillogfile)
 
+    # Summary.
+    if xpassed or failed_list:
+      print("SUMMARY: Some tests failed.\n")
+    else:
+      print("SUMMARY: All tests successful.\n")
+
     self._close_log()
     return failed
 

Modified: subversion/branches/master-passphrase/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/configure.ac?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/configure.ac (original)
+++ subversion/branches/master-passphrase/configure.ac Wed Sep 12 14:43:54 2012
@@ -479,8 +479,9 @@ if test "$svn_lib_sasl" = "yes"; then
             [Defined if Cyrus SASL v2 is present on the system])
 fi
 
-dnl Mac OS soecufuc features -------------------
+dnl Mac OS specific features -------------------
 
+SVN_LIB_MACHO_ITERATE
 SVN_LIB_MACOS_PLIST
 SVN_LIB_MACOS_KEYCHAIN
 
@@ -501,7 +502,7 @@ AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
 CPPFLAGS="$old_CPPFLAGS"
 
 
-dnl D-Bus (required for support for KWallet and GNOME Keyring) -------------------
+dnl D-Bus (required for support for KWallet) -------------------
 
 if test -n "$PKG_CONFIG"; then
   AC_MSG_CHECKING([for D-Bus .pc file])
@@ -570,31 +571,27 @@ if test "$with_gnome_keyring" != "no"; t
   if test "$svn_enable_shared" = "yes"; then
     if test "$APR_HAS_DSO" = "yes"; then
       if test -n "$PKG_CONFIG"; then
-        if test "$HAVE_DBUS" = "yes"; then
-          AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files])
-          if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then
+        AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files])
+        if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then
+          AC_MSG_RESULT([yes])
+          old_CPPFLAGS="$CPPFLAGS"
+          SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`"
+          CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES"
+          AC_CHECK_HEADER(gnome-keyring.h, with_gnome_keyring=yes, with_gnome_keyring=no)
+          AC_MSG_CHECKING([for GNOME Keyring])
+          if test "$with_gnome_keyring" = "yes"; then
             AC_MSG_RESULT([yes])
-            old_CPPFLAGS="$CPPFLAGS"
-            SVN_GNOME_KEYRING_INCLUDES="$DBUS_CPPFLAGS `$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`"
-            CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES"
-            AC_CHECK_HEADER(gnome-keyring.h, with_gnome_keyring=yes, with_gnome_keyring=no)
-            AC_MSG_CHECKING([for GNOME Keyring])
-            if test "$with_gnome_keyring" = "yes"; then
-              AC_MSG_RESULT([yes])
-              AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], 
-                        [Is GNOME Keyring support enabled?])
-              CPPFLAGS="$old_CPPFLAGS"
-              SVN_GNOME_KEYRING_LIBS="$DBUS_LIBS `$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
-            else
-              AC_MSG_RESULT([no])
-              AC_MSG_ERROR([cannot find GNOME Keyring])
-            fi
+            AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], 
+                      [Is GNOME Keyring support enabled?])
+            CPPFLAGS="$old_CPPFLAGS"
+            SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
           else
             AC_MSG_RESULT([no])
-            AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files])
+            AC_MSG_ERROR([cannot find GNOME Keyring])
           fi
         else
-          AC_MSG_ERROR([cannot find D-Bus])
+          AC_MSG_RESULT([no])
+          AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files])
         fi
       else
         AC_MSG_ERROR([cannot find pkg-config])

Modified: subversion/branches/master-passphrase/contrib/client-side/emacs/dsvn.el
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/contrib/client-side/emacs/dsvn.el?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/contrib/client-side/emacs/dsvn.el (original)
+++ subversion/branches/master-passphrase/contrib/client-side/emacs/dsvn.el Wed Sep 12 14:43:54 2012
@@ -360,21 +360,55 @@ Argument ARG are the command line argume
 		       (append svn-diff-args (split-string arg))
 		       'diff-mode))
 
+(defun svn-add-unversioned-files-p (files)
+  "Ask the user whether FILES should be added; return the answer."
+  (let ((buf (get-buffer-create "*svn-unversioned-files*")))
+    (with-current-buffer buf
+      (setq buffer-read-only nil)
+      (erase-buffer)
+      (insert (mapconcat (lambda (f) f) files "\n"))
+      (setq buffer-read-only t)
+      (goto-char (point-min))
+      (save-selected-window
+        (pop-to-buffer buf)
+        (shrink-window-if-larger-than-buffer)
+        (let* ((n (length files))
+               (add-them (y-or-n-p
+                          (if (= n 1)
+                              "Add this item first? "
+                            (format "Add these %d items first? " n)))))
+          (let ((win (get-buffer-window buf)))
+            (if win
+                (condition-case nil
+                    (delete-window win)
+                  (error nil))))
+          (bury-buffer buf)
+          add-them)))))
+
 (defun svn-commit ()
   "Commit changes to one or more files."
   (interactive)
   (save-some-buffers)
-  (let ((status-buf (current-buffer))
-        (commit-buf (get-buffer-create "*svn commit*"))
-        (window-conf (and svn-restore-windows (current-window-configuration)))
-        (listfun (lambda () (with-current-buffer log-edit-parent-buffer
-                              (svn-action-files)))))
-    (log-edit 'svn-confirm-commit t
-              (if (< emacs-major-version 23)
-                  listfun
-                (list (cons 'log-edit-listfun listfun)))
-              commit-buf)
-    (set (make-local-variable 'saved-window-configuration) window-conf)))
+  (let ((unversioned-files (svn-action-files
+                            (lambda (pos) (eq (svn-file-status pos) ?\?)))))
+    (if unversioned-files
+        (if (svn-add-unversioned-files-p unversioned-files)
+            (progn
+              (message "Adding unversioned items. Please re-commit when ready.")
+              (svn-run 'add unversioned-files "Adding files"))
+          (message "Files not added; nothing committed."))
+      (let ((status-buf (current-buffer))
+            (commit-buf (get-buffer-create "*svn commit*"))
+            (window-conf (and svn-restore-windows
+                              (current-window-configuration)))
+            (listfun (lambda () (with-current-buffer log-edit-parent-buffer
+                                  (svn-action-files)))))
+        (log-edit 'svn-confirm-commit t
+                  (if (< emacs-major-version 23)
+                      listfun
+                    (list (cons 'log-edit-listfun listfun)))
+                  commit-buf)
+        (set (make-local-variable 'saved-window-configuration) window-conf)))))
 
 (defun svn-confirm-commit ()
   "Commit changes with the current buffer as commit message."
@@ -1643,27 +1677,24 @@ Set it if MARK is non-NIL, and clear it 
   "Return a list of lists (FILE POS) to act on.
 Optional argument PRED is a predicate function that is called with POS as
 argument."
-  (let ((files ())
-        (pos (next-single-property-change (point-min) 'svn-file)))
-    (while pos
-      (when (and (get-text-property pos 'svn-mark)
-                 (or (not pred)
-                     (funcall pred pos)))
-        (setq files (cons (list (get-text-property pos 'svn-file)
-                                pos)
-                          files)))
-      (setq pos (next-single-property-change pos 'svn-file)))
-    (if (null files)
-        (let ((file (svn-getprop (point) 'file)))
-          (unless file
-            (error "No file on this line"))
-          (when (and pred
-                     (not (funcall pred (line-beginning-position))))
-            (error "Invalid file"))
-          (list (list file
-                      (save-excursion
-                        (beginning-of-line)
-                        (point)))))
+  (let ((positions ()))
+    (let ((pos (next-single-property-change (point-min) 'svn-file)))
+      (while pos
+        (when (get-text-property pos 'svn-mark)
+          (setq positions (cons pos positions)))
+        (setq pos (next-single-property-change pos 'svn-file))))
+    (when (null positions)
+      (unless (svn-getprop (point) 'file)
+        (error "No file on this line"))
+      (setq positions (list (line-beginning-position))))
+
+    (let ((files ()))
+      (mapc (lambda (pos)
+              (when (or (not pred) (funcall pred pos))
+                (setq files (cons (list (get-text-property pos 'svn-file)
+                                        pos)
+                                  files))))
+            (reverse positions))
       (reverse files))))
 
 (defun svn-action-files (&optional pred)

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java Wed Sep 12 14:43:54 2012
@@ -250,7 +250,19 @@ public class ConflictDescriptor
         /**
          * Object is already replaced.
          */
-        replaced;
+        replaced,
+
+        /**
+         * Object is moved away.
+         * @since 1.8
+         */
+        moved_away,
+
+        /**
+         * Object is moved here.
+         * @since 1.8
+         */
+        moved_here;
     }
 
     public enum Operation

Modified: subversion/branches/master-passphrase/subversion/include/private/svn_debug.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/private/svn_debug.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/private/svn_debug.h (original)
+++ subversion/branches/master-passphrase/subversion/include/private/svn_debug.h Wed Sep 12 14:43:54 2012
@@ -31,7 +31,9 @@
    ### remain in the code. at that point, we can rejigger this header.  */
 #ifdef SVN_DEBUG
 
-#include <stdio.h>
+#define APR_WANT_STDIO
+#include <apr_want.h>
+#include <apr_hash.h>
 
 #ifdef __cplusplus
 extern "C" {

Modified: subversion/branches/master-passphrase/subversion/include/private/svn_eol_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/private/svn_eol_private.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/private/svn_eol_private.h (original)
+++ subversion/branches/master-passphrase/subversion/include/private/svn_eol_private.h Wed Sep 12 14:43:54 2012
@@ -37,6 +37,20 @@
 extern "C" {
 #endif /* __cplusplus */
 
+/* Constants used by various chunky string processing functions.
+ */
+#if APR_SIZEOF_VOIDP == 8
+#  define SVN__LOWER_7BITS_SET 0x7f7f7f7f7f7f7f7f
+#  define SVN__BIT_7_SET       0x8080808080808080
+#  define SVN__R_MASK          0x0a0a0a0a0a0a0a0a
+#  define SVN__N_MASK          0x0d0d0d0d0d0d0d0d
+#else
+#  define SVN__LOWER_7BITS_SET 0x7f7f7f7f
+#  define SVN__BIT_7_SET       0x80808080
+#  define SVN__R_MASK          0x0a0a0a0a
+#  define SVN__N_MASK          0x0d0d0d0d
+#endif
+
 /* Generic EOL character helper routines */
 
 /* Look for the start of an end-of-line sequence (i.e. CR or LF)

Modified: subversion/branches/master-passphrase/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/private/svn_sqlite.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/master-passphrase/subversion/include/private/svn_sqlite.h Wed Sep 12 14:43:54 2012
@@ -37,6 +37,17 @@ extern "C" {
 #endif /* __cplusplus */
 
 
+/* Because the SQLite code can be inlined into libsvn_subre/sqlite.c,
+   we define accessors to its compile-time and run-time version
+   numbers here. */
+
+/* Return the value that SQLITE_VERSION had at compile time. */
+const char *svn_sqlite__compiled_version(void);
+
+/* Return the value of sqlite3_libversion() at run time. */
+const char *svn_sqlite__runtime_version(void);
+
+
 typedef struct svn_sqlite__db_t svn_sqlite__db_t;
 typedef struct svn_sqlite__stmt_t svn_sqlite__stmt_t;
 typedef struct svn_sqlite__context_t svn_sqlite__context_t;

Modified: subversion/branches/master-passphrase/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_config.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_config.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_config.h Wed Sep 12 14:43:54 2012
@@ -93,6 +93,8 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_OPTION_PASSWORD_STORES           "password-stores"
 #define SVN_CONFIG_OPTION_KWALLET_WALLET            "kwallet-wallet"
 #define SVN_CONFIG_OPTION_KWALLET_SVN_APPLICATION_NAME_WITH_PID "kwallet-svn-application-name-with-pid"
+/** @since New in 1.8. */
+#define SVN_CONFIG_OPTION_SSL_CLIENT_CERT_FILE_PROMPT "ssl-client-cert-file-prompt"
 /* The majority of options of the "auth" section
  * has been moved to SVN_CONFIG_CATEGORY_SERVERS. */
 #define SVN_CONFIG_SECTION_HELPERS              "helpers"
@@ -132,12 +134,12 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_OPTION_AUTHZ_DB                  "authz-db"
 /** @since New in 1.7. */
 #define SVN_CONFIG_OPTION_FORCE_USERNAME_CASE       "force-username-case"
+/** @since New in 1.8. */
+#define SVN_CONFIG_OPTION_HOOKS_ENV                 "hooks-env"
 #define SVN_CONFIG_SECTION_SASL                 "sasl"
 #define SVN_CONFIG_OPTION_USE_SASL                  "use-sasl"
 #define SVN_CONFIG_OPTION_MIN_SSF                   "min-encryption"
 #define SVN_CONFIG_OPTION_MAX_SSF                   "max-encryption"
-/** @since New in 1.8. */
-#define SVN_CONFIG_SECTION_HOOKS_ENV            "hooks-env"
 
 /* For repository password database */
 #define SVN_CONFIG_SECTION_USERS                "users"
@@ -627,6 +629,26 @@ svn_config_get_user_config_path(const ch
                                 const char *fname,
                                 apr_pool_t *pool);
 
+/** Create a deep copy of the config object @a src and return
+ * it in @a cfgp, allocating the memory in @a pool.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_config_dup(svn_config_t **cfgp,
+               svn_config_t *src,
+               apr_pool_t *pool);
+
+/** Create a deep copy of the config hash @a src_hash and return
+ * it in @a cfg_hash, allocating the memory in @a pool.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_config_copy_config(apr_hash_t **cfg_hash,
+                       apr_hash_t *src_hash,
+                       apr_pool_t *pool);
+
 /** @} */
 
 #ifdef __cplusplus

Modified: subversion/branches/master-passphrase/subversion/include/svn_dav.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_dav.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_dav.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_dav.h Wed Sep 12 14:43:54 2012
@@ -177,6 +177,13 @@ extern "C" {
  * @since New in 1.7.  */
 #define SVN_DAV_VTXN_NAME_HEADER "SVN-VTxn-Name"
 
+/** This header is used in the OPTIONS response to identify named
+ * skel-based POST request types which the server is prepared to
+ * handle.  (HTTP protocol v2 only)
+ * @since New in 1.8.   */
+#define SVN_DAV_SUPPORTED_POSTS_HEADER "SVN-Supported-Posts"
+
+
 /**
  * @name Fulltext MD5 headers
  *

Modified: subversion/branches/master-passphrase/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_fs.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_fs.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_fs.h Wed Sep 12 14:43:54 2012
@@ -402,6 +402,24 @@ svn_fs_recover(const char *path,
                apr_pool_t *pool);
 
 
+/**
+ * Take an exclusive lock on @a fs to prevent commits and then invoke
+ * @a freeze_body passing @a baton.
+ *
+ * @note The BDB backend doesn't implement this feature so most
+ * callers should not call this function directly but should use the
+ * higher level #svn_repos_freeze instead.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_fs_freeze(svn_fs_t *fs,
+              svn_error_t *(*freeze_body)(void *baton, apr_pool_t *pool),
+              void *baton,
+              apr_pool_t *pool);
+              
+
+
 /** Subversion filesystems based on Berkeley DB.
  *
  * The following functions are specific to Berkeley DB filesystems.

Modified: subversion/branches/master-passphrase/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_repos.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_repos.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_repos.h Wed Sep 12 14:43:54 2012
@@ -653,6 +653,20 @@ svn_error_t *
 svn_repos_recover(const char *path,
                   apr_pool_t *pool);
 
+/**
+ * Take an exclusive lock on @a path to prevent commits and then
+ * invoke @a freeze_body passing @a baton.  The repository may be
+ * readable by Subversion while frozen, or it may be unreadable,
+ * depending on which FS backend the repository uses.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_repos_freeze(const char *path,
+                 svn_error_t *(*freeze_body)(void *baton, apr_pool_t *pool),
+                 void *baton,
+                 apr_pool_t *pool);
+
 /** This function is a wrapper around svn_fs_berkeley_logfiles(),
  * returning log file paths relative to the root of the repository.
  *
@@ -764,16 +778,25 @@ const char *
 svn_repos_post_unlock_hook(svn_repos_t *repos,
                            apr_pool_t *pool);
 
-/** Set the environment that @a repos's hooks will inherit to @a hooks_env,
- * a hash table where keys and values represent names and values of environment
- * variables. @a hooks_env must live at least as long as @a repos.
+/** Set the environment that @a repos's hooks will inherit.
+ * The environment is specified in a file at @a hooks_env_path.
+ * If @a hooks_env_path is @c NULL, the file is searched at its
+ * default location in the repository. If @a hooks_env_path is
+ * not absolute, it specifies a path relative to the parent of
+ * the file's default location in the repository.
  *
- * If this function is not called, hooks will run in an empty environment.
+ * The @a result_pool should be the same pool that @a repos was allocated in.
+ * The @a scratch_pool is used for temporary allocations.
+ *
+ * If this function is not called, or if the file does not list any
+ * environment variables, hooks will run in an empty environment.
  *
  * @since New in 1.8. */
-void
+svn_error_t *
 svn_repos_hooks_setenv(svn_repos_t *repos,
-                       apr_hash_t *hooks_env);
+                       const char *hooks_env_path,
+                       apr_pool_t *result_pool,
+                       apr_pool_t *scratch_pool);
 
 /** @} */
 

Modified: subversion/branches/master-passphrase/subversion/include/svn_string.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_string.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_string.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_string.h Wed Sep 12 14:43:54 2012
@@ -307,6 +307,45 @@ void
 svn_stringbuf_appendcstr(svn_stringbuf_t *targetstr,
                          const char *cstr);
 
+/** Read @a count bytes from @a bytes and insert them into @a str at
+ * position @a pos and following.  The resulting string will be
+ * @c count+str->len bytes long.  If @c pos is larger or equal to the
+ * number of bytes currently used in @a str,  simply append @a bytes.
+ *
+ * Reallocs if necessary. @a str is affected, nothing else is.
+ *
+ * @note The inserted string may be a sub-range if @a str.
+ */
+void
+svn_stringbuf_insert(svn_stringbuf_t *str,
+                     apr_size_t pos,
+                     const char *bytes,
+                     apr_size_t count);
+
+/** Removes @a count bytes from @a str, starting at position @a pos.
+ * If that range exceeds the current string data,  @a str gets truncated
+ * at @a pos.  If the latter is larger or equal to @c str->pos, this will
+ * be a no-op.  Otherwise, the resulting string will be @c str->len-count
+ * bytes long.
+ */
+void
+svn_stringbuf_remove(svn_stringbuf_t *str,
+                     apr_size_t pos,
+                     apr_size_t count);
+
+/** Faster but functionally equivalent to the following sequence:
+ * @code
+ *   svn_stringbuf_remove(str, pos, old_count);
+ *   svn_stringbuf_insert(str, pos, bytes, new_count);
+ * @endcode
+ */
+void
+svn_stringbuf_replace(svn_stringbuf_t *str,
+                      apr_size_t pos,
+                      apr_size_t old_count,
+                      const char *bytes,
+                      apr_size_t new_count);
+
 /** Return a duplicate of @a original_string. */
 svn_stringbuf_t *
 svn_stringbuf_dup(const svn_stringbuf_t *original_string, apr_pool_t *pool);

Modified: subversion/branches/master-passphrase/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_version.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_version.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_version.h Wed Sep 12 14:43:54 2012
@@ -34,6 +34,7 @@
 #ifndef APR_STRINGIFY
 #include <apr_general.h>
 #endif
+#include <apr_tables.h>
 
 #include "svn_types.h"
 
@@ -256,6 +257,153 @@ const svn_version_t *
 svn_subr_version(void);
 
 
+/**
+ * Extended version infomation, including info about the running system.
+ *
+ * @since New in 1.8.
+ */
+typedef struct svn_version_extended_t svn_version_extended_t;
+
+/**
+ * Return version information for the running program.  If @a verbose
+ * is true, collect extra information that may be expensive to
+ * retrieve (for example, the OS release name, list of shared
+ * libraries, etc.).  Use @a pool for all allocations.
+ *
+ * @since New in 1.8.
+ */
+const svn_version_extended_t *
+svn_version_extended(svn_boolean_t verbose,
+                     apr_pool_t *pool);
+
+
+/**
+ * Accessor for svn_version_extended_t.
+ *
+ * @return The date when the libsvn_subr library was compiled, in the
+ * format defined by the C standard macro @c __DATE__.
+ *
+ * @since New in 1.8.
+ */
+const char *
+svn_version_ext_build_date(const svn_version_extended_t *ext_info);
+
+/**
+ * Accessor for svn_version_extended_t.
+ *
+ * @return The time when the libsvn_subr library was compiled, in the
+ * format defined by the C standard macro @c __TIME__.
+ *
+ * @since New in 1.8.
+ */
+const char *
+svn_version_ext_build_time(const svn_version_extended_t *ext_info);
+
+/**
+ * Accessor for svn_version_extended_t.
+ *
+ * @return The canonical host triplet (arch-vendor-osname) of the
+ * system where libsvn_subr was compiled.
+ *
+ * @note On Unix-like systems (includng Mac OS X), this string is the
+ * same as the output of the config.guess script.
+ *
+ * @since New in 1.8.
+ */
+const char *
+svn_version_ext_build_host(const svn_version_extended_t *ext_info);
+
+/**
+ * Accessor for svn_version_extended_t.
+ *
+ * @return The localized copyright notice.
+ *
+ * @since New in 1.8.
+ */
+const char *
+svn_version_ext_copyright(const svn_version_extended_t *ext_info);
+
+/**
+ * Accessor for svn_version_extended_t.
+ *
+ * @return The canonical host triplet (arch-vendor-osname) of the
+ * system where the current process is running.
+ *
+ * @note This string may not be the same as the output of config.guess
+ * on the same system.
+ *
+ * @since New in 1.8.
+ */
+const char *
+svn_version_ext_runtime_host(const svn_version_extended_t *ext_info);
+
+/**
+ * Accessor for svn_version_extended_t.
+ *
+ * @return The "commercial" release name of the running operating
+ * system, if available.  Not to be confused with, e.g., the output of
+ * "uname -v" or "uname -r".  The returned value may be @c NULL.
+ *
+ * @since New in 1.8.
+ */
+const char *
+svn_version_ext_runtime_osname(const svn_version_extended_t *ext_info);
+
+/**
+ * Dependent library information.
+ * Describes the name and versions of known dependencies
+ * used by libsvn_subr.
+ *
+ * @since New in 1.8.
+ */
+typedef struct svn_version_ext_linked_lib_t
+{
+  const char *name;             /**< Library name */
+  const char *compiled_version; /**< Compile-time version string */
+  const char *runtime_version;  /**< Run-time version string (optional) */
+} svn_version_ext_linked_lib_t;
+
+/**
+ * Accessor for svn_version_extended_t.
+ *
+ * @return Array of svn_version_ext_linked_lib_t describing dependent
+ * libraries.  The returned value may be @c NULL.
+ *
+ * @since New in 1.8.
+ */
+const apr_array_header_t *
+svn_version_ext_linked_libs(const svn_version_extended_t *ext_info);
+
+
+/**
+ * Loaded shared library information.
+ * Describes the name and, where available, version of the shared libraries
+ * loaded by the running program.
+ *
+ * @since New in 1.8.
+ */
+typedef struct svn_version_ext_loaded_lib_t
+{
+  const char *name;             /**< Library name */
+  const char *version;          /**< Library version (optional) */
+} svn_version_ext_loaded_lib_t;
+
+
+/**
+ * Accessor for svn_version_extended_t.
+ *
+ * @return Array of svn_version_ext_loaded_lib_t describing loaded
+ * shared libraries.  The returned value may be @c NULL.
+ *
+ * @note On Mac OS X, the loaded frameworks, private frameworks and
+ * system libraries will not be listed.
+ *
+ * @since New in 1.8.
+ */
+const apr_array_header_t *
+svn_version_ext_loaded_libs(const svn_version_extended_t *ext_info);
+
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/master-passphrase/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_wc.h?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_wc.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_wc.h Wed Sep 12 14:43:54 2012
@@ -1593,10 +1593,6 @@ typedef enum svn_wc_conflict_reason_t
   svn_wc_conflict_reason_replaced,
   /** Object is moved away. @since New in 1.8. */
   svn_wc_conflict_reason_moved_away,
-  /** Object is moved away and was edited post-move. @since New in 1.8. */
-  /* ### Do we really need this. The edit state is on a different node,
-         which might just change while the tree conflict exists? */
-  svn_wc_conflict_reason_moved_away_and_edited,
   /** Object is moved here. @since New in 1.8. */
   svn_wc_conflict_reason_moved_here
 

Modified: subversion/branches/master-passphrase/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c (original)
+++ subversion/branches/master-passphrase/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c Wed Sep 12 14:43:54 2012
@@ -39,7 +39,6 @@
 #include "svn_private_config.h"
 
 #include <glib.h>
-#include <dbus/dbus.h>
 #include <gnome-keyring.h>
 
 
@@ -429,12 +428,14 @@ simple_gnome_keyring_save_creds(svn_bool
                                           pool);
 }
 
+#if GLIB_CHECK_VERSION(2,6,0)
 static void
 log_noop(const gchar *log_domain, GLogLevelFlags log_level,
          const gchar *message, gpointer user_data)
 {
   /* do nothing */
 }
+#endif
 
 static void
 init_gnome_keyring(void)
@@ -450,7 +451,9 @@ init_gnome_keyring(void)
      suppress stderr spam for not only libgnome-keyring, but for
      anything else the app is linked to that uses glib logging and
      doesn't specify a log_domain. */
+#if GLIB_CHECK_VERSION(2,6,0)
   g_log_set_default_handler(log_noop, NULL);
+#endif
 }
 
 static const svn_auth_provider_t gnome_keyring_simple_provider = {

Modified: subversion/branches/master-passphrase/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/libsvn_client/diff.c?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/master-passphrase/subversion/libsvn_client/diff.c Wed Sep 12 14:43:54 2012
@@ -1044,6 +1044,9 @@ diff_content_changed(const char *path,
                                        subpool, subpool));
       SVN_ERR(svn_stream_copy3(stream, svn_stream_disown(errstream, subpool),
                                NULL, NULL, subpool));
+
+      /* We have a printed a diff for this path, mark it as visited. */
+      mark_path_as_visited(diff_cmd_baton, path);
     }
   else   /* use libsvn_diff to generate the diff  */
     {

Modified: subversion/branches/master-passphrase/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/libsvn_client/merge.c?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/master-passphrase/subversion/libsvn_client/merge.c Wed Sep 12 14:43:54 2012
@@ -3519,7 +3519,7 @@ adjust_deleted_subtree_ranges(svn_client
 
    SOURCE is cascaded from the argument of the same name in
    do_directory_merge().  TARGET is the merge target.  RA_SESSION is the
-   session for the younger of SOURCE->url1@rev1 and SOURCE->url2@rev2.
+   session for the younger of SOURCE->loc1 and SOURCE->loc2.
 
    Adjust the subtrees in CHILDREN_WITH_MERGEINFO so that we don't
    later try to describe invalid paths in drive_merge_report_editor().
@@ -3596,8 +3596,8 @@ fix_deleted_subtree_ranges(const merge_s
          described by SOURCE can potentially be merged to CHILD.
 
          But if CHILD is a subtree we don't have the same guarantees about
-         SOURCE as we do for the merge target.  SOURCE->url1@rev1 and/or
-         SOURCE->url2@rev2 might not exist.
+         SOURCE as we do for the merge target.  SOURCE->loc1 and/or
+         SOURCE->loc2 might not exist.
 
          If one or both doesn't exist, then adjust CHILD->REMAINING_RANGES
          such that we don't later try to describe invalid subtrees in
@@ -4121,8 +4121,8 @@ filter_merged_revisions(svn_client__merg
    ancestor - see 'THE CHILDREN_WITH_MERGEINFO ARRAY'.  TARGET_MERGEINFO is
    the working mergeinfo on CHILD.
 
-   RA_SESSION is the session for the younger of SOURCE->url1@rev1 and
-   SOURCE->url2@rev2.
+   RA_SESSION is the session for the younger of SOURCE->loc1 and
+   SOURCE->loc2.
 
    If the function needs to consider CHILD->IMPLICIT_MERGEINFO and
    CHILD_INHERITS_IMPLICIT is true, then set CHILD->IMPLICIT_MERGEINFO to the
@@ -4510,13 +4510,13 @@ populate_remaining_ranges(apr_array_head
       return SVN_NO_ERROR;
     }
 
-  /* If, in the merge source's history, there was a copy from a older
-     revision, then SOURCE->url2 won't exist at some range M:N, where
-     source->rev1 < M < N < source->rev2. The rules of 'MERGEINFO MERGE
-     SOURCE NORMALIZATION' allow this, but we must ignore these gaps when
-     calculating what ranges remain to be merged from SOURCE. If we don't
-     and try to merge any part of SOURCE->url2@M:N we would break the
-     editor since no part of that actually exists.  See
+  /* If, in the merge source's history, there was a copy from an older
+     revision, then SOURCE->loc2->url won't exist at some range M:N, where
+     SOURCE->loc1->rev < M < N < SOURCE->loc2->rev. The rules of 'MERGEINFO
+     MERGE SOURCE NORMALIZATION' allow this, but we must ignore these gaps
+     when calculating what ranges remain to be merged from SOURCE. If we
+     don't and try to merge any part of SOURCE->loc2->url@M:N we would
+     break the editor since no part of that actually exists.  See
      http://svn.haxx.se/dev/archive-2008-11/0618.shtml.
 
      Find the gaps in the merge target's history, if any.  Eventually
@@ -5050,8 +5050,8 @@ remove_children_with_deleted_mergeinfo(m
    URL in the repository of SOURCE; they may be temporarily reparented within
    this function.
 
-   If SOURCE->ancestral is set, then SOURCE->url1@rev1 must be a
-   historical ancestor of SOURCE->url2@rev2, or vice-versa (see
+   If SOURCE->ancestral is set, then SOURCE->loc1 must be a
+   historical ancestor of SOURCE->loc2, or vice-versa (see
    `MERGEINFO MERGE SOURCE NORMALIZATION' for more requirements around
    SOURCE in this case).
 */
@@ -5130,7 +5130,7 @@ drive_merge_report_editor(const char *ta
   SVN_ERR(svn_client__ensure_ra_session_url(&old_sess1_url,
                                             merge_b->ra_session1,
                                             source->loc1->url, scratch_pool));
-  /* Temporarily point our second RA session to SOURCE->url1, too.  We use
+  /* Temporarily point our second RA session to SOURCE->loc1->url, too.  We use
      this to request individual file contents. */
   SVN_ERR(svn_client__ensure_ra_session_url(&old_sess2_url,
                                             merge_b->ra_session2,
@@ -5421,6 +5421,7 @@ single_file_merge_get_file(const char **
 {
   svn_stream_t *stream;
   const char *old_sess_url;
+  svn_error_t *err;
 
   SVN_ERR(svn_stream_open_unique(&stream, filename,
                                  svn_dirent_dirname(wc_target, pool),
@@ -5428,9 +5429,10 @@ single_file_merge_get_file(const char **
 
   SVN_ERR(svn_client__ensure_ra_session_url(&old_sess_url, ra_session, location->url,
                                             pool));
-  SVN_ERR(svn_ra_get_file(ra_session, "", location->rev,
-                          stream, NULL, props, pool));
-  SVN_ERR(svn_ra_reparent(ra_session, old_sess_url, pool));
+  err = svn_ra_get_file(ra_session, "", location->rev,
+                        stream, NULL, props, pool);
+  SVN_ERR(svn_error_compose_create(
+            err, svn_ra_reparent(ra_session, old_sess_url, pool)));
 
   return svn_stream_close(stream);
 }
@@ -6400,7 +6402,7 @@ remove_noop_merge_ranges(svn_rangelist_t
 /*** Merge Source Normalization ***/
 
 /* qsort-compatible sort routine, rating merge_source_t * objects to
-   be in descending (youngest-to-oldest) order based on their ->rev1
+   be in descending (youngest-to-oldest) order based on their ->loc1->rev
    component. */
 static int
 compare_merge_source_ts(const void *a,
@@ -6878,8 +6880,8 @@ subrange_source(const merge_source_t *so
    and the value is the new mergeinfo for that path.  Allocate additions
    to RESULT_CATALOG in pool which RESULT_CATALOG was created in.
 
-   Note: MERGE_B->RA_SESSION1 must be associated with SOURCE->url1 and
-   MERGE_B->RA_SESSION2 with SOURCE->url2.
+   Note: MERGE_B->RA_SESSION1 must be associated with SOURCE->loc1->url and
+   MERGE_B->RA_SESSION2 with SOURCE->loc2->url.
 */
 static svn_error_t *
 do_file_merge(svn_mergeinfo_catalog_t result_catalog,
@@ -6979,15 +6981,18 @@ do_file_merge(svn_mergeinfo_catalog_t re
       if (source->ancestral && (remaining_ranges->nelts > 1))
         {
           const char *old_sess_url;
+          svn_error_t *err;
+
           SVN_ERR(svn_client__ensure_ra_session_url(&old_sess_url,
                                                     merge_b->ra_session1,
                                                     primary_src->url,
                                                     iterpool));
-          SVN_ERR(remove_noop_merge_ranges(&ranges_to_merge,
-                                           merge_b->ra_session1,
-                                           remaining_ranges, scratch_pool));
-          SVN_ERR(svn_ra_reparent(merge_b->ra_session1, old_sess_url,
-                                  iterpool));
+          err = remove_noop_merge_ranges(&ranges_to_merge,
+                                         merge_b->ra_session1,
+                                         remaining_ranges, scratch_pool);
+          SVN_ERR(svn_error_compose_create(
+                    err, svn_ra_reparent(merge_b->ra_session1, old_sess_url,
+                                         iterpool)));
         }
 
       for (i = 0; i < ranges_to_merge->nelts; i++)
@@ -7091,11 +7096,10 @@ do_file_merge(svn_mergeinfo_catalog_t re
                                        r, &header_sent, iterpool);
             }
 
-          /* Ignore if temporary file not found. It may have been renamed. */
-          /* (This is where we complain about missing Lisp, or better yet,
-             Python...) */
-          SVN_ERR(svn_io_remove_file2(tmpfile1, TRUE, iterpool));
-          SVN_ERR(svn_io_remove_file2(tmpfile2, TRUE, iterpool));
+          /* Remove the temporary files. Ignore if not found: they may
+           * have been renamed. */
+          SVN_ERR(svn_io_remove_file2(tmpfile1, TRUE /*ignore*/, iterpool));
+          SVN_ERR(svn_io_remove_file2(tmpfile2, TRUE /*ignore*/, iterpool));
 
           if ((i < (ranges_to_merge->nelts - 1))
               && is_path_conflicted_by_merge(merge_b))
@@ -8400,7 +8404,7 @@ log_noop_revs(void *baton,
 
    SOURCE is cascaded from the argument of the same name in
    do_directory_merge().  TARGET is the merge target.  RA_SESSION is the
-   session for SOURCE->url2@rev2.
+   session for SOURCE->loc2.
 
    Find all the ranges required by subtrees in
    CHILDREN_WITH_MERGEINFO that are *not* required by
@@ -8558,7 +8562,7 @@ remove_noop_subtree_ranges(const merge_s
 
    MERGE_B describes the merge being performed.  As this function is for a
    mergeinfo-aware merge, SOURCE->ancestral should be TRUE, and
-   SOURCE->url1@rev1 must be a historical ancestor of SOURCE->url2@rev2, or
+   SOURCE->loc1 must be a historical ancestor of SOURCE->loc2, or
    vice-versa (see `MERGEINFO MERGE SOURCE NORMALIZATION' for more
    requirements around SOURCE).
 
@@ -9259,8 +9263,8 @@ do_merge(apr_hash_t **modified_subtrees,
    merge (unless this is record-only), followed by record-only merges
    to represent the changed mergeinfo.
 
-   The merge is between SOURCE->url1@rev1 (in URL1_RA_SESSION1) and
-   SOURCE->url2@rev2 (in URL2_RA_SESSION2); YCA is their youngest
+   The diff to be merged is between SOURCE->loc1 (in URL1_RA_SESSION1)
+   and SOURCE->loc2 (in URL2_RA_SESSION2); YCA is their youngest
    common ancestor.
    SAME_REPOS must be true if and only if the source URLs are in the same
    repository as the target working copy.  Other arguments are as in
@@ -10088,9 +10092,7 @@ find_unsynced_ranges(const svn_client__p
                        svn_merge_range_t *))->end;
       log_find_operative_baton_t log_baton;
       const char *old_session_url;
-
-      SVN_ERR(svn_client__ensure_ra_session_url(
-                &old_session_url, ra_session, target_loc->url, scratch_pool));
+      svn_error_t *err;
 
       log_baton.merged_catalog = merged_catalog;
       log_baton.unmerged_catalog = true_unmerged_catalog;
@@ -10100,12 +10102,14 @@ find_unsynced_ranges(const svn_client__p
         = svn_client__pathrev_fspath(target_loc, scratch_pool);
       log_baton.result_pool = result_pool;
 
-      SVN_ERR(get_log(ra_session, "", youngest_rev, oldest_rev,
-                      TRUE, /* discover_changed_paths */
-                      log_find_operative_revs, &log_baton,
-                      scratch_pool));
-
-      SVN_ERR(svn_ra_reparent(ra_session, old_session_url, scratch_pool));
+      SVN_ERR(svn_client__ensure_ra_session_url(
+                &old_session_url, ra_session, target_loc->url, scratch_pool));
+      err = get_log(ra_session, "", youngest_rev, oldest_rev,
+                    TRUE, /* discover_changed_paths */
+                    log_find_operative_revs, &log_baton,
+                    scratch_pool);
+      SVN_ERR(svn_error_compose_create(
+                err, svn_ra_reparent(ra_session, old_session_url, scratch_pool)));
     }
 
   return SVN_NO_ERROR;

Modified: subversion/branches/master-passphrase/subversion/libsvn_client/ra.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/libsvn_client/ra.c?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/libsvn_client/ra.c (original)
+++ subversion/branches/master-passphrase/subversion/libsvn_client/ra.c Wed Sep 12 14:43:54 2012
@@ -581,6 +581,7 @@ svn_client__repos_location_segments(apr_
 {
   struct gls_receiver_baton_t gls_receiver_baton;
   const char *old_session_url;
+  svn_error_t *err;
 
   *segments = apr_array_make(pool, 8, sizeof(svn_location_segment_t *));
   gls_receiver_baton.segments = *segments;
@@ -588,11 +589,12 @@ svn_client__repos_location_segments(apr_
   gls_receiver_baton.pool = pool;
   SVN_ERR(svn_client__ensure_ra_session_url(&old_session_url, ra_session,
                                             url, pool));
-  SVN_ERR(svn_ra_get_location_segments(ra_session, "", peg_revision,
-                                       start_revision, end_revision,
-                                       gls_receiver, &gls_receiver_baton,
-                                       pool));
-  SVN_ERR(svn_ra_reparent(ra_session, old_session_url, pool));
+  err = svn_ra_get_location_segments(ra_session, "", peg_revision,
+                                     start_revision, end_revision,
+                                     gls_receiver, &gls_receiver_baton,
+                                     pool);
+  SVN_ERR(svn_error_compose_create(
+            err, svn_ra_reparent(ra_session, old_session_url, pool)));
   qsort((*segments)->elts, (*segments)->nelts,
         (*segments)->elt_size, compare_segments);
   return SVN_NO_ERROR;
@@ -689,14 +691,16 @@ svn_client__repos_location(svn_client__p
 {
   const char *old_session_url;
   const char *op_url;
+  svn_error_t *err;
 
   SVN_ERR(svn_client__ensure_ra_session_url(&old_session_url, ra_session,
                                             peg_loc->url, scratch_pool));
-  SVN_ERR(repos_locations(&op_url, NULL, ra_session,
-                          peg_loc->url, peg_loc->rev,
-                          op_revnum, SVN_INVALID_REVNUM,
-                          result_pool, scratch_pool));
-  SVN_ERR(svn_ra_reparent(ra_session, old_session_url, scratch_pool));
+  err = repos_locations(&op_url, NULL, ra_session,
+                        peg_loc->url, peg_loc->rev,
+                        op_revnum, SVN_INVALID_REVNUM,
+                        result_pool, scratch_pool);
+  SVN_ERR(svn_error_compose_create(
+            err, svn_ra_reparent(ra_session, old_session_url, scratch_pool)));
 
   *op_loc_p = svn_client__pathrev_create(peg_loc->repos_root_url,
                                          peg_loc->repos_uuid,

Modified: subversion/branches/master-passphrase/subversion/libsvn_client/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/libsvn_client/update.c?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/libsvn_client/update.c (original)
+++ subversion/branches/master-passphrase/subversion/libsvn_client/update.c Wed Sep 12 14:43:54 2012
@@ -211,6 +211,9 @@ update_internal(svn_revnum_t *result_rev
                                                  SVN_CONFIG_CATEGORY_CONFIG,
                                                  APR_HASH_KEY_STRING) : NULL;
 
+  if (result_rev)
+    *result_rev = SVN_INVALID_REVNUM;
+
   /* An unknown depth can't be sticky. */
   if (depth == svn_depth_unknown)
     depth_is_sticky = FALSE;

Modified: subversion/branches/master-passphrase/subversion/libsvn_diff/diff_file.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/libsvn_diff/diff_file.c?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/libsvn_diff/diff_file.c (original)
+++ subversion/branches/master-passphrase/subversion/libsvn_diff/diff_file.c Wed Sep 12 14:43:54 2012
@@ -340,30 +340,17 @@ is_one_at_eof(struct file_info file[], a
 /* Quickly determine whether there is a eol char in CHUNK.
  * (mainly copy-n-paste from eol.c#svn_eol__find_eol_start).
  */
-#if SVN_UNALIGNED_ACCESS_IS_OK
-#if APR_SIZEOF_VOIDP == 8
-#  define LOWER_7BITS_SET 0x7f7f7f7f7f7f7f7f
-#  define BIT_7_SET       0x8080808080808080
-#  define R_MASK          0x0a0a0a0a0a0a0a0a
-#  define N_MASK          0x0d0d0d0d0d0d0d0d
-#else
-#  define LOWER_7BITS_SET 0x7f7f7f7f
-#  define BIT_7_SET       0x80808080
-#  define R_MASK          0x0a0a0a0a
-#  define N_MASK          0x0d0d0d0d
-#endif
-#endif
 
 #if SVN_UNALIGNED_ACCESS_IS_OK
 static svn_boolean_t contains_eol(apr_uintptr_t chunk)
 {
-  apr_uintptr_t r_test = chunk ^ R_MASK;
-  apr_uintptr_t n_test = chunk ^ N_MASK;
+  apr_uintptr_t r_test = chunk ^ SVN__R_MASK;
+  apr_uintptr_t n_test = chunk ^ SVN__N_MASK;
 
-  r_test |= (r_test & LOWER_7BITS_SET) + LOWER_7BITS_SET;
-  n_test |= (n_test & LOWER_7BITS_SET) + LOWER_7BITS_SET;
+  r_test |= (r_test & SVN__LOWER_7BITS_SET) + SVN__LOWER_7BITS_SET;
+  n_test |= (n_test & SVN__LOWER_7BITS_SET) + SVN__LOWER_7BITS_SET;
 
-  return (r_test & n_test & BIT_7_SET) != BIT_7_SET;
+  return (r_test & n_test & SVN__BIT_7_SET) != SVN__BIT_7_SET;
 }
 #endif
 

Modified: subversion/branches/master-passphrase/subversion/libsvn_diff/parse-diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/libsvn_diff/parse-diff.c?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/libsvn_diff/parse-diff.c (original)
+++ subversion/branches/master-passphrase/subversion/libsvn_diff/parse-diff.c Wed Sep 12 14:43:54 2012
@@ -1284,8 +1284,7 @@ svn_diff_parse_next_patch(svn_patch_t **
       /* Run the state machine. */
       for (i = 0; i < (sizeof(transitions) / sizeof(transitions[0])); i++)
         {
-          if (line->len > strlen(transitions[i].expected_input)
-              && starts_with(line->data, transitions[i].expected_input)
+          if (starts_with(line->data, transitions[i].expected_input)
               && state == transitions[i].required_state)
             {
               SVN_ERR(transitions[i].fn(&state, line->data, *patch,
@@ -1302,19 +1301,24 @@ svn_diff_parse_next_patch(svn_patch_t **
         }
       else if (state == state_git_tree_seen && line_after_tree_header_read)
         {
-          /* We have a valid diff header for a patch with only tree changes.
-           * Rewind to the start of the line just read, so subsequent calls
-           * to this function don't end up skipping the line -- it may
-           * contain a patch. */
-          SVN_ERR(svn_io_file_seek(patch_file->apr_file, APR_SET, &last_line,
-                                   scratch_pool));
-          break;
+          /* git patches can contain an index line after the file mode line */
+          if (!starts_with(line->data, "index "))
+          {
+            /* We have a valid diff header for a patch with only tree changes.
+             * Rewind to the start of the line just read, so subsequent calls
+             * to this function don't end up skipping the line -- it may
+             * contain a patch. */
+            SVN_ERR(svn_io_file_seek(patch_file->apr_file, APR_SET, &last_line,
+                    scratch_pool));
+            break;
+          }
         }
       else if (state == state_git_tree_seen)
         {
           line_after_tree_header_read = TRUE;
         }
-      else if (! valid_header_line && state != state_start)
+      else if (! valid_header_line && state != state_start
+               && !starts_with(line->data, "index "))
         {
           /* We've encountered an invalid diff header.
            *

Modified: subversion/branches/master-passphrase/subversion/libsvn_fs/fs-loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/libsvn_fs/fs-loader.c?rev=1383980&r1=1383979&r2=1383980&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/branches/master-passphrase/subversion/libsvn_fs/fs-loader.c Wed Sep 12 14:43:54 2012
@@ -601,7 +601,8 @@ svn_fs_pack(const char *path,
 
   SVN_MUTEX__WITH_LOCK(common_pool_lock,
                        vtable->pack_fs(fs, path, notify_func, notify_baton,
-                                       cancel_func, cancel_baton, pool));
+                                       cancel_func, cancel_baton, pool,
+                                       common_pool));
   return SVN_NO_ERROR;
 }
 
@@ -623,6 +624,17 @@ svn_fs_recover(const char *path,
                                          pool));
 }
 
+svn_error_t *
+svn_fs_freeze(svn_fs_t *fs,
+              svn_error_t *(*freeze_body)(void *baton, apr_pool_t *pool),
+              void *baton,
+              apr_pool_t *pool)
+{
+  SVN_ERR(fs->vtable->freeze(fs, freeze_body, baton, pool));
+
+  return SVN_NO_ERROR;
+}
+
 
 /* --- Berkeley-specific functions --- */