subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From julianf...@apache.org
Subject svn commit: r1231975 [7/11] - in /subversion/branches/showing-merge-info: ./ notes/ notes/http-and-webdav/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversion/bindings/swig/ruby/test/ subversion/include/ subversion/include/private/ ...
Date Mon, 16 Jan 2012 12:32:48 GMT
Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/node.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/node.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/node.c Mon Jan 16 12:32:43 2012
@@ -1349,6 +1349,7 @@ svn_wc__internal_get_origin(svn_boolean_
                             const char **repos_relpath,
                             const char **repos_root_url,
                             const char **repos_uuid,
+                            const char **copy_root_abspath,
                             svn_wc__db_t *db,
                             const char *local_abspath,
                             svn_boolean_t scan_deleted,
@@ -1399,7 +1400,8 @@ svn_wc__internal_get_origin(svn_boolean_
       if (repos_uuid)
         *repos_uuid = original_repos_uuid;
 
-      return SVN_NO_ERROR;
+      if (copy_root_abspath == NULL)
+        return SVN_NO_ERROR;
     }
 
   {
@@ -1428,13 +1430,19 @@ svn_wc__internal_get_origin(svn_boolean_
                                          result_pool, scratch_pool));
 
         if (status == svn_wc__db_status_added)
-          return SVN_NO_ERROR; /* Local addition */
+          {
+            if (is_copy)
+              *is_copy = FALSE;
+            return SVN_NO_ERROR; /* Local addition */
+          }
 
         *repos_relpath = svn_relpath_join(
                                 original_repos_relpath,
                                 svn_dirent_skip_ancestor(op_root_abspath,
                                                          local_abspath),
                                 result_pool);
+        if (copy_root_abspath)
+          *copy_root_abspath = op_root_abspath;
       }
     else /* Deleted, excluded, not-present, server-excluded, ... */
       {
@@ -1459,6 +1467,7 @@ svn_wc__node_get_origin(svn_boolean_t *i
                         const char **repos_relpath,
                         const char **repos_root_url,
                         const char **repos_uuid,
+                        const char **copy_root_abspath,
                         svn_wc_context_t *wc_ctx,
                         const char *local_abspath,
                         svn_boolean_t scan_deleted,
@@ -1467,6 +1476,7 @@ svn_wc__node_get_origin(svn_boolean_t *i
 {
   return svn_error_trace(svn_wc__internal_get_origin(is_copy, revision,
                            repos_relpath, repos_root_url, repos_uuid,
+                           copy_root_abspath,
                            wc_ctx->db, local_abspath, scan_deleted,
                            result_pool, scratch_pool));
 }

Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/status.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/status.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/status.c Mon Jan 16 12:32:43 2012
@@ -1649,7 +1649,7 @@ tweak_statushash(void *baton,
   return SVN_NO_ERROR;
 }
 
-/* Returns the URL for DB, or NULL: */
+/* Returns the URL for DB */
 static const char *
 find_dir_repos_relpath(const struct dir_baton *db, apr_pool_t *pool)
 {
@@ -1666,14 +1666,11 @@ find_dir_repos_relpath(const struct dir_
       /* Note that status->repos_relpath could be NULL in the case of a missing
        * directory, which means we need to recurse up another level to get
        * a useful relpath. */
-      if (status)
+      if (status && status->repos_relpath)
         return status->repos_relpath;
 
       repos_relpath = find_dir_repos_relpath(pb, pool);
-      if (repos_relpath)
-        return svn_relpath_join(repos_relpath, db->name, pool);
-      else
-        return NULL;
+      return svn_relpath_join(repos_relpath, db->name, pool);
     }
 }
 
@@ -2369,19 +2366,15 @@ close_file(void *file_baton,
           const char *dir_repos_relpath = find_dir_repos_relpath(fb->dir_baton,
                                                                  pool);
 
-          if (dir_repos_relpath)
-            {
-              /* repos_lock still uses the deprecated filesystem absolute path
-                 format */
-
-              const char *repos_relpath = svn_relpath_join(dir_repos_relpath,
-                                                           fb->name, pool);
-
-              repos_lock = apr_hash_get(fb->edit_baton->wb.repos_locks,
-                                        svn_fspath__join("/", repos_relpath,
-                                                         pool),
-                                        APR_HASH_KEY_STRING);
-            }
+          /* repos_lock still uses the deprecated filesystem absolute path
+             format */
+          const char *repos_relpath = svn_relpath_join(dir_repos_relpath,
+                                                       fb->name, pool);
+
+          repos_lock = apr_hash_get(fb->edit_baton->wb.repos_locks,
+                                    svn_fspath__join("/", repos_relpath,
+                                                     pool),
+                                    APR_HASH_KEY_STRING);
         }
     }
   else
@@ -2548,15 +2541,13 @@ svn_wc_get_status_editor5(const svn_delt
 
   sfb = apr_palloc(result_pool, sizeof(*sfb));
   sfb->db = wc_ctx->db;
-  sfb->base_abspath = eb->target_abspath;
+  sfb->base_abspath = eb->anchor_abspath;
   sfb->fetch_base = FALSE;
 
   shim_callbacks->fetch_kind_func = svn_wc__fetch_kind_func;
-  shim_callbacks->fetch_kind_baton = sfb;
   shim_callbacks->fetch_props_func = svn_wc__fetch_props_func;
-  shim_callbacks->fetch_props_baton = sfb;
   shim_callbacks->fetch_base_func = svn_wc__fetch_base_func;
-  shim_callbacks->fetch_base_baton = sfb;
+  shim_callbacks->fetch_baton = sfb;
 
   SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
                                    shim_callbacks,

Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/update_editor.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/update_editor.c Mon Jan 16 12:32:43 2012
@@ -4716,6 +4716,46 @@ close_edit(void *edit_baton,
 }
 
 
+static svn_error_t *
+fetch_props_func(apr_hash_t **props,
+                 void *baton,
+                 const char *path,
+                 svn_revnum_t base_revision,
+                 apr_pool_t *result_pool,
+                 apr_pool_t *scratch_pool)
+{
+  struct svn_wc__shim_fetch_baton_t *sfb = baton;
+  const char *local_abspath = svn_dirent_join(sfb->base_abspath, path,
+                                              scratch_pool);
+  svn_error_t *err;
+
+  if (sfb->fetch_base)
+    err = svn_wc__db_base_get_props(props, sfb->db, local_abspath, result_pool,
+                                    scratch_pool);
+  else
+    err = svn_wc__db_read_props(props, sfb->db, local_abspath,
+                                result_pool, scratch_pool);
+
+  /* If the path doesn't exist, just return an empty set of props. */
+  if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
+    {
+      svn_error_clear(err);
+      *props = apr_hash_make(result_pool);
+    }
+  else if (err)
+    return svn_error_trace(err);
+
+  /* Add a bogus LOCK_TOKEN if we don't already have one, so as to catch
+     any deletions thereto. */
+  if (!apr_hash_get(*props, SVN_PROP_ENTRY_LOCK_TOKEN, APR_HASH_KEY_STRING))
+    {
+      apr_hash_set(*props, SVN_PROP_ENTRY_LOCK_TOKEN, APR_HASH_KEY_STRING,
+                   svn_string_create("This is completely bogus", result_pool));
+    }
+
+  return SVN_NO_ERROR;
+}
+
 
 /*** Returning editors. ***/
 
@@ -4988,15 +5028,13 @@ make_editor(svn_revnum_t *target_revisio
 
   sfb = apr_palloc(result_pool, sizeof(*sfb));
   sfb->db = db;
-  sfb->base_abspath = eb->target_abspath;
+  sfb->base_abspath = eb->anchor_abspath;
   sfb->fetch_base = TRUE;
 
   shim_callbacks->fetch_kind_func = svn_wc__fetch_kind_func;
-  shim_callbacks->fetch_kind_baton = sfb;
-  shim_callbacks->fetch_props_func = svn_wc__fetch_props_func;
-  shim_callbacks->fetch_props_baton = sfb;
+  shim_callbacks->fetch_props_func = fetch_props_func;
   shim_callbacks->fetch_base_func = svn_wc__fetch_base_func;
-  shim_callbacks->fetch_base_baton = sfb;
+  shim_callbacks->fetch_baton = sfb;
 
   SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
                                    shim_callbacks, result_pool, scratch_pool));

Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/util.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/util.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/util.c Mon Jan 16 12:32:43 2012
@@ -539,6 +539,7 @@ svn_error_t *
 svn_wc__fetch_kind_func(svn_kind_t *kind,
                         void *baton,
                         const char *path,
+                        svn_revnum_t base_revision,
                         apr_pool_t *scratch_pool)
 {
   struct svn_wc__shim_fetch_baton_t *sfb = baton;
@@ -556,6 +557,7 @@ svn_error_t *
 svn_wc__fetch_props_func(apr_hash_t **props,
                          void *baton,
                          const char *path,
+                         svn_revnum_t base_revision,
                          apr_pool_t *result_pool,
                          apr_pool_t *scratch_pool)
 {
@@ -588,6 +590,7 @@ svn_error_t *
 svn_wc__fetch_base_func(const char **filename,
                         void *baton,
                         const char *path,
+                        svn_revnum_t base_revision,
                         apr_pool_t *result_pool,
                         apr_pool_t *scratch_pool)
 {
@@ -612,6 +615,13 @@ svn_wc__fetch_base_func(const char **fil
     }
   else if (err)
     return svn_error_trace(err);
+
+  if (checksum == NULL)
+    {
+      *filename = NULL;
+      return SVN_NO_ERROR;
+    }
+
   SVN_ERR(svn_wc__db_pristine_read(&contents, NULL, sfb->db, local_abspath,
                                    checksum, scratch_pool, scratch_pool));
 

Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/wc-metadata.sql
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/wc-metadata.sql?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/wc-metadata.sql (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/wc-metadata.sql Mon Jan 16 12:32:43 2012
@@ -383,8 +383,9 @@ CREATE TABLE NODES (
      perhaps add a column called "moved_from". */
 
   /* Boolean value, specifying if this node was moved here (rather than just
-     copied). The source of the move is implied by a different node with
-     a moved_to column pointing at this node. */
+     copied). This is set on all the nodes in the moved tree.  The source of
+     the move is implied by a different node with a moved_to column pointing
+     at the root node of the moved tree. */
   moved_here  INTEGER,
 
   /* If the underlying node was moved away (rather than just deleted), this

Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/wc.h?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/wc.h (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/wc.h Mon Jan 16 12:32:43 2012
@@ -620,6 +620,7 @@ svn_wc__internal_get_origin(svn_boolean_
                             const char **repos_relpath,
                             const char **repos_root_url,
                             const char **repos_uuid,
+                            const char **copy_root_abspath,
                             svn_wc__db_t *db,
                             const char *local_abspath,
                             svn_boolean_t scan_deleted,
@@ -738,6 +739,7 @@ svn_error_t *
 svn_wc__fetch_kind_func(svn_kind_t *kind,
                         void *baton,
                         const char *path,
+                        svn_revnum_t base_revision,
                         apr_pool_t *scratch_pool);
 
 /* Using a BATON of struct shim_fetch_baton, return PROPS for PATH. */
@@ -745,6 +747,7 @@ svn_error_t *
 svn_wc__fetch_props_func(apr_hash_t **props,
                          void *baton,
                          const char *path,
+                         svn_revnum_t base_revision,
                          apr_pool_t *result_pool,
                          apr_pool_t *scratch_pool);
 
@@ -753,6 +756,7 @@ svn_error_t *
 svn_wc__fetch_base_func(const char **filename,
                         void *baton,
                         const char *path,
+                        svn_revnum_t base_revision,
                         apr_pool_t *result_pool,
                         apr_pool_t *scratch_pool);
 

Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/wc_db.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/wc_db.c Mon Jan 16 12:32:43 2012
@@ -3781,6 +3781,7 @@ db_op_copy_shadowed_layer(svn_wc__db_wcr
                           apr_int64_t repos_id,
                           const char *repos_relpath,
                           svn_revnum_t revision,
+                          svn_boolean_t is_move,
                           apr_pool_t *scratch_pool)
 {
   const apr_array_header_t *children;
@@ -3898,13 +3899,15 @@ db_op_copy_shadowed_layer(svn_wc__db_wcr
         SVN_ERR(svn_sqlite__get_statement(&stmt, src_wcroot->sdb,
                              STMT_INSERT_WORKING_NODE_COPY_FROM_BASE));
 
+      /* Perhaps we should avoid setting moved_here to 0 and leave it
+         null instead? */
       SVN_ERR(svn_sqlite__bindf(stmt, "issisti",
                         src_wcroot->wc_id, src_relpath,
                         dst_relpath,
                         dst_op_depth,
                         svn_relpath_dirname(dst_relpath, iterpool),
                         presence_map, dst_presence,
-                        (apr_int64_t)0));
+                        (apr_int64_t)(is_move ? 1 : 0)));
 
       if (src_op_depth > 0)
         SVN_ERR(svn_sqlite__bind_int64(stmt, 8, src_op_depth));
@@ -3965,7 +3968,7 @@ db_op_copy_shadowed_layer(svn_wc__db_wcr
                          src_wcroot, child_src_relpath, src_op_depth,
                          dst_wcroot, child_dst_relpath, dst_op_depth,
                          del_op_depth,
-                         repos_id, child_repos_relpath, revision,
+                         repos_id, child_repos_relpath, revision, is_move,
                          scratch_pool));
     }
 
@@ -4040,7 +4043,7 @@ op_copy_shadowed_layer_txn(void * baton,
                         ocb->src_wcroot, ocb->src_relpath, src_op_depth,
                         ocb->dst_wcroot, ocb->dst_relpath, dst_op_depth,
                         del_op_depth,
-                        repos_id, repos_relpath, revision,
+                        repos_id, repos_relpath, revision, ocb->is_move,
                         scratch_pool));
 
   return SVN_NO_ERROR;
@@ -4050,6 +4053,7 @@ svn_error_t *
 svn_wc__db_op_copy_shadowed_layer(svn_wc__db_t *db,
                                   const char *src_abspath,
                                   const char *dst_abspath,
+                                  svn_boolean_t is_move,
                                   apr_pool_t *scratch_pool)
 {
   struct op_copy_baton ocb = {0};
@@ -4069,6 +4073,7 @@ svn_wc__db_op_copy_shadowed_layer(svn_wc
                                                 scratch_pool, scratch_pool));
   VERIFY_USABLE_WCROOT(ocb.dst_wcroot);
 
+  ocb.is_move = is_move;
   ocb.work_items = NULL;
 
   /* Call with the sdb in src_wcroot. It might call itself again to
@@ -6355,11 +6360,8 @@ delete_node(void *baton,
           /* The node has already been moved, possibly along with a parent,
            * and is being moved again. Update the existing moved_to path
            * in the BASE node. */
-          SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                            STMT_UPDATE_MOVED_TO_RELPATH));
-          SVN_ERR(svn_sqlite__bindf(stmt, "iss", wcroot->wc_id,
-                                    moved_from_relpath, b->moved_to_relpath));
-          SVN_ERR(svn_sqlite__step_done(stmt));
+          SVN_ERR(delete_update_movedto(wcroot, moved_from_relpath,
+                                        b->moved_to_relpath, scratch_pool));
         }
 
       /* If a subtree is being moved-away, we need to update moved-to
@@ -6548,12 +6550,8 @@ delete_node(void *baton,
       if (b->moved_to_relpath)
         {
           /* Record moved-to relpath in BASE. */
