2001-09-17  Mo DeJong <supermo@bayarea.net>

        Remove useless unadd and undelete subcomands.

	* subversion/include/svn_wc.h (svn_wc_unadd, svn_wc_undelete):
	* subversion/include/svn_client.h (svn_client_unadd, svn_client_undelete):
	* subversion/include/svn_pools.h (report_unadded_item,
	report_undeleted_item):
	* subversion/libsvn_wc/entries.c:
	* subversion/libsvn_wc/adm_ops.c (mark_tree_state,
	svn_wc_unadd, svn_wc_undelete):
	* subversion/libsvn_subr/svn_error.c (report_unadded_item,
	report_undeleted_item):
	* subversion/libsvn_client/delete.c (svn_client_undelete):
	* subversion/libsvn_client/add.c (svn_client_unadd):
	* subversion/bindings/java/jni/org/tigris/subversion/lib/WorkingCopy.java:
	* subversion/bindings/java/jni/org/tigris/subversion/lib/Client.java:
	* subversion/clients/cmdline/cl.h (svn_cl__unadd, svn_cl__undelete):
	* subversion/clients/cmdline/add-cmd.c (svn_cl__unadd):
	* subversion/clients/cmdline/delete-cmd.c (svn_cl__undelete):
	* subversion/clients/cmdline/feedback.c (report_unadded_item,
	report_undeleted_item):
	* subversion/clients/cmdline/main.c (unadd, undelete):
	* subversion/tests/clients/cmdline/schedule_tests.py:
	* doc/user/svn_for_cvs_users.txt:
	* doc/user/manual/adds.texi:

Index: ./subversion/include/svn_wc.h
===================================================================
--- ./subversion/include/SVN/text-base/svn_wc.h	Mon Sep 17 10:42:14 2001
+++ ./subversion/include/svn_wc.h	Mon Sep 17 17:45:08 2001
@@ -114,8 +114,6 @@
   svn_wc_schedule_add,          /* Slated for addition */
   svn_wc_schedule_delete,       /* Slated for deletion */
   svn_wc_schedule_replace,      /* Slated for replacement (delete + add) */
-  svn_wc_schedule_unadd,        /* Slated for un-addition */
-  svn_wc_schedule_undelete      /* Slated for un-deletion */
 };
 
 enum svn_wc_existence_t
@@ -341,19 +339,6 @@
    caller should take care of that, if it cares. */
 svn_error_t *svn_wc_add_file (svn_stringbuf_t *file,
                               apr_pool_t *pool);
-
-/* Recursively un-mark a tree (beginning at a directory or a file
-   PATH) for addition.  */
-svn_error_t *svn_wc_unadd (svn_stringbuf_t *path,
-                           apr_pool_t *pool);
-
-/* Un-mark a PATH for deletion.  If RECURSE is TRUE and PATH
-   represents a directory, un-mark the entire tree under PATH for
-   deletion.  */
-svn_error_t *svn_wc_undelete (svn_stringbuf_t *path,
-                              svn_boolean_t recurse,
-                              apr_pool_t *pool);
-
 
 /* Remove entry NAME in PATH from revision control.  NAME must be
    either a file or SVN_WC_ENTRY_THIS_DIR.
Index: ./subversion/include/svn_client.h
===================================================================
--- ./subversion/include/SVN/text-base/svn_client.h	Mon Sep 10 09:52:05 2001
+++ ./subversion/include/svn_client.h	Mon Sep 17 17:43:02 2001
@@ -247,22 +247,10 @@
                 svn_boolean_t recursive,
                 apr_pool_t *pool);
 
-
-svn_error_t *
-svn_client_unadd (svn_stringbuf_t *path,
-                  apr_pool_t *pool);
-
-
 svn_error_t *
 svn_client_delete (svn_stringbuf_t *path,
                    svn_boolean_t force,
                    apr_pool_t *pool);
-
-
-svn_error_t *
-svn_client_undelete (svn_stringbuf_t *path,
-                     svn_boolean_t recursive,
-                     apr_pool_t *pool);
 
 /* Import a tree, using optional pre- and post-commit hook editors
  * (BEFORE_EDITOR, BEFORE_EDIT_BATON / AFTER_EDITOR,
Index: ./subversion/include/svn_pools.h
===================================================================
--- ./subversion/include/SVN/text-base/svn_pools.h	Mon Sep 10 09:52:03 2001
+++ ./subversion/include/svn_pools.h	Mon Sep 17 17:36:00 2001
@@ -115,14 +115,8 @@
   /* Report items just scheduled for addition to revision control. */
   apr_status_t (*report_added_item) (const char *path, apr_pool_t *pool);
 
