subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From v...@apache.org
Subject svn commit: r1425415 [10/13] - in /subversion/branches/javahl-ra: ./ build/generator/templates/ notes/ notes/directory-index/ subversion/bindings/swig/python/svn/ subversion/bindings/swig/ruby/test/ subversion/include/ subversion/include/private/ subve...
Date Sun, 23 Dec 2012 06:03:17 GMT
Modified: subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h?rev=1425415&r1=1425414&r2=1425415&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h Sun Dec 23 06:03:14 2012
@@ -435,6 +435,25 @@ svn_wc__db_base_add_directory(svn_wc__db
                               const svn_skel_t *work_items,
                               apr_pool_t *scratch_pool);
 
+/* Add a new directory in BASE, whether WORKING nodes exist or not. Mark it
+   as incomplete and with revision REVISION. If REPOS_RELPATH is not NULL,
+   apply REPOS_RELPATH, REPOS_ROOT_URL and REPOS_UUID.
+   Perform all temporary allocations in SCRATCH_POOL.
+   */
+svn_error_t *
+svn_wc__db_base_add_incomplete_directory(svn_wc__db_t *db,
+                                         const char *local_abspath,
+                                         const char *repos_relpath,
+                                         const char *repos_root_url,
+                                         const char *repos_uuid,
+                                         svn_revnum_t revision,
+                                         svn_depth_t depth,
+                                         svn_boolean_t insert_base_deleted,
+                                         svn_boolean_t delete_working,
+                                         svn_skel_t *conflict,
+                                         svn_skel_t *work_items,
+                                         apr_pool_t *scratch_pool);
+
 
 /* Add or replace a file in the BASE tree.
 
@@ -484,11 +503,12 @@ svn_wc__db_base_add_file(svn_wc__db_t *d
                          const char *changed_author,
                          const svn_checksum_t *checksum,
                          apr_hash_t *dav_cache,
-                         const svn_skel_t *conflict,
+                         svn_boolean_t delete_working,
                          svn_boolean_t update_actual_props,
                          apr_hash_t *new_actual_props,
                          svn_boolean_t keep_recorded_info,
                          svn_boolean_t insert_base_deleted,
+                         const svn_skel_t *conflict,
                          const svn_skel_t *work_items,
                          apr_pool_t *scratch_pool);
 
@@ -565,9 +585,12 @@ svn_wc__db_base_add_symlink(svn_wc__db_t
                             const char *changed_author,
                             const char *target,
                             apr_hash_t *dav_cache,
-                            const svn_skel_t *conflict,
+                            svn_boolean_t delete_working,
                             svn_boolean_t update_actual_props,
                             apr_hash_t *new_actual_props,
+                            svn_boolean_t keep_recorded_info,
+                            svn_boolean_t insert_base_deleted,
+                            const svn_skel_t *conflict,
                             const svn_skel_t *work_items,
                             apr_pool_t *scratch_pool);
 
@@ -636,13 +659,15 @@ svn_wc__db_base_add_not_present_node(svn
                                      apr_pool_t *scratch_pool);
 
 
-/* Remove a node from the BASE tree.
+/* Remove a node and all its descendants from the BASE tree. This handles
+   the deletion of a tree from the update editor and some file external
+   scenarios.
 
    The node to remove is indicated by LOCAL_ABSPATH from the local
    filesystem.
 
-   Note that no changes are made to the local filesystem; LOCAL_ABSPATH
-   is merely the key to figure out which BASE node to remove.
+   This operation *installs* workqueue operations to update the local
+   filesystem after the database operation.
 
    To maintain a consistent database this function will also remove
    any working node that marks LOCAL_ABSPATH as base-deleted.  If this
@@ -650,12 +675,24 @@ svn_wc__db_base_add_not_present_node(svn
    actual node will be removed if the actual node does not mark a
    conflict.
 
-   Note the caller is responsible for removing base node
-   children before calling this function (this may change).
+   If KEEP_AS_WORKING is TRUE, then the base tree is copied to higher
+   layers as a copy of itself before deleting the BASE nodes.
+
+   If NOT_PRESENT_REVISION specifies a valid revision a not-present
+   node is installed in BASE node with kind NOT_PRESENT_KIND after
+   deleting.
+
+   If CONFLICT and/or WORK_ITEMS are passed they are installed as part
+   of the operation, after the work items inserted by the operation
+   itself.
 */
 svn_error_t *
 svn_wc__db_base_remove(svn_wc__db_t *db,
                        const char *local_abspath,
+                       svn_boolean_t keep_as_working,
+                       svn_revnum_t not_present_revision,
+                       svn_skel_t *conflict,
+                       svn_skel_t *work_items,
                        apr_pool_t *scratch_pool);
 
 