-          SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                            STMT_UPDATE_MOVED_TO_RELPATH));
-          SVN_ERR(svn_sqlite__bindf(stmt, "iss",
-                                    wcroot->wc_id, local_relpath,
-                                    b->moved_to_relpath));
-          SVN_ERR(svn_sqlite__step_done(stmt));
+          SVN_ERR(delete_update_movedto(wcroot, local_relpath,
+                                        b->moved_to_relpath, scratch_pool));
         }
 
       /* Delete the node and possible descendants. */
@@ -7226,7 +7224,7 @@ read_children_info(void *baton,
   svn_boolean_t have_row;
   const char *repos_root_url = NULL;
   const char *repos_uuid = NULL;
-  apr_int64_t last_repos_id;
+  apr_int64_t last_repos_id = INVALID_REPOS_ID;
   apr_hash_t *nodes = rci->nodes;
   apr_hash_t *conflicts = rci->conflicts;
   apr_pool_t *result_pool = rci->result_pool;
@@ -7294,20 +7292,34 @@ read_children_info(void *baton,
             }
           else
             {
+              const char *last_repos_root_url = NULL;
+
               apr_int64_t repos_id = svn_sqlite__column_int64(stmt, 1);
-              if (!repos_root_url)
+              if (!repos_root_url ||
+                  (last_repos_id != INVALID_REPOS_ID &&
+                   repos_id != last_repos_id))
                 {
+                  last_repos_root_url = repos_root_url;
                   err = fetch_repos_info(&repos_root_url, &repos_uuid,
                                          wcroot->sdb, repos_id, result_pool);
                   if (err)
                     SVN_ERR(svn_error_compose_create(err,
-                                                     svn_sqlite__reset(stmt)));
-                  last_repos_id = repos_id;
+                                                 svn_sqlite__reset(stmt)));
                 }
 