-  /* Report items just un-scheduled for addition to revision control. */
-  apr_status_t (*report_unadded_item) (const char *path, apr_pool_t *pool);
-
   /* Report items just scheduled for removal to revision control. */
   apr_status_t (*report_deleted_item) (const char *path, apr_pool_t *pool);
-
-  /* Report items just un-scheduled for removal to revision control. */
-  apr_status_t (*report_undeleted_item) (const char *path, apr_pool_t *pool);
 
   /* Generic human-readable we-think-it's-non-fatal warning.  This
      function can parse STATUS and decide whether a "real" error
Index: ./subversion/libsvn_wc/entries.c
===================================================================
--- ./subversion/libsvn_wc/SVN/text-base/entries.c	Mon Sep 10 17:16:48 2001
+++ ./subversion/libsvn_wc/entries.c	Mon Sep 17 18:10:20 2001
@@ -762,10 +762,8 @@
       /* These are all valid states */
       break;
 
-    case svn_wc_schedule_unadd:
-    case svn_wc_schedule_undelete:
     default:
-      /* These are all INvalid states */
+      /* This is an invalid state */
       return svn_error_createf
         (SVN_ERR_WC_CORRUPT, 0, NULL, pool,
          "Directory '%s' has an invalid schedule",
@@ -798,10 +796,8 @@
           /* These are all valid states */
           break;
 
-        case svn_wc_schedule_unadd:
-        case svn_wc_schedule_undelete:
         default:
-          /* These are all INvalid states */
+          /* This is an invalid state */
           return svn_error_createf
             (SVN_ERR_WC_CORRUPT, 0, NULL, pool,
              "'%s' in directory '%s' has an invalid schedule",
@@ -1240,13 +1236,6 @@
            "fold_state_changes: Can't replace '%s' in deleted directory"
            "--try undeleting its parent directory first",
            name->data);
-      if (*schedule == svn_wc_schedule_undelete)
-        return 
-          svn_error_createf 
-          (SVN_ERR_WC_ENTRY_BOGUS_MERGE, 0, NULL, pool,
-           "fold_state_changes: Can't undelete '%s' in deleted directory"
-           "--try undeleting its parent directory first",
-           name->data);
     }
 
   switch (entry->schedule)
@@ -1255,11 +1244,8 @@
       switch (*schedule)
         {
         case svn_wc_schedule_normal:
-        case svn_wc_schedule_unadd:
-        case svn_wc_schedule_undelete:
-          /* There are all no-op cases.  _normal is trivial, _unadd
-             and _undelete might merit a warning, but whatever.  Reset
-             the schedule modification bit and move along. */
+          /* Normal is a trivial no-op case. Reset the
+             schedule modification bit and move along. */
           *modify_flags &= ~SVN_WC__ENTRY_MODIFY_SCHEDULE;
           return SVN_NO_ERROR;
 
@@ -1289,22 +1275,18 @@
         case svn_wc_schedule_normal:
         case svn_wc_schedule_add:
         case svn_wc_schedule_replace:
-        case svn_wc_schedule_undelete:
           /* These are all no-op cases.  Normal is obvious, as is add.
              Replace on an entry marked for addition breaks down to
              (add + (delete + add)), which resolves to just (add), and
              since this entry is already marked with (add), this too
-             is a no-op.  Undelete might merit a warning about
-             undeleting stuff that isn't deleted, but we opt not to
-             care. */
+             is a no-op. */
           *modify_flags &= ~SVN_WC__ENTRY_MODIFY_SCHEDULE;
           return SVN_NO_ERROR;
 
 
         case svn_wc_schedule_delete:
-        case svn_wc_schedule_unadd:
-          /* Not-yet-versioned item being deleted or un-added?  Just
-             remove the entry altogether. */
+          /* Not-yet-versioned item being deleted, Just
+             remove the entry. */
           apr_hash_set (entries, name->data, name->len, NULL);
           return SVN_NO_ERROR;
         }