@@ -1294,6 +1331,8 @@ svn_wc__db_op_copy_file(svn_wc__db_t *db
                         const char *original_uuid,
                         svn_revnum_t original_revision,
                         const svn_checksum_t *checksum,
+                        svn_boolean_t update_actual_props,
+                        const apr_hash_t *new_actual_props,
                         svn_boolean_t is_move,
                         const svn_skel_t *conflict,
                         const svn_skel_t *work_items,
@@ -1427,6 +1466,10 @@ svn_wc__db_temp_working_set_props(svn_wc
 
 /* Mark LOCAL_ABSPATH, and all children, for deletion.
  *
+ * This function removes the file externals (and if DELETE_DIR_EXTERNALS is
+ * TRUE also the directory externals) registered below LOCAL_ABSPATH.
+ * (DELETE_DIR_EXTERNALS should be true if also removing unversioned nodes)
+ *
  * If MOVED_TO_ABSPATH is not NULL, mark the deletion of LOCAL_ABSPATH
  * as the delete-half of a move from LOCAL_ABSPATH to MOVED_TO_ABSPATH.
  *
@@ -1442,11 +1485,13 @@ svn_error_t *
 svn_wc__db_op_delete(svn_wc__db_t *db,
                      const char *local_abspath,
                      const char *moved_to_abspath,
-                     /* ### flip to CANCEL, then NOTIFY. precedent.  */
-                     svn_wc_notify_func2_t notify_func,
-                     void *notify_baton,
+                     svn_boolean_t delete_dir_externals,
+                     svn_skel_t *conflict,
+                     svn_skel_t *work_items,
                      svn_cancel_func_t cancel_func,
                      void *cancel_baton,
+                     svn_wc_notify_func2_t notify_func,
+                     void *notify_baton,
                      apr_pool_t *scratch_pool);
 
 
@@ -1458,6 +1503,10 @@ svn_wc__db_op_delete(svn_wc__db_t *db,
  * It currently lacks support for moves (though this could be changed,
  * at which point svn_wc__db_op_delete() becomes redundant).
  *
+ * This function removes the file externals (and if DELETE_DIR_EXTERNALS is
+ * TRUE also the directory externals) registered below the targets.
+ * (DELETE_DIR_EXTERNALS should be true if also removing unversioned nodes)
+ *
  * If NOTIFY_FUNC is not NULL, then it will be called (with NOTIFY_BATON)
  * for each node deleted. While this processing occurs, if CANCEL_FUNC is
  * not NULL, then it will be called (with CANCEL_BATON) to detect cancellation
@@ -1469,6 +1518,8 @@ svn_wc__db_op_delete(svn_wc__db_t *db,
 svn_error_t *
 svn_wc__db_op_delete_many(svn_wc__db_t *db,
                           apr_array_header_t *targets,
+                          svn_boolean_t delete_dir_externals,
+                          const svn_skel_t *conflict,
                           svn_cancel_func_t cancel_func,
                           void *cancel_baton,
                           svn_wc_notify_func2_t notify_func,
@@ -1553,9 +1604,8 @@ svn_wc__db_op_revert(svn_wc__db_t *db,
                      apr_pool_t *scratch_pool);
 
 /* Query the revert list for LOCAL_ABSPATH and set *REVERTED if the
- * path was reverted.  Set *CONFLICT_OLD, *CONFLICT_NEW,
- * *CONFLICT_WORKING and *PROP_REJECT to the names of the conflict
- * files, or NULL if the names are not stored.
+ * path was reverted.  Set *MARKER_FILES to a const char *list of
+ * marker files if any were recorded on LOCAL_ABSPATH.
  *
  * Set *COPIED_HERE if the reverted node was copied here and is the
  * operation root of the copy.
@@ -1565,10 +1615,7 @@ svn_wc__db_op_revert(svn_wc__db_t *db,
  */
 svn_error_t *
 svn_wc__db_revert_list_read(svn_boolean_t *reverted,
-                            const char **conflict_old,
-                            const char **conflict_new,
-                            const char **conflict_working,
-                            const char **prop_reject,
+                            const apr_array_header_t **marker_files,
                             svn_boolean_t *copied_here,
                             svn_kind_t *kind,
                             svn_wc__db_t *db,
@@ -1616,50 +1663,6 @@ svn_wc__db_revert_list_done(svn_wc__db_t
                             const char *local_abspath,
                             apr_pool_t *scratch_pool);
 
-
-/* Return a hash @a *tree_conflicts of all the children of @a
- * local_abspath that are in tree conflicts.  The hash maps local
- * basenames to pointers to svn_wc_conflict_description2_t, all
- * allocated in result pool.
- */
-/* ### this is not an OPERATION. remove the _op_.  */
-svn_error_t *
-svn_wc__db_op_read_all_tree_conflicts(apr_hash_t **tree_conflicts,
-                                      svn_wc__db_t *db,
-                                      const char *local_abspath,
-                                      apr_pool_t *result_pool,
-                                      apr_pool_t *scratch_pool);
-
-/* Get any tree conflict associated with LOCAL_ABSPATH in DB, and put it
-   in *TREE_CONFLICT, allocated in RESULT_POOL.
-
-   Use SCRATCH_POOL for any temporary allocations.
-*/
-/* ### this is not an OPERATION. remove the _op_.  */
-svn_error_t *
-svn_wc__db_op_read_tree_conflict(
-                     const svn_wc_conflict_description2_t **tree_conflict,
-                     svn_wc__db_t *db,
-                     const char *local_abspath,
-                     apr_pool_t *result_pool,
-                     apr_pool_t *scratch_pool);
-
-
-/* Set the tree conflict on LOCAL_ABSPATH in DB to TREE_CONFLICT.  Use
-   NULL to remove a tree conflict.
-
-   Use SCRATCH_POOL for any temporary allocations.
-*/
-/* ### can this also record text/prop conflicts? drop "tree"? */
-/* ### dunno if it can, but it definitely should be able to. */
-/* ### gjs: also ref: db_op_mark_conflict()  */
-svn_error_t *
-svn_wc__db_op_set_tree_conflict(svn_wc__db_t *db,
-                                const char *local_abspath,
-                                const svn_wc_conflict_description2_t *tree_conflict,
-                                apr_pool_t *scratch_pool);
-
-
 /* ### status */
 
 
@@ -2150,9 +2153,9 @@ svn_wc__db_read_conflict_victims(const a
                                  apr_pool_t *result_pool,
                                  apr_pool_t *scratch_pool);
 
-/* Read into *MARKER_FILES the basenames of the immediate children of
-   LOCAL_ABSPATH in DB that are unversioned marker files for text or
-   property conflicts.  The files may have been deleted by the user.
+/* Read into *MARKER_FILES the absolute paths of the marker files
+   of conflicts stored on LOCAL_ABSPATH and its immediate children in DB.
+   The on-disk files may have been deleted by the user.
 
    Allocate *MARKER_FILES in RESULT_POOL and do temporary allocations
    in SCRATCH_POOL */
@@ -2163,22 +2166,20 @@ svn_wc__db_get_conflict_marker_files(apr
                                      apr_pool_t *result_pool,
                                      apr_pool_t *scratch_pool);
 
-/* Read into CONFLICTS svn_wc_conflict_description2_t* structs
-   for all conflicts that have LOCAL_ABSPATH as victim.
+/* Read the conflict information recorded on LOCAL_ABSPATH in *CONFLICT,
+   an editable conflict skel.
 
-   Victim must be versioned or be part of a tree conflict.
+   If the node exists, but does not have a conflict set *CONFLICT to NULL,
+   otherwise return a SVN_ERR_WC_PATH_NOT_FOUND error.
 
    Allocate *CONFLICTS in RESULT_POOL and do temporary allocations in
    SCRATCH_POOL */
-/* ### Currently there can be just one property conflict recorded
-       per victim */
-/*  ### This function will probably be removed. */
 svn_error_t *
-svn_wc__db_read_conflicts(const apr_array_header_t **conflicts,
-                          svn_wc__db_t *db,
-                          const char *local_abspath,
-                          apr_pool_t *result_pool,
-                          apr_pool_t *scratch_pool);
+svn_wc__db_read_conflict(svn_skel_t **conflict,
+                         svn_wc__db_t *db,
+                         const char *local_abspath,
+                         apr_pool_t *result_pool,
+                         apr_pool_t *scratch_pool);
 
 
 /* Return the kind of the node in DB at LOCAL_ABSPATH. The WORKING tree will
@@ -2837,27 +2838,41 @@ svn_wc__db_wclock_owns_lock(svn_boolean_
 */
 
 /* Removes all references to LOCAL_ABSPATH from DB, while optionally leaving
-   tree conflicts and/or a not present node.
+   a not present node.
 
    This operation always recursively removes all nodes at and below
    LOCAL_ABSPATH from NODES and ACTUAL.
 
    If NOT_PRESENT_REVISION specifies a valid revision, leave a not_present
-   BASE node at local_abspath. (Requires an existing BASE node before removing)
+   BASE node at local_abspath of the specified status and kind.
+   (Requires an existing BASE node before removing)
+
+   If DESTROY_WC is TRUE, this operation *installs* workqueue operations to
+   update the local filesystem after the database operation. If DESTROY_CHANGES
+   is FALSE, modified and unversioned files are left after running this
+   operation (and the WQ). If DESTROY_CHANGES and DESTROY_WC are TRUE,
+   LOCAL_ABSPATH and everything below it will be removed by the WQ.
+
+
+   Note: Unlike many similar functions it is a valid scenario for this
+   function to be called on a wcroot! In this case it will just leave the root
+   record in BASE
  */
 svn_error_t *
-svn_wc__db_op_remove_node(svn_wc__db_t *db,
+svn_wc__db_op_remove_node(svn_boolean_t *left_changes,
+                          svn_wc__db_t *db,
                           const char *local_abspath,
+                          svn_boolean_t destroy_wc,
+                          svn_boolean_t destroy_changes,
                           svn_revnum_t not_present_revision,
+                          svn_wc__db_status_t not_present_status,
                           svn_kind_t not_present_kind,
+                          const svn_skel_t *conflict,
+                          const svn_skel_t *work_items,
+                          svn_cancel_func_t cancel_func,
+                          void *cancel_baton,
                           apr_pool_t *scratch_pool);
 
-/* Remove the WORKING_NODE row of LOCAL_ABSPATH in DB. */
-svn_error_t *
-svn_wc__db_temp_op_remove_working(svn_wc__db_t *db,
-                                  const char *local_abspath,
-                                  apr_pool_t *scratch_pool);
-
 /* Sets the depth of LOCAL_ABSPATH in its working copy to DEPTH using DB.
 
    Returns SVN_ERR_WC_PATH_NOT_FOUND if LOCAL_ABSPATH is not a BASE directory
@@ -2953,21 +2968,6 @@ svn_wc__db_temp_op_make_copy(svn_wc__db_
                              const char *local_abspath,
                              apr_pool_t *scratch_pool);
 
-/* Add a new directory in BASE, whether WORKING nodes exist or not. Mark it
-   as incomplete and with revision REVISION. If REPOS_RELPATH is not NULL,
-   apply REPOS_RELPATH, REPOS_ROOT_URL and REPOS_UUID.
-   Perform all temporary allocations in SCRATCH_POOL.
-   */
-svn_error_t *
-svn_wc__db_temp_op_set_new_dir_to_incomplete(svn_wc__db_t *db,
-                                             const char *local_abspath,
-                                             const char *repos_relpath,
-                                             const char *repos_root_url,
-                                             const char *repos_uuid,
-                                             svn_revnum_t revision,
-                                             svn_depth_t depth,
-                                             apr_pool_t *scratch_pool);
-
 /* Close the wc root LOCAL_ABSPATH and remove any per-directory
    handles associated with it. */
 svn_error_t *

Modified: subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.c?rev=1425415&r1=1425414&r2=1425415&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.c Sun Dec 23 06:03:14 2012
@@ -42,7 +42,6 @@
 
 
 /* Workqueue operation names.  */
-#define OP_BASE_REMOVE "base-remove"
 #define OP_FILE_COMMIT "file-commit"
 #define OP_FILE_INSTALL "file-install"
 #define OP_FILE_REMOVE "file-remove"
@@ -50,10 +49,15 @@
 #define OP_FILE_COPY_TRANSLATED "file-translate"
 #define OP_SYNC_FILE_FLAGS "sync-file-flags"
 #define OP_PREJ_INSTALL "prej-install"
+#define OP_DIRECTORY_REMOVE "dir-remove"
+
+#define OP_POSTUPGRADE "postupgrade"
+
+/* Legacy items */
+#define OP_BASE_REMOVE "base-remove"
 #define OP_RECORD_FILEINFO "record-fileinfo"
 #define OP_TMP_SET_TEXT_CONFLICT_MARKERS "tmp-set-text-conflict-markers"
 #define OP_TMP_SET_PROPERTY_CONFLICT_MARKER "tmp-set-property-conflict-marker"
-#define OP_POSTUPGRADE "postupgrade"
 
 /* For work queue debugging. Generates output about its operation.  */
 /* #define SVN_DEBUG_WORK_QUEUE */
@@ -100,110 +104,7 @@ get_and_record_fileinfo(svn_wc__db_t *db
 /* Removes a BASE_NODE and all it's data, leaving any adds and copies as is.
    Do this as a depth first traversal to make sure than any parent still exists
    on error conditions.
-
-   ### This function needs review for 4th tree behavior.*/
-static svn_error_t *
-remove_base_node(svn_wc__db_t *db,
-                 const char *local_abspath,
-                 svn_cancel_func_t cancel_func,
-                 void *cancel_baton,
-                 apr_pool_t *scratch_pool)
-{
-  svn_wc__db_status_t base_status, wrk_status;
-  svn_kind_t base_kind, wrk_kind;
-  svn_boolean_t have_base, have_work;
-  svn_error_t *err;
-
-  if (cancel_func)
-    SVN_ERR(cancel_func(cancel_baton));
-
-  err = svn_wc__db_read_info(&wrk_status, &wrk_kind, NULL, NULL, NULL, NULL,
-                             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                             NULL, NULL,
-                             &have_base, NULL, &have_work,
-                             db, local_abspath, scratch_pool, scratch_pool);
-  if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
-    {
-      /* No node to delete, this can happen when the wq item is rerun. */
-      svn_error_clear(err);
-      return SVN_NO_ERROR;
-    }
-
-  if(! have_base)
-    /* No base node to delete, this can happen when the wq item is rerun. */
-    return SVN_NO_ERROR;
-
-  if (wrk_status == svn_wc__db_status_normal
-      || wrk_status == svn_wc__db_status_not_present
-      || wrk_status == svn_wc__db_status_server_excluded)
-    {
-      base_status = wrk_status;
-      base_kind = wrk_kind;
-    }
-  else
-    SVN_ERR(svn_wc__db_base_get_info(&base_status, &base_kind, NULL, NULL,
-                                     NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, NULL, NULL, NULL,
-                                     db, local_abspath,
-                                     scratch_pool, scratch_pool));
-
-  /* Children first */
-  if (base_kind == svn_kind_dir
-      && (base_status == svn_wc__db_status_normal
-          || base_status == svn_wc__db_status_incomplete))
-    {
-      const apr_array_header_t *children;
-      apr_pool_t *iterpool = svn_pool_create(scratch_pool);
-      int i;
-
-      SVN_ERR(svn_wc__db_base_get_children(&children, db, local_abspath,
-                                           scratch_pool, iterpool));
-
-      for (i = 0; i < children->nelts; i++)
-        {
-          const char *child_name = APR_ARRAY_IDX(children, i, const char *);
-          const char *child_abspath;
-
-          svn_pool_clear(iterpool);
-
-          child_abspath = svn_dirent_join(local_abspath, child_name, iterpool);
-
-          SVN_ERR(remove_base_node(db, child_abspath, cancel_func, cancel_baton,
-                                   iterpool));
-        }
-
-      svn_pool_destroy(iterpool);
-    }
-
-  if (base_status == svn_wc__db_status_normal
-      && wrk_status != svn_wc__db_status_added
-      && wrk_status != svn_wc__db_status_excluded)
-    {
-      if (wrk_status != svn_wc__db_status_deleted
-          && (base_kind == svn_kind_file
-              || base_kind == svn_kind_symlink))
-        {
-          SVN_ERR(svn_io_remove_file2(local_abspath, TRUE, scratch_pool));
-        }
-      else if (base_kind == svn_kind_dir
-               && wrk_status != svn_wc__db_status_deleted)
-        {
-          err = svn_io_dir_remove_nonrecursive(local_abspath, scratch_pool);
-          if (err && (APR_STATUS_IS_ENOENT(err->apr_err)
-                      || SVN__APR_STATUS_IS_ENOTDIR(err->apr_err)
-                      || APR_STATUS_IS_ENOTEMPTY(err->apr_err)))
-            svn_error_clear(err);
-          else
-            SVN_ERR(err);
-        }
-    }
-
-  SVN_ERR(svn_wc__db_base_remove(db, local_abspath, scratch_pool));
-
-  return SVN_NO_ERROR;
-}
-
+ */
 
 /* Process the OP_REMOVE_BASE work item WORK_ITEM.
  * See svn_wc__wq_build_remove_base() which generates this work item.
@@ -220,8 +121,6 @@ run_base_remove(svn_wc__db_t *db,
   const char *local_relpath;
   const char *local_abspath;
   svn_revnum_t not_present_rev = SVN_INVALID_REVNUM;
-  svn_kind_t not_present_kind;
-  const char *repos_relpath, *repos_root_url, *repos_uuid;
   apr_int64_t val;
 
   local_relpath = apr_pstrmemdup(scratch_pool, arg1->data, arg1->len);
@@ -234,23 +133,6 @@ run_base_remove(svn_wc__db_t *db,
       not_present_rev = (svn_revnum_t)val;
 
       SVN_ERR(svn_skel__parse_int(&val, arg1->next->next, scratch_pool));
-      not_present_kind = (svn_kind_t)val;
-
-      if (SVN_IS_VALID_REVNUM(not_present_rev))
-        {
-          const char *dir_abspath, *name;
-
-          /* This wq operation is restartable, so we can't assume the node
-             to be here. But we can assume that the parent is still there */
-          svn_dirent_split(&dir_abspath, &name, local_abspath, scratch_pool);
-
-          SVN_ERR(svn_wc__db_scan_base_repos(&repos_relpath, &repos_root_url,
-                                             &repos_uuid,
-                                             db, dir_abspath,
-                                             scratch_pool, scratch_pool));
-
-          repos_relpath = svn_relpath_join(repos_relpath, name, scratch_pool);
-        }
     }
   else
     {
@@ -262,9 +144,9 @@ run_base_remove(svn_wc__db_t *db,
 
       if (keep_not_present)
         {
-          SVN_ERR(svn_wc__db_base_get_info(NULL, &not_present_kind,
-                                           &not_present_rev, &repos_relpath,
-                                           &repos_root_url, &repos_uuid, NULL,
+          SVN_ERR(svn_wc__db_base_get_info(NULL, NULL,
+                                           &not_present_rev, NULL,
+                                           NULL, NULL, NULL,
                                            NULL, NULL, NULL, NULL, NULL, NULL,
                                            NULL, NULL,
                                            db, local_abspath,
@@ -272,45 +154,8 @@ run_base_remove(svn_wc__db_t *db,
         }
     }
 
-  SVN_ERR(remove_base_node(db, local_abspath,
-                           cancel_func, cancel_baton,
-                           scratch_pool));
-
-  if (SVN_IS_VALID_REVNUM(not_present_rev))
-    {
-      SVN_ERR(svn_wc__db_base_add_not_present_node(db, local_abspath,
-                                                   repos_relpath,
-                                                   repos_root_url,
-                                                   repos_uuid,
-                                                   not_present_rev,
-                                                   not_present_kind,
-                                                   NULL,
-                                                   NULL,
-                                                   scratch_pool));
-    }
-
-  return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_wc__wq_build_base_remove(svn_skel_t **work_item,
-                             svn_wc__db_t *db,
-                             const char *local_abspath,
-                             svn_revnum_t not_present_revision,
-                             svn_kind_t not_present_kind,
-                             apr_pool_t *result_pool,
-                             apr_pool_t *scratch_pool)
-{
-  const char *local_relpath;
-  *work_item = svn_skel__make_empty_list(result_pool);
-
-  SVN_ERR(svn_wc__db_to_relpath(&local_relpath, db, local_abspath,
-                                local_abspath, result_pool, scratch_pool));
-
-  svn_skel__prepend_int(not_present_kind, *work_item, result_pool);
-  svn_skel__prepend_int(not_present_revision, *work_item, result_pool);
-  svn_skel__prepend_str(local_relpath, *work_item, result_pool);
-  svn_skel__prepend_str(OP_BASE_REMOVE, *work_item, result_pool);
+  SVN_ERR(svn_wc__db_base_remove(db, local_abspath, FALSE, not_present_rev,
+                                 NULL, NULL, scratch_pool));
 
   return SVN_NO_ERROR;
 }
@@ -894,6 +739,7 @@ run_file_remove(svn_wc__db_t *db,
 svn_error_t *
 svn_wc__wq_build_file_remove(svn_skel_t **work_item,
                              svn_wc__db_t *db,
+                             const char *wri_abspath,
                              const char *local_abspath,
                              apr_pool_t *result_pool,
                              apr_pool_t *scratch_pool)
@@ -901,7 +747,7 @@ svn_wc__wq_build_file_remove(svn_skel_t 
   const char *local_relpath;
   *work_item = svn_skel__make_empty_list(result_pool);
 
-  SVN_ERR(svn_wc__db_to_relpath(&local_relpath, db, local_abspath,
+  SVN_ERR(svn_wc__db_to_relpath(&local_relpath, db, wri_abspath,
                                 local_abspath, result_pool, scratch_pool));
 
   svn_skel__prepend_str(local_relpath, *work_item, result_pool);
@@ -912,6 +758,87 @@ svn_wc__wq_build_file_remove(svn_skel_t 
 
 /* ------------------------------------------------------------------------ */
 
+/* OP_DIRECTORY_REMOVE  */
+
+/* Process the OP_FILE_REMOVE work item WORK_ITEM.
+ * See svn_wc__wq_build_file_remove() which generates this work item.
+ * Implements (struct work_item_dispatch).func. */
+static svn_error_t *
+run_dir_remove(svn_wc__db_t *db,
+               const svn_skel_t *work_item,
+               const char *wri_abspath,
+               svn_cancel_func_t cancel_func,
+               void *cancel_baton,
+               apr_pool_t *scratch_pool)
+{
+  const svn_skel_t *arg1 = work_item->children->next;
+  const char *local_relpath;
+  const char *local_abspath;
+  svn_boolean_t recursive;
+
+  local_relpath = apr_pstrmemdup(scratch_pool, arg1->data, arg1->len);
+  SVN_ERR(svn_wc__db_from_relpath(&local_abspath, db, wri_abspath,
+                                  local_relpath, scratch_pool, scratch_pool));
+
+  recursive = FALSE;
+  if (arg1->next)
+    {
+      apr_int64_t val;
+      SVN_ERR(svn_skel__parse_int(&val, arg1->next, scratch_pool));
+
+      recursive = (val != 0);
+    }
+
+  /* Remove the path, no worrying if it isn't there.  */
+  if (recursive)
+    return svn_error_trace(
+                svn_io_remove_dir2(local_abspath, TRUE,
+                                   cancel_func, cancel_baton,
+                                   scratch_pool));
+  else
+    {
+      svn_error_t *err;
+
+      err = svn_io_dir_remove_nonrecursive(local_abspath, scratch_pool);
+
+      if (err && (APR_STATUS_IS_ENOENT(err->apr_err)
+                  || SVN__APR_STATUS_IS_ENOTDIR(err->apr_err)
+                  || APR_STATUS_IS_ENOTEMPTY(err->apr_err)))
+        {
+          svn_error_clear(err);
+          err = NULL;
+        }
+
+      return svn_error_trace(err);
+    }
+}
+
+svn_error_t *
+svn_wc__wq_build_dir_remove(svn_skel_t **work_item,
+                            svn_wc__db_t *db,
+                            const char *wri_abspath,
+                            const char *local_abspath,
+                            svn_boolean_t recursive,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool)
+{
+  const char *local_relpath;
+  *work_item = svn_skel__make_empty_list(result_pool);
+
+  SVN_ERR(svn_wc__db_to_relpath(&local_relpath, db, wri_abspath,
+                                local_abspath, result_pool, scratch_pool));
+
+  if (recursive)
+    svn_skel__prepend_int(TRUE, *work_item, result_pool);
+
+  svn_skel__prepend_str(local_relpath, *work_item, result_pool);
+  svn_skel__prepend_str(OP_DIRECTORY_REMOVE, *work_item, result_pool);
+
+  return SVN_NO_ERROR;
+}
+
+/* ------------------------------------------------------------------------ */
+
 /* OP_FILE_MOVE  */
 
 /* Process the OP_FILE_MOVE work item WORK_ITEM.
@@ -1153,29 +1080,34 @@ run_prej_install(svn_wc__db_t *db,
   const svn_skel_t *arg1 = work_item->children->next;
   const char *local_relpath;
   const char *local_abspath;
-  const svn_skel_t *conflict_skel;
+  svn_skel_t *conflicts;
+  const svn_skel_t *prop_conflict_skel;
   const char *tmp_prejfile_abspath;
   const char *prejfile_abspath;
 
   local_relpath = apr_pstrmemdup(scratch_pool, arg1->data, arg1->len);
   SVN_ERR(svn_wc__db_from_relpath(&local_abspath, db, wri_abspath,
                                   local_relpath, scratch_pool, scratch_pool));
+
+  SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath,
+                                   scratch_pool, scratch_pool));
+
+  SVN_ERR(svn_wc__conflict_read_prop_conflict(&prejfile_abspath,
+                                              NULL, NULL, NULL, NULL,
+                                              db, local_abspath, conflicts,
+                                              scratch_pool, scratch_pool));
+
   if (arg1->next != NULL)
-    conflict_skel = arg1->next;
+    prop_conflict_skel = arg1->next;
   else
     SVN_ERR_MALFUNCTION();  /* ### wc_db can't provide it ... yet.  */
 
   /* Construct a property reject file in the temporary area.  */
   SVN_ERR(svn_wc__create_prejfile(&tmp_prejfile_abspath,
                                   db, local_abspath,
-                                  conflict_skel,
+                                  prop_conflict_skel,
                                   scratch_pool, scratch_pool));
 
-  /* Get the (stored) name of where it should go.  */
-  SVN_ERR(svn_wc__get_prejfile_abspath(&prejfile_abspath, db, local_abspath,
-                                       scratch_pool, scratch_pool));
-  SVN_ERR_ASSERT(prejfile_abspath != NULL);
-
   /* ... and atomically move it into place.  */
   SVN_ERR(svn_io_file_rename(tmp_prejfile_abspath,
                              prejfile_abspath,
@@ -1331,41 +1263,24 @@ run_set_text_conflict_markers(svn_wc__db
      ### to set the right fields. */
 
   {
-    /* Check if we also have a property conflict... */
-    const apr_array_header_t *conflicts;
-    svn_skel_t *conflict_skel;
-    int i;
-
-    conflict_skel = svn_wc__conflict_skel_create(scratch_pool);
+    /* Check if we should combine with a property conflict... */
+    svn_skel_t *conflicts;
 
-    SVN_ERR(svn_wc__db_read_conflicts(&conflicts, db, local_abspath,
-                                      scratch_pool, scratch_pool));
+    SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath,
+                                     scratch_pool, scratch_pool));
 
-    if (conflicts)
-      for (i = 0; i < conflicts->nelts; i++)
-        {
-          svn_wc_conflict_description2_t *desc =
-                APR_ARRAY_IDX(conflicts, i, svn_wc_conflict_description2_t *);
-          apr_hash_t *prop_names;
-
-          if (desc->kind != svn_wc_conflict_kind_property)
-            continue;
-
-          prop_names = apr_hash_make(scratch_pool);
-
-          /* Add the absolute minimal property conflict */
-          SVN_ERR(svn_wc__conflict_skel_add_prop_conflict(conflict_skel, db,
-                                                          local_abspath,
-                                                          desc->their_abspath,
-                                                          NULL, NULL, NULL,
-                                                          prop_names,
-                                                          scratch_pool,
-                                                          scratch_pool));
+    if (! conflicts)
+      {
+        /* No conflict exists, create a basic skel */
+        conflicts = svn_wc__conflict_skel_create(scratch_pool);
 
-          break;
-        }
+        SVN_ERR(svn_wc__conflict_skel_set_op_update(conflicts, NULL,
+                                                    scratch_pool,
+                                                    scratch_pool));
+      }
 
-    SVN_ERR(svn_wc__conflict_skel_add_text_conflict(conflict_skel, db,
+    /* Add the text conflict to the existing onflict */
+    SVN_ERR(svn_wc__conflict_skel_add_text_conflict(conflicts, db,
                                                     local_abspath,
                                                     wrk_abspath,
                                                     old_abspath,
@@ -1373,12 +1288,7 @@ run_set_text_conflict_markers(svn_wc__db
                                                     scratch_pool,
                                                     scratch_pool));
 
-    /* ### Set some 'none' operation? */
-    SVN_ERR(svn_wc__conflict_skel_set_op_update(conflict_skel, NULL,
-                                                scratch_pool,
-                                                scratch_pool));
-
-    SVN_ERR(svn_wc__db_op_mark_conflict(db, local_abspath, conflict_skel,
+    SVN_ERR(svn_wc__db_op_mark_conflict(db, local_abspath, conflicts,
                                         NULL, scratch_pool));
   }
   return SVN_NO_ERROR;
@@ -1409,7 +1319,7 @@ run_set_property_conflict_marker(svn_wc_
 
   arg = arg->next;
   local_relpath = arg->len ? apr_pstrmemdup(scratch_pool, arg->data, arg->len)
-                          : NULL;
+                           : NULL;
 
   if (local_relpath)
     SVN_ERR(svn_wc__db_from_relpath(&prej_abspath, db, wri_abspath,
@@ -1417,41 +1327,25 @@ run_set_property_conflict_marker(svn_wc_
                                     scratch_pool, scratch_pool));
 
   {
-    /* Check if we also have a property conflict... */
-    const apr_array_header_t *conflicts;
-    svn_skel_t *conflict_skel;
-    int i;
+    /* Check if we should combine with a text conflict... */
+    svn_skel_t *conflicts;
     apr_hash_t *prop_names;
 
-    conflict_skel = svn_wc__conflict_skel_create(scratch_pool);
-
-    SVN_ERR(svn_wc__db_read_conflicts(&conflicts, db, local_abspath,
-                                      scratch_pool, scratch_pool));
-
-    if (conflicts)
-      for (i = 0; i < conflicts->nelts; i++)
-        {
-          svn_wc_conflict_description2_t *desc =
-                APR_ARRAY_IDX(conflicts, i, svn_wc_conflict_description2_t *);
-
-          if (desc->kind != svn_wc_conflict_kind_text)
-            continue;
+    SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath,
+                                     scratch_pool, scratch_pool));
 
-          /* Add the existing text conflict */
-          SVN_ERR(svn_wc__conflict_skel_add_text_conflict(
-                                                conflict_skel, db,
-                                                local_abspath,
-                                                desc->my_abspath,
-                                                desc->base_abspath,
-                                                desc->their_abspath,
-                                                scratch_pool,
-                                                scratch_pool));
+    if (! conflicts)
+      {
+        /* No conflict exists, create a basic skel */
+        conflicts = svn_wc__conflict_skel_create(scratch_pool);
 
-          break;
-        }
+        SVN_ERR(svn_wc__conflict_skel_set_op_update(conflicts, NULL,
+                                                    scratch_pool,
+                                                    scratch_pool));
+      }
 
     prop_names = apr_hash_make(scratch_pool);
-    SVN_ERR(svn_wc__conflict_skel_add_prop_conflict(conflict_skel, db,
+    SVN_ERR(svn_wc__conflict_skel_add_prop_conflict(conflicts, db,
                                                     local_abspath,
                                                     prej_abspath,
                                                     NULL, NULL, NULL,
@@ -1459,12 +1353,7 @@ run_set_property_conflict_marker(svn_wc_
                                                     scratch_pool,
                                                     scratch_pool));
 
-    /* ### Set some 'none' operation? */
-    SVN_ERR(svn_wc__conflict_skel_set_op_update(conflict_skel, NULL,
-                                                scratch_pool,
-                                                scratch_pool));
-
-    SVN_ERR(svn_wc__db_op_mark_conflict(db, local_abspath, conflict_skel,
+    SVN_ERR(svn_wc__db_op_mark_conflict(db, local_abspath, conflicts,
                                         NULL, scratch_pool));
   }
   return SVN_NO_ERROR;
@@ -1480,14 +1369,17 @@ static const struct work_item_dispatch d
   { OP_FILE_COPY_TRANSLATED, run_file_copy_translated },
   { OP_SYNC_FILE_FLAGS, run_sync_file_flags },
   { OP_PREJ_INSTALL, run_prej_install },
-  { OP_RECORD_FILEINFO, run_record_fileinfo },
-  { OP_BASE_REMOVE, run_base_remove },
-  { OP_TMP_SET_TEXT_CONFLICT_MARKERS, run_set_text_conflict_markers },
-  { OP_TMP_SET_PROPERTY_CONFLICT_MARKER, run_set_property_conflict_marker },
+  { OP_DIRECTORY_REMOVE, run_dir_remove },
 
   /* Upgrade steps */
   { OP_POSTUPGRADE, run_postupgrade },
 
+  /* Legacy workqueue items. No longer created */
+  { OP_BASE_REMOVE, run_base_remove },
+  { OP_RECORD_FILEINFO, run_record_fileinfo },
+  { OP_TMP_SET_TEXT_CONFLICT_MARKERS, run_set_text_conflict_markers },
+  { OP_TMP_SET_PROPERTY_CONFLICT_MARKER, run_set_property_conflict_marker },
+
   /* Sentinel.  */
   { NULL }
 };

Modified: subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.h?rev=1425415&r1=1425414&r2=1425415&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.h (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.h Sun Dec 23 06:03:14 2012
@@ -114,14 +114,28 @@ svn_wc__wq_build_file_install(svn_skel_t
 
 
 /* Set *WORK_ITEM to a new work item that will remove a single
-   file.  */
+   file LOCAL_ABSPATH from the working copy identified by the pair DB,
+   WRI_ABSPATH.  */
 svn_error_t *
 svn_wc__wq_build_file_remove(svn_skel_t **work_item,
                              svn_wc__db_t *db,
+                             const char *wri_abspath,
                              const char *local_abspath,
                              apr_pool_t *result_pool,
                              apr_pool_t *scratch_pool);
 
+/* Set *WORK_ITEM to a new work item that will remove a single
+   directory or if RECURSIVE is TRUE a directory with all its
+   descendants.  */
+svn_error_t *
+svn_wc__wq_build_dir_remove(svn_skel_t **work_item,
+                            svn_wc__db_t *db,
+                            const char *wri_abspath,
+                            const char *local_abspath,
+                            svn_boolean_t recursive,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
+
 /* Set *WORK_ITEM to a new work item that describes a move of
    a file or directory from SRC_ABSPATH to DST_ABSPATH, ready for
    storing in the working copy managing DST_ABSPATH.
@@ -182,24 +196,6 @@ svn_wc__wq_build_prej_install(svn_skel_t
                               apr_pool_t *result_pool,
                               apr_pool_t *scratch_pool);
 
-/* Set *WORK_ITEM to a new work item that will remove all the data of
-   the BASE_NODE of LOCAL_ABSPATH and all it's descendants, but keeping
-   any WORKING_NODE data.
-
-   This function doesn't check for local modifications of the text files
-   as these would have triggered a tree conflict before.
-
-   ### This is only used from update_editor.c's do_entry_deletion().
- */
-svn_error_t *
-svn_wc__wq_build_base_remove(svn_skel_t **work_item,
-                             svn_wc__db_t *db,
-                             const char *local_abspath,
-                             svn_revnum_t not_present_revision,
-                             svn_kind_t not_present_kind,
-                             apr_pool_t *result_pool,
-                             apr_pool_t *scratch_pool);
-
 /* Handle the final post-commit step of retranslating and recording the
    working copy state of a committed file.
 

Modified: subversion/branches/javahl-ra/subversion/mod_dav_svn/liveprops.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/mod_dav_svn/liveprops.c?rev=1425415&r1=1425414&r2=1425415&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/mod_dav_svn/liveprops.c (original)
+++ subversion/branches/javahl-ra/subversion/mod_dav_svn/liveprops.c Sun Dec 23 06:03:14 2012
@@ -281,7 +281,7 @@ insert_prop_internal(const dav_resource 
   const char *value = NULL;
   const char *s;
   const dav_liveprop_spec *info;
-  int global_ns;
+  long global_ns;
   svn_error_t *serr;
 
   /* ### TODO proper errors */
@@ -785,11 +785,11 @@ insert_prop_internal(const dav_resource 
 
   if (what == DAV_PROP_INSERT_NAME
       || (what == DAV_PROP_INSERT_VALUE && *value == '\0')) {
-    s = apr_psprintf(result_pool, "<lp%d:%s/>" DEBUG_CR, global_ns,
+    s = apr_psprintf(result_pool, "<lp%ld:%s/>" DEBUG_CR, global_ns,
                      info->name);
   }
   else if (what == DAV_PROP_INSERT_VALUE) {
-    s = apr_psprintf(result_pool, "<lp%d:%s>%s</lp%d:%s>" DEBUG_CR,
+    s = apr_psprintf(result_pool, "<lp%ld:%s>%s</lp%ld:%s>" DEBUG_CR,
                      global_ns, info->name, value, global_ns, info->name);
   }
   else {

Modified: subversion/branches/javahl-ra/subversion/po/de.po
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/po/de.po?rev=1425415&r1=1425414&r2=1425415&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/po/de.po [UTF-8] (original)
+++ subversion/branches/javahl-ra/subversion/po/de.po [UTF-8] Sun Dec 23 06:03:14 2012
@@ -4973,9 +4973,8 @@ msgid "Creating pre-revprop-change hook"
 msgstr "Erzeuge Aktion »pre-revprop-change«"
 
 #: ../libsvn_repos/repos.c:618
-#, fuzzy
 msgid "Creating pre-obliterate hook"
-msgstr "Erzeuge Aktion »pre-commit«"
+msgstr "Erzeuge Aktion »pre-obliterate«"
 
 #: ../libsvn_repos/repos.c:846
 msgid "Creating post-commit hook"
@@ -4986,9 +4985,8 @@ msgid "Creating post-revprop-change hook
 msgstr "Erzeuge Aktion »post-revprop-change«"
 
 #: ../libsvn_repos/repos.c:1090
-#, fuzzy
 msgid "Creating post-obliterate hook"
-msgstr "Erzeuge Aktion »post-commit«"
+msgstr "Erzeuge Aktion »post-obliterate«"
 
 #: ../libsvn_repos/repos.c:1100
 msgid "Creating conf directory"
@@ -7142,14 +7140,14 @@ msgid "Error restoring text for '%s'"
 msgstr "Fehler beim Wiederherstellen des Textes für »%s«"
 
 #: ../libsvn_wc/workqueue.c:1294
-#, fuzzy, c-format
+#, c-format
 msgid "Error processing post-commit work for '%s'"
-msgstr "Fehler beim Bearbeiten des Befehls »%s« in »%s«"
+msgstr "Fehler beim Verarbeiten der Arbeitsschritte nach Übertragung für »%s«"
 
 #: ../libsvn_wc/workqueue.c:2213
-#, fuzzy, c-format
+#, c-format
 msgid "Unrecognized work item in the queue associated with '%s'"
-msgstr "Unbekannter Revisionstyp für »%s« angefragt"
+msgstr "Unbekannter Arbeitsschritt in Warteschlange von »%s« "
 
 #: ../svn/blame-cmd.c:302 ../svn/list-cmd.c:232
 msgid "'verbose' option invalid in XML mode"
@@ -7177,7 +7175,7 @@ msgstr "»%s« scheint keine URL zu sein
 #: ../svn/commit-cmd.c:107
 #, c-format
 msgid "svn: warning: The depth of this commit is '%s', but copied directories will regardless be committed with depth '%s'. You must remove unwanted children of those directories in a separate commit.\n"
-msgstr ""
+msgstr "svn: Warnung: Die Tiefe dieser Übertragung ist »%s«, jedoch werden kopierte Verzeichnisse dennoch mit Tiefe »%s« übertragen. Sie müssen nicht gewollte Kinder dieser Verzeichnisse in einer gesonderten Übertragung entfernen.\n"
 
 #: ../svn/conflict-callbacks.c:158
 msgid "||||||| ORIGINAL"
@@ -7381,14 +7379,13 @@ msgstr ""
 "Ungültige Option; es gibt keine zusammengeführte Version zum Vergleichen.\n"
 "\n"
 
-# CHECKME: proper English?
 #: ../svn/conflict-callbacks.c:651
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Invalid option; cannot resolve property conflicts with an external merge tool.\n"
 "\n"
 msgstr ""
-"Ungültige Option; Auswahl anhand von Konflikten ist in einer Binärdatei nicht möglich.\n"
+"Ungültige Option; kann Konflikte in Eigenschaften nicht mit externem Werkzeug zum Zusammenführen auflösen\n"
 "\n"
 
 #: ../svn/conflict-callbacks.c:666 ../svn/conflict-callbacks.c:680
@@ -7934,11 +7931,8 @@ msgstr ""
 "                             übergeben"
 
 #: ../svn/main.c:210
-#, fuzzy
 msgid "limit operation by depth ARG ('empty', 'files',\n"
-msgstr ""
-"begrenzt Operation durch Tiefe PAR (»empty«,\n"
-"                            »files«, »immediates« oder »infinity«)"
+msgstr "begrenzt Operation durch Tiefe PAR (»empty«, »files«,\n"
 
 #: ../svn/main.c:214
 msgid "set new working copy depth to ARG ('exclude',\n"
@@ -8038,11 +8032,8 @@ msgstr ""
 "                             PAR lesen"
 
 #: ../svn/main.c:254
-#, fuzzy
 msgid "set user configuration option in the format:\n"
-msgstr ""
-"Benutzerkonfigurationsdateien aus dem Verzeichnis\n"
-"                             PAR lesen"
+msgstr "Konfigurationsoption in diesem Format setzen:\n"
 
 #: ../svn/main.c:261
 msgid "enable automatic properties"
@@ -8203,7 +8194,6 @@ msgstr ""
 "  Falls angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
 
 #: ../svn/main.c:433
-#, fuzzy
 msgid ""
 "Associate (or dissociate) changelist CLNAME with the named files.\n"
 "usage: 1. changelist CLNAME PATH...\n"
@@ -8211,8 +8201,8 @@ msgid ""
 msgstr ""
 "Verknüpft Änderungsliste CLNAME (oder löst diese Verknüpfung)\n"
 "mit den angegebenen Dateien.\n"
-"Aufruf: 1. changelist CLNAME ZIEL...\n"
-"        2. changelist --remove ZIEL...\n"
+"Aufruf: 1. changelist CLNAME PFAD...\n"
+"        2. changelist --remove PFAD...\n"
 
 #: ../svn/main.c:439
 msgid ""
@@ -8265,7 +8255,6 @@ msgstr ""
 "  die die durchgeführte Aktion beschreiben.\n"
 
 #: ../svn/main.c:466
-#, fuzzy
 msgid ""
 "Recursively clean up the working copy, removing locks, resuming\n"
 "unfinished operations, etc.\n"
@@ -8273,7 +8262,7 @@ msgid ""
 msgstr ""
 "Räumt die Arbeitskopie rekursiv auf, gibt Sperren frei,\n"
 "nimmt unvollständige Operationen wieder auf, usw.\n"
-"Aufruf: cleanup [PFAD...]\n"
+"Aufruf: cleanup [AKPFAD...]\n"
 
 #: ../svn/main.c:472
 msgid ""
@@ -8340,7 +8329,6 @@ msgstr ""
 "von der Quelle der Kopie in das Ziel weiterzureichen.\n"
 
 #: ../svn/main.c:505
-#, fuzzy
 msgid ""
 "Remove files and directories from version control.\n"
 "usage: 1. delete PATH...\n"
@@ -8356,8 +8344,7 @@ msgid ""
 "  2. Each item specified by a URL is deleted from the repository\n"
 "    via an immediate commit.\n"
 msgstr ""
-"Entfernt Dateien und Verzeichnisse aus der\n"
-"Versionskontrolle.\n"
+"Entfernt Dateien und Verzeichnisse aus der Versionskontrolle.\n"
 "Aufruf: 1. delete PFAD...\n"
 "        2. delete URL...\n"
 "\n"
@@ -8367,10 +8354,10 @@ msgstr ""
 "     die Option --keep-local wurde angegeben.\n"
 "     PFAD(e), die nicht versioniert oder geändert sind, bzw.\n"
 "     entsprechende Einträge enthalten, werden nur gelöscht, wenn\n"
-"     die Option »--force« angegeben wird.\n"
+"     die Optionen --force oder --keep-local angegeben wird.\n"
 "\n"
-"  2. Jede URL wird mittels einer sofortigen Übertragung aus dem\n"
-"     Projektarchiv entfernt.\n"
+"  2. Jedes mit einer URL angegebene Element wird mittels sofortiger\n"
+"     Übertragung aus dem Projektarchiv entfernt.\n"
 
 #: ../svn/main.c:521
 msgid ""
@@ -9564,6 +9551,8 @@ msgid ""
 "Upgrade the metadata storage format for a working copy.\n"
 "usage: upgrade WCPATH...\n"
 msgstr ""
+"Überführt die Metadaten einer Arbeitskopie in ein neues Speicherformat\n"
+"Aufruf: upgrade AKPATH...\n"
 
 #: ../svn/main.c:1221 ../svnadmin/main.c:86 ../svnlook/main.c:354
 #: ../svnsync/main.c:263
@@ -9585,7 +9574,7 @@ msgstr "-c kann nicht mit --old verwende
 #: ../svn/main.c:1391
 #, c-format
 msgid "Negative number in range (%s) not supported with -c"
-msgstr ""
+msgstr "Negative Zahl im Bereich (%s) ist mit -c nicht unterstützt"
 
 #: ../svn/main.c:1404
 #, c-format
@@ -9855,42 +9844,42 @@ msgstr "Konflikt von »%s« aufgelöst\n
 #: ../svn/notify.c:320 ../svn/notify.c:360
 #, c-format
 msgid ">         applied hunk ## -%lu,%lu +%lu,%lu ## with offset %s"
-msgstr ""
+msgstr ">         Abschnitt ## -%lu,%lu +%lu,%lu ## mit Versatz %s angewandt"
 
 #: ../svn/notify.c:337 ../svn/notify.c:374
 #, c-format
 msgid ">         applied hunk @@ -%lu,%lu +%lu,%lu @@ with offset %s"
-msgstr ""
+msgstr ">         Abschnitt @@ -%lu,%lu +%lu,%lu @@ mit Versatz %s angewandt"
 
 #: ../svn/notify.c:395
 #, c-format
 msgid ">         applied hunk ## -%lu,%lu +%lu,%lu ## with fuzz %d (%s)\n"
-msgstr ""
+msgstr ">         Abschnitt ## -%lu,%lu +%lu,%lu ## mit Unschärfe %d (%s) angewandt\n"
 
 #: ../svn/notify.c:405
 #, c-format
 msgid ">         applied hunk @@ -%lu,%lu +%lu,%lu @@ with fuzz %d\n"
-msgstr ""
+msgstr ">         Abschnitt @@ -%lu,%lu +%lu,%lu @@ mit Unschärfe %d angewandt\n"
 
 #: ../svn/notify.c:423
 #, c-format
 msgid ">         rejected hunk ## -%lu,%lu +%lu,%lu ## (%s)\n"
-msgstr ""
+msgstr ">         Abschnitt ## -%lu,%lu +%lu,%lu ## (%s) zurückgewiesen\n"
 
 #: ../svn/notify.c:432
 #, c-format
 msgid ">         rejected hunk @@ -%lu,%lu +%lu,%lu @@\n"
-msgstr ""
+msgstr ">         Abschnitt @@ -%lu,%lu +%lu,%lu @@ zurückgewiesen\n"
 
 #: ../svn/notify.c:446
 #, c-format
 msgid ">         hunk ## -%lu,%lu +%lu,%lu ## already applied (%s)\n"
-msgstr ""
+msgstr ">         Abschnitt ## -%lu,%lu +%lu,%lu ## bereits angewandt (%s)\n"
 
 #: ../svn/notify.c:456
 #, c-format
 msgid ">         hunk @@ -%lu,%lu +%lu,%lu @@ already applied\n"
-msgstr ""
+msgstr ">         Abschnitt @@ -%lu,%lu +%lu,%lu @@ bereits angewandt\n"
 
 #  Currently this is used for checkouts and switches too.  If we
 #  want different output, we'll have to add new actions.
@@ -10157,7 +10146,7 @@ msgstr "Ziel muss die Revision als Zahl 
 
 #: ../svn/obliterate-cmd.c:119
 msgid "Target must specify a URL"
-msgstr ""
+msgstr "Ziel muss eine URL angeben"
 
 #: ../svn/propdel-cmd.c:117
 #, c-format
@@ -10303,7 +10292,7 @@ msgstr "hinzugefügt"
 
 #: ../svn/tree-conflicts.c:41 ../svn/tree-conflicts.c:63
 msgid "replace"
-msgstr ""
+msgstr "ersetzt"
 
 #: ../svn/tree-conflicts.c:60
 msgid "missing"
@@ -11154,7 +11143,7 @@ msgstr "Filterstatistik nicht anzeigen."
 
 #: ../svndumpfilter/main.c:926
 msgid "Treat the path prefixes as file glob patterns."
-msgstr ""
+msgstr "Pfadpräfix als Dateiplatzhalter behandeln."
 
 #: ../svndumpfilter/main.c:928
 msgid "Remove revisions emptied by filtering."
@@ -11754,7 +11743,7 @@ msgstr "Versuchen Sie »svnlook help« f
 
 #: ../svnrdump/load_editor.c:97 ../svnsync/main.c:351
 msgid "Target server does not support atomic revision property edits; consider upgrading it to 1.7 or using an external locking program"
-msgstr ""
+msgstr "Zielserver unterstützt keine atomaren Änderungen von Revisionseigenschaften; Verwenden Sie entweder 1.7 oder ein externes Programm zum Sperren."
 
 #: ../svnrdump/load_editor.c:106 ../svnsync/main.c:360
 #, c-format
@@ -11775,7 +11764,7 @@ msgstr "Konnte Sperre für Zielprojektar
 
 #: ../svnrdump/load_editor.c:684
 msgid "\"svnrdump load\"'s lock was stolen; can't remove it"
-msgstr ""
+msgstr "Die Sperre von »svnrump load« wurde gestohlen und konnte nicht entfernt werden"
 
 #: ../svnrdump/svnrdump.c:58
 msgid ""
@@ -11784,6 +11773,10 @@ msgid ""
 "Dump revisions LOWER to UPPER of repository at remote URL to stdout in a 'dumpfile' portable format.\n"
 "If only LOWER is given, dump that one revision.\n"
 msgstr ""
+"Aufruf: svnrdump dump URL [-r VON[:BIS]]\n"
+"\n"
+"Gibt einen Abzug der Revisionen VON:BIS eines Projektarchivs an der entferten URL in einem portablen »Dump«-Format aus.\n"
+"Falls nur VON angegeben wurde, wird nur diese Revision ausgegeben.\n"
 
 #: ../svnrdump/svnrdump.c:64
 msgid ""
@@ -11791,6 +11784,9 @@ msgid ""
 "\n"
 "Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
 msgstr ""
+"Aufruf: svnrdump load URL\n"
+"\n"
+"Liest einen Datenstrom im »Dump«-Format von der Standardeingabe in ein Projektarchive an entfertner URL.\n"
 
 #: ../svnrdump/svnrdump.c:69
 msgid ""
@@ -11839,7 +11835,7 @@ msgstr "Revision %ld existiert nicht.\n"
 #: ../svnrdump/svnrdump.c:592
 #, c-format
 msgid "LOWER cannot be greater than UPPER.\n"
-msgstr ""
+msgstr "VON kann nicht größer als BIS sein.\n"
 
 #: ../svnserve/cyrus_auth.c:264
 #, c-format
@@ -11928,6 +11924,11 @@ msgid ""
 "                             at the same time is not supported in daemon mode.\n"
 "                             Use inetd mode or tunnel mode if you need this.]"
 msgstr ""
+"Bevorzuge IPv6 beim Auflösen des abzuhörenden Rechnernamens\n"
+"                             [IPv4 ist als bevorzugt vorgegeben. Gleichzeitige\n"
+"                             Verwendung von IPv4 und IPv6 ist im Daemon-Modus\n"
+"                             nicht unterstützt. Verwenden Sie bei Bedarf inetd\n"
+"                             oder den Tunnel-Modus."
 
 #. ### Making the assumption here that WIN32 never has fork and so
 #. * ### this option never exists when --service exists.



Mime
View raw message