subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From i...@apache.org
Subject svn commit: r1516837 [9/13] - in /subversion/branches/reuse-ra-session: ./ build/ac-macros/ build/generator/ build/generator/swig/ build/generator/templates/ contrib/client-side/emacs/ doc/programmer/ notes/http-and-webdav/ subversion/ subversion/bindi...
Date Fri, 23 Aug 2013 13:12:25 GMT
Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_client_cert_providers.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_client_cert_providers.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_client_cert_providers.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_client_cert_providers.c Fri Aug 23 13:12:18 2013
@@ -29,6 +29,8 @@
 /*** Includes. ***/
 
 #include <apr_pools.h>
+
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_auth.h"
 #include "svn_error.h"

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_client_cert_pw_providers.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_client_cert_pw_providers.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_client_cert_pw_providers.c Fri Aug 23 13:12:18 2013
@@ -25,6 +25,7 @@
 
 #include <apr_pools.h>
 
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_auth.h"
 #include "svn_error.h"
@@ -33,7 +34,6 @@
 
 #include "private/svn_auth_private.h"
 
-#include "svn_private_config.h"
 
 /*-----------------------------------------------------------------------*/
 /* File provider                                                         */

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_server_trust_providers.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_server_trust_providers.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_server_trust_providers.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/ssl_server_trust_providers.c Fri Aug 23 13:12:18 2013
@@ -24,6 +24,7 @@
 
 #include <apr_pools.h>
 
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_auth.h"
 #include "svn_error.h"