@@ -1315,7 +1297,6 @@
         {
         case svn_wc_schedule_normal:
         case svn_wc_schedule_delete:
-        case svn_wc_schedule_unadd:
           /* These are no-op cases. */
           *modify_flags &= ~SVN_WC__ENTRY_MODIFY_SCHEDULE;
           return SVN_NO_ERROR;
@@ -1333,13 +1314,7 @@
              (delete + (delete + add)), which might deserve a warning,
              but whatever. */
           return SVN_NO_ERROR;
-            
 
-        case svn_wc_schedule_undelete:
-          /* Undeleting a to-be-deleted entry resets the schedule to
-             'normal'. */
-          *schedule = svn_wc_schedule_normal;
-          return SVN_NO_ERROR;
         }
       break;
 
@@ -1364,23 +1339,9 @@
         case svn_wc_schedule_delete:
           /* Deleting a to-be-replaced entry breaks down to ((delete +
              add) + delete) which resolves to a flat deletion. */
-        case svn_wc_schedule_unadd:
-          /* Unadding a to-be-replaced entry breaks down to ((delete +
-             add) - add), which leaves just the deletion. */
           *schedule = svn_wc_schedule_delete;
           return SVN_NO_ERROR;
 
-
-        case svn_wc_schedule_undelete:
-          /* Despite the fact that the to-be-replaced state of this
-             entry implies a deletion action, that's buried under an
-             addition action. */
-          return 
-            svn_error_createf 
-            (SVN_ERR_WC_ENTRY_BOGUS_MERGE, 0, NULL, pool,
-             "fold_state_changes: Can't undelete '%s' marked for replacement"
-             "--try unadding this entry first",
-             name->data);
         }
       break;
 
Index: ./subversion/libsvn_wc/adm_ops.c
===================================================================
--- ./subversion/libsvn_wc/SVN/text-base/adm_ops.c	Mon Sep 10 17:16:48 2001
+++ ./subversion/libsvn_wc/adm_ops.c	Mon Sep 17 17:49:31 2001
@@ -356,8 +356,6 @@
 
 enum mark_tree_state {
   mark_tree_state_delete = 1,
-  mark_tree_state_unadd,
-  mark_tree_state_undelete
 };
 
 
@@ -374,17 +372,6 @@
   /* Read the entries file for this directory. */
   SVN_ERR (svn_wc_entries_read (&entries, dir, pool));
 
-  /* Handle "this dir" for cases that need it handled before
-     recursion. */
-  if (state == mark_tree_state_undelete)
-    SVN_ERR (svn_wc__entry_modify
-             (dir, NULL, 
-              SVN_WC__ENTRY_MODIFY_SCHEDULE,
-              SVN_INVALID_REVNUM, svn_node_dir,
-              svn_wc_schedule_undelete,
-              svn_wc_existence_normal,
-              FALSE, 0, 0, NULL, pool, NULL));
-
   /* Mark each entry in the entries file. */
   for (hi = apr_hash_first (pool, entries); hi; hi = apr_hash_next (hi))
     {
@@ -436,45 +423,6 @@
             }
           break;
 