+              if (last_repos_id == INVALID_REPOS_ID)
+                last_repos_id = repos_id;
+
               /* Assume working copy is all one repos_id so that a
                  single cached value is sufficient. */
-              SVN_ERR_ASSERT(repos_id == last_repos_id);
+              if (repos_id != last_repos_id)
+                return svn_error_createf(
+                         SVN_ERR_WC_DB_ERROR, NULL,
+                         _("The node '%s' comes from unexpected repository "
+                           "'%s', expected '%s'; if this node is a file "
+                           "external using the correct URL in the external "
+                           "definition can fix the problem, see issue #4087"),
+                         child_relpath, repos_root_url, last_repos_root_url);
               child->repos_root_url = repos_root_url;
               child->repos_uuid = repos_uuid;
             }

Modified: subversion/branches/showing-merge-info/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_wc/wc_db.h?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_wc/wc_db.h Mon Jan 16 12:32:43 2012
@@ -1238,6 +1238,7 @@ svn_error_t *
 svn_wc__db_op_copy_shadowed_layer(svn_wc__db_t *db,
                                   const char *src_abspath,
                                   const char *dst_abspath,
+                                  svn_boolean_t is_move,
                                   apr_pool_t *scratch_pool);
 
 

Modified: subversion/branches/showing-merge-info/subversion/mod_dav_svn/dav_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/mod_dav_svn/dav_svn.h?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/mod_dav_svn/dav_svn.h (original)
+++ subversion/branches/showing-merge-info/subversion/mod_dav_svn/dav_svn.h Mon Jan 16 12:32:43 2012
@@ -737,7 +737,7 @@ dav_svn__authz_read_func(dav_svn__authz_
 dav_error *
 dav_svn__new_error_tag(apr_pool_t *pool,
                        int status,
-                       int errno_id,
+                       int error_id,
                        const char *desc,
                        const char *namespace,
                        const char *tagname);
@@ -752,7 +752,7 @@ dav_svn__new_error_tag(apr_pool_t *pool,
 dav_error *
 dav_svn__new_error(apr_pool_t *pool,
                    int status,
-                   int errno_id,
+                   int error_id,
                    const char *desc);
 
 
@@ -950,6 +950,14 @@ dav_svn__final_flush_or_error(request_re
                               ap_filter_t *output, dav_error *preferred_err,
                               apr_pool_t *pool);
 
+/* Log a DAV error response.
+ *
+ * NOTE: Copied from mod_dav's dav_log_err which is not public.
+ */
+void dav_svn__log_err(request_rec *r,
+                      dav_error *err,
+                      int level);
+
 /* Send a "standardized" DAV error response based on the ERR's
  * namespace and tag.
  *

Modified: subversion/branches/showing-merge-info/subversion/mod_dav_svn/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/mod_dav_svn/lock.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/mod_dav_svn/lock.c (original)
+++ subversion/branches/showing-merge-info/subversion/mod_dav_svn/lock.c Mon Jan 16 12:32:43 2012
@@ -149,7 +149,7 @@ unescape_xml(const char **output,
 
   apr_xml_to_text(pool, xml_doc->root, APR_XML_X2T_INNER,
                   xml_doc->namespaces, NULL, output, NULL);
-  return SVN_NO_ERROR;
+  return NULL;
 }
 
 

Modified: subversion/branches/showing-merge-info/subversion/mod_dav_svn/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/mod_dav_svn/merge.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/mod_dav_svn/merge.c (original)
+++ subversion/branches/showing-merge-info/subversion/mod_dav_svn/merge.c Mon Jan 16 12:32:43 2012
@@ -362,5 +362,5 @@ dav_svn__merge_response(ap_filter_t *out
   /* send whatever is left in the brigade */
   (void) ap_pass_brigade(output, bb);
 
-  return SVN_NO_ERROR;
+  return NULL;
 }

Modified: subversion/branches/showing-merge-info/subversion/mod_dav_svn/reports/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/mod_dav_svn/reports/log.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/mod_dav_svn/reports/log.c (original)
+++ subversion/branches/showing-merge-info/subversion/mod_dav_svn/reports/log.c Mon Jan 16 12:32:43 2012
@@ -30,6 +30,7 @@
 #include "svn_repos.h"
 #include "svn_string.h"
 #include "svn_types.h"
+#include "svn_base64.h"
 #include "svn_xml.h"
 #include "svn_path.h"
 #include "svn_dav.h"
@@ -61,6 +62,9 @@ struct log_receiver_baton
 
   /* whether the client requested any custom revprops */
   svn_boolean_t requested_custom_revprops;
+
+  /* whether the client can handle encoded binary property values */
+  svn_boolean_t encode_binary_props;
 };
 
 
@@ -119,35 +123,50 @@ log_receiver(void *baton,
            hi = apr_hash_next(hi))
         {
           char *name;
-          svn_string_t *value;
+          void *val;
+          const svn_string_t *value;
+          const char *encoding_str = "";
 
           svn_pool_clear(iterpool);
-          apr_hash_this(hi, (void *)&name, NULL, (void *)&value);
+          apr_hash_this(hi, (void *)&name, NULL, &val);
+          value = val;
+
+          /* If the client is okay with us encoding binary (or really,
+             any non-XML-safe) property values, do so as necessary. */
+          if (lrb->encode_binary_props)
+            {
+              if (! svn_xml_is_xml_safe(value->data, value->len))
+                {
+                  value = svn_base64_encode_string2(value, TRUE, iterpool);
+                  encoding_str = " encoding=\"base64\"";
+                }
+            }
+
           if (strcmp(name, SVN_PROP_REVISION_AUTHOR) == 0)
             SVN_ERR(dav_svn__brigade_printf
                     (lrb->bb, lrb->output,
-                     "<D:creator-displayname>%s</D:creator-displayname>"
-                     DEBUG_CR,
+                     "<D:creator-displayname%s>%s</D:creator-displayname>"
+                     DEBUG_CR, encoding_str,
                      apr_xml_quote_string(iterpool, value->data, 0)));
           else if (strcmp(name, SVN_PROP_REVISION_DATE) == 0)
             /* ### this should be DAV:creation-date, but we need to format
                ### that date a bit differently */
             SVN_ERR(dav_svn__brigade_printf
                     (lrb->bb, lrb->output,
-                     "<S:date>%s</S:date>" DEBUG_CR,
+                     "<S:date%s>%s</S:date>" DEBUG_CR, encoding_str,
                      apr_xml_quote_string(iterpool, value->data, 0)));
           else if (strcmp(name, SVN_PROP_REVISION_LOG) == 0)
             SVN_ERR(dav_svn__brigade_printf
                     (lrb->bb, lrb->output,
-                     "<D:comment>%s</D:comment>" DEBUG_CR,
+                     "<D:comment%s>%s</D:comment>" DEBUG_CR, encoding_str,
                      apr_xml_quote_string(pool,
                                           svn_xml_fuzzy_escape(value->data,
                                                                iterpool), 0)));
           else
             SVN_ERR(dav_svn__brigade_printf
                     (lrb->bb, lrb->output,
-                     "<S:revprop name=\"%s\">%s</S:revprop>" DEBUG_CR,
-                     apr_xml_quote_string(iterpool, name, 0),
+                     "<S:revprop name=\"%s\"%s>%s</S:revprop>" DEBUG_CR,
+                     apr_xml_quote_string(iterpool, name, 0), encoding_str,
                      apr_xml_quote_string(iterpool, value->data, 0)));
         }
     }