@@ -78,13 +79,7 @@ ssl_server_trust_file_first_credentials(
       failstr = svn_hash_gets(creds_hash, AUTHN_FAILURES_KEY);
 
       if (failstr)
-        {
-          char *endptr;
-          unsigned long tmp_ulong = strtoul(failstr->data, &endptr, 10);
-
-          if (*endptr == '\0')
-            last_failures = (apr_uint32_t) tmp_ulong;
-        }
+        SVN_ERR(svn_cstring_atoui(&last_failures, failstr->data));
 
       /* If the cert is trusted and there are no new failures, we
        * accept it by clearing all failures. */

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/stream.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/stream.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/stream.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/stream.c Fri Aug 23 13:12:18 2013
@@ -1657,7 +1657,7 @@ svn_string_from_stream(svn_string_t **re
 }
 
 
-/* These are somewhat arbirary, if we ever get good empirical data as to
+/* These are somewhat arbitrary, if we ever get good empirical data as to
    actually valid values, feel free to update them. */
 #define BUFFER_BLOCK_SIZE 1024
 #define BUFFER_MAX_SIZE 100000
@@ -1665,7 +1665,9 @@ svn_string_from_stream(svn_string_t **re
 svn_stream_t *
 svn_stream_buffered(apr_pool_t *result_pool)
 {
-  return svn_stream__from_spillbuf(BUFFER_BLOCK_SIZE, BUFFER_MAX_SIZE,
+  return svn_stream__from_spillbuf(svn_spillbuf__create(BUFFER_BLOCK_SIZE,
+                                                        BUFFER_MAX_SIZE,
+                                                        result_pool),
                                    result_pool);
 }
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/string.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/string.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/string.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/string.c Fri Aug 23 13:12:18 2013
@@ -418,6 +418,17 @@ svn_stringbuf_create_from_string(const s
   return svn_stringbuf_ncreate(str->data, str->len, pool);
 }
 
+svn_stringbuf_t *
+svn_stringbuf_create_wrap(char *str, apr_pool_t *pool)
+{
+  svn_stringbuf_t *result = apr_palloc(pool, sizeof(*result));
+  result->pool = pool;
+  result->data = str;
+  result->len = strlen(str);
+  result->blocksize = result->len + 1;
+
+  return result;
+}
 
 svn_stringbuf_t *
 svn_stringbuf_createv(apr_pool_t *pool, const char *fmt, va_list ap)
@@ -595,6 +606,21 @@ svn_stringbuf_appendbytes(svn_stringbuf_
                                   to null-terminate. */
 }
 
+void
+svn_stringbuf_appendfill(svn_stringbuf_t *str,
+                         char byte,
+                         apr_size_t count)
+{
+  apr_size_t new_len = str->len + count;
+  svn_stringbuf_ensure(str, new_len);
+
+  memset(str->data + str->len, byte, count);
+
+  /* update buffer length and always NUL-terminate it */
+  str->len = new_len;
+  str->data[new_len] = '\0';
+}
+
 
 void
 svn_stringbuf_appendstr(svn_stringbuf_t *targetstr,
@@ -1196,6 +1222,86 @@ svn__i64toa_sep(apr_int64_t number, char
   return apr_pstrdup(pool, buffer);
 }
 
+apr_size_t
+svn__ui64tobase36(char *dest, apr_uint64_t value)
+{
+  char *dest_start = dest;
+  if (value < 10)
+    {
+      /* pretty frequent and trivial case. Make it fast. */
+      *(dest++) = (char)(value) + '0';
+    }
+  else
+    {
+      char buffer[SVN_INT64_BUFFER_SIZE];
+      char *p = buffer;
+
+      /* write result as little-endian to buffer */
+      while (value > 0)
+        {
+          char c = (char)(value % 36);
+          value /= 36;
+
+          *p = (c <= 9) ? (c + '0') : (c - 10 + 'a');
+          ++p;
+        }
+
+      /* copy as big-endian to DEST */
+      while (p > buffer)
+        *(dest++) = *(--p);
+    }
+
+  *dest = '\0';
+  return dest - dest_start;
+}
+
+apr_uint64_t
+svn__base36toui64(const char **next, const char *source)
+{
+  apr_uint64_t result = 0;
+  apr_uint64_t factor = 1;
+  int i  = 0;
+  char digits[SVN_INT64_BUFFER_SIZE];
+
+  /* convert digits to numerical values and count the number of places.
+   * Also, prevent buffer overflow. */
+  while (i < sizeof(digits))
+    {
+      char c = *source;
+      if (c < 'a')
+        {
+          /* includes detection of NUL terminator */
+          if (c < '0' || c > '9')
+            break;
+
+          c -= '0';
+        }
+      else
+        {
+          if (c < 'a' || c > 'z')
+            break;
+
+          c -= 'a' - 10;
+        }
+
+      digits[i++] = c;
+      source++;
+    }
+
+  /* fold digits into the result */
+  while (i > 0)
+    {
+      result += factor * (apr_uint64_t)digits[--i];
+      factor *= 36;
+    }
+
+  if (next)
+    *next = source;
+
+  return result;
+}
+
+
 unsigned int
 svn_cstring__similarity(const char *stra, const char *strb,
                         svn_membuf_t *buffer, apr_size_t *rlcs)
@@ -1301,3 +1407,67 @@ svn_string__similarity(const svn_string_
   else
     return 1000;
 }
+
+apr_size_t
+svn_cstring__match_length(const char *a,
+                          const char *b,
+                          apr_size_t max_len)
+{
+  apr_size_t pos = 0;
+
+#if SVN_UNALIGNED_ACCESS_IS_OK
+
+  /* Chunky processing is so much faster ...
+   *
+   * We can't make this work on architectures that require aligned access
+   * because A and B will probably have different alignment. So, skipping
+   * the first few chars until alignment is reached is not an option.
+   */
+  for (; pos + sizeof(apr_size_t) <= max_len; pos += sizeof(apr_size_t))
+    if (*(const apr_size_t*)(a + pos) != *(const apr_size_t*)(b + pos))
+      break;
+
+#endif
+
+  for (; pos < max_len; ++pos)
+    if (a[pos] != b[pos])
+      break;
+
+  return pos;
+}
+
+apr_size_t
+svn_cstring__reverse_match_length(const char *a,
+                                  const char *b,
+                                  apr_size_t max_len)
+{
+  apr_size_t pos = 0;
+
+#if SVN_UNALIGNED_ACCESS_IS_OK
+
+  /* Chunky processing is so much faster ...
+   *
+   * We can't make this work on architectures that require aligned access
+   * because A and B will probably have different alignment. So, skipping
+   * the first few chars until alignment is reached is not an option.
+   */
+  for (pos = sizeof(apr_size_t); pos <= max_len; pos += sizeof(apr_size_t))
+    if (*(const apr_size_t*)(a - pos) != *(const apr_size_t*)(b - pos))
+      break;
+
+  pos -= sizeof(apr_size_t);
+
+#endif
+
+  /* If we find a mismatch at -pos, pos-1 characters matched.
+   */
+  while (++pos <= max_len)
+    if (a[0-pos] != b[0-pos])
+      return pos - 1;
+
+  /* No mismatch found -> at least MAX_LEN matching chars.
+   */
+  return max_len;
+}
+
+

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/subst.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/subst.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/subst.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/subst.c Fri Aug 23 13:12:18 2013
@@ -33,6 +33,7 @@
 #include <apr_file_io.h>
 #include <apr_strings.h>
 
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_cmdline.h"
 #include "svn_types.h"
@@ -47,8 +48,6 @@
 #include "svn_pools.h"
 #include "private/svn_io_private.h"
 
-#include "svn_private_config.h"
-
 #include "private/svn_string_private.h"
 #include "private/svn_eol_private.h"
 
@@ -1960,7 +1959,11 @@ svn_subst_translate_string2(svn_string_t
       return SVN_NO_ERROR;
     }
 
-  if (encoding)
+  if (encoding && !strcmp(encoding, "UTF-8")) 
+    {
+      val_utf8 = value->data;
+    }
+  else if (encoding)
     {
       SVN_ERR(svn_utf_cstring_to_utf8_ex2(&val_utf8, value->data,
                                           encoding, scratch_pool));

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/temp_serializer.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/temp_serializer.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/temp_serializer.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/temp_serializer.c Fri Aug 23 13:12:18 2013
@@ -279,6 +279,26 @@ svn_temp_serializer__pop(svn_temp_serial
   context->recycler = old;
 }
 
+void
+svn_temp_serializer__add_leaf(svn_temp_serializer__context_t *context,
+                              const void * const * source_struct,
+                              apr_size_t struct_size)
+{
+  const void *source = *source_struct;
+
+  /* the serialized structure must be properly aligned */
+  if (source)
+    align_buffer_end(context);
+
+  /* Store the offset at which the struct data that will the appended.
+   * Write 0 for NULL pointers. */
+  store_current_end_pointer(context, source_struct);
+
+  /* finally, actually append the struct contents */
+  if (*source_struct)
+    svn_stringbuf_appendbytes(context->buffer, source, struct_size);
+}
+
 /* Serialize a string referenced from the current structure within the
  * serialization CONTEXT. S must be a reference to the char* pointer in
  * the original structure so that the correspondence in the serialized

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/types.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/types.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/types.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/types.c Fri Aug 23 13:12:18 2013
@@ -24,12 +24,12 @@
 #include <apr_pools.h>
 #include <apr_uuid.h>
 
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_types.h"
 #include "svn_error.h"
 #include "svn_string.h"
 #include "svn_props.h"
-#include "svn_private_config.h"
 
 #include "private/svn_dep_compat.h"
 #include "private/svn_string_private.h"

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/username_providers.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/username_providers.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/username_providers.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/username_providers.c Fri Aug 23 13:12:18 2013
@@ -28,6 +28,8 @@
 /*** Includes. ***/
 
 #include <apr_pools.h>
+
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_auth.h"
 #include "svn_error.h"

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/utf.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/utf.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/utf.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/utf.c Fri Aug 23 13:12:18 2013
@@ -32,13 +32,13 @@
 #include <apr_xlate.h>
 #include <apr_atomic.h>
 
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_string.h"
 #include "svn_error.h"
 #include "svn_pools.h"
 #include "svn_ctype.h"
 #include "svn_utf.h"
-#include "svn_private_config.h"
 #include "win32_xlate.h"
 
 #include "private/svn_utf_private.h"
@@ -212,6 +212,7 @@ xlate_alloc_handle(xlate_handle_node_t *
 {
   apr_status_t apr_err;
   apr_xlate_t *handle;
+  const char *name;
 
   /* The error handling doesn't support the following cases, since we don't
      use them currently.  Catch this here. */
@@ -224,8 +225,10 @@ xlate_alloc_handle(xlate_handle_node_t *
 #if defined(WIN32)
   apr_err = svn_subr__win32_xlate_open((win32_xlate_t **)&handle, topage,
                                        frompage, pool);
+  name = "win32-xlate: ";
 #else
   apr_err = apr_xlate_open(&handle, topage, frompage, pool);
+  name = "APR: ";
 #endif
 
   if (APR_STATUS_IS_EINVAL(apr_err) || APR_STATUS_IS_ENOTIMPL(apr_err))
@@ -233,6 +236,8 @@ xlate_alloc_handle(xlate_handle_node_t *
   else if (apr_err != APR_SUCCESS)
     {
       const char *errstr;
+      char apr_strerr[512];
+
       /* Can't use svn_error_wrap_apr here because it calls functions in
          this file, leading to infinite recursion. */
       if (frompage == SVN_APR_LOCALE_CHARSET)
@@ -248,7 +253,13 @@ xlate_alloc_handle(xlate_handle_node_t *
                               _("Can't create a character converter from "
                                 "'%s' to '%s'"), frompage, topage);
 
-      return svn_error_create(apr_err, NULL, errstr);
+      /* Just put the error on the stack, since svn_error_create duplicates it
+         later.  APR_STRERR will be in the local encoding, not in UTF-8, though.
+       */
+      svn_strerror(apr_err, apr_strerr, sizeof(apr_strerr));
+      return svn_error_createf(SVN_ERR_PLUGIN_LOAD_FAILURE, 
+                               svn_error_create(apr_err, NULL, apr_strerr),
+                               "%s%s", name, errstr);
     }
 
   /* Allocate and initialize the node. */
@@ -469,58 +480,6 @@ get_uton_xlate_handle_node(xlate_handle_
 }
 
 
-/* Copy LEN bytes of SRC, converting non-ASCII and zero bytes to ?\nnn
-   sequences, allocating the result in POOL. */
-static const char *
-fuzzy_escape(const char *src, apr_size_t len, apr_pool_t *pool)
-{
-  const char *src_orig = src, *src_end = src + len;
-  apr_size_t new_len = 0;
-  char *new;
-  const char *new_orig;
-
-  /* First count how big a dest string we'll need. */
-  while (src < src_end)
-    {
-      if (! svn_ctype_isascii(*src) || *src == '\0')
-        new_len += 5;  /* 5 slots, for "?\XXX" */
-      else
-        new_len += 1;  /* one slot for the 7-bit char */
-
-      src++;
-    }
-
-  /* Allocate that amount, plus one slot for '\0' character. */
-  new = apr_palloc(pool, new_len + 1);
-
-  new_orig = new;
-
-  /* And fill it up. */
-  while (src_orig < src_end)
-    {
-      if (! svn_ctype_isascii(*src_orig) || src_orig == '\0')
-        {
-          /* This is the same format as svn_xml_fuzzy_escape uses, but that
-             function escapes different characters.  Please keep in sync!
-             ### If we add another fuzzy escape somewhere, we should abstract
-             ### this out to a common function. */
-          apr_snprintf(new, 6, "?\\%03u", (unsigned char) *src_orig);
-          new += 5;
-        }
-      else
-        {
-          *new = *src_orig;
-          new += 1;
-        }
-
-      src_orig++;
-    }
-
-  *new = '\0';
-
-  return new_orig;
-}
-
 /* Convert SRC_LENGTH bytes of SRC_DATA in NODE->handle, store the result
    in *DEST, which is allocated in POOL. */
 static svn_error_t *
@@ -598,8 +557,8 @@ convert_to_stringbuf(xlate_handle_node_t
           (pool, _("Can't convert string from '%s' to '%s':"),
            node->frompage, node->topage);
 
-      err = svn_error_create(apr_err, NULL, fuzzy_escape(src_data,
-                                                         src_length, pool));
+      err = svn_error_create(
+          apr_err, NULL, svn_utf__fuzzy_escape(src_data, src_length, pool));
       return svn_error_create(apr_err, err, errstr);
     }
   /* Else, exited due to success.  Trim the result buffer down to the
@@ -996,7 +955,7 @@ svn_utf__cstring_from_utf8_fuzzy(const c
   const char *escaped, *converted;
   svn_error_t *err;
 
-  escaped = fuzzy_escape(src, strlen(src), pool);
+  escaped = svn_utf__fuzzy_escape(src, strlen(src), pool);
 
   /* Okay, now we have a *new* UTF-8 string, one that's guaranteed to
      contain only 7-bit bytes :-).  Recode to native... */

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/utf8proc.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/utf8proc.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/utf8proc.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/utf8proc.c Fri Aug 23 13:12:18 2013
@@ -37,7 +37,6 @@
 const char *svn_utf__utf8proc_version(void)
 {
   /* Unused static function warning removal hack. */
-  UNUSED(utf8proc_codepoint_valid);
   UNUSED(utf8proc_NFD);
   UNUSED(utf8proc_NFC);
   UNUSED(utf8proc_NFKD);
@@ -48,19 +47,21 @@ const char *svn_utf__utf8proc_version(vo
 
 
 
-/* Fill the given BUFFER with an NFD UCS-4 representation of the UTF-8
- * STRING. If LENGTH is SVN_UTF__UNKNOWN_LENGTH, assume STRING is
- * NUL-terminated; otherwise look only at the first LENGTH bytes in
+/* Fill the given BUFFER with decomposed UCS-4 representation of the
+ * UTF-8 STRING. If LENGTH is SVN_UTF__UNKNOWN_LENGTH, assume STRING
+ * is NUL-terminated; otherwise look only at the first LENGTH bytes in
  * STRING. Upon return, BUFFER->data points at an array of UCS-4
- * characters and *RESULT_LENGTH contains the length of the array.
+ * characters, and return the length of the array. TRANSFORM_FLAGS
+ * define exactly how the decomposition is performed.
  *
- * A returned error may indicate that STRING contains invalid UTF-8 or
- * invalid Unicode codepoints. Any error message comes from utf8proc.
+ * A negative return value is an utf8proc error code and may indicate
+ * that STRING contains invalid UTF-8 or was so long that an overflow
+ * occurred.
  */
-static svn_error_t *
-decompose_normalized(apr_size_t *result_length,
-                     const char *string, apr_size_t length,
-                     svn_membuf_t *buffer)
+static ssize_t
+unicode_decomposition(int transform_flags,
+                      const char *string, apr_size_t length,
+                      svn_membuf_t *buffer)
 {
   const int nullterm = (length == SVN_UTF__UNKNOWN_LENGTH
                         ? UTF8PROC_NULLTERM : 0);
@@ -71,23 +72,66 @@ decompose_normalized(apr_size_t *result_
       const ssize_t ucs4len = buffer->size / sizeof(*ucs4buf);
       const ssize_t result =
         utf8proc_decompose((const void*) string, length, ucs4buf, ucs4len,
-                           UTF8PROC_DECOMPOSE | UTF8PROC_STABLE | nullterm);
+                           UTF8PROC_DECOMPOSE | UTF8PROC_STABLE
+                           | transform_flags | nullterm);
 
-      if (result < 0)
-        return svn_error_create(SVN_ERR_UTF8PROC_ERROR, NULL,
-                                gettext(utf8proc_errmsg(result)));
-
-      if (result <= ucs4len)
-        {
-          *result_length = result;
-          return SVN_NO_ERROR;
-        }
+      if (result < 0 || result <= ucs4len)
+        return result;
 
       /* Increase the decomposition buffer size and retry */
       svn_membuf__ensure(buffer, result * sizeof(*ucs4buf));
     }
 }
 
+/* Fill the given BUFFER with an NFD UCS-4 representation of the UTF-8
+ * STRING. If LENGTH is SVN_UTF__UNKNOWN_LENGTH, assume STRING is
+ * NUL-terminated; otherwise look only at the first LENGTH bytes in
+ * STRING. Upon return, BUFFER->data points at an array of UCS-4
+ * characters and *RESULT_LENGTH contains the length of the array.
+ *
+ * A returned error may indicate that STRING contains invalid UTF-8 or
+ * invalid Unicode codepoints. Any error message comes from utf8proc.
+ */
+static svn_error_t *
+decompose_normalized(apr_size_t *result_length,
+                     const char *string, apr_size_t length,
+                     svn_membuf_t *buffer)
+{
+  ssize_t result = unicode_decomposition(0, string, length, buffer);
+  if (result < 0)
+    return svn_error_create(SVN_ERR_UTF8PROC_ERROR, NULL,
+                            gettext(utf8proc_errmsg(result)));
+  *result_length = result;
+  return SVN_NO_ERROR;
+}
+
+/* Fill the given BUFFER with an NFC UTF-8 representation of the UTF-8
+ * STRING. If LENGTH is SVN_UTF__UNKNOWN_LENGTH, assume STRING is
+ * NUL-terminated; otherwise look only at the first LENGTH bytes in
+ * STRING. Upon return, BUFFER->data points at a NUL-terminated string
+ * of UTF-8 characters.
+ *
+ * A returned error may indicate that STRING contains invalid UTF-8 or
+ * invalid Unicode codepoints. Any error message comes from utf8proc.
+ */
+static svn_error_t *
+normalize_cstring(apr_size_t *result_length,
+                  const char *string, apr_size_t length,
+                  svn_membuf_t *buffer)
+{
+  ssize_t result = unicode_decomposition(0, string, length, buffer);
+  if (result >= 0)
+    {
+      svn_membuf__resize(buffer, result * sizeof(apr_int32_t) + 1);
+      result = utf8proc_reencode(buffer->data, result,
+                                 UTF8PROC_COMPOSE | UTF8PROC_STABLE);
+    }
+  if (result < 0)
+    return svn_error_create(SVN_ERR_UTF8PROC_ERROR, NULL,
+                            gettext(utf8proc_errmsg(result)));
+  *result_length = result;
+  return SVN_NO_ERROR;
+}
 
 /* Compare two arrays of UCS-4 codes, BUFA of length LENA and BUFB of
  * length LENB. Return 0 if they're equal, a negative value if BUFA is
@@ -288,3 +332,181 @@ svn_utf__glob(svn_boolean_t *match,
   *match = !apr_fnmatch(pattern_buf->data, string_buf->data, 0);
   return SVN_NO_ERROR;
 }
+
+svn_boolean_t
+svn_utf__is_normalized(const char *string, apr_pool_t *scratch_pool)
+{
+  svn_error_t *err;
+  svn_membuf_t buffer;
+  apr_size_t result_length;
+  const apr_size_t length = strlen(string);
+  svn_membuf__create(&buffer, length * sizeof(apr_int32_t), scratch_pool);
+  err = normalize_cstring(&result_length, string, length, &buffer);
+  if (err)
+    {
+      svn_error_clear(err);
+      return FALSE;
+    }
+  return (length == result_length && 0 == strcmp(string, buffer.data));
+}
+
+const char *
+svn_utf__fuzzy_escape(const char *src, apr_size_t length, apr_pool_t *pool)
+{
+  /* Hexadecimal digits for code conversion. */
+  static const char digits[] = "0123456789ABCDEF";
+
+  /* Flags used for Unicode decomposition. */
+  static const int decomp_flags = (
+      UTF8PROC_COMPAT | UTF8PROC_STABLE | UTF8PROC_LUMP
+      | UTF8PROC_NLF2LF | UTF8PROC_STRIPCC | UTF8PROC_STRIPMARK);
+
+  svn_stringbuf_t *result;
+  svn_membuf_t buffer;
+  ssize_t decomp_length;
+  ssize_t len;
+
+  /* Decompose to a non-reversible compatibility format. */
+  svn_membuf__create(&buffer, length * sizeof(apr_int32_t), pool);
+  decomp_length = unicode_decomposition(decomp_flags, src, length, &buffer);
+  if (decomp_length < 0)
+    {
+      svn_membuf_t part;
+      apr_size_t done, prev;
+
+      /* The only other error we can receive here indicates an integer
+         overflow due to the length of the input string. Not very
+         likely, but we certainly shouldn't continue in that case. */
+      SVN_ERR_ASSERT_NO_RETURN(decomp_length == UTF8PROC_ERROR_INVALIDUTF8);
+
+      /* Break the decomposition into parts that are valid UTF-8, and
+         bytes that are not. Represent the invalid bytes in the target
+         erray by their negative value. This works because utf8proc
+         will not generate Unicode code points with values larger than
+         U+10FFFF. */
+      svn_membuf__create(&part, sizeof(apr_int32_t), pool);
+      decomp_length = 0;
+      done = prev = 0;
+      while (done < length)
+        {
+          apr_int32_t uc;
+
+          while (done < length)
+            {
+              len = utf8proc_iterate((uint8_t*)src + done, length - done, &uc);
+              if (len < 0)
+                break;
+              done += len;
+            }
+
+          /* Decompose the valid part */
+          if (done > prev)
+            {
+              len = unicode_decomposition(
+                  decomp_flags, src + prev, done - prev, &part);
+              SVN_ERR_ASSERT_NO_RETURN(len > 0);
+              svn_membuf__resize(
+                  &buffer, (decomp_length + len) * sizeof(apr_int32_t));
+              memcpy((apr_int32_t*)buffer.data + decomp_length,
+                     part.data, len * sizeof(apr_int32_t));
+              decomp_length += len;
+              prev = done;
+            }
+
+          /* What follows could be a valid UTF-8 sequence, but not
+             a valid Unicode character. */
+          if (done < length)
+            {
+              const char *last;
+
+              /* Determine the length of the UTF-8 sequence */
+              const char *const p = src + done;
+              len = utf8proc_utf8class[(uint8_t)*p];
+
+              /* Check if the multi-byte sequence is valid UTF-8. */
+              if (len > 1 && len <= length - done)
+                last = svn_utf__last_valid(p, len);
+              else
+                last = NULL;
+
+              /* Might not be a valid UTF-8 sequence at all */
+              if (!last || (last && last - p < len))
+                {
+                  uc = -((apr_int32_t)(*p & 0xff));
+                  len = 1;
+                }
+              else
+                {
+                  switch (len)
+                    {
+                      /* Decode the UTF-8 sequence without validation. */
+                    case 2:
+                      uc = ((p[0] & 0x1f) <<  6) + (p[1] & 0x3f);
+                      break;
+                    case 3:
+                      uc = (((p[0] & 0x0f) << 12) + ((p[1] & 0x3f) <<  6)
+                            + (p[2] & 0x3f));
+                      break;
+                    case 4:
+                      uc = (((p[0] & 0x07) << 18) + ((p[1] & 0x3f) << 12)
+                            + ((p[2] & 0x3f) <<  6) + (p[3] & 0x3f));
+                      break;
+                    default:
+                      SVN_ERR_ASSERT_NO_RETURN(
+                          !"Unexpected invalid UTF-8 byte");
+                    }
+
+                }
+
+              svn_membuf__resize(
+                  &buffer, (decomp_length + 1) * sizeof(apr_int32_t));
+              ((apr_int32_t*)buffer.data)[decomp_length++] = uc;
+              done += len;
+              prev = done;
+            }
+        }
+    }
+
+  /* Scan the result and deleting any combining diacriticals and
+     inserting placeholders where any non-ascii characters remain.  */
+  result = svn_stringbuf_create_ensure(decomp_length, pool);
+  for (len = 0; len < decomp_length; ++len)
+    {
+      const apr_int32_t cp = ((apr_int32_t*)buffer.data)[len];
+      if (cp > 0 && cp < 127)
+        svn_stringbuf_appendbyte(result, (char)cp);
+      else if (cp == 0)
+        svn_stringbuf_appendcstr(result, "\\0");
+      else if (cp < 0)
+        {
+          const apr_int32_t rcp = ((-cp) & 0xff);
+          svn_stringbuf_appendcstr(result, "?\\");
+          svn_stringbuf_appendbyte(result, digits[(rcp & 0x00f0) >> 4]);
+          svn_stringbuf_appendbyte(result, digits[(rcp & 0x000f)]);
+        }
+      else
+        {
+          if (utf8proc_codepoint_valid(cp))
+            {
+              const utf8proc_property_t *prop = utf8proc_get_property(cp);
+              if (prop->combining_class != 0)
+                continue;           /* Combining mark; ignore */
+              svn_stringbuf_appendcstr(result, "{U+");
+            }
+          else
+            svn_stringbuf_appendcstr(result, "{U?");
+          if (cp > 0xffff)
+            {
+              svn_stringbuf_appendbyte(result, digits[(cp & 0xf00000) >> 20]);
+              svn_stringbuf_appendbyte(result, digits[(cp & 0x0f0000) >> 16]);
+            }
+          svn_stringbuf_appendbyte(result, digits[(cp & 0xf000) >> 12]);
+          svn_stringbuf_appendbyte(result, digits[(cp & 0x0f00) >> 8]);
+          svn_stringbuf_appendbyte(result, digits[(cp & 0x00f0) >> 4]);
+          svn_stringbuf_appendbyte(result, digits[(cp & 0x000f)]);
+          svn_stringbuf_appendbyte(result, '}');
+        }
+    }
+
+  return result->data;
+}

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/version.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/version.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/version.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/version.c Fri Aug 23 13:12:18 2013
@@ -75,8 +75,10 @@ svn_boolean_t svn_ver_equal(const svn_ve
 
 
 svn_error_t *
-svn_ver_check_list(const svn_version_t *my_version,
-                   const svn_version_checklist_t *checklist)
+svn_ver_check_list2(const svn_version_t *my_version,
+                    const svn_version_checklist_t *checklist,
+                    svn_boolean_t (*comparator)(const svn_version_t *,
+                                                const svn_version_t *))
 {
   svn_error_t *err = SVN_NO_ERROR;
   int i;
@@ -84,12 +86,17 @@ svn_ver_check_list(const svn_version_t *
   for (i = 0; checklist[i].label != NULL; ++i)
     {
       const svn_version_t *lib_version = checklist[i].version_query();
-      if (!svn_ver_compatible(my_version, lib_version))
+      if (!comparator(my_version, lib_version))
         err = svn_error_createf(SVN_ERR_VERSION_MISMATCH, err,
-                                _("Version mismatch in '%s':"
+                                _("Version mismatch in '%s'%s:"
                                   " found %d.%d.%d%s,"
                                   " expected %d.%d.%d%s"),
                                 checklist[i].label,
+                                comparator == svn_ver_equal
+                                ? _(" (expecting equality)")
+                                : comparator == svn_ver_compatible
+                                ? _(" (expecting compatibility)")
+                                : "",
                                 lib_version->major, lib_version->minor,
                                 lib_version->patch, lib_version->tag,
                                 my_version->major, my_version->minor,

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/win32_crypto.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/win32_crypto.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/win32_crypto.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/win32_crypto.c Fri Aug 23 13:12:18 2013
@@ -32,6 +32,8 @@ typedef int win32_crypto__dummy;
 
 #include <apr_pools.h>
 #include <apr_base64.h>
+
+#include "svn_private_config.h"
 #include "svn_auth.h"
 #include "svn_error.h"
 #include "svn_hash.h"
@@ -42,8 +44,6 @@ typedef int win32_crypto__dummy;
 
 #include "private/svn_auth_private.h"
 
-#include "svn_private_config.h"
-
 #include <wincrypt.h>
 
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_subr/win32_xlate.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_subr/win32_xlate.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_subr/win32_xlate.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_subr/win32_xlate.c Fri Aug 23 13:12:18 2013
@@ -118,11 +118,11 @@ get_page_id_from_name(UINT *page_id_p, c
     }
 
   err = svn_atomic__init_once(&com_initialized, initialize_com, NULL, pool);
-
   if (err)
     {
+      apr_status_t saved = err->apr_err;
       svn_error_clear(err);
-      return APR_EGENERAL;
+      return saved; /* probably SVN_ERR_ATOMIC_INIT_FAILURE */
     }
 
   hr = CoCreateInstance(&CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER,

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_crawler.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_crawler.c Fri Aug 23 13:12:18 2013
@@ -30,6 +30,7 @@
 #include <apr_file_io.h>
 #include <apr_hash.h>
 
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_types.h"
 #include "svn_pools.h"
@@ -47,8 +48,6 @@
 #include "workqueue.h"
 #include "conflicts.h"
 
-#include "svn_private_config.h"
-
 
 /* Helper for report_revisions_and_depths().
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_files.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_files.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_files.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_files.c Fri Aug 23 13:12:18 2013
@@ -32,6 +32,7 @@
 #include <apr_file_io.h>
 #include <apr_strings.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_error.h"
 #include "svn_io.h"
@@ -44,7 +45,6 @@
 #include "entries.h"
 #include "lock.h"
 
-#include "svn_private_config.h"
 #include "private/svn_wc_private.h"
 
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_ops.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/adm_ops.c Fri Aug 23 13:12:18 2013
@@ -36,6 +36,7 @@
 #include <apr_time.h>
 #include <apr_errno.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_pools.h"
 #include "svn_string.h"
@@ -53,7 +54,6 @@
 #include "conflicts.h"
 #include "workqueue.h"
 
-#include "svn_private_config.h"
 #include "private/svn_subr_private.h"
 #include "private/svn_dep_compat.h"
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/conflicts.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/conflicts.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/conflicts.c Fri Aug 23 13:12:18 2013
@@ -32,6 +32,7 @@
 #include <apr_hash.h>
 #include <apr_errno.h>
 
+#include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_types.h"
 #include "svn_pools.h"
@@ -52,8 +53,6 @@
 #include "private/svn_skel.h"
 #include "private/svn_string_private.h"
 
-#include "svn_private_config.h"
-
 /* --------------------------------------------------------------------
  * Conflict skel management
  */

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/copy.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/copy.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/copy.c Fri Aug 23 13:12:18 2013
@@ -28,6 +28,8 @@
 /*** Includes. ***/
 
 #include <string.h>
+
+#include "svn_private_config.h"
 #include "svn_pools.h"
 #include "svn_error.h"
 #include "svn_dirent_uri.h"
@@ -39,7 +41,6 @@
 #include "props.h"
 #include "conflicts.h"
 
-#include "svn_private_config.h"
 #include "private/svn_wc_private.h"
 
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/deprecated.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/deprecated.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/deprecated.c Fri Aug 23 13:12:18 2013
@@ -28,6 +28,7 @@
 
 #include <apr_md5.h>
 
+#include "svn_private_config.h"
 #include "svn_wc.h"
 #include "svn_subst.h"
 #include "svn_pools.h"
@@ -47,8 +48,6 @@
 #include "translate.h"
 #include "workqueue.h"
 
-#include "svn_private_config.h"
-
 /* baton for traversal_info_update */
 struct traversal_info_update_baton
 {

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/diff_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/diff_editor.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/diff_editor.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/diff_editor.c Fri Aug 23 13:12:18 2013
@@ -57,6 +57,7 @@
 
 #include <assert.h>
 
+#include "svn_private_config.h"
 #include "svn_error.h"
 #include "svn_pools.h"
 #include "svn_dirent_uri.h"
@@ -75,8 +76,6 @@
 #include "translate.h"
 #include "diff.h"
 
-#include "svn_private_config.h"
-
 /*-------------------------------------------------------------------------*/
 
 
@@ -474,14 +473,18 @@ svn_wc__diff_base_working_diff(svn_wc__d
     {
       const svn_io_dirent2_t *dirent;
 
+      /* Verify truename to mimic status for iota/IOTA difference on Windows */
       SVN_ERR(svn_io_stat_dirent2(&dirent, local_abspath,
-                                  FALSE /* verify truename */,
+                                  TRUE /* verify truename */,
                                   TRUE /* ingore_enoent */,
                                   scratch_pool, scratch_pool));
 
-      if (dirent->kind == svn_node_file
-          && dirent->filesize == recorded_size
-          && dirent->mtime == recorded_time)
+      /* If a file does not exist on disk (missing/obstructed) then we
+         can't provide a text diff */
+      if (dirent->kind != svn_node_file
+          || (dirent->kind == svn_node_file
+              && dirent->filesize == recorded_size
+              && dirent->mtime == recorded_time))
         {
           files_same = TRUE;
         }

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/diff_local.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/diff_local.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/diff_local.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/diff_local.c Fri Aug 23 13:12:18 2013
@@ -31,6 +31,7 @@
 
 #include <apr_hash.h>
 
+#include "svn_private_config.h"
 #include "svn_error.h"
 #include "svn_pools.h"
 #include "svn_dirent_uri.h"
@@ -45,8 +46,6 @@
 #include "translate.h"
 #include "diff.h"
 
-#include "svn_private_config.h"
-
 /*-------------------------------------------------------------------------*/
 
 /* Baton containing the state of a directory
@@ -195,23 +194,15 @@ diff_status_callback(void *baton,
   struct diff_baton *eb = baton;
   svn_wc__db_t *db = eb->db;
 
-  switch (status->node_status)
-    {
-      case svn_wc_status_unversioned:
-      case svn_wc_status_ignored:
-        return SVN_NO_ERROR; /* No diff */
-
-      case svn_wc_status_conflicted:
-        if (status->text_status == svn_wc_status_none
-            && status->prop_status == svn_wc_status_none)
-          {
-            /* Node is an actual only node describing a tree conflict */
-            return SVN_NO_ERROR;
-          }
-        break;
+  if (! status->versioned)
+    return SVN_NO_ERROR; /* unversioned (includes dir externals) */
 
-      default:
-        break; /* Go check other conditions */
+  if (status->node_status == svn_wc_status_conflicted
+      && status->text_status == svn_wc_status_none
+      && status->prop_status == svn_wc_status_none)
+    {
+      /* Node is an actual only node describing a tree conflict */
+      return SVN_NO_ERROR;
     }
 
   /* Not text/prop modified, not copied. Easy out */

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/entries.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/entries.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/entries.c Fri Aug 23 13:12:18 2013
@@ -26,6 +26,7 @@
 
 #include <apr_strings.h>
 
+#include "svn_private_config.h"
 #include "svn_error.h"
 #include "svn_types.h"
 #include "svn_time.h"
@@ -45,7 +46,6 @@
 #include "wc_db.h"
 #include "wc-queries.h"  /* for STMT_*  */
 
-#include "svn_private_config.h"
 #include "private/svn_wc_private.h"
 #include "private/svn_sqlite.h"
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/externals.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/externals.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/externals.c Fri Aug 23 13:12:18 2013
@@ -32,6 +32,7 @@
 #include <apr_general.h>
 #include <apr_uri.h>
 
+#include "svn_private_config.h"
 #include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_error.h"
@@ -53,8 +54,6 @@
 #include "translate.h"
 #include "workqueue.h"
 #include "conflicts.h"
-
-#include "svn_private_config.h"
 
 /** Externals **/
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/info.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/info.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/info.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/info.c Fri Aug 23 13:12:18 2013
@@ -21,6 +21,7 @@
  * @endcopyright
  */
 
+#include "svn_private_config.h"
 #include "svn_dirent_uri.h"
 #include "svn_hash.h"
 #include "svn_path.h"
@@ -29,7 +30,6 @@
 
 #include "wc.h"
 
-#include "svn_private_config.h"
 #include "private/svn_wc_private.h"
 
 
@@ -555,7 +555,7 @@ svn_wc__get_info(svn_wc_context_t *wc_ct
                                                   &repos_uuid,
                                                   wc_ctx->db,
                                                   svn_dirent_dirname(
-                                                            local_abspath,
+                                                            this_abspath,
                                                             iterpool),
                                                   scratch_pool,
                                                   iterpool));

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/lock.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/lock.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/lock.c Fri Aug 23 13:12:18 2013
@@ -26,6 +26,7 @@
 #include <apr_pools.h>
 #include <apr_time.h>
 
+#include "svn_private_config.h"
 #include "svn_pools.h"
 #include "svn_dirent_uri.h"
 #include "svn_path.h"
@@ -39,7 +40,6 @@
 #include "props.h"
 #include "wc_db.h"
 
-#include "svn_private_config.h"
 #include "private/svn_wc_private.h"
 
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/node.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/node.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/node.c Fri Aug 23 13:12:18 2013
@@ -38,6 +38,7 @@
 #include <apr_pools.h>
 #include <apr_time.h>
 
+#include "svn_private_config.h"
 #include "svn_pools.h"
 #include "svn_dirent_uri.h"
 #include "svn_path.h"
@@ -49,7 +50,6 @@
 #include "entries.h"
 #include "wc_db.h"
 
-#include "svn_private_config.h"
 #include "private/svn_wc_private.h"
 
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/old-and-busted.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/old-and-busted.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/old-and-busted.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/old-and-busted.c Fri Aug 23 13:12:18 2013
@@ -23,6 +23,7 @@
 
 
 
+#include "svn_private_config.h"
 #include "svn_time.h"
 #include "svn_xml.h"
 #include "svn_dirent_uri.h"
@@ -37,7 +38,6 @@
 #include "lock.h"
 
 #include "private/svn_wc_private.h"
-#include "svn_private_config.h"
 
 
 /* Within the (old) entries file, boolean values have a specific string

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/props.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/props.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/props.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/props.c Fri Aug 23 13:12:18 2013
@@ -33,6 +33,7 @@
 #include <apr_strings.h>
 #include <apr_general.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_string.h"
 #include "svn_pools.h"
@@ -60,8 +61,6 @@
 #include "workqueue.h"
 #include "conflicts.h"
 
-#include "svn_private_config.h"
-
 /* Forward declaration.  */
 static svn_error_t *
 prop_conflict_from_skel(const svn_string_t **conflict_desc,

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/revert.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/revert.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/revert.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/revert.c Fri Aug 23 13:12:18 2013
@@ -29,6 +29,7 @@
 #include <apr_pools.h>
 #include <apr_tables.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_pools.h"
 #include "svn_string.h"
@@ -43,7 +44,6 @@
 #include "adm_files.h"
 #include "workqueue.h"
 
-#include "svn_private_config.h"
 #include "private/svn_io_private.h"
 #include "private/svn_wc_private.h"
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/status.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/status.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/status.c Fri Aug 23 13:12:18 2013
@@ -30,6 +30,7 @@
 #include <apr_file_io.h>
 #include <apr_hash.h>
 
+#include "svn_private_config.h"
 #include "svn_pools.h"
 #include "svn_types.h"
 #include "svn_delta.h"
@@ -43,8 +44,6 @@
 #include "svn_hash.h"
 #include "svn_sorts.h"
 
-#include "svn_private_config.h"
-
 #include "wc.h"
 #include "props.h"
 #include "entries.h"

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/translate.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/translate.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/translate.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/translate.c Fri Aug 23 13:12:18 2013
@@ -30,6 +30,7 @@
 #include <apr_file_io.h>
 #include <apr_strings.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_string.h"
 #include "svn_dirent_uri.h"
@@ -45,11 +46,9 @@
 #include "translate.h"
 #include "props.h"
 
-#include "svn_private_config.h"
 #include "private/svn_wc_private.h"
 
 
-
 /* */
 static svn_error_t *
 read_handler_unsupported(void *baton, char *buffer, apr_size_t *len)

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/update_editor.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/update_editor.c Fri Aug 23 13:12:18 2013
@@ -32,6 +32,7 @@
 #include <apr_tables.h>
 #include <apr_strings.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_pools.h"
 #include "svn_hash.h"
@@ -40,7 +41,6 @@
 #include "svn_path.h"
 #include "svn_error.h"
 #include "svn_io.h"
-#include "svn_private_config.h"
 #include "svn_time.h"
 
 #include "wc.h"
@@ -1011,9 +1011,13 @@ window_handler(svn_txdelta_window_t *win
 
   if (err)
     {
-      /* We failed to apply the delta; clean up the temporary file.  */
-      svn_error_clear(svn_io_remove_file2(hb->new_text_base_tmp_abspath, TRUE,
-                                          hb->pool));
+      /* We failed to apply the delta; clean up the temporary file if it
+         already created by lazy_open_target(). */
+      if (hb->new_text_base_tmp_abspath)
+        {
+          svn_error_clear(svn_io_remove_file2(hb->new_text_base_tmp_abspath,
+                                              TRUE, hb->pool));
+        }
     }
   else
     {

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/upgrade.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/upgrade.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/upgrade.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/upgrade.c Fri Aug 23 13:12:18 2013
@@ -23,6 +23,7 @@
 
 #include <apr_pools.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_pools.h"
 #include "svn_dirent_uri.h"
@@ -38,7 +39,6 @@
 #include "wc-queries.h"  /* for STMT_*  */
 #include "workqueue.h"
 
-#include "svn_private_config.h"
 #include "private/svn_wc_private.h"
 #include "private/svn_sqlite.h"
 #include "private/svn_token.h"

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc.h?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc.h (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc.h Fri Aug 23 13:12:18 2013
@@ -157,6 +157,8 @@ extern "C" {
  * The bump to 31 added the inherited_props column in the NODES table.
  * Bumped in r1395109.
  *
+ * == 1.8.x shipped with format 31
+ * 
  * Please document any further format changes here.
  */
 

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db.c Fri Aug 23 13:12:18 2013
@@ -27,6 +27,7 @@
 #include <apr_pools.h>
 #include <apr_hash.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_error.h"
 #include "svn_dirent_uri.h"
@@ -48,7 +49,6 @@
 #include "workqueue.h"
 #include "token-map.h"
 
-#include "svn_private_config.h"
 #include "private/svn_sqlite.h"
 #include "private/svn_skel.h"
 #include "private/svn_wc_private.h"

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db.h?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db.h Fri Aug 23 13:12:18 2013
@@ -2124,7 +2124,7 @@ svn_wc__db_read_pristine_props(apr_hash_
  * paths relative to the repository root URL for cached inherited
  * properties and absolute working copy paths otherwise.
  *
- * If ACTUAL_PROPS is not NULL, then set *ACTUAL_PROPS to the actual
+ * If ACTUAL_PROPS is not NULL, then set *ACTUAL_PROPS to ALL the actual
  * properties stored on LOCAL_ABSPATH.
  *
  * Allocate @a *iprops in @a result_pool.  Use @a scratch_pool

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db_update_move.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db_update_move.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db_update_move.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db_update_move.c Fri Aug 23 13:12:18 2013
@@ -78,6 +78,7 @@
 
 #include <assert.h>
 
+#include "svn_private_config.h"
 #include "svn_checksum.h"
 #include "svn_dirent_uri.h"
 #include "svn_error.h"

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db_wcroot.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db_wcroot.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db_wcroot.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/wc_db_wcroot.c Fri Aug 23 13:12:18 2013
@@ -25,6 +25,7 @@
 
 #include <assert.h>
 
+#include "svn_private_config.h"
 #include "svn_dirent_uri.h"
 #include "svn_hash.h"
 #include "svn_path.h"
@@ -35,8 +36,6 @@
 #include "wc_db_private.h"
 #include "wc-queries.h"
 
-#include "svn_private_config.h"
-
 /* ### Same values as wc_db.c */
 #define SDB_FILE  "wc.db"
 #define UNKNOWN_WC_ID ((apr_int64_t) -1)

Modified: subversion/branches/reuse-ra-session/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_wc/workqueue.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_wc/workqueue.c Fri Aug 23 13:12:18 2013
@@ -23,6 +23,7 @@
 
 #include <apr_pools.h>
 
+#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_pools.h"
 #include "svn_dirent_uri.h"
@@ -37,7 +38,6 @@
 #include "conflicts.h"
 #include "translate.h"
 
-#include "svn_private_config.h"
 #include "private/svn_skel.h"
 
 

Modified: subversion/branches/reuse-ra-session/subversion/mod_authz_svn/mod_authz_svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/mod_authz_svn/mod_authz_svn.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/mod_authz_svn/mod_authz_svn.c (original)
+++ subversion/branches/reuse-ra-session/subversion/mod_authz_svn/mod_authz_svn.c Fri Aug 23 13:12:18 2013
@@ -806,14 +806,15 @@ access_checker(request_rec *r)
                                                     &authz_svn_module);
   const char *repos_path = NULL;
   const char *dest_repos_path = NULL;
-  int status;
+  int status, authn_required;
 
   /* We are not configured to run */
   if (!conf->anonymous
       || (! (conf->access_file || conf->repo_relative_access_file)))
     return DECLINED;
 
-  if (ap_some_auth_required(r))
+  authn_required = ap_some_auth_required(r);
+  if (authn_required)
     {
       /* It makes no sense to check if a location is both accessible
        * anonymous and by an authenticated user (in the same request!).
@@ -843,7 +844,7 @@ access_checker(request_rec *r)
       if (!conf->authoritative)
         return DECLINED;
 
-      if (!ap_some_auth_required(r))
+      if (!authn_required)
         log_access_verdict(APLOG_MARK, r, 0, repos_path, dest_repos_path);
 
       return HTTP_FORBIDDEN;

Modified: subversion/branches/reuse-ra-session/subversion/mod_dav_svn/mod_dav_svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/mod_dav_svn/mod_dav_svn.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/mod_dav_svn/mod_dav_svn.c (original)
+++ subversion/branches/reuse-ra-session/subversion/mod_dav_svn/mod_dav_svn.c Fri Aug 23 13:12:18 2013
@@ -979,7 +979,6 @@ merge_xml_filter_insert(request_rec *r)
 typedef struct merge_ctx_t {
   apr_bucket_brigade *bb;
   apr_xml_parser *parser;
-  apr_pool_t *pool;
 } merge_ctx_t;
 
 
@@ -1009,7 +1008,6 @@ merge_xml_in_filter(ap_filter_t *f,
       f->ctx = ctx = apr_palloc(r->pool, sizeof(*ctx));
       ctx->parser = apr_xml_parser_create(r->pool);
       ctx->bb = apr_brigade_create(r->pool, r->connection->bucket_alloc);
-      apr_pool_create(&ctx->pool, r->pool);
     }
 
   rv = ap_get_brigade(f->next, ctx->bb, mode, block, readbytes);
@@ -1094,7 +1092,41 @@ static int dav_svn__handler(request_rec 
   return DECLINED;
 }
 
+#define NO_MAP_TO_STORAGE_NOTE "dav_svn-no-map-to-storage"
 
+/* Prevent filename on the request from being set since we aren't serving a
+ * file off the disk.  This means that <Directory> blocks will not match and
+ * that * %f in logging formats will show as "-". */
+static int dav_svn__translate_name(request_rec *r)
+{
+  dir_conf_t *conf = ap_get_module_config(r->per_dir_config, &dav_svn_module);
+
+  /* module is not configured, bail out early */
+  if (!conf->fs_path && !conf->fs_parent_path)
+    return DECLINED;
+
+  /* Be paranoid and set it to NULL just in case some other module set it
+   * before we got called. */ 
+  r->filename = NULL;
+
+  /* Leave a note to ourselves so that we know not to decline in the 
+   * map_to_storage hook. */
+  apr_table_setn(r->notes, NO_MAP_TO_STORAGE_NOTE, (const char*)1); 
+  return OK;
+}
+
+/* Prevent core_map_to_storage from running if we prevented the r->filename
+ * from being set since core_map_to_storage doesn't like r->filename being
+ * NULL. */
+static int dav_svn__map_to_storage(request_rec *r)
+{
+  /* Check a note we left in translate_name since map_to_storage doesn't
+   * have access to our configuration. */
+  if (apr_table_get(r->notes, NO_MAP_TO_STORAGE_NOTE))
+    return OK;
+
+  return DECLINED;
+}
 
 
 
@@ -1268,6 +1300,12 @@ register_hooks(apr_pool_t *pconf)
   ap_register_input_filter("IncomingRewrite", dav_svn__location_in_filter,
                            NULL, AP_FTYPE_CONTENT_SET);
   ap_hook_fixups(dav_svn__proxy_request_fixup, NULL, NULL, APR_HOOK_MIDDLE);
+  /* translate_name hook is LAST so that it doesn't interfere with modules
+   * like mod_alias that are MIDDLE. */
+  ap_hook_translate_name(dav_svn__translate_name, NULL, NULL, APR_HOOK_LAST);
+  /* map_to_storage hook is LAST to avoid interferring with mod_http's
+   * handling of OPTIONS and TRACE. */
+  ap_hook_map_to_storage(dav_svn__map_to_storage, NULL, NULL, APR_HOOK_LAST);
 }
 
 

Modified: subversion/branches/reuse-ra-session/subversion/mod_dav_svn/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/mod_dav_svn/repos.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/mod_dav_svn/repos.c (original)
+++ subversion/branches/reuse-ra-session/subversion/mod_dav_svn/repos.c Fri Aug 23 13:12:18 2013
@@ -53,6 +53,7 @@
 #include "mod_dav_svn.h"
 #include "svn_ra.h"  /* for SVN_RA_CAPABILITY_* */
 #include "svn_dirent_uri.h"
+
 #include "private/svn_log.h"
 #include "private/svn_fspath.h"
 #include "private/svn_repos_private.h"
@@ -2408,21 +2409,12 @@ get_parent_path(const char *path,
                 svn_boolean_t is_urlpath,
                 apr_pool_t *pool)
 {
-  apr_size_t len;
-  char *tmp = apr_pstrdup(pool, path);
-
-  len = strlen(tmp);
-
-  if (len > 0)
+  if (*path != '\0') /* not an empty string */
     {
-      /* Remove any trailing slash; else svn_path_dirname() asserts. */
-      if (tmp[len-1] == '/')
-        tmp[len-1] = '\0';
-
       if (is_urlpath)
-        return svn_urlpath__dirname(tmp, pool);
+        return svn_urlpath__dirname(path, pool);
       else
-        return svn_fspath__dirname(tmp, pool);
+        return svn_fspath__dirname(path, pool);
     }
 
   return path;
@@ -2458,7 +2450,9 @@ get_parent_resource(const dav_resource *
       parent->versioned = 1;
       parent->hooks = resource->hooks;
       parent->pool = resource->pool;
-      parent->uri = get_parent_path(resource->uri, TRUE, resource->pool);
+      parent->uri = get_parent_path(svn_urlpath__canonicalize(resource->uri,
+                                                              resource->pool),
+                                    TRUE, resource->pool);
       parent->info = parentinfo;
 
       parentinfo->uri_path =

Modified: subversion/branches/reuse-ra-session/subversion/mod_dav_svn/version.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/mod_dav_svn/version.c?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/mod_dav_svn/version.c (original)
+++ subversion/branches/reuse-ra-session/subversion/mod_dav_svn/version.c Fri Aug 23 13:12:18 2013
@@ -39,6 +39,7 @@
 #include "svn_dav.h"
 #include "svn_base64.h"
 #include "svn_version.h"
+
 #include "private/svn_repos_private.h"
 #include "private/svn_subr_private.h"
 #include "private/svn_dav_protocol.h"

Modified: subversion/branches/reuse-ra-session/subversion/po/de.po
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/po/de.po?rev=1516837&r1=1516836&r2=1516837&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/po/de.po [UTF-8] (original)
+++ subversion/branches/reuse-ra-session/subversion/po/de.po [UTF-8] Fri Aug 23 13:12:18 2013
@@ -97,14 +97,16 @@ msgstr ""
 "Project-Id-Version: subversion 1.8\n"
 "Report-Msgid-Bugs-To: dev@subversion.apache.org\n"
 "POT-Creation-Date: 2013-07-09 19:05+0100\n"
-"PO-Revision-Date: 2013-07-09 19:04+0100\n"
-"Last-Translator: Subversion Developers <dev@subversion.apache.org>\n"
+"PO-Revision-Date: 2013-07-12 21:01+0000\n"
+"Last-Translator: Andreas <andreas.stieger@gmx.de>\n"
 "Language-Team: German <dev@subversion.apache.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.5.0-rc1\n"
+"X-POOTLE-MTIME: 1373662891.0\n"
 
 #. Constructing nice error messages for roots.
 #. Build an SVN_ERR_FS_NOT_FOUND error, with a detailed error text,
@@ -1465,7 +1467,9 @@ msgstr "Alle nicht-relativen Ziele müss
 
 #: ../libsvn_client/cmdline.c:312
 msgid "Resolving '^/': no repository root found in the target arguments or in the current directory"
-msgstr "Auflösen von »%s«: Keine Wurzel einer Arbeitskopie in den Zielparametern oder im Arbeitsverzeichnis gefunden"
+msgstr ""
+"Auflösen von »^/«: Keine Wurzel eines Projektarchivs in den Zielparametern "
+"oder im Arbeitsverzeichnis gefunden"
 
 #: ../libsvn_client/commit.c:155 ../libsvn_client/copy.c:1510
 msgid "Commit failed (details follow):"



Mime
View raw message