-        case mark_tree_state_unadd:
-          SVN_ERR (svn_wc__entry_modify
-                   (dir, basename, 
-                    SVN_WC__ENTRY_MODIFY_SCHEDULE,
-                    SVN_INVALID_REVNUM, entry->kind,
-                    svn_wc_schedule_unadd,
-                    svn_wc_existence_normal,
-                    FALSE, 0, 0, NULL, subpool, NULL));
-          if (fbtable)
-            {
-              apr_status_t apr_err;
-
-              apr_err = fbtable->report_unadded_item (fullpath->data, pool);
-              if (apr_err)
-                return svn_error_createf 
-                  (apr_err, 0, NULL, pool,
-                   "Error reporting unadded item `%s'", fullpath->data);
-            }
-          break;
-
-        case mark_tree_state_undelete: 
-          SVN_ERR (svn_wc__entry_modify
-                   (dir, basename, 
-                    SVN_WC__ENTRY_MODIFY_SCHEDULE,
-                    SVN_INVALID_REVNUM, entry->kind,
-                    svn_wc_schedule_undelete,
-                    svn_wc_existence_normal,
-                    FALSE, 0, 0, NULL, subpool, NULL));
-          if (fbtable)
-            {
-              apr_status_t apr_err;
-
-              apr_err = fbtable->report_undeleted_item (fullpath->data, pool);
-              if (apr_err)
-                return svn_error_createf 
-                  (apr_err, 0, NULL, pool,
-                   "Error reporting undeleted item `%s'", fullpath->data);
-            }
-          break;
         }
 
       /* Reset FULLPATH to just hold this dir's name. */
@@ -493,14 +441,6 @@
               svn_wc_schedule_delete,
               svn_wc_existence_normal,
               FALSE, 0, 0, NULL, pool, NULL));
-  if (state == mark_tree_state_unadd)
-    SVN_ERR (svn_wc__entry_modify
-             (dir, NULL,
-              SVN_WC__ENTRY_MODIFY_SCHEDULE,
-              SVN_INVALID_REVNUM, svn_node_dir,
-              svn_wc_schedule_unadd,
-              svn_wc_existence_normal,
-              FALSE, 0, 0, NULL, pool, NULL));
 
   /* Destroy our per-iteration pool. */
   svn_pool_destroy (subpool);
@@ -715,132 +668,6 @@
 
 
 svn_error_t *