@@ -305,6 +324,7 @@ dav_svn__log_report(const dav_resource *
   seen_revprop_element = FALSE;
 
   lrb.requested_custom_revprops = FALSE;
+  lrb.encode_binary_props = FALSE;
   for (child = doc->root->first_child; child != NULL; child = child->next)
     {
       /* if this element isn't one of ours, then skip it */
@@ -333,6 +353,8 @@ dav_svn__log_report(const dav_resource *
         strict_node_history = TRUE; /* presence indicates positivity */
       else if (strcmp(child->name, "include-merged-revisions") == 0)
         include_merged_revisions = TRUE; /* presence indicates positivity */
+      else if (strcmp(child->name, "encode-binary-props") == 0)
+        lrb.encode_binary_props = TRUE; /* presence indicates positivity */
       else if (strcmp(child->name, "all-revprops") == 0)
         {
           revprops = NULL; /* presence indicates fetch all revprops */

Modified: subversion/branches/showing-merge-info/subversion/mod_dav_svn/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/mod_dav_svn/repos.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/mod_dav_svn/repos.c (original)
+++ subversion/branches/showing-merge-info/subversion/mod_dav_svn/repos.c Mon Jan 16 12:32:43 2012
@@ -1816,6 +1816,8 @@ parse_querystring(request_rec *r, const 
 
   if (prevstr)
     {
+      while (*prevstr == 'r')
+        prevstr++;
       peg_rev = SVN_STR_TO_REV(prevstr);
       if (!SVN_IS_VALID_REVNUM(peg_rev))
         return dav_svn__new_error(pool, HTTP_BAD_REQUEST, 0,
@@ -1833,6 +1835,8 @@ parse_querystring(request_rec *r, const 
   wrevstr = apr_table_get(pairs, "r");
   if (wrevstr)
     {
+      while (*wrevstr == 'r')
+        wrevstr++;
       working_rev = SVN_STR_TO_REV(wrevstr);
       if (!SVN_IS_VALID_REVNUM(working_rev))
         return dav_svn__new_error(pool, HTTP_BAD_REQUEST, 0,
@@ -3240,8 +3244,8 @@ deliver(const dav_resource *resource, ap
                                      resource->pool, resource->pool);
           if (serr != NULL)
             return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
-                                        "couldn't fetch dirents of SVNParentPath",
-                                        resource->pool);
+                                        "could not fetch dirents of "
+                                        "SVNParentPath", resource->pool);
 
           /* convert an io dirent hash to an fs dirent hash. */
           entries = apr_hash_make(resource->pool);
@@ -3259,18 +3263,21 @@ deliver(const dav_resource *resource, ap
               if (dirent->kind == svn_node_file && dirent->special)
                 {
                   svn_node_kind_t resolved_kind;
-                  const char *name = key;
+                  const char *link_path = 
+                    svn_dirent_join(fs_parent_path, key, resource->pool);
 
-                  serr = svn_io_check_resolved_path(name, &resolved_kind,
+                  serr = svn_io_check_resolved_path(link_path, &resolved_kind,
                                                     resource->pool);
-                  if (serr != NULL)
+                  if (serr)
                     return dav_svn__convert_err(serr,
                                                 HTTP_INTERNAL_SERVER_ERROR,
-                                                "couldn't fetch dirents "
-                                                "of SVNParentPath",
+                                                "could not resolve symlink "
+                                                "dirent of SVNParentPath",
                                                 resource->pool);
                   if (resolved_kind != svn_node_dir)
                     continue;
+                  
+                  dirent->kind = svn_node_dir;
                 }
               else if (dirent->kind != svn_node_dir)
                 continue;
@@ -4467,7 +4474,12 @@ int dav_svn__method_post(request_rec *r)
   /* If something went wrong above, we'll generate a response back to
      the client with (hopefully) some helpful information. */
   if (derr)
-    return dav_svn__error_response_tag(r, derr);
+    {
+      /* POST is not a DAV method and so mod_dav isn't involved and
+         won't log this error.  Do it explicitly. */
+      dav_svn__log_err(r, derr, APLOG_ERR);
+      return dav_svn__error_response_tag(r, derr);
+    }
 
   return OK;
 }

Modified: subversion/branches/showing-merge-info/subversion/mod_dav_svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/mod_dav_svn/util.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/mod_dav_svn/util.c (original)
+++ subversion/branches/showing-merge-info/subversion/mod_dav_svn/util.c Mon Jan 16 12:32:43 2012
@@ -53,9 +53,11 @@ dav_svn__new_error(apr_pool_t *pool,
  * > 2.2 below perpetuates this.
  */
 #if AP_MODULE_MAGIC_AT_LEAST(20091119,0)
-  /* old code assumed errno was valid; keep assuming */
-  return dav_new_error(pool, status, error_id, errno, desc);
+  return dav_new_error(pool, status, error_id, 0, desc);
 #else
+
+  errno = 0; /* For the same reason as in dav_svn__new_error_tag */
+
   return dav_new_error(pool, status, error_id, desc);
 #endif
 }
@@ -620,6 +622,30 @@ dav_svn__final_flush_or_error(request_re
   return derr;
 }
 
+void dav_svn__log_err(request_rec *r,
+                      dav_error *err,
+                      int level)
+{
+    dav_error *errscan;
+
+    /* Log the errors */
+    /* ### should have a directive to log the first or all */
+    for (errscan = err; errscan != NULL; errscan = errscan->prev) {
+        if (errscan->desc == NULL)
+            continue;
+
+        if (errscan->save_errno != 0) {
+            errno = errscan->save_errno;
+            ap_log_rerror(APLOG_MARK, level, errno, r, "%s  [%d, #%d]",
+                          errscan->desc, errscan->status, errscan->error_id);
+        }
+        else {
+            ap_log_rerror(APLOG_MARK, level, 0, r,
+                          "%s  [%d, #%d]",
+                          errscan->desc, errscan->status, errscan->error_id);
+        }
+    }
+}
 
 int
 dav_svn__error_response_tag(request_rec *r,
@@ -639,8 +665,10 @@ dav_svn__error_response_tag(request_rec 
   if (err->namespace != NULL)
     ap_rprintf(r, " xmlns:C=\"%s\">" DEBUG_CR "<C:%s/>" DEBUG_CR,
                err->namespace, err->tagname);
-  else
+  else if (err->tagname != NULL)
     ap_rprintf(r, ">" DEBUG_CR "<D:%s/>" DEBUG_CR, err->tagname);
+  else
+    ap_rputs(">" DEBUG_CR, r);
 
   /* here's our mod_dav specific tag: */
   if (err->desc != NULL)

Modified: subversion/branches/showing-merge-info/subversion/mod_dav_svn/version.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/mod_dav_svn/version.c?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/mod_dav_svn/version.c (original)
+++ subversion/branches/showing-merge-info/subversion/mod_dav_svn/version.c Mon Jan 16 12:32:43 2012
@@ -1180,7 +1180,7 @@ dav_svn__build_lock_hash(apr_hash_t **lo
   if (! doc)
     {
       *locks = hash;
-      return SVN_NO_ERROR;
+      return NULL;
     }
 
   /* Sanity check. */
@@ -1191,7 +1191,7 @@ dav_svn__build_lock_hash(apr_hash_t **lo
          definitely no lock-tokens to harvest.  This is likely a
          request from an old client. */
       *locks = hash;
-      return SVN_NO_ERROR;
+      return NULL;
     }
 
   if ((doc->root->ns == ns)
@@ -1217,7 +1217,7 @@ dav_svn__build_lock_hash(apr_hash_t **lo
   if (! child)
     {
       *locks = hash;
-      return SVN_NO_ERROR;
+      return NULL;
     }
 
   /* Then look for N different <lock> structures within. */
@@ -1262,7 +1262,7 @@ dav_svn__build_lock_hash(apr_hash_t **lo
     }
 
   *locks = hash;
-  return SVN_NO_ERROR;
+  return NULL;
 }
 
 

Modified: subversion/branches/showing-merge-info/subversion/po/de.po
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/po/de.po?rev=1231975&r1=1231974&r2=1231975&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/po/de.po [UTF-8] (original)
+++ subversion/branches/showing-merge-info/subversion/po/de.po [UTF-8] Mon Jan 16 12:32:43 2012
@@ -236,9 +236,8 @@ msgid "Invalid character in hex checksum
 msgstr "Ungültiges Zeichen in der Hex-Prüfsumme gefunden"
 
 #: ../include/svn_error_codes.h:220
-#, fuzzy
 msgid "Unknown string value of token"
-msgstr "Unbekannter Status für Sperrbefehl"
+msgstr "Unbekannter Zeichenkettenwert für Sperrmarke"
 
 #: ../include/svn_error_codes.h:226
 msgid "No such XML tag attribute"
@@ -303,9 +302,8 @@ msgid "Unrecognized stream data"
 msgstr "Unbekannter Datenstrom"
 
 #: ../include/svn_error_codes.h:294
-#, fuzzy
 msgid "Stream doesn't support seeking"
-msgstr "Server unterstützt »edit pipelining« nicht"
+msgstr "Datenstrom unterstützt das Setzen der Position nicht"
 
 #: ../include/svn_error_codes.h:300
 msgid "Unknown svn_node_kind"
@@ -480,9 +478,8 @@ msgid "The specified node is not a symli
 msgstr "Der spezifizierte Knoten ist kein symbolischer Link"
 
 #: ../include/svn_error_codes.h:503
-#, fuzzy
 msgid "The specified path has an unexpected status"
-msgstr "Die angegebene Vergleichsoption wird nicht unterstützt"
+msgstr "Der angegebene Pfad hat einen unerwarteten Status"
 
 #: ../include/svn_error_codes.h:508
 #, fuzzy
@@ -490,9 +487,8 @@ msgid "The working copy needs to be upgr
 msgstr "Die Arbeitskopie fehlt"
 
 #: ../include/svn_error_codes.h:513
-#, fuzzy
 msgid "Previous operation was interrupted; run 'svn cleanup'"
-msgstr "Die Operation wurde unterbrochen"
+msgstr "Die vorhergehende Operation wurde unterbrochen; Starten Sie »svn cleanup«"
 
 #: ../include/svn_error_codes.h:518
 msgid "This operation can not be performed with just this depth."
@@ -883,9 +879,8 @@ msgid "Server SSL certificate untrusted"
 msgstr "Server-SSL-Zertifikat ist nicht vertrauenswürdig"
 
 #: ../include/svn_error_codes.h:986
-#, fuzzy
 msgid "Initialization of the GSSAPI context failed"
-msgstr "Initialisierung der SSPI-Bibliothek schlug fehl"
+msgstr "Initialisierung des GSSAPI-Kontextes schlug fehl"
 
 #: ../include/svn_error_codes.h:991
 msgid "While handling serf response:"
@@ -1052,9 +1047,8 @@ msgid "A file external cannot overwrite 
 msgstr "Ein externer Dateiverweis kann kein existierendes versioniertes Objekt überschreiben"
 
 #: ../include/svn_error_codes.h:1182
-#, fuzzy
 msgid "Invalid path component strip count specified"
-msgstr "Ungültige Revision angegeben"
+msgstr "Ungültige Anzahl der vom Pfad zu entfernenden Komponenten angegeben"
 
 #: ../include/svn_error_codes.h:1187
 msgid "Detected a cycle while processing the operation"
@@ -1245,9 +1239,8 @@ msgid "No external merge tool available"
 msgstr "Kein externes Werkzeug zum Zusammenführen verfügbar"
 
 #: ../include/svn_error_codes.h:1396
-#, fuzzy
 msgid "Failed processing one or more externals definitions"
-msgstr "»svn:externals«-Definitionen ignorieren"
+msgstr "Verarbeitung einer oder mehrerer »svn:externals«-Definitionen fehlgeschlagen"
 
 #: ../include/svn_error_codes.h:1402
 msgid "Assertion failure"
@@ -1287,9 +1280,9 @@ msgstr "»%s« endet mit einem reservier
 #: ../svn/export-cmd.c:91 ../svn/import-cmd.c:106 ../svn/resolve-cmd.c:106
 #: ../svn/resolved-cmd.c:76 ../svn/revert-cmd.c:77 ../svn/status-cmd.c:260
 #: ../svn/upgrade-cmd.c:72
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is not a local path"
-msgstr "»%s« ist keine Datei"
+msgstr "»%s« ist kein lokaler Pfad"
 
 #: ../libsvn_client/add.c:683 ../libsvn_ra/ra_loader.c:373
 #: ../libsvn_ra_serf/serf.c:366 ../libsvn_ra_serf/serf.c:482
@@ -1348,9 +1341,9 @@ msgid "URL '%s' refers to a file, not a 
 msgstr "Die URL »%s« verweist auf eine Datei, nicht auf ein Verzeichnis"
 
 #: ../libsvn_client/checkout.c:204
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is already a working copy for a different URL; use 'svn update' to update it"
-msgstr "»%s« ist bereits eine Arbeitskopie für eine andere URL"
+msgstr "»%s« ist bereits eine Arbeitskopie für eine andere URL; Verwenden Sie »svn update« um sie zu aktualisieren"
 
 #: ../libsvn_client/checkout.c:212
 #, c-format
@@ -1418,9 +1411,8 @@ msgid "Error bumping revisions post-comm
 msgstr "Fehler beim Weiterschalten der Revisionen nach der Übertragung (Details folgen):"
 
 #: ../libsvn_client/commit.c:968
-#, fuzzy
 msgid "Are all targets part of the same working copy?"
-msgstr "Sind alle Ziele Teil derselben Arbeitskopie?"
+msgstr "Sind alle Ziele Teil der selben Arbeitskopie?"
 
 #: ../libsvn_client/commit.c:1007
 msgid "Cannot non-recursively commit a directory deletion of a directory with child nodes"
@@ -1513,9 +1505,8 @@ msgid "Path '%s' already exists, but is 
 msgstr "Pfad »%s« existiert bereits, ist aber kein Verzeichnis"
 
 #: ../libsvn_client/copy.c:775
-#, fuzzy
 msgid "Source and destination URLs appear not to all point to the same repository."
-msgstr "Quelle und Ziel scheinen sich nicht im selben Projektarchiv zu befinden (Quelle: »%s«; Ziel: »%s«)"
+msgstr "Quellen- und Ziel-URL scheinen nicht auf das selbe Projektarchiv zu zeigen."
 
 #: ../libsvn_client/copy.c:985
 #, c-format
@@ -1587,9 +1578,9 @@ msgid "'%s' is in the way of the resourc
 msgstr "»%s« ist der Ressource, die sich unter Versionskontrolle befindet, im Weg"
 
 #: ../libsvn_client/delete.c:74
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' has local modifications -- commit or revert them first"
-msgstr "»%s« hat lokale Änderungen"
+msgstr "»%s« hat lokale Änderungen -- zuerst übertragen oder zurücksetzen"
 
 #: ../libsvn_client/delete.c:104
 #, c-format
@@ -1598,9 +1589,9 @@ msgstr "Externer Dateiverweis bei »%s«
 
 #: ../libsvn_client/delete.c:339 ../libsvn_client/locking_commands.c:200
 #: ../svn/delete-cmd.c:68 ../svn/diff-cmd.c:288 ../svn/lock-cmd.c:116
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot mix repository and working copy targets"
-msgstr "Quellen aus dem Projektarchiv und einer Arbeitskopie können nicht gemischt werden"
+msgstr "Ziele aus dem Projektarchiv und einer Arbeitskopie können nicht gemischt werden"
 
 #: ../libsvn_client/deprecated.c:714 ../svn/move-cmd.c:65
 msgid "Cannot specify revisions (except HEAD) with move operations"
@@ -1611,9 +1602,8 @@ msgid "No commits in repository"
 msgstr "Keine Übertragungen im Projektarchiv"
 
 #: ../libsvn_client/deprecated.c:2094 ../libsvn_wc/deprecated.c:3370
-#, fuzzy
 msgid "Non-recursive relocation not supported"
-msgstr "Umplatzieren innerhalb des Projektarchivs nicht erlaubt"
+msgstr "Nicht-rekursives Umplatzieren nicht unterstützt"
 
 #: ../libsvn_client/diff.c:136
 #, c-format
@@ -1652,9 +1642,9 @@ msgid "Cannot display: file marked as a 
 msgstr "Kann nicht anzeigen: Dateityp ist als binär angegeben.%s"
 
 #: ../libsvn_client/diff.c:1326
-#, fuzzy, c-format
+#, c-format
 msgid "Path '%s' has no URL"
-msgstr "»%s« hat keine URL"
+msgstr "Pfad »%s« hat keine URL"
 
 #: ../libsvn_client/diff.c:1395 ../libsvn_client/merge.c:6304
 #: ../libsvn_client/merge.c:8984
@@ -1844,9 +1834,9 @@ msgid "Missing required revision specifi
 msgstr "Es wurde keine Revision angegeben"
 
 #: ../libsvn_client/log.c:401
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is not a relative path"
-msgstr "»%s« ist keine Datei"
+msgstr "»%s« ist kein relativer Pfad"
 
 #: ../libsvn_client/log.c:422
 msgid "When specifying working copy paths, only one target may be given"
@@ -1983,14 +1973,13 @@ msgid "Only depths 'infinity' and 'empty
 msgstr ""
 
 #: ../libsvn_client/patch.c:243
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot strip %u components from '%s'"
-msgstr "Zeile kann nicht in Komponenten zerlegt werden: »%s«"
+msgstr "Kann nicht %u Komponenten von »%s« entfernen"
 
 #: ../libsvn_client/patch.c:2754
-#, fuzzy
 msgid "strip count must be positive"
-msgstr "Parameter für --limit muss positiv sein"
+msgstr "Anzahl der zu entfernenden Komponenten muss positiv sein"
 
 #: ../libsvn_client/prop_commands.c:80
 #, c-format
@@ -2043,9 +2032,8 @@ msgid "revprop '%s' in r%ld is unexpecte
 msgstr "Revisionseigenschaft »%s« in r%ld ist unerwarteterweise im Projektarchiv vorhanden (eventuell hat jemand anderer sie gesetzt?)"
 
 #: ../libsvn_client/prop_commands.c:519
-#, fuzzy
 msgid "Author name should not contain a newline; value will not be set unless forced"
-msgstr "Der Wert kann nur mittels »force« gesetzt werden"
+msgstr "Der Autorenname sollte keinen Zeilenvorschub enthalten; Wert kann nur mittels »force« gesetzt werden"
 
 #: ../libsvn_client/prop_commands.c:764
 #, c-format
@@ -2137,21 +2125,19 @@ msgstr "Die URL »%s« ist kein Kind der
 
 #: ../libsvn_delta/svndiff.c:165
 msgid "Compression of svndiff data failed"
-msgstr "Kompression der svndiff-Daten schlug fehl"
+msgstr "Komprimierung der svndiff-Daten schlug fehl"
 
 #: ../libsvn_delta/svndiff.c:432
-#, fuzzy
 msgid "Decompression of svndiff data failed: no size"
-msgstr "Dekompression der svndiff-Daten schlug fehl"
+msgstr "Dekomprimierung der svndiff-Daten schlug fehl: Größe fehlt"
 
 #: ../libsvn_delta/svndiff.c:435
-#, fuzzy
 msgid "Decompression of svndiff data failed: size too large"
-msgstr "Dekompression der svndiff-Daten schlug fehl"
+msgstr "Dekomprimierung der svndiff-Daten schlug fehl: Größe zu groß"
 
 #: ../libsvn_delta/svndiff.c:456
 msgid "Decompression of svndiff data failed"
-msgstr "Dekompression der svndiff-Daten schlug fehl"
+msgstr "Dekomprimierung der svndiff-Daten schlug fehl"
 
 #: ../libsvn_delta/svndiff.c:463
 msgid "Size of uncompressed data does not match stored original length"
@@ -2163,9 +2149,9 @@ msgid "Invalid diff stream: insn %d cann
 msgstr "Ungültiger Diff-Strom: insn %d kann nicht dekodiert werden"
 
 #: ../libsvn_delta/svndiff.c:542
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid diff stream: insn %d has length zero"
-msgstr "Ungültiger Diff-Strom: insn %d hat negative Länge"
+msgstr "Ungültiger Diff-Strom: insn %d hat Länge Null"
 
 #: ../libsvn_delta/svndiff.c:546
 #, c-format
@@ -4193,28 +4179,27 @@ msgid ""
 msgstr ""
 
 #: ../libsvn_ra_serf/util.c:1421
-#, fuzzy
 msgid "Proxy authentication failed"
-msgstr "Authentifizierung schlug fehl"
+msgstr "Proxy-Anmeldung schlug fehl"
 
 #: ../libsvn_ra_serf/util.c:1495
-#, fuzzy, c-format
+#, c-format
 msgid "Premature EOF seen from server (http status=%d)"
-msgstr "Vorzeitiges EOF vom Server"
+msgstr "Vorzeitiges EOF vom Server (http Status=%d)"
 
 #: ../libsvn_ra_serf/util.c:1547
-#, fuzzy, c-format
+#, c-format
 msgid "Unspecified error message: %d %s"
-msgstr "Nicht spezifizierte Fehlermeldung"
+msgstr "Nicht spezifizierte Fehlermeldung: %d %s"
 
 #: ../libsvn_ra_serf/util.c:1815
 msgid "The OPTIONS response did not include the requested version-controlled-configuration value"
 msgstr "Die OPTIONS-Antwort enthielt nicht den angeforderten Wert »version-controlled-configuration«"
 
 #: ../libsvn_ra_serf/util.c:1932
-#, fuzzy, c-format
+#, c-format
 msgid "'%s': no lock token available"
-msgstr "Keine Sperrmarke angegeben"
+msgstr "»%s«: Keine Sperrmarke verfügbar"
 
 #: ../libsvn_ra_svn/client.c:136
 #, c-format
@@ -6057,19 +6042,16 @@ msgid "SQLite is required to be compiled
 msgstr "Es wird erwartet, dass SQLite im Thread-sicheren Modus kompiliert und gestartet wird"
 
 #: ../libsvn_subr/sqlite.c:731
-#, fuzzy
 msgid "Could not configure SQLite"
-msgstr "Konnte Datei nicht sichern"
+msgstr "Konnte SQLite nicht konfigurieren"
 
 #: ../libsvn_subr/sqlite.c:733
-#, fuzzy
 msgid "Could not initialize SQLite"
-msgstr "Konnte die SASL-Bibliothek nicht initialisieren"
+msgstr "Konnte SQLite nicht initialisieren"
 
 #: ../libsvn_subr/sqlite.c:742
-#, fuzzy
 msgid "Could not initialize SQLite shared cache"
-msgstr "Konnte die SASL-Bibliothek nicht initialisieren"
+msgstr "Konnte den gemeinsam genutzten SQLite-Zwischenspeicher nicht initialisieren"
 
 #: ../libsvn_subr/sqlite.c:812
 #, c-format
@@ -6109,7 +6091,7 @@ msgstr " (%a, %d. %b %Y)"
 #: ../libsvn_subr/token.c:66
 #, fuzzy, c-format
 msgid "Token '%s' is unrecognized"
-msgstr "»%s« hat einen nicht erkannten Knotentyp"
+msgstr "Marke »%s« hat einen nicht erkannten Knotentyp"
 
 #: ../libsvn_subr/utf.c:190
 msgid "Can't lock charset translation mutex"
@@ -6381,9 +6363,9 @@ msgid "Tree conflicts can only be resolv
 msgstr ""
 
 #: ../libsvn_wc/copy.c:78
-#, fuzzy, c-format
+#, c-format
 msgid "Source '%s' is unexpected kind"
-msgstr "Quelle »%s« ist kein Verzeichnis"
+msgstr "Quelle »%s« ist unbekannten Typs"
 
 #: ../libsvn_wc/copy.c:384
 #, fuzzy, c-format
@@ -6462,9 +6444,9 @@ msgid "Unexpectedly found '%s': path is 
 msgstr "Unerwartetes »%s« gefunden: Pfad wird als »fehlend« markiert"
 
 #: ../libsvn_wc/entries.c:1148
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is not a versioned working copy"
-msgstr "»%s« ist keine Arbeitskopie"
+msgstr "»%s« ist keine versionierte Arbeitskopie"
 
 #: ../libsvn_wc/entries.c:1394
 #, fuzzy, c-format
@@ -6867,9 +6849,9 @@ msgid "Invalid source URL prefix: '%s' (
 msgstr ""
 
 #: ../libsvn_wc/relocate.c:146 ../libsvn_wc/relocate.c:151
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid destination URL: '%s'"
-msgstr "Ungültige URL »%s«"
+msgstr "Ungültige Ziel-URL: »%s«"
 
 #: ../libsvn_wc/tree_conflicts.c:130
 msgid "Unknown enumeration value in tree conflict description"
@@ -6976,9 +6958,9 @@ msgid "Unrecognized node kind: '%s'"
 msgstr "Unbekannter Knotentyp: »%s«"
 
 #: ../libsvn_wc/update_editor.c:5582
-#, fuzzy, c-format
+#, c-format
 msgid "Node '%s' exists."
-msgstr "Datei »%s« existiert bereits"
+msgstr "Knoten »%s« existiert bereits"
 
 #: ../libsvn_wc/update_editor.c:5637
 #, c-format
@@ -7030,9 +7012,9 @@ msgid "No REPOSITORY table entry for id 
 msgstr "Kein REPOSITORY-Tabelleneintrag für ID »%ld«"
 
 #: ../libsvn_wc/wc_db.c:1456 ../libsvn_wc/wc_db.c:1502
-#, fuzzy, c-format
+#, c-format
 msgid "The node '%s' is not in a workingcopy."
-msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+msgstr "Der Knoten »%s« ist nicht in einer Arbeitskopie."
 
 #: ../libsvn_wc/wc_db.c:2019 ../libsvn_wc/wc_db.c:5288
 #, c-format
@@ -7100,24 +7082,24 @@ msgid "The properties of '%s' are in an 
 msgstr ""
 
 #: ../libsvn_wc/wc_db.c:7643
-#, fuzzy, c-format
+#, c-format
 msgid "Repository '%s' not found in the database"
-msgstr "Pfad »%s« wurde in der HEAD-Revision nicht gefunden"
+msgstr "Projektverzeichnis »%s« nicht in der Datenbank gefunden"
 
 #: ../libsvn_wc/wc_db.c:8505 ../libsvn_wc/wc_db.c:8552
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is already locked."
-msgstr "Pfad ist bereits gesperrt"
+msgstr "»%s« ist bereits gesperrt"
 
 #: ../libsvn_wc/wc_db.c:8509 ../libsvn_wc/wc_db.c:8560
-#, fuzzy, c-format
+#, c-format
 msgid "Working copy '%s' locked."
-msgstr "Arbeitskopie »%s« gesperrt"
+msgstr "Arbeitskopie »%s« gesperrt."
 
 #: ../libsvn_wc/wc_db.c:8639
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is already locked via '%s'."
-msgstr "Pfad ist bereits gesperrt"
+msgstr "»%s« ist bereits durch »%s« gesperrt"
 
 #: ../libsvn_wc/wc_db.c:8753
 #, fuzzy, c-format
@@ -7161,9 +7143,9 @@ msgid "Missing a row in WCROOT for '%s'.
 msgstr "Fehlende Zeile in WCROOT für »%s«."
 
 #: ../libsvn_wc/wc_db_pdh.c:668
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is not a working copy root"
-msgstr "»%s« ist keine Arbeitskopie"
+msgstr "»%s« ist keine Basis einer Arbeitskopie"
 
 # CHECKME: What's WCROOT? A variable or short for "working copy root"?
 #: ../libsvn_wc/wc_db_util.c:68
@@ -7490,9 +7472,9 @@ msgid "'--new' option only valid with '-
 msgstr "Option »--new« ist nur in Verbindung mit der Option »--old« zulässig"
 
 #: ../svn/diff-cmd.c:322
-#, fuzzy, c-format
+#, c-format
 msgid "Path '%s' not relative to base URLs"
-msgstr "Pfad »%s« ist keine URL"
+msgstr "Pfad »%s« ist nicht relativ zur Basis-URL"
 
 #: ../svn/export-cmd.c:113
 msgid "Destination directory exists; please remove the directory or use --force to overwrite"
@@ -7532,13 +7514,12 @@ msgstr ""
 "Verfügbare Unterbefehle:\n"
 
 #: ../svn/help-cmd.c:63
-#, fuzzy
 msgid ""
 "Subversion is a tool for version control.\n"
 "For additional information, see http://subversion.apache.org/\n"
 msgstr ""
 "Subversion ist ein Programm zur Versionskontrolle.\n"
-"Für weitere Informationen, siehe: http://subversion.tigris.org/\n"
+"Für weitere Informationen, siehe: http://subversion.apache.org/\n"
 
 #: ../svn/help-cmd.c:70 ../svnrdump/svnrdump.c:349 ../svnsync/main.c:1762
 msgid ""
@@ -7847,14 +7828,12 @@ msgid "'with-revprop' option only valid 
 msgstr "Option »with-revprop« ist nur im XML-Modus gültig"
 
 #: ../svn/log-cmd.c:588
-#, fuzzy
 msgid "'diff' option is not supported in XML mode"
-msgstr "Die angegebene Vergleichsoption wird nicht unterstützt"
+msgstr "Option »diff« wird im XML-Modus nicht unterstützt"
 
 #: ../svn/log-cmd.c:594
-#, fuzzy
 msgid "'quiet' and 'diff' options are mutually exclusive"
-msgstr "--relocate und --depth schließen sich gegenseitig aus"
+msgstr "»quiet« und »diff« schließen sich gegenseitig aus"
 
 #: ../svn/log-cmd.c:598
 msgid "'diff-cmd' option requires 'diff' option"
@@ -8176,9 +8155,8 @@ msgid "don't diff copied or moved files 
 msgstr ""
 
 #: ../svn/main.c:326
-#, fuzzy
 msgid "don't expand keywords"
-msgstr "Kann Zeitangabe nicht expandieren"
+msgstr "Schlüsselwörter nicht expandieren"
 
 #: ../svn/main.c:328
 msgid "apply the unidiff in reverse"
@@ -9678,14 +9656,13 @@ msgid "'%s' is not a valid --show-revs v
 msgstr "»%s« ist kein gültiger Wert für --show-revs"
 
 #: ../svn/main.c:1764
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid strip count '%s'"
-msgstr "Ungültiger Quellpfad einer Kopie: »%s«"
+msgstr "Ungültige Anzahl der zu entfernenden Komponenten »%s«"
 
 #: ../svn/main.c:1770
-#, fuzzy
 msgid "Argument to --strip must be positive"
-msgstr "Parameter für --limit muss positiv sein"
+msgstr "Parameter für --strip muss positiv sein"
 
 #: ../svn/main.c:1851 ../svndumpfilter/main.c:1395 ../svnlook/main.c:2399
 #: ../svnrdump/svnrdump.c:522
@@ -9730,9 +9707,8 @@ msgstr "--trust-server-cert erfordert --
 
 # TODO: Duplicated message!!!!
 #: ../svn/main.c:1970
-#, fuzzy
 msgid "--diff-cmd and --internal-diff are mutually exclusive"
-msgstr "-c und -r schließen sich gegenseitig aus"
+msgstr "--diff-cmd und --internal-diff schließen sich gegenseitig aus"
 
 #: ../svn/main.c:2030
 msgid "Log message file is a versioned file; use '--force-log' to override"
@@ -9755,9 +9731,8 @@ msgid "--relocate and --depth are mutual
 msgstr "--relocate und --depth schließen sich gegenseitig aus"
 
 #: ../svn/main.c:2087
-#, fuzzy
 msgid "--relocate and --non-recursive (-N) are mutually exclusive"
-msgstr "--relocate und --depth schließen sich gegenseitig aus"
+msgstr "--relocate und --non-recursive (-N) schließen sich gegenseitig aus"
 
 #: ../svn/main.c:2171
 msgid "--auto-props and --no-auto-props are mutually exclusive"
@@ -9822,15 +9797,13 @@ msgid "--force cannot be used with --rei
 msgstr "--force kann nicht mit --reintegrate verwendet werden"
 
 #: ../svn/merge-cmd.c:294
-#, fuzzy
 msgid "--reintegrate can only be used with a single merge source"
-msgstr "--reintegrate kann nicht mit --ignore-ancestry verwendet werden"
+msgstr "--reintegrate kann nur mit einer einzelnen Zusammenführungsquelle verwendet werden"
 
 # TODO: merge messages!!!
 #: ../svn/merge-cmd.c:298
-#, fuzzy
 msgid "--allow-mixed-revisions cannot be used with --reintegrate"
-msgstr "--force kann nicht mit --reintegrate verwendet werden"
+msgstr "--allow-mixed-revisions kann nicht mit --reintegrate verwendet werden"
 
 #: ../svn/mergeinfo-cmd.c:81
 msgid "Not enough arguments given"
@@ -10200,9 +10173,8 @@ msgid "Obliterate %8ld %s\n"
 msgstr ""
 
 #: ../svn/obliterate-cmd.c:111
-#, fuzzy
 msgid "Wrong number of arguments"
-msgstr "Falsche Anzahl Ziele angegeben"
+msgstr "Falsche Anzahl von Argumenten"
 
 #: ../svn/obliterate-cmd.c:116
 #, fuzzy
@@ -10378,17 +10350,17 @@ msgid "local %s, incoming %s upon %s"
 msgstr "lokal %s, eingehend %s bei %s"
 
 #: ../svn/util.c:74
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "Committed revision %ld%s.\n"
 msgstr ""
 "\n"
-"Revision %ld übertragen.\n"
+"Revision %ld%s übertragen.\n"
 
 #: ../svn/util.c:78
 msgid " (the answer to life, the universe, and everything)"
-msgstr ""
+msgstr " (die Antwort auf die Frage nach dem Leben, dem Universum und dem ganzen Rest)"
 
 #: ../svn/util.c:87
 #, c-format
@@ -10630,11 +10602,10 @@ msgid ""
 msgstr "Ein mit Subversion-Versionen vor 1.6 kompatibles Format verwenden"
 
 #: ../svnadmin/main.c:321
-#, fuzzy
 msgid ""
 "use format compatible with Subversion versions\n"
 "                             earlier than 1.7"
-msgstr "Ein mit Subversion-Versionen vor 1.4 kompatibles Format verwenden"
+msgstr "Ein mit Subversion-Versionen vor 1.7 kompatibles Format verwenden"
 
 #: ../svnadmin/main.c:334
 msgid ""
@@ -11897,9 +11868,9 @@ msgstr ""
 "Verfügbare Unterbefehle:\n"
 
 #: ../svnrdump/svnrdump.c:585
-#, fuzzy, c-format
+#, c-format
 msgid "Revision %ld does not exist.\n"
-msgstr "URL »%s« existiert nicht in Revision %ld"
+msgstr "Revision %ld existiert nicht.\n"
 
 #: ../svnrdump/svnrdump.c:592
 #, c-format
@@ -12070,9 +12041,9 @@ msgstr ""
 "Cyrus-SASL-Authentifizierung ist verfügbar.\n"
 
 #: ../svnserve/main.c:487
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid port '%s'"
-msgstr "Ungültige URL »%s«"
+msgstr "Ungültiger Port »%s«"
 
 #: ../svnserve/main.c:528
 #, c-format
@@ -12370,9 +12341,8 @@ msgid "Destination repository is already
 msgstr "Das Zielprojektarchiv synchronisiert bereits von »%s«"
 
 #: ../svnsync/main.c:854
-#, fuzzy
 msgid "Destination repository has more revisions than source repository"
-msgstr "Zielprojektarchiv wurde noch nicht initialisiert"
+msgstr "Zielprojektarchiv hat mehr Revisionen als Quellprojektarchiv"
 
 #: ../svnsync/main.c:918 ../svnsync/main.c:921 ../svnsync/main.c:1425
 #: ../svnsync/main.c:1432 ../svnsync/main.c:1667 ../svnsync/main.c:1670
@@ -12420,9 +12390,9 @@ msgid "Cannot specify revisions via both
 msgstr ""
 
 #: ../svnsync/main.c:1628 ../svnsync/main.c:1961
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid revision range '%s' provided"
-msgstr "Ungültige Revisionsnummer angegeben"
+msgstr "Ungültiger Revisionsbereich »%s« angegeben"
 
 #: ../svnsync/main.c:1724
 #, c-format
@@ -12555,24 +12525,24 @@ msgid "last changed rather than current 
 msgstr "gibt letzte geänderte statt aktueller Revisionen aus"
 
 #: ../svnversion/main.c:232
-#, fuzzy, c-format
+#, c-format
 msgid "Unversioned directory%s"
-msgstr "Keine versionierten Elternverzeichnisse"
+msgstr "Nicht versioniertes Verzeichnis%s"
 
 #: ../svnversion/main.c:250 ../svnversion/main.c:266
-#, fuzzy, c-format
+#, c-format
 msgid "Unversioned file%s"
-msgstr "nicht versioniert"
+msgstr "Nicht versionierte Datei%s"
 
 #: ../svnversion/main.c:279
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' doesn't exist\n"
-msgstr "»%s« ist nicht vorhanden"
+msgstr "»%s« existiert nicht\n"
 
 #: ../svnversion/main.c:287
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is of unknown type\n"
-msgstr "»%s« ist veraltet"
+msgstr "»%s« ist unbekannten Typs\n"
 
 #. Local uncommitted modifications, no revision info was found.
 #: ../svnversion/main.c:296



Mime
View raw message