You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2012/03/06 18:50:31 UTC

svn commit: r1297604 [8/12] - in /subversion/branches/reintegrate-keep-alive: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ build/win32/ notes/ notes/api-errata/1.7/ subversion/bindings/javahl/native/ subversion/bindings/javahl...

Modified: subversion/branches/reintegrate-keep-alive/subversion/libsvn_wc/wc_db_wcroot.c
URL: http://svn.apache.org/viewvc/subversion/branches/reintegrate-keep-alive/subversion/libsvn_wc/wc_db_wcroot.c?rev=1297604&r1=1297603&r2=1297604&view=diff
==============================================================================
--- subversion/branches/reintegrate-keep-alive/subversion/libsvn_wc/wc_db_wcroot.c (original)
+++ subversion/branches/reintegrate-keep-alive/subversion/libsvn_wc/wc_db_wcroot.c Tue Mar  6 17:50:23 2012
@@ -100,16 +100,15 @@ get_old_version(int *version,
    of LOCAL_ABSPATH, using DB and SCRATCH_POOL as needed.
 
    This function may do strange things, but at long as it comes up with the
-   Right Answer, we should be happy.
-
-   Sets *KIND to svn_node_dir for symlinks. */
+   Right Answer, we should be happy. */
 static svn_error_t *
-get_path_kind(svn_node_kind_t *kind,
+get_path_kind(svn_kind_t *kind,
               svn_wc__db_t *db,
               const char *local_abspath,
               apr_pool_t *scratch_pool)
 {
   svn_boolean_t special;
+  svn_node_kind_t node_kind;
 
   /* This implements a *really* simple LRU cache, where "simple" is defined
      as "only one element".  In other words, we remember the most recently
@@ -133,12 +132,10 @@ get_path_kind(svn_node_kind_t *kind,
       svn_stringbuf_set(db->parse_cache.abspath, local_abspath);
     }
 
-  SVN_ERR(svn_io_check_special_path(local_abspath, &db->parse_cache.kind,
+  SVN_ERR(svn_io_check_special_path(local_abspath, &node_kind,
                                     &special, scratch_pool));
 
-  /* The wcroot could be a symlink to a directory. (Issue #2557, #3987) */
-  if (special)
-    db->parse_cache.kind = svn_node_dir;
+  db->parse_cache.kind = svn__kind_from_node_kind(node_kind, special);
   *kind = db->parse_cache.kind;
 
   return SVN_NO_ERROR;
@@ -366,7 +363,7 @@ svn_wc__db_wcroot_parse_local_abspath(sv
 {
   const char *local_dir_abspath;
   const char *original_abspath = local_abspath;
-  svn_node_kind_t kind;
+  svn_kind_t kind;
   const char *build_relpath;
   svn_wc__db_wcroot_t *probe_wcroot;
   svn_wc__db_wcroot_t *found_wcroot = NULL;
@@ -402,7 +399,7 @@ svn_wc__db_wcroot_parse_local_abspath(sv
      ### into wc_db which references a file. calls for directories could
      ### get an early-exit in the hash lookup just above.  */
   SVN_ERR(get_path_kind(&kind, db, local_abspath, scratch_pool));
-  if (kind != svn_node_dir)
+  if (kind != svn_kind_dir)
     {
       /* If the node specified by the path is NOT present, then it cannot
          possibly be a directory containing ".svn/wc.db".
@@ -437,7 +434,7 @@ svn_wc__db_wcroot_parse_local_abspath(sv
          many ancestors need to be scanned until we start hitting content
          on the disk. Set ALWAYS_CHECK to keep looking for .svn/entries
          rather than bailing out after the first check.  */
-      if (kind == svn_node_none)
+      if (kind == svn_kind_none)
         always_check = TRUE;
 
       /* Start the scanning at LOCAL_DIR_ABSPATH.  */
@@ -511,6 +508,38 @@ svn_wc__db_wcroot_parse_local_abspath(sv
       if (svn_dirent_is_root(local_abspath, strlen(local_abspath)))
         {
           /* Hit the root without finding a wcroot. */
+
+          /* The wcroot could be a symlink to a directory.
+           * (Issue #2557, #3987). If so, try again, this time scanning
+           * for a db within the directory the symlink points to,
+           * rather than within the symlink's parent directory. */
+          if (kind == svn_kind_symlink)
+            {
+              svn_node_kind_t resolved_kind;
+
+              local_abspath = original_abspath;
+
+              SVN_ERR(svn_io_check_resolved_path(local_abspath,
+                                                 &resolved_kind,
+                                                 scratch_pool));
+              if (resolved_kind == svn_node_dir)
+                {
+                  /* Is this directory recorded in our hash?  */
+                  found_wcroot = apr_hash_get(db->dir_data, local_abspath,
+                                              APR_HASH_KEY_STRING);
+                  if (found_wcroot)
+                    break;
+
+try_symlink_as_dir:
+                  kind = svn_kind_dir;
+                  moved_upwards = FALSE;
+                  local_dir_abspath = local_abspath;
+                  build_relpath = "";
+
+                  continue;
+                }
+            }
+
           return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
                                    _("'%s' is not a working copy"),
                                    svn_dirent_local_style(original_abspath,
@@ -584,6 +613,61 @@ svn_wc__db_wcroot_parse_local_abspath(sv
     *local_relpath = svn_relpath_join(dir_relpath, build_relpath, result_pool);
   }
 
+  if (kind == svn_kind_symlink)
+    {
+      svn_boolean_t retry_if_dir = FALSE;
+      svn_wc__db_status_t status;
+      svn_boolean_t conflicted;
+      svn_error_t *err;
+
+      /* Check if the symlink is versioned or obstructs a versioned node
+       * in this DB -- in that case, use this wcroot. Else, if the symlink
+       * points to a directory, try to find a wcroot in that directory
+       * instead. */
+
+      err = svn_wc__db_read_info_internal(&status, NULL, NULL, NULL, NULL,
+                                          NULL, NULL, NULL, NULL, NULL, NULL,
+                                          NULL, NULL, NULL, NULL, NULL, NULL,
+                                          NULL, &conflicted, NULL, NULL, NULL,
+                                          NULL, NULL, NULL,
+                                          *wcroot, *local_relpath,
+                                          scratch_pool, scratch_pool);
+      if (err)
+        {
+          if (err->apr_err != SVN_ERR_WC_PATH_NOT_FOUND
+              && !SVN_WC__ERR_IS_NOT_CURRENT_WC(err))
+            return svn_error_trace(err);
+
+          svn_error_clear(err);
+          retry_if_dir = TRUE; /* The symlink is unversioned. */
+        }
+      else
+        {
+          /* The symlink is versioned, or obstructs a versioned node.
+           * Ignore non-conflicted not-present/excluded nodes.
+           * This allows the symlink to redirect the wcroot query to a
+           * directory, regardless of 'invisible' nodes in this WC. */
+          retry_if_dir = ((status == svn_wc__db_status_not_present ||
+                           status == svn_wc__db_status_excluded ||
+                           status == svn_wc__db_status_server_excluded)
+                          && !conflicted);
+        }
+
+      if (retry_if_dir)
+        {
+          svn_node_kind_t resolved_kind;
+
+          SVN_ERR(svn_io_check_resolved_path(original_abspath,
+                                             &resolved_kind,
+                                             scratch_pool));
+          if (resolved_kind == svn_node_dir)
+            {
+              local_abspath = original_abspath;
+              goto try_symlink_as_dir;
+            }
+        }
+    }
+
   /* We've found the appropriate WCROOT for the requested path. Stash
      it into that path's directory.  */
   apr_hash_set(db->dir_data,

Modified: subversion/branches/reintegrate-keep-alive/subversion/mod_authz_svn/mod_authz_svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/reintegrate-keep-alive/subversion/mod_authz_svn/mod_authz_svn.c?rev=1297604&r1=1297603&r2=1297604&view=diff
==============================================================================
--- subversion/branches/reintegrate-keep-alive/subversion/mod_authz_svn/mod_authz_svn.c (original)
+++ subversion/branches/reintegrate-keep-alive/subversion/mod_authz_svn/mod_authz_svn.c Tue Mar  6 17:50:23 2012
@@ -48,10 +48,11 @@
 #include "private/svn_fspath.h"
 
 
-extern module AP_MODULE_DECLARE_DATA authz_svn_module;
-
 #ifdef APLOG_USE_MODULE
 APLOG_USE_MODULE(authz_svn);
+#else
+/* This is part of the APLOG_USE_MODULE() macro in httpd-2.3 */
+extern module AP_MODULE_DECLARE_DATA authz_svn_module;
 #endif
 
 typedef struct authz_svn_config_rec {

Modified: subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/dav_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/dav_svn.h?rev=1297604&r1=1297603&r2=1297604&view=diff
==============================================================================
--- subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/dav_svn.h (original)
+++ subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/dav_svn.h Tue Mar  6 17:50:23 2012
@@ -385,6 +385,9 @@ const char *dav_svn__get_root_dir(reques
 /* Return the data compression level to be used over the wire. */
 int dav_svn__get_compression_level(void);
 
+/* Return the hook script environment parsed from the configuration. */
+apr_hash_t *dav_svn__get_hooks_env(request_rec *r);
+
 /** For HTTP protocol v2, these are the new URIs and URI stubs
     returned to the client in our OPTIONS response.  They all depend
     on the 'special uri', which is configurable in httpd.conf.  **/

Modified: subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/liveprops.c
URL: http://svn.apache.org/viewvc/subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/liveprops.c?rev=1297604&r1=1297603&r2=1297604&view=diff
==============================================================================
--- subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/liveprops.c (original)
+++ subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/liveprops.c Tue Mar  6 17:50:23 2012
@@ -282,6 +282,9 @@ insert_prop_internal(const dav_resource 
   int global_ns;
   svn_error_t *serr;
 
+  /* ### TODO proper errors */
+  static const char *const error_value = "###error###";
+
   /*
   ** Almost none of the SVN provider properties are defined if the
   ** resource does not exist.  We do need to return the one VCC
@@ -378,14 +381,14 @@ insert_prop_internal(const dav_resource 
                                            scratch_pool);
             if (serr != NULL)
               {
-                ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err, 
+                ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
                               resource->info->r,
                               "Can't get created-rev of '%s': "
                               "%s",
                               resource->info->repos_path,
                               serr->message);
                 svn_error_clear(serr);
-                value = "###error###";
+                value = error_value;
                 break;
               }
           }
@@ -401,14 +404,14 @@ insert_prop_internal(const dav_resource 
                                 scratch_pool);
         if (serr)
           {
-            ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err, 
+            ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
                           resource->info->r,
                           "Can't get author of r%ld: "
                           "%s",
                           committed_rev,
                           serr->message);
             svn_error_clear(serr);
-            value = "###error###";
+            value = error_value;
             break;
           }
 
@@ -436,8 +439,14 @@ insert_prop_internal(const dav_resource 
                                   resource->info->repos_path, scratch_pool);
         if (serr != NULL)
           {
+            ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
+                          resource->info->r,
+                          "Can't get filesize of '%s': "
+                          "%s",
+                          resource->info->repos_path,
+                          serr->message);
             svn_error_clear(serr);
-            value = "0";  /* ### what to do? */
+            value = error_value;
             break;
           }
 
@@ -494,7 +503,7 @@ insert_prop_internal(const dav_resource 
                    there's no point even checking.  No matter what the
                    error is, we can't claim to have a mime type for
                    this resource. */
-                ap_log_rerror(APLOG_MARK, APLOG_WARNING, serr->apr_err, 
+                ap_log_rerror(APLOG_MARK, APLOG_WARNING, serr->apr_err,
                               resource->info->r, "%s", serr->message);
                 svn_error_clear(serr);
                 return DAV_PROP_INSERT_NOTDEF;
@@ -549,7 +558,7 @@ insert_prop_internal(const dav_resource 
                                      scratch_pool);
           if (serr != NULL)
             {
-              ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err, 
+              ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
                             resource->info->r,
                             "Can't get youngest revision in '%s': "
                             "%s",
@@ -557,7 +566,7 @@ insert_prop_internal(const dav_resource 
                                         scratch_pool),
                             serr->message);
               svn_error_clear(serr);
-              value = "###error###";
+              value = error_value;
               break;
             }
           s = dav_svn__build_uri(resource->info->repos,
@@ -629,14 +638,14 @@ insert_prop_internal(const dav_resource 
                                          scratch_pool);
           if (serr != NULL)
             {
-              ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err, 
+              ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
                             resource->info->r,
                             "Can't get created-rev of '%s': "
                             "%s",
                             resource->info->repos_path,
                             serr->message);
               svn_error_clear(serr);
-              value = "###error###";
+              value = error_value;
               break;
             }
 
@@ -665,25 +674,32 @@ insert_prop_internal(const dav_resource 
               || resource->type == DAV_RESOURCE_TYPE_WORKING
               || resource->type == DAV_RESOURCE_TYPE_VERSION))
         {
+          svn_node_kind_t kind;
           svn_checksum_t *checksum;
 
-          serr = svn_fs_file_checksum(&checksum, svn_checksum_md5,
-                                      resource->info->root.root,
-                                      resource->info->repos_path, TRUE,
-                                      scratch_pool);
+          serr = svn_fs_check_path(&kind, resource->info->root.root,
+                                   resource->info->repos_path, scratch_pool);
+          if (!serr && kind == svn_node_file)
+            serr = svn_fs_file_checksum(&checksum, svn_checksum_md5,
+                                        resource->info->root.root,
+                                        resource->info->repos_path, TRUE,
+                                        scratch_pool);
           if (serr != NULL)
             {
-              ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err, 
+              ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
                             resource->info->r,
-                            "Can't get fetch or compute md5 checksum of '%s': "
+                            "Can't fetch or compute MD5 checksum of '%s': "
                             "%s",
                             resource->info->repos_path,
                             serr->message);
               svn_error_clear(serr);
-              value = "###error###";
+              value = error_value;
               break;
             }
 
+          if (kind != svn_node_file)
+            return DAV_PROP_INSERT_NOTSUPP;
+
           value = svn_checksum_to_cstring(checksum, scratch_pool);
 
           if (! value)
@@ -698,14 +714,14 @@ insert_prop_internal(const dav_resource 
       serr = svn_fs_get_uuid(resource->info->repos->fs, &value, scratch_pool);
       if (serr != NULL)
         {
-          ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err, 
+          ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
                         resource->info->r,
                         "Can't fetch UUID of '%s': "
                         "%s",
                         svn_fs_path(resource->info->repos->fs, scratch_pool),
                         serr->message);
           svn_error_clear(serr);
-          value = "###error###";
+          value = error_value;
           break;
         }
       break;
@@ -723,14 +739,14 @@ insert_prop_internal(const dav_resource 
                                     resource->info->repos_path, scratch_pool);
         if (serr != NULL)
           {
-            ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err, 
+            ap_log_rerror(APLOG_MARK, APLOG_ERR, serr->apr_err,
                           resource->info->r,
                           "Can't fetch proplist of '%s': "
                           "%s",
                           resource->info->repos_path,
                           serr->message);
             svn_error_clear(serr);
-            value = "###error###";
+            value = error_value;
             break;
           }
 

Modified: subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/mod_dav_svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/mod_dav_svn.c?rev=1297604&r1=1297603&r2=1297604&view=diff
==============================================================================
--- subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/mod_dav_svn.c (original)
+++ subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/mod_dav_svn.c Tue Mar  6 17:50:23 2012
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 
 #include <apr_strings.h>
+#include <apr_hash.h>
 
 #include <httpd.h>
 #include <http_config.h>
@@ -94,6 +95,7 @@ typedef struct dir_conf_t {
   const char *activities_db;         /* path to activities database(s) */
   enum conf_flag txdelta_cache;      /* whether to enable txdelta caching */
   enum conf_flag fulltext_cache;     /* whether to enable fulltext caching */
+  apr_hash_t *hooks_env;             /* environment for hook scripts */
 } dir_conf_t;
 
 
@@ -193,6 +195,7 @@ create_dir_config(apr_pool_t *p, char *d
     conf->root_dir = svn_urlpath__canonicalize(dir, p);
   conf->bulk_updates = CONF_FLAG_ON;
   conf->v2_protocol = CONF_FLAG_ON;
+  conf->hooks_env = apr_hash_make(p);
 
   return conf;
 }
@@ -222,6 +225,7 @@ merge_dir_config(apr_pool_t *p, void *ba
   newconf->txdelta_cache = INHERIT_VALUE(parent, child, txdelta_cache);
   newconf->fulltext_cache = INHERIT_VALUE(parent, child, fulltext_cache);
   newconf->root_dir = INHERIT_VALUE(parent, child, root_dir);
+  newconf->hooks_env = INHERIT_VALUE(parent, child, hooks_env);
 
   if (parent->fs_path)
     ap_log_error(APLOG_MARK, APLOG_WARNING, 0, NULL,
@@ -528,6 +532,47 @@ SVNUseUTF8_cmd(cmd_parms *cmd, void *con
   return NULL;
 }
 
+static const char *
+SVNHooksEnv_cmd(cmd_parms *cmd, void *config, const char *arg1)
+{
+  apr_array_header_t *var;
+
+  var = svn_cstring_split(arg1, "=", TRUE, cmd->pool);
+  if (var && var->nelts >= 2)
+    {
+      dir_conf_t *conf = config;
+      const char *name;
+      const char *val;
+
+      name = apr_pstrdup(apr_hash_pool_get(conf->hooks_env),
+                         APR_ARRAY_IDX(var, 0, const char *));
+
+      /* Special case for values which contain '='. */
+      if (var->nelts > 2)
+        {
+          svn_stringbuf_t *buf;
+          int i;
+
+          buf = svn_stringbuf_create(APR_ARRAY_IDX(var, 1, const char *),
+                                     cmd->pool);
+          for (i = 2; i < var->nelts; i++)
+            {
+              svn_stringbuf_appendbyte(buf, '=');
+              svn_stringbuf_appendcstr(buf, APR_ARRAY_IDX(var, i, const char *));
+            }
+
+          val = apr_pstrdup(apr_hash_pool_get(conf->hooks_env), buf->data);
+        }
+      else
+        val = apr_pstrdup(apr_hash_pool_get(conf->hooks_env),
+                          APR_ARRAY_IDX(var, 1, const char *));
+
+      apr_hash_set(conf->hooks_env, name, APR_HASH_KEY_STRING, val);
+    }
+
+  return NULL;
+}
+
 
 /** Accessor functions for the module's configuration state **/
 
@@ -805,6 +850,15 @@ dav_svn__get_compression_level(void)
   return svn__compression_level;
 }
 
+apr_hash_t *
+dav_svn__get_hooks_env(request_rec *r)
+{
+  dir_conf_t *conf;
+
+  conf = ap_get_module_config(r->per_dir_config, &dav_svn_module);
+  return conf->hooks_env;
+}
+
 static void
 merge_xml_filter_insert(request_rec *r)
 {
@@ -1044,6 +1098,12 @@ static const command_rec cmds[] =
                SVNUseUTF8_cmd, NULL,
                RSRC_CONF,
                "use UTF-8 as native character encoding (default is ASCII)."),
+
+  /* per directory/location */
+  AP_INIT_ITERATE("SVNHooksEnv", SVNHooksEnv_cmd, NULL,
+                  ACCESS_CONF|RSRC_CONF,
+                  "Set the environment of hook scripts via any number of "
+                  "VAR=VAL arguments (the default hook environment is empty)."),
   { NULL }
 };
 

Modified: subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/repos.c?rev=1297604&r1=1297603&r2=1297604&view=diff
==============================================================================
--- subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/repos.c (original)
+++ subversion/branches/reintegrate-keep-alive/subversion/mod_dav_svn/repos.c Tue Mar  6 17:50:23 2012
@@ -1917,8 +1917,6 @@ parse_querystring(request_rec *r, const 
   return NULL;
 }
 
-
-
 static dav_error *
 get_resource(request_rec *r,
              const char *root_path,
@@ -2188,6 +2186,9 @@ get_resource(request_rec *r,
                                          "in repos object",
                                          HTTP_INTERNAL_SERVER_ERROR, r);
         }
+
+      /* Configure the hooks environment, if not empty. */
+      svn_repos_hooks_setenv(repos->repos, dav_svn__get_hooks_env(r));
     }
 
   /* cache the filesystem object */
@@ -3263,7 +3264,7 @@ deliver(const dav_resource *resource, ap
               if (dirent->kind == svn_node_file && dirent->special)
                 {
                   svn_node_kind_t resolved_kind;
-                  const char *link_path = 
+                  const char *link_path =
                     svn_dirent_join(fs_parent_path, key, resource->pool);
 
                   serr = svn_io_check_resolved_path(link_path, &resolved_kind,
@@ -3276,7 +3277,7 @@ deliver(const dav_resource *resource, ap
                                                 resource->pool);
                   if (resolved_kind != svn_node_dir)
                     continue;
-                  
+
                   dirent->kind = svn_node_dir;
                 }
               else if (dirent->kind != svn_node_dir)

Modified: subversion/branches/reintegrate-keep-alive/subversion/po/de.po
URL: http://svn.apache.org/viewvc/subversion/branches/reintegrate-keep-alive/subversion/po/de.po?rev=1297604&r1=1297603&r2=1297604&view=diff
==============================================================================
--- subversion/branches/reintegrate-keep-alive/subversion/po/de.po [UTF-8] (original)
+++ subversion/branches/reintegrate-keep-alive/subversion/po/de.po [UTF-8] Tue Mar  6 17:50:23 2012
@@ -53,6 +53,7 @@
 # property     Eigenschaft
 # PROPNAME     PROPNAME
 # PROPVAL      PROPWERT
+# reintegrate  wiedereingliedern
 # relocate     umplatzieren
 # REPOS        PA
 # REPOS_PATH   ARCHIV_PFAD
@@ -482,9 +483,8 @@ msgid "The specified path has an unexpec
 msgstr "Der angegebene Pfad hat einen unerwarteten Status"
 
 #: ../include/svn_error_codes.h:508
-#, fuzzy
 msgid "The working copy needs to be upgraded"
-msgstr "Die Arbeitskopie fehlt"
+msgstr "Die Arbeitskopie muss in ein neueres Format gebracht werden"
 
 #: ../include/svn_error_codes.h:513
 msgid "Previous operation was interrupted; run 'svn cleanup'"
@@ -775,9 +775,8 @@ msgid "Repository root URL does not matc
 msgstr "Die URL der Projektarchivwurzel entspricht nicht der erwarteten Wurzel-URL"
 
 #: ../include/svn_error_codes.h:854
-#, fuzzy
 msgid "Session URL does not match expected session URL"
-msgstr "Die URL der Projektarchivwurzel entspricht nicht der erwarteten Wurzel-URL"
+msgstr "Die Sitzungs-URL entspricht nicht der erwarteten Sitzungs-URL"
 
 #: ../include/svn_error_codes.h:860
 msgid "RA layer failed to init socket layer"
@@ -1699,13 +1698,13 @@ msgid "'%s' already exists"
 msgstr "»%s« existiert bereits"
 
 #: ../libsvn_client/export.c:866 ../libsvn_wc/update_editor.c:4161
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Checksum mismatch for '%s':\n"
 "   expected:  %s\n"
 "     actual:  %s\n"
 msgstr ""
-"Prüfsummenfehler, Datei »%s«:\n"
+"Prüfsummenfehler für Datei »%s«:\n"
 "   Erwartet:    %s\n"
 "   Tatsächlich: %s\n"
 
@@ -1912,32 +1911,30 @@ msgstr "Die Zusammenführung aus fremdem
 
 #: ../libsvn_client/merge.c:8522 ../libsvn_client/merge.c:9021
 #: ../libsvn_client/merge.c:10523
-#, fuzzy, c-format
+#, c-format
 msgid "Merge target '%s' does not exist in the working copy"
-msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+msgstr "Zusammenführungsziel »%s« ist nicht in der Arbeitskopie enthalten"
 
 #: ../libsvn_client/merge.c:8896
-#, fuzzy
 msgid "Cannot merge into a working copy with a switched subtree"
-msgstr "Kann nicht zurück in eine Arbeitskopie mit umgestelltem Unterbaum integrieren"
+msgstr "Kann nicht in eine Arbeitskopie mit umgestelltem Unterbaum zusammenführen"
 
 #: ../libsvn_client/merge.c:8901
-#, fuzzy
 msgid "Cannot merge into a working copy that has local modifications"
-msgstr "Kann nicht zurück in eine Arbeitskopie integrieren, die lokale Änderungen hat"
+msgstr "Kann nicht in eine Arbeitskopie mit lokalen Änderungen zusammenführen"
 
 #: ../libsvn_client/merge.c:8918
 msgid "Cannot determine revision of working copy"
 msgstr "Die Revision der Arbeitskopie kann nicht bestimmt werden"
 
 #: ../libsvn_client/merge.c:8924
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot merge into mixed-revision working copy [%lu:%lu]; try updating first"
-msgstr "Kann nicht zurück in eine Arbeitskopie mit verschiedenen Revisionen integrieren, versuchen Sie erst zu aktualisieren"
+msgstr "Kann nicht in eine Arbeitskopie mit verschiedenen Revisionen zusammenführen [%lu:%lu], versuchen Sie erst zu aktualisieren"
 
 #: ../libsvn_client/merge.c:8987 ../svn/merge-cmd.c:348
 msgid "Merge sources must both be either paths or URLs"
-msgstr ""
+msgstr "Zusammenführungsquellen müssen beide Pfade oder URLs sein"
 
 #: ../libsvn_client/merge.c:9059 ../libsvn_ra/ra_loader.c:539
 #, c-format
@@ -1955,9 +1952,9 @@ msgid "'%s' must be from the same reposi
 msgstr "»%s« muss aus dem selben Projektarchiv wie »%s« stammen"
 
 #: ../libsvn_client/merge.c:10290
-#, fuzzy, c-format
+#, c-format
 msgid "Neither the reintegrate source nor target can be the root of the repository"
-msgstr "»%s« ist nicht die Basis des Projektarchivs"
+msgstr "Weder die Quelle noch das Ziel der Wiedereingliederung darf Wurzel des Projektarchivs sein"
 
 #: ../libsvn_client/merge.c:10376
 #, c-format
@@ -2186,13 +2183,12 @@ msgid "Svndiff has invalid header"
 msgstr "Svndiff-Daten enthalten ungültigen Kopf"
 
 #: ../libsvn_delta/svndiff.c:744 ../libsvn_delta/svndiff.c:908
-#, fuzzy
 msgid "Svndiff contains a too-large window"
-msgstr "Svndiff-Daten enthalten defektes Fenster"
+msgstr "Svndiff-Daten enthalten ein zu großes Fenster"
 
 #: ../libsvn_delta/svndiff.c:751 ../libsvn_delta/svndiff.c:915
 msgid "Svndiff contains corrupt window header"
-msgstr "Svndiff-Daten enthalten defektes Fenster"
+msgstr "Svndiff-Daten enthalten defekte Fenster-Kopfdaten"
 
 #: ../libsvn_delta/svndiff.c:760
 msgid "Svndiff has backwards-sliding source views"
@@ -2209,9 +2205,8 @@ msgid "The file '%s' changed unexpectedl
 msgstr "Die Datei »%s« veränderte sich unerwartet während des Vergleichs"
 
 #: ../libsvn_diff/diff_file.c:630
-#, fuzzy
 msgid "Error in options to internal diff"
-msgstr "Fehler beim Normalisieren des bearbeiteten Inhalts ins interne Format"
+msgstr "Fehler in Optionen für internes Vergleichsprogramm"
 
 #: ../libsvn_diff/diff_file.c:656
 #, c-format
@@ -2313,9 +2308,8 @@ msgid "Invalid change ordering: non-add 
 msgstr "Ungültige Reihenfolge bei Änderung: Nicht-hinzufügende Änderung auf gelöschtem Pfad"
 
 #: ../libsvn_fs_base/bdb/changes-table.c:178 ../libsvn_fs_fs/fs_fs.c:4042
-#, fuzzy
 msgid "Invalid change ordering: add change on preexisting path"
-msgstr "Ungültige Reihenfolge bei Änderung: Nicht-hinzufügende Änderung auf gelöschtem Pfad"
+msgstr "Ungültige Reihenfolge bei Änderung: Hinzufügende Änderung auf schon vorhandenem Pfad"
 
 #: ../libsvn_fs_base/bdb/changes-table.c:270
 #: ../libsvn_fs_base/bdb/changes-table.c:393
@@ -2353,16 +2347,13 @@ msgstr "Repräsentationsschlüssel für 
 msgid "storing checksum-reps record"
 msgstr "Speichere »checksum-reps«-Datensatz"
 
-# CHECKME: missing comma in msgstr? Two meanings are possible!?
-# "Allokiere neuen Darstellungswiederverwendungsschlüssel (hole »next-key«)"
 #: ../libsvn_fs_base/bdb/checksum-reps-table.c:186
 msgid "allocating new representation reuse ID (getting 'next-key')"
-msgstr "Allokiere neue Darstellung, verwende ID weiter (hole »next-key«)"
+msgstr "Allokiere neuen Wiederverwendungsschlüssel für Darstellung (hole »next-key«)"
 
 #: ../libsvn_fs_base/bdb/checksum-reps-table.c:207
-#, fuzzy
 msgid "bumping next representation reuse ID"
-msgstr "Erzeuge nächsten Darstellungsschlüssel"
+msgstr "Erzeuge nächsten Wiederverwendungsschlüssel für Darstellung"
 
 #: ../libsvn_fs_base/bdb/copies-table.c:92
 msgid "storing copy record"
@@ -2484,9 +2475,8 @@ msgid "Corrupt DB: initial revision numb
 msgstr "DB beschädigt: Erste Revision ist nicht »0« in Dateisystem »%s«"
 
 #: ../libsvn_fs_base/dag.c:293
-#, fuzzy
 msgid "Attempted to get entries of a non-directory node"
-msgstr "Versuchte, Eintrag in einem *nicht* Verzeichnisknoten zu setzen"
+msgstr "Versuchte, Einträge eines *nicht* Verzeichnisknotens zu holen"
 
 #: ../libsvn_fs_base/dag.c:460 ../libsvn_fs_fs/dag.c:380
 #, c-format
@@ -2578,9 +2568,9 @@ msgid "Attempted to set textual contents
 msgstr "Versuchte, den Textinhalt eines nicht-veränderlichen Knotens zu setzen"
 
 #: ../libsvn_fs_base/dag.c:1280 ../libsvn_fs_base/reps-strings.c:829
-#, fuzzy, c-format
+#, c-format
 msgid "Checksum mismatch on representation '%s'"
-msgstr "Eine solche Darstellung »%s« existiert nicht"
+msgstr "Prüfsummenfehler in Darstellung »%s«"
 
 #: ../libsvn_fs_base/dag.c:1281 ../libsvn_fs_base/reps-strings.c:830
 #: ../libsvn_fs_base/reps-strings.c:926 ../libsvn_fs_base/reps-strings.c:941
@@ -2772,9 +2762,9 @@ msgid "Cannot verify lock on path '%s'; 
 msgstr "Kann Sperre für Pfad »%s« nicht prüfen; keine Benutzername verfügbar"
 
 #: ../libsvn_fs_base/lock.c:463 ../libsvn_fs_fs/lock.c:658
-#, fuzzy, c-format
+#, c-format
 msgid "User '%s' does not own lock on path '%s' (currently locked by '%s')"
-msgstr "Benutzer %s besitzt die Sperre für Pfad »%s« nicht (derzeit gesperrt durch %s)"
+msgstr "Benutzer »%s« besitzt die Sperre für Pfad »%s« nicht (derzeit gesperrt durch »%s«)"
 
 #: ../libsvn_fs_base/lock.c:470 ../libsvn_fs_fs/lock.c:665
 #, c-format
@@ -2870,9 +2860,9 @@ msgid "Transaction is dead: '%s'"
 msgstr "Transaktion ist tot: »%s«"
 
 #: ../libsvn_fs_base/revs-txns.c:274 ../libsvn_fs_fs/fs_fs.c:7358
-#, fuzzy, c-format
+#, c-format
 msgid "revprop '%s' has unexpected value in filesystem"
-msgstr "»%s« ist im Dateisystem »%s« keine Datei"
+msgstr "Revisionseigenschaft »%s« hat einen unerwarteten Wert im Dateisystem"
 
 #: ../libsvn_fs_base/revs-txns.c:1231
 msgid "Transaction aborted, but cleanup failed"
@@ -2941,9 +2931,9 @@ msgid "Copy from mutable tree not curren
 msgstr "Kopieren eines veränderlichen Baumes wird derzeit nicht unterstützt"
 
 #: ../libsvn_fs_base/tree.c:3881 ../libsvn_fs_fs/tree.c:2462
-#, fuzzy, c-format
+#, c-format
 msgid "Base checksum mismatch on '%s'"
-msgstr "Ein Prüfsummenfehler ist aufgetreten"
+msgstr "Basis-Prüfsummenfehler bei »%s«"
 
 #: ../libsvn_fs_base/tree.c:4130 ../libsvn_fs_fs/tree.c:2694
 msgid "Cannot compare file contents between two different filesystems"
@@ -2987,9 +2977,9 @@ msgstr "Kann Zusammenführungsinformatio
 
 #: ../libsvn_fs_fs/dag.c:1026 ../libsvn_ra_neon/fetch.c:749
 #: ../libsvn_ra_svn/client.c:1072
-#, fuzzy, c-format
+#, c-format
 msgid "Checksum mismatch for '%s'"
-msgstr "Ein Prüfsummenfehler ist aufgetreten"
+msgstr "Prüfsummenfehler für »%s«"
 
 #: ../libsvn_fs_fs/dag.c:1131
 msgid "Empty noderev in cache"
@@ -3119,9 +3109,9 @@ msgid "Can't get exclusive lock on file 
 msgstr "Kann keinen exklusiven Zugriff auf Datei »%s« erlangen"
 
 #: ../libsvn_fs_fs/fs_fs.c:928
-#, fuzzy, c-format
+#, c-format
 msgid "Format file '%s' contains unexpected non-digit '%c' within '%s'"
-msgstr "Die Formatdatei »%s« enthält eine unerwartete Nicht-Ziffer"
+msgstr "Die Formatdatei »%s« enthält eine unerwartete Nicht-Ziffer »%c« innerhalb »%s«"
 
 #: ../libsvn_fs_fs/fs_fs.c:977
 #, c-format
@@ -3306,9 +3296,8 @@ msgstr "Kann Textinhalt im Verzeichnis n
 
 #: ../libsvn_fs_fs/fs_fs.c:5575 ../libsvn_fs_fs/fs_fs.c:5580
 #: ../libsvn_fs_fs/fs_fs.c:5587
-#, fuzzy
 msgid "Corrupt 'current' file"
-msgstr "Aktuelle Datei beschädigt"
+msgstr "Beschädigte Datei »current«"
 
 #: ../libsvn_fs_fs/fs_fs.c:6058
 msgid "Transaction out of date"
@@ -3460,20 +3449,20 @@ msgid "Repository UUID '%s' doesn't matc
 msgstr "UUID des Projektarchivs »%s« entspricht nicht der erwarteten UUID »%s«"
 
 #: ../libsvn_ra/ra_loader.c:568
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' isn't a child of session URL '%s'"
-msgstr "Die URL »%s« ist kein Kind der Projektarchivwurzel-URL »%s«"
+msgstr "»%s« ist kein Kind der Sitzungs-URL »%s«"
 
 #: ../libsvn_ra/ra_loader.c:591 ../libsvn_ra_neon/session.c:1155
 #: ../libsvn_ra_svn/client.c:2271
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' isn't a child of repository root URL '%s'"
-msgstr "Die URL »%s« ist kein Kind der Projektarchivwurzel-URL »%s«"
+msgstr "»%s« ist kein Kind der Projektarchivwurzel-URL »%s«"
 
 #: ../libsvn_ra/ra_loader.c:638
-#, fuzzy, c-format
+#, c-format
 msgid "Specifying 'old_value_p' is not allowed when the '%s' capability is not advertised, and could indicate a bug in your client"
-msgstr "Das Speichern der speziellen Eigenschaft »%s« wird vom Projektarchiv verhindert und könnte auf einen Bug in Ihrem Client hindeuten"
+msgstr "Die Angabe von »old_value_p« is nicht erlaubt, wenn die Fähigkeit »%s« nicht bekanntgemacht wurde, und könnte auf einen Bug in Ihrem Client hindeuten"
 
 #: ../libsvn_ra/ra_loader.c:1238
 msgid "Obliterate is not supported by this Repository Access method"
@@ -3805,9 +3794,9 @@ msgid "Failed to find label '%s' for URL
 msgstr "Marke »%s« für URL »%s« nicht gefunden"
 
 #: ../libsvn_ra_neon/props.c:636
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' was not present on the resource '%s'"
-msgstr "»%s« existierte nicht für die Ressource"
+msgstr "»%s« existierte nicht für die Ressource »%s«"
 
 #: ../libsvn_ra_neon/props.c:703
 #, c-format
@@ -4026,12 +4015,15 @@ msgid "Incorrect response-digest in Auth
 msgstr "Falsche Antwortnummer im Header der Authentifizierungs-Informationen."
 
 #: ../libsvn_ra_serf/auth_kerb.c:160
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Initialization of the GSSAPI context failed.\n"
 " %s\n"
 " %s\n"
-msgstr "Initialisierung der SSPI-Bibliothek schlug fehl"
+msgstr ""
+"Initialisierung des GSSAPI-Kontextes schlug fehl.\n"
+" %s\n"
+" %s\n"
 
 #: ../libsvn_ra_serf/commit.c:307
 msgid "No Location header received"
@@ -4168,9 +4160,9 @@ msgid "Error retrieving REPORT (%d)"
 msgstr "Fehler beim Holen von REPORT (%d)"
 
 #: ../libsvn_ra_serf/util.c:699 ../libsvn_ra_serf/util.c:702
-#, fuzzy, c-format
+#, c-format
 msgid "Error running context"
-msgstr "Fehler beim Ausführen des Editors."
+msgstr "Fehler beim Ausführen des Kontextes"
 
 #: ../libsvn_ra_serf/util.c:1398
 msgid ""
@@ -4397,9 +4389,8 @@ msgid "Expected 'revprops', found '%s'"
 msgstr "Erwartete »revprops«, fand »%s«"
 
 #: ../libsvn_ra_svn/client.c:2424
-#, fuzzy
 msgid "Error while replaying commit"
-msgstr "Beim Vorbereiten von »%s« für die Übertragung"
+msgstr "Fehler beim Wiederholen der Übertragung"
 
 #: ../libsvn_ra_svn/client.c:2488
 msgid "'get-deleted-rev' not implemented"
@@ -4527,15 +4518,13 @@ msgid "Source url '%s' is from different
 msgstr "Quell URL »%s« stammt aus einem fremden Projektarchiv"
 
 #: ../libsvn_repos/commit.c:606
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Checksum mismatch for resulting fulltext\n"
 "(%s)"
 msgstr ""
-"Prüfsummenfehler für Volltextergebnis:\n"
-"(%s):\n"
-"   Erwartet:    %s\n"
-"   Tatsächlich: %s\n"
+"Prüfsummenfehler für Volltextergebnis\n"
+"(%s)"
 
 #: ../libsvn_repos/delta.c:191
 msgid "Unable to open root of edit"
@@ -4615,9 +4604,9 @@ msgid "<<< Started new transaction, base
 msgstr "<<< Neue Transaktion basierend auf Originalrevision %ld gestartet\n"
 
 #: ../libsvn_repos/deprecated.c:648 ../svnadmin/main.c:781
-#, fuzzy, c-format
+#, c-format
 msgid " removing '\\r' from %s ..."
-msgstr "Entferne »%s« aus Änderungsliste »%s«."
+msgstr " Entferne »\\r« aus %s ..."
 
 #: ../libsvn_repos/dump.c:353
 #, c-format
@@ -4631,14 +4620,14 @@ msgstr ""
 "WARNUNG: leeres Projektarchiv wird fehlschlagen.\n"
 
 #: ../libsvn_repos/dump.c:457
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "WARNING: Mergeinfo referencing revision(s) prior to the oldest dumped revision (%ld).\n"
 "WARNING: Loading this dump may result in invalid mergeinfo.\n"
 msgstr ""
-"WARNUNG: Verweis auf Daten in Revision %ld, welche älter als die älteste\n"
-"WARNUNG: ausgegebene Revision (%ld) ist. Das Laden diese Datei in ein\n"
-"WARNUNG: leeres Projektarchiv wird fehlschlagen.\n"
+"WARNUNG: Zusammenführungsinformationen verweisen auf Revision(en) vor der ältesten\n"
+"WARNUNG: ausgegebene Revision (%ld). Das Laden dieser Datei kann ungültige\n"
+"WARNUNG: Zusammenführungsinformationen zur Folge haben.\n"
 
 #: ../libsvn_repos/dump.c:979 ../libsvn_repos/dump.c:1235
 #, c-format
@@ -5652,19 +5641,19 @@ msgid "First line of '%s' contains non-d
 msgstr "Die erste Zeile von »%s« enthält eine Nicht-Ziffer"
 
 #: ../libsvn_subr/io.c:3690
-#, fuzzy, c-format
+#, c-format
 msgid "Can't create temporary file from template '%s'"
-msgstr "Kann »Pipe« für Aktion »%s« nicht anlegen"
+msgstr "Kann temporäre Datei von Vorlage »%s« nicht anlegen"
 
 #: ../libsvn_subr/io.c:3781
-#, fuzzy, c-format
+#, c-format
 msgid "Can't set aside '%s'"
-msgstr "Kann Status von »%s« nicht ermitteln"
+msgstr "Kann »%s« nicht beiseitelegen"
 
 #: ../libsvn_subr/io.c:3793
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to make name in '%s'"
-msgstr "Kann Namen für »%s« nicht erstellen"
+msgstr "Kann Namen in »%s« nicht erstellen"
 
 #: ../libsvn_subr/kitchensink.c:46
 #, c-format
@@ -5695,9 +5684,9 @@ msgid "Invalid character '%c' found in r
 msgstr "Ungültiges Zeichen »%c« in Revisionsliste gefunden"
 
 #: ../libsvn_subr/mergeinfo.c:512
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid revision number '0' found in range list"
-msgstr "Ungültige Revisionsnummer beim Einlesen von »%s« gefunden"
+msgstr "Ungültige Revisionsnummer '0' in Revisionsbereichsliste gefunden"
 
 #: ../libsvn_subr/mergeinfo.c:523
 #, c-format
@@ -5932,11 +5921,8 @@ msgstr "Bitte geben Sie »ja« oder »ne
 msgid "Store password unencrypted (yes/no)? "
 msgstr "Passwort unverschlüsselt speichern (ja/nein)? "
 
-# CHECKME: See
-# http://dict.leo.org/forum/viewUnsolvedquery.php?idThread=34212&idForum=2&lp=ende&lang=de
-# CHECKME: Remove ":", it's no proper sentence with it
 #: ../libsvn_subr/prompt.c:448
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "-----------------------------------------------------------------------\n"
@@ -5953,12 +5939,13 @@ msgid ""
 "'%s'.\n"
 "-----------------------------------------------------------------------\n"
 msgstr ""
+"\n"
 "-----------------------------------------------------------------------\n"
-"ACHTUNG! Ihr Password für den Anmeldungstext (realm)\n"
+"ACHTUNG! Ihr Password für den Anmeldebereich\n"
 "\n"
 "   %s\n"
 "\n"
-"kann auf der Platte nur unverschlüsselt gespeichert werden! Es wird\n"
+"kann auf der Festplatte nur unverschlüsselt gespeichert werden! Es wird\n"
 "empfohlen, falls möglich Ihr System so zu konfigurieren, dass Subversion\n"
 "Passwörter verschlüsselt speichern kann. Siehe die Dokumentation für\n"
 "Details.\n"
@@ -5966,16 +5953,15 @@ msgstr ""
 "Sie können ein weiteres Anzeigen dieser Warnung verhindern, indem Sie\n"
 "den Wert der Option »store-plaintext-passwords« in\n"
 "»%s«\n"
-"entweder auf »ja« oder »nein« setzen.\n"
+"entweder auf »yes« oder »no« setzen.\n"
 "-----------------------------------------------------------------------\n"
 
 #: ../libsvn_subr/prompt.c:475
 msgid "Store passphrase unencrypted (yes/no)? "
 msgstr "Passphrase unverschlüsselt speichern (ja/nein)? "
 
-# FIXME: s/passphrase/passphrases/
 #: ../libsvn_subr/prompt.c:477
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "-----------------------------------------------------------------------\n"
@@ -5992,12 +5978,13 @@ msgid ""
 "'no' in '%s'.\n"
 "-----------------------------------------------------------------------\n"
 msgstr ""
+"\n"
 "-----------------------------------------------------------------------\n"
 "ACHTUNG! Ihre Passphrase für das Klient-Zertifikat:\n"
 "\n"
 "   %s\n"
 "\n"
-"kann auf der Platte nur unverschlüsselt gespeichert werden! Es wird\n"
+"kann auf der Festplatte nur unverschlüsselt gespeichert werden! Es wird\n"
 "empfohlen, falls möglich Ihr System so zu konfigurieren, dass Subversion\n"
 "Passphrasen verschlüsselt speichern kann. Siehe die Dokumentation für\n"
 "Details.\n"
@@ -6005,7 +5992,7 @@ msgstr ""
 "Sie können ein weiteres Anzeigen dieser Warnung verhindern, indem Sie\n"
 "den Wert der Option »store-ssl-client-cert-pp-plaintext« in\n"
 "»%s«\n"
-"entweder auf »ja« oder »nein« setzen.\n"
+"entweder auf »yes« oder »no« setzen.\n"
 "-----------------------------------------------------------------------\n"
 
 #: ../libsvn_subr/prompt.c:523
@@ -6069,9 +6056,9 @@ msgid "File '%s' has inconsistent newlin
 msgstr "Datei »%s« hat inkonsistente Zeilenenden"
 
 #: ../libsvn_subr/svn_string.c:706 ../libsvn_subr/svn_string.c:750
-#, fuzzy, c-format
+#, c-format
 msgid "Could not convert '%s' into a number"
-msgstr "Konnte keine Verbindung zum Server herstellen"
+msgstr "Konnte »%s« nicht in Zahl umwandeln"
 
 #: ../libsvn_subr/svn_string.c:712
 #, c-format
@@ -6089,9 +6076,9 @@ msgid " (%a, %d %b %Y)"
 msgstr " (%a, %d. %b %Y)"
 
 #: ../libsvn_subr/token.c:66
-#, fuzzy, c-format
+#, c-format
 msgid "Token '%s' is unrecognized"
-msgstr "Marke »%s« hat einen nicht erkannten Knotentyp"
+msgstr "Marke »%s« nicht erkannt"
 
 #: ../libsvn_subr/utf.c:190
 msgid "Can't lock charset translation mutex"
@@ -6180,32 +6167,32 @@ msgid "Malformed XML: %s at line %ld"
 msgstr "Fehlerhaftes XML: %s in Zeile %ld"
 
 #: ../libsvn_wc/adm_crawler.c:114
-#, fuzzy, c-format
+#, c-format
 msgid "The existing node '%s' can not be restored."
-msgstr "Der Knoten »%s« wurde nicht gefunden."
+msgstr "Der vorhandene Knoten »%s« kann nicht wiederhergestellt werden."
 
 #: ../libsvn_wc/adm_crawler.c:141
-#, fuzzy, c-format
+#, c-format
 msgid "The node '%s' can not be restored."
-msgstr "Der Knoten »%s« wurde nicht gefunden."
+msgstr "Der Knoten »%s« kann nicht wiederhergestellt werden."
 
 #: ../libsvn_wc/adm_crawler.c:724
-#, fuzzy, c-format
+#, c-format
 msgid "Can't retrieve base revision for %s"
-msgstr "alle Revisionseigenschaften abfragen"
+msgstr "Kann Basisrevision für »%s« nicht abfragen"
 
 #: ../libsvn_wc/adm_crawler.c:999
 msgid "Error aborting report"
 msgstr "Fehler beim Abbrechen des Reports"
 
 #: ../libsvn_wc/adm_crawler.c:1274
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Checksum mismatch for text base of '%s':\n"
 "   expected:  %s\n"
 "     actual:  %s\n"
 msgstr ""
-"Prüfsummenfehler, Datei »%s«:\n"
+"Prüfsummenfehler für Textbasis von »%s«:\n"
 "   Erwartet:    %s\n"
 "   Tatsächlich: %s\n"
 
@@ -6222,23 +6209,22 @@ msgstr "»%s« ist kein gültiger Verwal
 #: ../libsvn_wc/adm_files.c:208
 #, c-format
 msgid "Node '%s' has no pristine text"
-msgstr ""
+msgstr "Knoten »%s« hat keinen Ursprungstext"
 
-# TODO: proper translation for Baseline
 #: ../libsvn_wc/adm_files.c:234
-#, fuzzy, c-format
+#, c-format
 msgid "Node '%s' has no pristine base text"
-msgstr "»%s« existierte nicht für die Baseline-Ressource"
+msgstr "Knoten »%s« hat keine ursprüngliche Textbasis"
 
 #: ../libsvn_wc/adm_files.c:259
-#, fuzzy, c-format
+#, c-format
 msgid "File '%s' has no text base"
-msgstr "Datei »%s« hat inkonsistente Zeilenenden"
+msgstr "Datei »%s« hat keine Textbasis"
 
 #: ../libsvn_wc/adm_files.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "Base node of '%s' is not a file"
-msgstr "Pfad »%s« ist keine Datei"
+msgstr "Basisknoten von »%s« ist keine Datei"
 
 #: ../libsvn_wc/adm_files.c:322
 #, c-format
@@ -6266,16 +6252,14 @@ msgid "URL '%s' doesn't match existing U
 msgstr "URL »%s« stimmt nicht mit der existierenden URL »%s« in »%s« überein"
 
 #: ../libsvn_wc/adm_ops.c:625
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' cannot be deleted"
-msgstr "Das Basisverzeichnis kann nicht gelöscht werden"
+msgstr "»%s« kann nicht gelöscht werden"
 
 #: ../libsvn_wc/adm_ops.c:795 ../libsvn_wc/update_editor.c:5607
-#, fuzzy, c-format
+#, c-format
 msgid "Can't find parent directory's node while trying to add '%s'"
-msgstr ""
-"Kann Eintrag des Elternverzeichnisses während des Hinzufügens von »%s« nicht\n"
-"finden"
+msgstr "Kann Knoten des Elternverzeichnisses während des Hinzufügens von »%s« nicht finden"
 
 #: ../libsvn_wc/adm_ops.c:804 ../libsvn_wc/update_editor.c:5601
 #, c-format
@@ -6337,12 +6321,12 @@ msgstr "Die Datei »%s« hat lokale Änd
 #: ../libsvn_wc/adm_ops.c:2087
 #, c-format
 msgid "'%s' is a directory, and thus cannot be a member of a changelist"
-msgstr "»%s« ist ein Vrzeichnis and kann deswegen nicht Element einer Änderungsliste sein"
+msgstr "»%s« ist ein Verzeichnis and kann deswegen nicht Element einer Änderungsliste sein"
 
 #: ../libsvn_wc/adm_ops.c:2155
-#, fuzzy, c-format
+#, c-format
 msgid "Can't add a file external to '%s' as it is not a file in repository '%s'."
-msgstr "Ein externer Dateiverweis von »%s« kann nicht in die Arbeitskopie eines anderen Projektarchivs mit der Wurzel »%s« eingefügt werden"
+msgstr "Kann externen Dateiverweis auf »%s« nicht hinzufügen, da dies keine Datei im Projektarchiv »%s« ist."
 
 #: ../libsvn_wc/cleanup.c:58
 #, c-format
@@ -6368,9 +6352,9 @@ msgid "Source '%s' is unexpected kind"
 msgstr "Quelle »%s« ist unbekannten Typs"
 
 #: ../libsvn_wc/copy.c:384
-#, fuzzy, c-format
+#, c-format
 msgid "cannot handle node kind for '%s'"
-msgstr "»%s« hat einen unbekannten Knotentyp"
+msgstr "Kann Knotentyp für »%s« nicht verarbeiten"
 
 #: ../libsvn_wc/copy.c:648
 #, c-format
@@ -6385,9 +6369,9 @@ msgid "Cannot copy to '%s' as it is sche
 msgstr "Kann nach »%s« kopieren, da es zum Löschen vorgesehen ist"
 
 #: ../libsvn_wc/copy.c:685
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is already under version control but is excluded."
-msgstr "»%s« befindet sich bereits unter Versionskontrolle"
+msgstr "»%s« befindet sich bereits unter Versionskontrolle, ist aber ausgeschlossen."
 
 #: ../libsvn_wc/copy.c:700
 #, c-format
@@ -6400,24 +6384,24 @@ msgid "'%s' already exists and is in the
 msgstr "»%s« existiert bereits und ist im Weg"
 
 #: ../libsvn_wc/crop.c:224
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot exclude '%s': it is a working copy root"
-msgstr "Erwartete nicht, dass »%s« Basis einer Arbeitskopie ist"
+msgstr "Kann »%s« nicht ausschließen: Es ist die Basis einer Arbeitskopie"
 
 #: ../libsvn_wc/crop.c:232
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot exclude '%s': it is a switched path"
-msgstr "Kann »%s« nicht beschneiden: Es ist ein umgestellter Pfad"
+msgstr "Kann »%s« nicht ausschließen: Es ist ein umgestellter Pfad"
 
 #: ../libsvn_wc/crop.c:256
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot exclude '%s': it is to be added to the repository. Try commit instead"
-msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
+msgstr "Kann »%s« nicht ausschließen: Es soll dem Projektarchiv hinzugefügt werden. Versuchen Sie stattdessen es zu übertragen"
 
 #: ../libsvn_wc/crop.c:263
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot exclude '%s': it is to be deleted from the repository. Try commit instead"
-msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
+msgstr "Kann »%s« nicht ausschließen: Es soll aus dem Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
 
 # CHECKME: Check translation of crop (beschneiden?)!!!!
 #: ../libsvn_wc/crop.c:333
@@ -6434,9 +6418,9 @@ msgid "Cannot crop '%s': it is going to 
 msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
 
 #: ../libsvn_wc/crop.c:366
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot crop '%s': it is to be added to the repository. Try commit instead"
-msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
+msgstr "Kann »%s« nicht beschneiden: Es soll dem Projektarchiv hinzugefügt werden. Versuchen Sie stattdessen es zu übertragen"
 
 #: ../libsvn_wc/deprecated.c:2052
 #, c-format
@@ -6449,14 +6433,14 @@ msgid "'%s' is not a versioned working c
 msgstr "»%s« ist keine versionierte Arbeitskopie"
 
 #: ../libsvn_wc/entries.c:1394
-#, fuzzy, c-format
+#, c-format
 msgid "Admin area of '%s' is missing"
-msgstr "Verzeichnis »%s« fehlt"
+msgstr "Administrativer Bereich von »%s« fehlt"
 
 #: ../libsvn_wc/entries.c:1414
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is not of the right kind"
-msgstr "»%s« ist veraltet"
+msgstr "»%s« hat einen falschen Typ"
 
 #: ../libsvn_wc/entries.c:2143
 #, c-format
@@ -6479,11 +6463,9 @@ msgid "Path '%s' ends in '%s', which is 
 msgstr "Pfad »%s« endet mit »%s«, was für diese Operation nicht erlaubt ist"
 
 #: ../libsvn_wc/lock.c:553 ../libsvn_wc/upgrade.c:1266
-#, fuzzy, c-format
+#, c-format
 msgid "Working copy format of '%s' is too old (%d); please run 'svn upgrade'"
-msgstr ""
-"Format der Arbeitskopie »%s« ist zu alt (%d); bitte checken Sie die\n"
-"Arbeitskopie erneut aus"
+msgstr "Format der Arbeitskopie »%s« ist zu alt (%d); Bitte führen Sie »svn upgrade« aus"
 
 #: ../libsvn_wc/lock.c:817 ../libsvn_wc/wc_db.c:8585
 #, c-format
@@ -6501,9 +6483,9 @@ msgid "Expected '%s' to be a directory b
 msgstr "Erwartete, dass »%s« ein Verzeichnis ist, es ist aber eine Datei"
 
 #: ../libsvn_wc/lock.c:991
-#, fuzzy, c-format
+#, c-format
 msgid "Can't retrieve an access baton for non-directory '%s'"
-msgstr "Kann keine Einträge aus einem nicht-Verzeichnis lesen"
+msgstr "Kann keine Zugriffsreferenz für nicht-Verzeichnis »%s« erhalten"
 
 #: ../libsvn_wc/lock.c:1000
 #, c-format
@@ -6521,9 +6503,9 @@ msgid "No write-lock in '%s'"
 msgstr "Keine Schreibsperre in »%s«"
 
 #: ../libsvn_wc/lock.c:1564 ../libsvn_wc/lock.c:1615
-#, fuzzy, c-format
+#, c-format
 msgid "Can't obtain lock on non-directory '%s'."
-msgstr "Kann Verzeichnis »%s« nicht öffnen"
+msgstr "Kann keine Sperre für nicht-Verzeichnis »%s« erhalten."
 
 # CHECKME: s/callback/hook/ ??
 #: ../libsvn_wc/merge.c:866 ../libsvn_wc/merge.c:1139
@@ -6560,7 +6542,7 @@ msgstr "Ungültiger Wert für Feld »%s�
 #: ../libsvn_wc/old-and-busted.c:346
 #, c-format
 msgid "Found an unexpected \\0 in the file external '%s'"
-msgstr "Ein nicht geschütztes \\0 wurde im externen Dateiverweis »%s« gefunden"
+msgstr "Ein nicht erwartetes \\0 wurde im externen Dateiverweis »%s« gefunden"
 
 #: ../libsvn_wc/old-and-busted.c:390
 #, c-format
@@ -6578,14 +6560,14 @@ msgid "Entry for '%s' has invalid reposi
 msgstr "Eintrag »%s« hat eine ungültige Projektarchiv-Basis"
 
 #: ../libsvn_wc/old-and-busted.c:530 ../libsvn_wc/old-and-busted.c:867
-#, fuzzy, c-format
+#, c-format
 msgid "Entry '%s' has invalid 'schedule' value"
-msgstr "Eintrag »%s« hat einen ungültigen »%s« Wert"
+msgstr "Eintrag »%s« hat einen ungültigen Wert für »schedule«"
 
 #: ../libsvn_wc/old-and-busted.c:680
-#, fuzzy, c-format
+#, c-format
 msgid "Entry '%s' has invalid 'depth' value"
-msgstr "Eintrag »%s« hat einen ungültigen »%s« Wert"
+msgstr "Eintrag »%s« hat einen ungültigen Wert für »depth«"
 
 #: ../libsvn_wc/old-and-busted.c:731
 #, c-format
@@ -6628,9 +6610,9 @@ msgid "Error at entry %d in entries file
 msgstr "Fehler bei Eintrag %d in Eintragsdatei für »%s«:"
 
 #: ../libsvn_wc/props.c:283
-#, fuzzy, c-format
+#, c-format
 msgid "The property '%s' may not be merged into '%s'."
-msgstr "Eigenschaft »%s« wurde von »%s« gelöscht.\n"
+msgstr "Eigenschaft »%s« darf nicht nach »%s« zusammengeführt werden."
 
 #: ../libsvn_wc/props.c:427
 #, c-format
@@ -6651,34 +6633,34 @@ msgstr ""
 "aber die Eigenschaft wurde lokal bereits gelöscht."
 
 #: ../libsvn_wc/props.c:451
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Trying to delete property '%s' with value '%s',\n"
 "but property has been locally added with value '%s'."
 msgstr ""
-"Versuch, die Eigenschaft »%s« von »%s« in »%s« zu ändern,\n"
+"Versuch, die Eigenschaft »%s« mit dem Wert »%s« zu löschen,\n"
 "aber die Eigenschaft wurde lokal mit dem Wert »%s« hinzugefügt."
 
 #: ../libsvn_wc/props.c:468
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Trying to delete property '%s' with value '%s',\n"
 "but it has been modified from '%s' to '%s'."
 msgstr ""
 "Versuch, die Eigenschaft »%s« mit dem Wert »%s« zu löschen,\n"
-"aber der Wert wurde von »%s« in »%s« geändert."
+"aber der Wert wurde von »%s« nach »%s« geändert."
 
 #: ../libsvn_wc/props.c:479
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Trying to delete property '%s' with value '%s',\n"
 "but property with value '%s' is locally deleted."
 msgstr ""
-"Versuch, die Eigenschaft »%s« mit dem Wert »%s« anzulegen,\n"
-"aber die Eigenschaft wurde lokal bereits gelöscht."
+"Versuch, die Eigenschaft »%s« mit dem Wert »%s« zu löschen,\n"
+"aber die Eigenschaft mit dem Wert »%s« wurde lokal gelöscht."
 
 #: ../libsvn_wc/props.c:491
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Trying to delete property '%s' with value '%s',\n"
 "but the local value is '%s'."
@@ -6746,9 +6728,8 @@ msgid "Property '%s' is an entry propert
 msgstr "Eigenschaft »%s« ist eine Eintragseigenschaft"
 
 #: ../libsvn_wc/props.c:1804 ../libsvn_wc/props.c:1811
-#, fuzzy
 msgid "Failed to load properties"
-msgstr "Konnte Eigenschaften nicht vom Datenträger laden"
+msgstr "Konnte Eigenschaften nicht laden"
 
 #: ../libsvn_wc/props.c:1853
 #, c-format
@@ -6776,19 +6757,18 @@ msgid "Can't set properties on '%s': inv
 msgstr ""
 
 #: ../libsvn_wc/props.c:2063
-#, fuzzy
 msgid "Failed to load current properties"
-msgstr "Konnte Eigenschaften nicht vom Datenträger laden"
+msgstr "Konnte aktuelle Eigenschaften nicht laden"
 
 #: ../libsvn_wc/props.c:2208
-#, fuzzy, c-format
+#, c-format
 msgid "Unrecognized line ending style '%s' for '%s'"
-msgstr "Stil für Zeilenende für »%s« nicht erkannt"
+msgstr "Stil für Zeilenende »%s« nicht erkannt für »%s«"
 
 #: ../libsvn_wc/props.c:2267
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot set non-inheritable mergeinfo on a non-directory ('%s')"
-msgstr "Kann »%s« nicht für ein Verzeichnis setzen (»%s«)"
+msgstr "Kann nicht-vererbbare Zusammenführungsinformationen auf ein nicht-Verzeichnis (»%s«) nicht setzen"
 
 #: ../libsvn_wc/props.c:2488 ../libsvn_wc/props.c:2564
 #, c-format
@@ -6816,32 +6796,29 @@ msgid "Invalid %s property on '%s': targ
 msgstr "Ungültige Eigenschaft %s auf »%s«: Ziel »%s« ist ein absoluter Pfad oder enthält »..«"
 
 #: ../libsvn_wc/questions.c:203
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Checksum mismatch indicates corrupt text base for file: '%s':\n"
 "   expected:  %s\n"
 "     actual:  %s\n"
 msgstr ""
-"Prüfsummenfehler ist Anzeichen für beschädigte Textbasis: »%s«\n"
+"Prüfsummenfehler ist Anzeichen für beschädigte Textbasis der Datei: »%s«\n"
 "   Erwartet:    %s\n"
 "   Tatsächlich: %s\n"
 
 #: ../libsvn_wc/relocate.c:105
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot relocate '%s' as it is not the root of a working copy"
-msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+msgstr "Kann »%s« nicht umplatzieren da es keine Basis einer Arbeitskopie ist"
 
 #: ../libsvn_wc/relocate.c:112
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot relocate '%s' as it is not the root of a working copy; try relocating '%s' instead"
-msgstr ""
-"Kann »%s« nicht kopieren oder verschieben, da es sich noch nicht im\n"
-"Projektarchiv befindet, versuchen Sie es zuerst zu übertragen"
+msgstr "Kann »%s« nicht umplatzieren da es keine Basis einer Arbeitskopie ist; Versuchen Sie stattdessen »%s« umzuplatzieren"
 
 #: ../libsvn_wc/relocate.c:129
-#, fuzzy
 msgid "Cannot relocate a single file"
-msgstr "Kann externen Dateiverweis nicht löschen"
+msgstr "Kann eine einzelne Datei nicht umplatzieren"
 
 #: ../libsvn_wc/relocate.c:136
 #, c-format
@@ -6879,18 +6856,18 @@ msgid "Error parsing tree conflict skel"
 msgstr "Fehler beim Einlesen der Baumkonfliktvorlage"
 
 #: ../libsvn_wc/tree_conflicts.c:468
-#, fuzzy, c-format
+#, c-format
 msgid "Attempt to add tree conflict that already exists at '%s'"
-msgstr "Es wurde versucht, einen Baumkonflikt hinzuzufügen, den es bereits gibt"
+msgstr "Es wurde versucht, einen Baumkonflikt hinzuzufügen, der in »%s« bereits vorhanden ist"
 
 #: ../libsvn_wc/update_editor.c:1051
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Checksum mismatch while updating '%s':\n"
 "   expected:  %s\n"
 "     actual:  %s\n"
 msgstr ""
-"Prüfsummenfehler, Datei »%s«:\n"
+"Prüfsummenfehler beim Aktualisieren von »%s«:\n"
 "   Erwartet:    %s\n"
 "   Tatsächlich: %s\n"
 
@@ -6907,14 +6884,14 @@ msgstr ""
 "Administrationsverzeichnis trägt"
 
 #: ../libsvn_wc/update_editor.c:2313
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to add directory '%s': a separate working copy with the same name already exists"
-msgstr "Konnte Verzeichnis »%s« nicht hinzufügen: ein versioniertes Verzeichnis mit demselben Namen existiert bereits"
+msgstr "Konnte Verzeichnis »%s« nicht hinzufügen: ein andere Arbeitskopie mit gleichem Namen existiert bereits"
 
 #: ../libsvn_wc/update_editor.c:2322
-#, fuzzy, c-format
+#, c-format
 msgid "Switched directory '%s' does not match expected URL '%s'"
-msgstr "URL »%s« des existierenden Verzeichnisses »%s« entspricht nicht der erwarteten URL »%s«"
+msgstr "Umgestelltes Vereichnis »%s« entspricht nicht der erwarteten URL »%s«"
 
 #: ../libsvn_wc/update_editor.c:2348
 #, c-format
@@ -6928,21 +6905,17 @@ msgstr "Konnte Eigenschaften nicht zusam
 #: ../libsvn_wc/update_editor.c:2990
 #, c-format
 msgid "Failed to mark '%s' absent: item of the same name is already scheduled for addition"
-msgstr ""
-"Konnte »%s« nicht als fehlend markieren: ein Objekt mit demselben Namen wurde\n"
-"bereits zur Übertragung eingeplant"
+msgstr "Konnte »%s« nicht als fehlend markieren: ein Eintrag mit demselben Namen wurde bereits zur Hinzufügung eingeplant"
 
 #: ../libsvn_wc/update_editor.c:3081
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to add file '%s': object of the same name as the administrative directory"
-msgstr ""
-"Konnte Verzeichnis »%s« nicht hinzufügen, da es denselben Namen wie das\n"
-"Administrationsverzeichnis trägt"
+msgstr "Konnte Datei »%s« nicht hinzufügen, da es denselben Namen wie Administrationsverzeichnis trägt"
 
 #: ../libsvn_wc/update_editor.c:3208
-#, fuzzy, c-format
+#, c-format
 msgid "Switched file '%s' does not match expected URL '%s'"
-msgstr "URL »%s« der existierenden Datei »%s« entspricht nicht der erwarteten URL »%s«"
+msgstr "Umgestellte Datei »%s« entspricht nicht der erwarteten URL »%s«"
 
 #: ../libsvn_wc/update_editor.c:3469
 #, fuzzy, c-format
@@ -10163,9 +10136,9 @@ msgid "Upgraded '%s'.\n"
 msgstr "Überspringe »%s«\n"
 
 #: ../svn/notify.c:885
-#, fuzzy, c-format
+#, c-format
 msgid "Redirecting to URL '%s'\n"
-msgstr "Umleitung zur URL »%s«"
+msgstr "Umleitung zur URL »%s«\n"
 
 #: ../svn/obliterate-cmd.c:60
 #, c-format
@@ -10177,9 +10150,8 @@ msgid "Wrong number of arguments"
 msgstr "Falsche Anzahl von Argumenten"
 
 #: ../svn/obliterate-cmd.c:116
-#, fuzzy
 msgid "Target must specify the revision as a number"
-msgstr "Revisionsnummer PAR angegeben"
+msgstr "Ziel muss die Revision als Zahl angegeben"
 
 #: ../svn/obliterate-cmd.c:119
 msgid "Target must specify a URL"
@@ -10458,9 +10430,8 @@ msgstr ""
 "(A)bbrechen, Weiterma(c)hen, (E)ditieren:\n"
 
 #: ../svn/util.c:903
-#, fuzzy
 msgid "Use --force to override this restriction (local modifications may be lost)"
-msgstr "Benutzen Sie »--force«, um diese Einschränkung aufzuheben"
+msgstr "Benutzen Sie »--force«, um diese Einschränkung aufzuheben (lokale Änderungen könnten verloren gehen)"
 
 # CHECKME! Here used beside "dir" and "file".
 #: ../svn/util.c:1050 ../svn/util.c:1083
@@ -10935,17 +10906,15 @@ msgstr "Bilde Deltas für Revision %ld .
 msgid "done.\n"
 msgstr "erledigt.\n"
 
-# shard ???? Teil(stück)?
 #: ../svnadmin/main.c:687
-#, fuzzy, c-format
+#, c-format
 msgid "Packing revisions in shard %s..."
-msgstr "Packe %s ..."
+msgstr "Packe Revisionen in Fragment %s ..."
 
-# shard ???? Teil(stück)?
 #: ../svnadmin/main.c:703
-#, fuzzy, c-format
+#, c-format
 msgid "Packing revprops in shard %s..."
-msgstr "Packe %s ..."
+msgstr "Packe Revisionseigenschaften in Fragment %s ..."
 
 #: ../svnadmin/main.c:792
 #, c-format
@@ -11267,24 +11236,24 @@ msgid "Including prefixes:\n"
 msgstr "Präfixe einschließen:\n"
 
 #: ../svndumpfilter/main.c:1116
-#, fuzzy, c-format
+#, c-format
 msgid "Excluding (and dropping empty revisions for) prefix patterns:\n"
-msgstr "Präfixe ausschließen (und leere Revisionen verwerfen):\n"
+msgstr "Präfixmuster ausschließen (und leere Revisionen verwerfen):\n"
 
 #: ../svndumpfilter/main.c:1118
-#, fuzzy, c-format
+#, c-format
 msgid "Excluding prefix patterns:\n"
-msgstr "Präfixe ausschließen:\n"
+msgstr "Präfixmuster ausschließen:\n"
 
 #: ../svndumpfilter/main.c:1120
-#, fuzzy, c-format
+#, c-format
 msgid "Including (and dropping empty revisions for) prefix patterns:\n"
-msgstr "Präfixe einschließen (und leere Revisionen verwerfen):\n"
+msgstr "Präfixmuster einschließen (und leere Revisionen verwerfen):\n"
 
 #: ../svndumpfilter/main.c:1122
-#, fuzzy, c-format
+#, c-format
 msgid "Including prefix patterns:\n"
-msgstr "Präfixe einschließen:\n"
+msgstr "Präfixmuster einschließen:\n"
 
 #: ../svndumpfilter/main.c:1150
 #, c-format
@@ -11482,17 +11451,16 @@ msgstr ""
 "bzw. deren Dateien geändert wurden.\n"
 
 #: ../svnlook/main.c:221
-#, fuzzy
 msgid ""
 "usage: svnlook filesize REPOS_PATH PATH_IN_REPOS\n"
 "\n"
 "Print the size (in bytes) of the file located at PATH_IN_REPOS as\n"
 "it is represented in the repository.\n"
 msgstr ""
-"Aufruf: svnadmin lslocks ARCHIV_PFAD [PFAD-IN-ARCHIV]\n"
+"Aufruf: svnlook filesize ARCHIV_PFAD PFAD_IN_ARCHIV\n"
 "\n"
-"Gibt Beschreibungen aller Sperren auf oder unter PFAD-IN-ARCHIV aus (was,\n"
-"falls nicht angegeben, die Wurzel des Projektarchivs ist).\n"
+"Gibt die Größe (in Bytes) der in PFAD_IN_ARCHIV befindlichen Datei\n"
+"aus, wie sie im Projektarchiv vorliegt.\n"
 
 #: ../svnlook/main.c:227
 msgid ""
@@ -11799,11 +11767,9 @@ msgstr ""
 "»%s« gehalten wird\n"
 
 #: ../svnrdump/load_editor.c:167 ../svnsync/main.c:430
-#, fuzzy, c-format
+#, c-format
 msgid "Couldn't get lock on destination repos after %d attempts"
-msgstr ""
-"Konnte Sperre für Zielprojektarchiv nicht erhalten, die zurzeit von\n"
-"»%s« gehalten wird\n"
+msgstr "Konnte Sperre für Zielprojektarchiv nach %d Versuchen nicht erhalten"
 
 #: ../svnrdump/load_editor.c:684
 msgid "\"svnrdump load\"'s lock was stolen; can't remove it"
@@ -11825,13 +11791,12 @@ msgid ""
 msgstr ""
 
 #: ../svnrdump/svnrdump.c:69
-#, fuzzy
 msgid ""
 "usage: svnrdump help [SUBCOMMAND...]\n"
 "\n"
 "Describe the usage of this program or its subcommands.\n"
 msgstr ""
-"Aufruf: svnadmin help [UNTERBEFEHL...]\n"
+"Aufruf: svnrdump help [UNTERBEFEHL...]\n"
 "\n"
 "Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
 
@@ -11840,30 +11805,27 @@ msgid "display this help"
 msgstr "Hilfe anzeigen"
 
 #: ../svnrdump/svnrdump.c:91 ../svnsync/main.c:196
-#, fuzzy
 msgid ""
 "set user configuration option in the format:\n"
 "                                 FILE:SECTION:OPTION=[VALUE]\n"
 "                             For example:\n"
 "                                 servers:global:http-library=serf"
 msgstr ""
-"Setze Benutzerkonfigurationsoption im Format:\n"
+"Setzt Benutzerkonfigurationsoption im Format:\n"
 "                                 DATEI:ABSCHNITT:OPTION=[WERT]\n"
 "                             Zum Beispiel:\n"
-"                                 servers:global:http-library=serf\n"
+"                                 servers:global:http-library=serf"
 
 #: ../svnrdump/svnrdump.c:405
-#, fuzzy
 msgid ""
 "general usage: svnrdump SUBCOMMAND URL [-r LOWER[:UPPER]]\n"
 "Type 'svnrdump help <subcommand>' for help on a specific subcommand.\n"
 "\n"
 "Available subcommands:\n"
 msgstr ""
-"Aufruf: svndumpfilter UNTERBEFEHL [Optionen & Parameter ...]\n"
-"Geben Sie »svndumpfilter help <Unterbefehl>« ein, um Hilfe zu einem\n"
+"Aufruf: svnrdump UNTERBEFEHL URL [-r [ VON[:BIS]]\n"
+"Geben Sie »svnrdump help <Unterbefehl>« ein, um Hilfe zu einem\n"
 "          Unterbefehl zu erhalten.\n"
-"Geben Sie »svndumpfilter --version« ein, um die Programmversion zu sehen.\n"
 "\n"
 "Verfügbare Unterbefehle:\n"