-svn_wc_unadd (svn_stringbuf_t *path, 
-              apr_pool_t *pool)
-{
-  svn_wc_entry_t *entry;
-  svn_stringbuf_t *dir, *basename;
-
-  /* Get the entry for PATH */
-  SVN_ERR (svn_wc_entry (&entry, path, pool));
-  if (! entry)
-    return svn_error_createf
-      (SVN_ERR_WC_ENTRY_NOT_FOUND, 0, NULL, pool,
-       "'%s' does not appear to be under revision control", path->data);
-
-  if (entry->kind == svn_node_dir)
-    {
-      /* Recursively un-mark a whole tree for addition. */
-      SVN_ERR (mark_tree (path, mark_tree_state_unadd, pool));
-    }
-
-  /* We need to un-mark this entry for addition in its parent's entries
-     file, so we split off basename from the parent path, then fold in
-     the addition of a delete flag. */
-  svn_path_split (path, &dir, &basename, svn_path_local_style, pool);
-  if (svn_path_is_empty (dir, svn_path_local_style))
-    svn_stringbuf_set (dir, ".");
-  
-  SVN_ERR (svn_wc__entry_modify
-           (dir, basename,
-            SVN_WC__ENTRY_MODIFY_SCHEDULE,
-            SVN_INVALID_REVNUM, svn_node_none,
-            svn_wc_schedule_unadd,
-            svn_wc_existence_normal,
-            FALSE, 0, 0, NULL, pool, NULL));
-
-  /* Now, call our client feedback function. */
-  {
-    svn_pool_feedback_t *fbtable = svn_pool_get_feedback_vtable (pool);
-    if (fbtable)
-      {
-        apr_status_t apr_err;
-
-        apr_err = fbtable->report_unadded_item (path->data, pool);
-        if (apr_err)
-          return svn_error_createf 
-            (apr_err, 0, NULL, pool,
-             "Error reporting un-added item `%s'", path->data);
-      }
-  }
-
-  return SVN_NO_ERROR;
-}
-
-
-/* Un-mark a PATH for deletion.  If RECURSE is TRUE and PATH
-   represents a directory, un-mark the entire tree under PATH for
-   deletion.  */
-svn_error_t *
-svn_wc_undelete (svn_stringbuf_t *path, 
-                 svn_boolean_t recursive,
-                 apr_pool_t *pool)
-{
-  svn_wc_entry_t *entry;
-  svn_stringbuf_t *dir, *basename;
-
-  /* Get the entry for PATH */
-  SVN_ERR (svn_wc_entry (&entry, path, pool));
-  if (! entry)
-    return svn_error_createf
-      (SVN_ERR_WC_ENTRY_NOT_FOUND, 0, NULL, pool,
-       "'%s' does not appear to be under revision control", path->data);
-
-  if (entry->kind == svn_node_dir)
-    {
-      if (recursive)
-        {
-          /* Recursively un-mark a whole tree for deletion. */
-          SVN_ERR (mark_tree (path, mark_tree_state_undelete, pool));
-        }
-      else
-        {
-          /* Just mark the "this dir" entry for this directory. */
-          SVN_ERR (svn_wc__entry_modify
-                   (path, NULL,
-                    SVN_WC__ENTRY_MODIFY_SCHEDULE,
-                    SVN_INVALID_REVNUM, svn_node_none,
-                    svn_wc_schedule_undelete,
-                    svn_wc_existence_normal,
-                    FALSE, 0, 0, NULL, pool, NULL));
-        }
-    }
-
-  /* We need to un-mark this entry for deletion in its parent's entries
-     file, so we split off basename from the parent path, then fold in
-     the addition of a delete flag. */
-  svn_path_split (path, &dir, &basename, svn_path_local_style, pool);
-  if (svn_path_is_empty (dir, svn_path_local_style))
-    svn_stringbuf_set (dir, ".");
-  
-  SVN_ERR (svn_wc__entry_modify
-           (dir, basename,
-            SVN_WC__ENTRY_MODIFY_SCHEDULE,
-            SVN_INVALID_REVNUM, svn_node_none,
-            svn_wc_schedule_undelete,
-            svn_wc_existence_normal,
-            FALSE, 0, 0, NULL, pool, NULL));
-
-  /* Now, call our client feedback function. */
-  {
-    svn_pool_feedback_t *fbtable = svn_pool_get_feedback_vtable (pool);
-    if (fbtable)
-      {
-        apr_status_t apr_err;
-
-        apr_err = fbtable->report_undeleted_item (path->data, pool);
-        if (apr_err)
-          return svn_error_createf 
-            (apr_err, 0, NULL, pool,
-             "Error reporting un-deleted item `%s'", path->data);
-      }
-  }
-
-  return SVN_NO_ERROR;
-}
-
-
-svn_error_t *
 svn_wc_revert (svn_stringbuf_t *path,
                apr_pool_t *pool)
 {
Index: ./subversion/libsvn_subr/svn_error.c
===================================================================
--- ./subversion/libsvn_subr/SVN/text-base/svn_error.c	Mon Sep 10 09:51:41 2001
+++ ./subversion/libsvn_subr/svn_error.c	Mon Sep 17 17:51:54 2001
@@ -200,24 +200,12 @@
 }
 
 static apr_status_t 
-report_unadded_item (const char *path, apr_pool_t *pool)
-{
-  return APR_SUCCESS;
-}
-
-static apr_status_t 
 report_deleted_item (const char *path, apr_pool_t *pool)
 {
   return APR_SUCCESS;
 }
 
 static apr_status_t 
-report_undeleted_item (const char *path, apr_pool_t *pool)
-{
-  return APR_SUCCESS;
-}
-
-static apr_status_t 
 report_warning (apr_status_t status, const char *warning)
 {
   return APR_SUCCESS;
@@ -269,9 +257,7 @@
       /* Stuff it with default useless functions. */
       feedback_vtable->report_unversioned_item = report_unversioned_item;
       feedback_vtable->report_added_item = report_added_item;
-      feedback_vtable->report_unadded_item = report_unadded_item;
       feedback_vtable->report_deleted_item = report_deleted_item;
-      feedback_vtable->report_undeleted_item = report_undeleted_item;
       feedback_vtable->report_warning = report_warning;
       feedback_vtable->report_progress = report_progress;
 
Index: ./subversion/libsvn_client/delete.c
===================================================================
--- ./subversion/libsvn_client/SVN/text-base/delete.c	Mon Sep 10 09:51:33 2001
+++ ./subversion/libsvn_client/delete.c	Mon Sep 17 17:44:02 2001
@@ -61,22 +61,6 @@
   return SVN_NO_ERROR;
 }
 
-
-svn_error_t *
-svn_client_undelete (svn_stringbuf_t *path,
-                     svn_boolean_t recursive,
-                     apr_pool_t *pool)
-{
-  svn_error_t *err;
-
-  /* Mark the entry for deletion. */
-  err = svn_wc_undelete (path, recursive, pool);
-  if (err)
-    return err;
-
-  return SVN_NO_ERROR;
-}
-
 
 /* 
  * local variables:
Index: ./subversion/libsvn_client/add.c
===================================================================
--- ./subversion/libsvn_client/SVN/text-base/add.c	Mon Sep 10 09:51:32 2001
+++ ./subversion/libsvn_client/add.c	Mon Sep 17 17:43:15 2001
@@ -146,21 +146,6 @@
   return SVN_NO_ERROR;
 }
 
-
-svn_error_t *
-svn_client_unadd (svn_stringbuf_t *path, 
-                  apr_pool_t *pool)
-{
-  svn_error_t *err;
-
-  err = svn_wc_unadd (path, pool);
-  if (err)
-    return err;
-
-  return SVN_NO_ERROR;
-}
-
-
 
 /* 
  * local variables:
Index: ./subversion/bindings/java/jni/org/tigris/subversion/lib/WorkingCopy.java
===================================================================
--- ./subversion/bindings/java/jni/org/tigris/subversion/lib/SVN/text-base/WorkingCopy.java	Mon Sep 10 09:51:27 2001
+++ ./subversion/bindings/java/jni/org/tigris/subversion/lib/WorkingCopy.java	Mon Sep 17 17:32:18 2001
@@ -133,21 +133,6 @@
   public void addFile(String file) throws SubversionException;
 
   /**
-   * Recursively un-mark a tree (beginning at a directory or a file
-   * PATH) for addition.
-   */
-  public void unadd(String path) throws SubversionException;
-
-  /**
-   * Un-mark a PATH for deletion.  If RECURSE is TRUE and PATH
-   * represents a directory, un-mark the entire tree under PATH for
-   * deletion.
-   */
-  public void undelete(String path, boolean recurse)
-    throws SubversionException;
-
-
-  /**
    * Remove entry NAME in PATH from revision control.  NAME must be
    * either a file or SVN_WC_ENTRY_THIS_DIR.
    *
Index: ./subversion/bindings/java/jni/org/tigris/subversion/lib/Client.java
===================================================================
--- ./subversion/bindings/java/jni/org/tigris/subversion/lib/SVN/text-base/Client.java	Mon Sep 10 09:51:29 2001
+++ ./subversion/bindings/java/jni/org/tigris/subversion/lib/Client.java	Mon Sep 17 17:33:34 2001
@@ -85,12 +85,7 @@
 
   public void add(String path, boolean recursive) throws SubversionException;
 
-  public void unAdd(String path) throws SubversionException;
-
   public void delete(String path, boolean force) throws SubversionException;
-
-  public void unDelete(String path, boolean recursive)
-    throws SubversionException;
 
   /**
    * Import a tree, using optional pre- and post-commit hook editors
Index: ./subversion/clients/cmdline/cl.h
===================================================================
--- subversion/clients/cmdline/SVN/text-base/cl.h	Wed Sep 12 23:02:28 2001
+++ subversion/clients/cmdline/cl.h	Mon Sep 17 17:31:04 2001
@@ -122 +130,0 @@
-  svn_cl__unadd,
@@ -127 +134,0 @@
-  svn_cl__undelete,
Index: ./subversion/clients/cmdline/add-cmd.c
===================================================================
--- ./subversion/clients/cmdline/SVN/text-base/add-cmd.c	Mon Sep 10 09:51:10 2001
+++ ./subversion/clients/cmdline/add-cmd.c	Mon Sep 17 17:31:04 2001
@@ -1,5 +1,5 @@
 /*
- * add-cmd.c -- Subversion add/unadd commands
+ * add-cmd.c -- Add command
  *
  * ====================================================================
  * Copyright (c) 2000-2001 CollabNet.  All rights reserved.
@@ -67,33 +67,6 @@
 
   return SVN_NO_ERROR;
 }
-
-
-svn_error_t *
-svn_cl__unadd (apr_getopt_t *os,
-               svn_cl__opt_state_t *opt_state,
-               apr_pool_t *pool)
-{
-  apr_array_header_t *targets;
-  int i;
-
-  targets = svn_cl__args_to_target_array (os, pool);
-
-  if (targets->nelts)
-    for (i = 0; i < targets->nelts; i++)
-      {
-        svn_stringbuf_t *target = ((svn_stringbuf_t **) (targets->elts))[i];
-        SVN_ERR (svn_client_unadd (target, pool));
-      }
-  else
-    {
-      svn_cl__subcommand_help ("unadd", pool);
-      return svn_error_create (SVN_ERR_CL_ARG_PARSING_ERROR, 0, 0, pool, "");
-    }
-
-  return SVN_NO_ERROR;
-}
-
 
 
 /* 
Index: ./subversion/clients/cmdline/delete-cmd.c
===================================================================
--- ./subversion/clients/cmdline/SVN/text-base/delete-cmd.c	Mon Sep 10 09:51:10 2001
+++ ./subversion/clients/cmdline/delete-cmd.c	Mon Sep 17 17:31:04 2001
@@ -1,5 +1,5 @@
 /*
- * delete-cmd.c -- Delete/undelete commands
+ * delete-cmd.c -- Delete command
  *
  * ====================================================================
  * Copyright (c) 2000-2001 CollabNet.  All rights reserved.
@@ -56,36 +56,6 @@
   else
     {
       svn_cl__subcommand_help ("delete", pool);
-      return svn_error_create (SVN_ERR_CL_ARG_PARSING_ERROR, 0, 0, pool, "");
-    }
-
-  return SVN_NO_ERROR;
-}
-
-
-svn_error_t *
-svn_cl__undelete (apr_getopt_t *os,
-                  svn_cl__opt_state_t *opt_state,
-                  apr_pool_t *pool)
-{
-  svn_error_t *err;
-  apr_array_header_t *targets;
-  int i;
-  svn_boolean_t recursive = opt_state->recursive;
-
-  targets = svn_cl__args_to_target_array (os, pool);
-
-  if (targets->nelts)
-    for (i = 0; i < targets->nelts; i++)
-      {
-        svn_stringbuf_t *target = ((svn_stringbuf_t **) (targets->elts))[i];
-        err = svn_client_undelete (target, recursive, pool);
-        if (err)
-          return err;
-      }
-  else
-    {
-      svn_cl__subcommand_help ("undelete", pool);
       return svn_error_create (SVN_ERR_CL_ARG_PARSING_ERROR, 0, 0, pool, "");
     }
 
Index: ./subversion/clients/cmdline/feedback.c
===================================================================
--- ./subversion/clients/cmdline/SVN/text-base/feedback.c	Mon Sep 10 09:51:11 2001
+++ ./subversion/clients/cmdline/feedback.c	Mon Sep 17 17:44:36 2001
@@ -78,16 +78,6 @@
   return APR_SUCCESS;
 }
 
-
-static apr_status_t 
-report_unadded_item (const char *path, apr_pool_t *pool)
-{
-  printf ("-  %s\n", path);
-          
-  return APR_SUCCESS;
-}
-
-
 static apr_status_t 
 report_deleted_item (const char *path, apr_pool_t *pool)
 {
@@ -96,16 +86,6 @@
   return APR_SUCCESS;
 }
 
-
-static apr_status_t 
-report_undeleted_item (const char *path, apr_pool_t *pool)
-{
-  printf ("+  %s\n", path);
-          
-  return APR_SUCCESS;
-}
-
-
 static apr_status_t 
 report_warning (apr_status_t status, const char *warning)
 {
@@ -137,9 +117,7 @@
 
   feedback_vtable->report_unversioned_item = report_unversioned_item;
   feedback_vtable->report_added_item = report_added_item;
-  feedback_vtable->report_unadded_item = report_unadded_item;
   feedback_vtable->report_deleted_item = report_deleted_item;
-  feedback_vtable->report_undeleted_item = report_undeleted_item;
   feedback_vtable->report_warning = report_warning;
   /* we're -not- overriding report_progress;  we have no need for it
      yet. */
Index: ./subversion/clients/cmdline/main.c
===================================================================
--- ./subversion/clients/cmdline/SVN/text-base/main.c	Wed Sep 12 23:02:57 2001
+++ ./subversion/clients/cmdline/main.c	Mon Sep 17 17:31:04 2001
@@ -64,11 +64,6 @@
   { "ad",         TRUE, NULL, NULL },
   { "new",        TRUE, NULL, NULL },
 
-  { "unadd",      FALSE, svn_cl__unadd,
-    "Recursively un-add files and directories marked for addition.\n"
-    "usage: unadd [TARGETS]\n" },
-  { "unad",       TRUE, NULL, NULL },
-
   { "checkout",   FALSE, svn_cl__checkout,
     "Check out a working directory from a repository.\n"
     "usage: checkout REPOSPATH1 [REPOSPATH2 REPOSPATH3...]\n" },
@@ -86,12 +81,6 @@
   { "remove",     TRUE, NULL, NULL },
   { "rm",         TRUE, NULL, NULL },
 
-  { "undelete",   FALSE, svn_cl__undelete,
-    "Undelete files and directories marked for deletion.\n"
-    "usage: undelete [TARGETS]\n" },
-  { "undel",      TRUE, NULL, NULL },
-  { "unrm",       TRUE, NULL, NULL },
-
   { "help",       FALSE, svn_cl__help,
     "Display this usage message.\n"
     "usage: help [SUBCOMMAND1 [SUBCOMMAND2] ...]\n" },
 
Index: ./subversion/tests/clients/cmdline/schedule_tests.py
===================================================================
--- ./subversion/tests/clients/cmdline/SVN/text-base/schedule_tests.py	Mon Sep 10 09:50:26 2001
+++ ./subversion/tests/clients/cmdline/schedule_tests.py	Mon Sep 17 17:51:35 2001
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 #
 #  schedule_tests.py:  testing working copy scheduling
-#                      (adds, unadds, deletes, and undeletes)
+#                      (adds, and deletes)
 #
 #  Subversion is a tool for revision control. 
 #  See http://subversion.tigris.org for more information.
Index: ./doc/user/svn_for_cvs_users.txt
===================================================================
--- ./doc/user/SVN/text-base/svn_for_cvs_users.txt	Thu Sep 13 15:27:59 2001
+++ ./doc/user/svn_for_cvs_users.txt	Mon Sep 17 17:55:45 2001
@@ -29,7 +29,7 @@
 * Directory versioning
 
     - tree structures are versioned;  no more RCS backend.
-    - svn add/unadd, rm/undel works on dirs
+    - svn add, remove works on dirs
     - working revnums on dirs *only* increment on updates, else we're lying
     - dirprops only committable on up-to-date dirs
 
Index: ./doc/user/manual/adds.texi
===================================================================
--- ./doc/user/manual/SVN/text-base/adds.texi	Mon Sep 10 09:49:56 2001
+++ ./doc/user/manual/adds.texi	Mon Sep 17 17:54:34 2001
@@ -46,7 +46,7 @@
 (Note that unlike CVS, adding a directory does @emph{not} effect an
 immediate change in the repository!)
 
-@item To undo additions before committing: @samp{svn unadd [items]}
+@item To undo additions before committing: @samp{svn remove [items]}
 
 Because added items have not yet been committed to the repository, it's
 easy to make your working copy "forget" that you wanted to add something.
@@ -187,7 +187,7 @@
 @end example
 
 At this point, the replaced item acts like any other kind of addition.
-You can undo the replacement by running @samp{svn unadd foo.c} -- and
+You can undo the replacement by running @samp{svn remove foo.c} -- and
 the file's status code will revert back to @code{D}.  If the replaced
 item is a directory, you can schedule items within it for addition as
 well.
