Author: hwright
Date: Sat May 19 15:20:48 2012
New Revision: 1340499

URL: http://svn.apache.org/viewvc?rev=1340499&view=rev
Log:
On the ev2-export branch:
Bring up-to-date with trunk.

Modified:
    subversion/branches/ev2-export/   (props changed)
    subversion/branches/ev2-export/COMMITTERS
    subversion/branches/ev2-export/subversion/include/svn_fs.h
    subversion/branches/ev2-export/subversion/include/svn_wc.h
    subversion/branches/ev2-export/subversion/libsvn_client/client.h
    subversion/branches/ev2-export/subversion/libsvn_client/delete.c
    subversion/branches/ev2-export/subversion/libsvn_client/merge.c
    subversion/branches/ev2-export/subversion/libsvn_client/status.c
    subversion/branches/ev2-export/subversion/libsvn_fs/editor.c
    subversion/branches/ev2-export/subversion/libsvn_repos/replay.c
    subversion/branches/ev2-export/subversion/svn/status-cmd.c
    subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py
    subversion/branches/ev2-export/tools/client-side/bash_completion

Propchange: subversion/branches/ev2-export/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1339905-1340498

Modified: subversion/branches/ev2-export/COMMITTERS
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/COMMITTERS?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/COMMITTERS [UTF-8] (original)
+++ subversion/branches/ev2-export/COMMITTERS [UTF-8] Sat May 19 15:20:48 2012
@@ -201,6 +201,7 @@ giorgio_valoti   Giorgio Valoti <giorgio
                                                               br.)
         holden   Holden Karau <[email protected]>         (scheme-bindings 
br.)
          moklo   Morten Kloster <[email protected]>           
(diff-improvements br.)
+          vmpn   Vladimir Berezniker <[email protected]>    (javahl-ra br.)
 
   Subprojects that are complete, abandoned or have moved elsewhere:
 

Modified: subversion/branches/ev2-export/subversion/include/svn_fs.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_fs.h?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_fs.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_fs.h Sat May 19 
15:20:48 2012
@@ -1639,7 +1639,6 @@ svn_fs_copied_from(svn_revnum_t *rev_p,
 /** Set @a *root_p and @a *path_p to the revision root and path of the
  * destination of the most recent copy event that caused @a path to
  * exist where it does in @a root, or to NULL if no such copy exists.
- * When non-NULL, allocate @a *root_p and @a *path_p in @a pool.
  *
  * @a *path_p might be a parent of @a path, rather than @a path
  * itself.  However, it will always be the deepest relevant path.
@@ -1647,6 +1646,9 @@ svn_fs_copied_from(svn_revnum_t *rev_p,
  * this function makes sure to set @a *path_p to the longest copy
  * destination path that is still a parent of or equal to @a path.
  *
+ * Values returned in @a *root_p and @a *path_p will be allocated
+ * from @a pool.
+ *
  * @since New in 1.3.
  */
 svn_error_t *

Modified: subversion/branches/ev2-export/subversion/include/svn_wc.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_wc.h?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_wc.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_wc.h Sat May 19 
15:20:48 2012
@@ -6674,7 +6674,8 @@ svn_wc_merge5(enum svn_wc_merge_outcome_
  * @since New in 1.7.
  * @deprecated Provided for backwards compatibility with the 1.7 API.
  */
-SVN_DEPRECATED svn_error_t *
+SVN_DEPRECATED
+svn_error_t *
 svn_wc_merge4(enum svn_wc_merge_outcome_t *merge_outcome,
               svn_wc_context_t *wc_ctx,
               const char *left_abspath,

Modified: subversion/branches/ev2-export/subversion/libsvn_client/client.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/client.h?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/client.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/client.h Sat May 19 
15:20:48 2012
@@ -384,21 +384,6 @@ svn_client__ra_make_cb_baton(svn_wc_cont
                              apr_hash_t *relpath_map,
                              apr_pool_t *result_pool);
 
-
-/* ---------------------------------------------------------------- */
-
-/*** Status ***/
-
-/* Verify that the path can be deleted without losing stuff,
-   i.e. ensure that there are no modified or unversioned resources
-   under PATH.  This is similar to checking the output of the status
-   command.  CTX is used for the client's config options.  POOL is
-   used for all temporary allocations. */
-svn_error_t * svn_client__can_delete(const char *path,
-                                     svn_client_ctx_t *ctx,
-                                     apr_pool_t *pool);
-
-
 /* ---------------------------------------------------------------- */
 
 /*** Add/delete ***/

Modified: subversion/branches/ev2-export/subversion/libsvn_client/delete.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/delete.c?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/delete.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/delete.c Sat May 19 
15:20:48 2012
@@ -47,12 +47,12 @@
 /*** Code. ***/
 
 
-/* An svn_client_status_func_t callback function for finding
+/* An svn_wc_status_func4_t callback function for finding
    status structures which are not safely deletable. */
 static svn_error_t *
 find_undeletables(void *baton,
                   const char *path,
-                  const svn_client_status_t *status,
+                  const svn_wc_status3_t *status,
                   apr_pool_t *pool)
 {
   /* Check for error-ful states. */
@@ -80,20 +80,19 @@ find_undeletables(void *baton,
   return SVN_NO_ERROR;
 }
 
-
-svn_error_t *
-svn_client__can_delete(const char *path,
-                       svn_client_ctx_t *ctx,
-                       apr_pool_t *scratch_pool)
+/* Verify that the path can be deleted without losing stuff,
+   i.e. ensure that there are no modified or unversioned resources
+   under PATH.  This is similar to checking the output of the status
+   command.  CTX is used for the client's config options.  POOL is
+   used for all temporary allocations. */
+static svn_error_t *
+can_delete_node(const char *local_abspath,
+                svn_client_ctx_t *ctx,
+                apr_pool_t *scratch_pool)
 {
-  svn_opt_revision_t revision;
   svn_node_kind_t external_kind;
   const char *defining_abspath;
-  const char* local_abspath;
-
-  revision.kind = svn_opt_revision_unspecified;
-
-  SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, scratch_pool));
+  apr_array_header_t *ignores;
 
   /* A file external should not be deleted since the file external is
      implemented as a switched file and it would delete the file the
@@ -121,11 +120,19 @@ svn_client__can_delete(const char *path,
      status callback function find_undeletables() makes the
      determination, returning an error if it finds anything that shouldn't
      be deleted. */
-  return svn_error_trace(svn_client_status5(NULL, ctx, path, &revision,
-                                            svn_depth_infinity, FALSE,
-                                            FALSE, FALSE, FALSE, FALSE,
-                                            NULL,
+
+  SVN_ERR(svn_wc_get_default_ignores(&ignores, ctx->config, scratch_pool));
+
+  return svn_error_trace(svn_wc_walk_status(ctx->wc_ctx,
+                                            local_abspath,
+                                            svn_depth_infinity,
+                                            FALSE /* get_all */,
+                                            FALSE /* no_ignore */,
+                                            FALSE /* ignore_text_mod */,
+                                            ignores,
                                             find_undeletables, NULL,
+                                            ctx->cancel_func,
+                                            ctx->cancel_baton,
                                             scratch_pool));
 }
 
@@ -318,7 +325,7 @@ svn_client__wc_delete(const char *path,
 
   if (!force && !keep_local)
     /* Verify that there are no "awkward" files */
-    SVN_ERR(svn_client__can_delete(local_abspath, ctx, pool));
+    SVN_ERR(can_delete_node(local_abspath, ctx, pool));
 
   if (!dry_run)
     /* Mark the entry for commit deletion and perform wc deletion */
@@ -354,7 +361,7 @@ svn_client__wc_delete_many(const apr_arr
 
       if (!force && !keep_local)
         /* Verify that there are no "awkward" files */
-        SVN_ERR(svn_client__can_delete(local_abspath, ctx, pool));
+        SVN_ERR(can_delete_node(local_abspath, ctx, pool));
     }
 
   if (!dry_run)

Modified: subversion/branches/ev2-export/subversion/libsvn_client/merge.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/merge.c?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/merge.c Sat May 19 
15:20:48 2012
@@ -83,24 +83,78 @@
  *
  * We use svn_ra_get_location_segments() to split a given range of
  * revisions across an object's history into several which obey these
- * rules.  For example, a merge between r19500 and r27567 of
- * Subversion's own /tags/1.4.5 directory gets split into sequential
- * merges of the following location pairs:
+ * rules.  For example, an extract from the log of Subversion's own
+ * /subversion/tags/1.4.5 directory shows the following copies between
+ * r859500 and r866500 (omitting the '/subversion' prefix for clarity):
+ *
+ *    r859598:
+ *      A /branches/1.4.x  (from /trunk:859597)
+ *
+ *    r865417:
+ *      A /tags/1.4.4      (from /branches/1.4.x:865262)
+ *    # Notice that this copy leaves a gap between 865262 and 865417.
+ *
+ *    r866420:
+ *      A /branches/1.4.5  (from /tags/1.4.4:866419)
+ *
+ *    r866425:
+ *      D /branches/1.4.5
+ *      A /tags/1.4.5      (from /branches/1.4.5:866424)
+ *
+ * In graphical form:
+ *
+ *                859500 859597 865262        866419 866424 866500
+ *                  .      .      .             .      .      .
+ *    trunk       ------------------------------------------------
+ *                         \      .             .      .
+ *    branches/1.4.x        A-------------------------------------
+ *                          .     \______       .      .
+ *                          .            \      .      .
+ *    tags/1.4.4            .             A-----------------------
+ *                          .             .     \      .
+ *    branches/1.4.5        .             .      A------D
+ *                          .             .      .     \.
+ *    tags/1.4.5            .             .      .      A---------
+ *                          .             .      .      .
+ *                       859598        865417 866420 866425
+ *
+ * A merge of the difference between r859500 and r866500 of this directory
+ * gets split into sequential merges of the following location pairs.
+ *
+ *                859500 859597 865262 865416 866419 866424 866500
+ *                  .      .      .      .      .      .      .
+ *    trunk         (======]      .      .      .      .      .
+ *                                .      .      .      .      .
+ *    trunk                (      .      .      .      .      .
+ *    branches/1.4.x        ======]      .      .      .      .
+ *                                       .      .      .      .
+ *    branches/1.4.x              (      .      .      .      .
+ *    tags/1.4.4                   =============]      .      .
+ *    implicit_src_gap            (======]      .      .      .
+ *                                              .      .      .
+ *    tags/1.4.4                                (      .      .
+ *    branches/1.4.5                             ======]      .
+ *                                                     .      .
+ *    branches/1.4.5                                   (      .
+ *    tags/1.4.5                                        ======]
+ *
+ * which are represented in merge_source_t as:
+ *
+ *    [/trunk:859500, /trunk:859597]
+ *    (recorded in svn:mergeinfo as /trunk:859501-859597)
+ *
+ *    [/trunk:859597, /branches/1.4.x:865262]
+ *    (recorded in svn:mergeinfo as /branches/1.4.x:859598-865262)
+ *
+ *    [/branches/1.4.x:865262, /tags/1.4.4@866419]
+ *    (recorded in svn:mergeinfo as /tags/1.4.4:865263-866419)
+ *    (and there is a gap, the revision range [865262, 865416])
  *
- *    [/trunk:19549, /trunk:19523]
- *    (recorded in svn:mergeinfo as /trunk:19500-19523)
+ *    [/tags/1.4.4@866419, /branches/1.4.5@866424]
+ *    (recorded in svn:mergeinfo as /branches/1.4.5:866420-866424)
  *
- *    [/trunk:19523, /branches/1.4.x:25188]
- *    (recorded in svn:mergeinfo as /branches/1.4.x:19524-25188)
- *
- *    [/branches/1.4.x:25188, /tags/1.4.4@26345]
- *    (recorded in svn:mergeinfo as /tags/1.4.4:25189-26345)
- *
- *    [/tags/1.4.4@26345, /branches/1.4.5@26350]
- *    (recorded in svn:mergeinfo as /branches/1.4.5:26346-26350)
- *
- *    [/branches/1.4.5@26350, /tags/1.4.5@27567]
- *    (recorded in svn:mergeinfo as /tags/1.4.5:26351-27567)
+ *    [/branches/1.4.5@866424, /tags/1.4.5@866500]
+ *    (recorded in svn:mergeinfo as /tags/1.4.5:866425-866500)
  *
  * Our helper functions would then operate on one of these location
  * pairs at a time.
@@ -4194,18 +4248,18 @@ calculate_remaining_ranges(svn_client__m
    SOURCE is cascaded from the arguments of the same name in
    populate_remaining_ranges().
 
-   Note: The following comments assume a forward merge, i.e. SOURCE->rev1
-   < SOURCE->rev2.  If this is a reverse merge then all the following
-   comments still apply, but with SOURCE->url1 switched with SOURCE->url2
-   and SOURCE->rev1 switched with SOURCE->rev2.
+   Note: The following comments assume a forward merge, i.e.
+   SOURCE->loc1->rev < SOURCE->loc2->rev.  If this is a reverse merge then
+   all the following comments still apply, but with SOURCE->loc1 switched
+   with SOURCE->loc2.
 
    Like populate_remaining_ranges(), SOURCE must adhere to the restrictions
    documented in 'MERGEINFO MERGE SOURCE NORMALIZATION'.  These restrictions
-   allow for a *single* gap, URL@GAP_REV1:URL2@GAP_REV2, (where SOURCE->rev1
-   < GAP_REV1 <= GAP_REV2 < SOURCE->rev2) in SOURCE if SOURCE->url2@rev2 was
-   copied from SOURCE->url1@rev1.  If such a gap exists, set *GAP_START and
-   *GAP_END to the starting and ending revisions of the gap.  Otherwise set
-   both to SVN_INVALID_REVNUM.
+   allow for a *single* gap in SOURCE, GAP_REV1:GAP_REV2 exclusive:inclusive
+   (where SOURCE->loc1->rev == GAP_REV1 <= GAP_REV2 < SOURCE->loc2->rev),
+   if SOURCE->loc2->url@(GAP_REV2+1) was copied from SOURCE->loc1.  If such
+   a gap exists, set *GAP_START and *GAP_END to the starting and ending
+   revisions of the gap.  Otherwise set both to SVN_INVALID_REVNUM.
 
    For example, if the natural history of URL@2:URL@9 is 'trunk/:2,7-9' this
    would indicate that trunk@7 was copied from trunk@2.  This function would
@@ -4213,6 +4267,9 @@ calculate_remaining_ranges(svn_client__m
    might exist at r3-6, but it would not be on the same line of history as
    trunk@9.
 
+   ### GAP_START is basically redundant, as (if there is a gap at all) it is
+   necessarily the older revision of SOURCE.
+
    RA_SESSION is an open RA session to the repository in which SOURCE lives.
 */
 static svn_error_t *
@@ -4231,6 +4288,8 @@ find_gaps_in_merge_source_history(svn_re
                                                             scratch_pool);
   apr_array_header_t *rangelist;
 
+  SVN_ERR_ASSERT(source->ancestral);
+
   /* Start by assuming there is no gap. */
   *gap_start = *gap_end = SVN_INVALID_REVNUM;
 
@@ -4308,6 +4367,9 @@ find_gaps_in_merge_source_history(svn_re
         }
     }
 
+  SVN_ERR_ASSERT(*gap_start == MIN(source->loc1->rev, source->loc2->rev)
+                 || (*gap_start == SVN_INVALID_REVNUM
+                     && *gap_end == SVN_INVALID_REVNUM));
   return SVN_NO_ERROR;
 }
 

Modified: subversion/branches/ev2-export/subversion/libsvn_client/status.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/status.c?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/status.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/status.c Sat May 19 
15:20:48 2012
@@ -292,40 +292,51 @@ svn_client_status5(svn_revnum_t *result_
   sb.wc_ctx = ctx->wc_ctx;
 
   SVN_ERR(svn_dirent_get_absolute(&target_abspath, path, pool));
-  {
-    svn_node_kind_t kind;
 
-    SVN_ERR(svn_wc_read_kind(&kind, ctx->wc_ctx, target_abspath, FALSE, pool));
+  if (update)
+    {
+      /* The status editor only works on directories, so get the ancestor
+         if necessary */
+
+     svn_node_kind_t kind;
+
+     SVN_ERR(svn_wc_read_kind(&kind, ctx->wc_ctx, target_abspath, FALSE,
+                              pool));
 
-    /* Dir must be a working copy directory or the status editor fails */
-    if (kind == svn_node_dir)
-      {
-        dir_abspath = target_abspath;
-        target_basename = "";
-        dir = path;
-      }
-    else
-      {
-        dir_abspath = svn_dirent_dirname(target_abspath, pool);
-        target_basename = svn_dirent_basename(target_abspath, NULL);
-        dir = svn_dirent_dirname(path, pool);
-
-        if (kind != svn_node_file)
-          {
-            err = svn_wc_read_kind(&kind, ctx->wc_ctx, dir_abspath, FALSE,
-                                   pool);
-
-            svn_error_clear(err);
-
-            if (err || kind != svn_node_dir)
-              {
-                return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
-                                         _("'%s' is not a working copy"),
-                                         svn_dirent_local_style(path, pool));
-              }
-          }
-      }
-  }
+     /* Dir must be a working copy directory or the status editor fails */
+     if (kind == svn_node_dir)
+       {
+         dir_abspath = target_abspath;
+         target_basename = "";
+         dir = path;
+       }
+     else
+       {
+         dir_abspath = svn_dirent_dirname(target_abspath, pool);
+         target_basename = svn_dirent_basename(target_abspath, NULL);
+         dir = svn_dirent_dirname(path, pool);
+
+         if (kind != svn_node_file)
+           {
+             err = svn_wc_read_kind(&kind, ctx->wc_ctx, dir_abspath, FALSE,
+                                    pool);
+
+             svn_error_clear(err);
+
+             if (err || kind != svn_node_dir)
+               {
+                 return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
+                                          _("'%s' is not a working copy"),
+                                          svn_dirent_local_style(path, pool));
+               }
+           }
+       }
+    }
+  else
+    {
+      dir = path;
+      dir_abspath = target_abspath;
+    }
 
   if (svn_dirent_is_absolute(dir))
     {

Modified: subversion/branches/ev2-export/subversion/libsvn_fs/editor.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_fs/editor.c?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_fs/editor.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_fs/editor.c Sat May 19 
15:20:48 2012
@@ -34,6 +34,8 @@
 
 #include "fs-loader.h"
 
+#include "private/svn_fspath.h"
+
 
 struct edit_baton {
   /* The transaction associated with this editor.  */
@@ -269,21 +271,56 @@ can_modify(svn_fs_root_t *txn_root,
 
 
 /* Can we create a node at FSPATH in TXN_ROOT? If something already exists
-   at that path, then the client is out of date.  */
+   at that path, then the client MAY be out of date. We then have to see if
+   the path was created/modified in this transaction. IOW, it is new and
+   can be replaced without problem.
+
+   Note: the editor protocol disallows double-modifications. This is to
+   ensure somebody does not accidentally overwrite another file due to
+   being out-of-date.  */
 static svn_error_t *
 can_create(svn_fs_root_t *txn_root,
            const char *fspath,
            apr_pool_t *scratch_pool)
 {
   svn_node_kind_t kind;
+  const char *cur_fspath;
 
   SVN_ERR(svn_fs_check_path(&kind, txn_root, fspath, scratch_pool));
-  if (kind != svn_node_none)
-    return svn_error_createf(SVN_ERR_FS_OUT_OF_DATE, NULL,
-                             _("'%s' already exists, so may be out"
-                               " of date; try updating"),
-                             fspath);
-  return SVN_NO_ERROR;
+  if (kind == svn_node_none)
+    return SVN_NO_ERROR;
+
+  /* ### I'm not sure if this works perfectly. We might have an ancestor
+     ### that was modified as a result of a change on a cousin. We might
+     ### misinterpret that as a *-here node which brought along this
+     ### child. Need to write a test to verify. We may also be able to
+     ### test the ancestor to determine if it has been *-here in this
+     ### txn, or just a simple modification.  */
+
+  /* Are any of the parents copied/moved/rotated-here?  */
+  for (cur_fspath = fspath;
+       strlen(cur_fspath) > 1;  /* not the root  */
+       cur_fspath = svn_fspath__dirname(cur_fspath, scratch_pool))
+    {
+      svn_revnum_t created_rev;
+
+      SVN_ERR(svn_fs_node_created_rev(&created_rev, txn_root, cur_fspath,
+                                      scratch_pool));
+      if (!SVN_IS_VALID_REVNUM(created_rev))
+        {
+          /* The node has no created revision, meaning it is uncommitted.
+             Thus, it was created in this transaction, or it has already
+             been modified in some way (implying it has already passed a
+             modification check.  */
+          /* ### verify the node has been *-here ??  */
+          return SVN_NO_ERROR;
+        }
+    }
+
+  return svn_error_createf(SVN_ERR_FS_OUT_OF_DATE, NULL,
+                           _("'%s' already exists, so may be out"
+                             " of date; try updating"),
+                           fspath);
 }
 
 

Modified: subversion/branches/ev2-export/subversion/libsvn_repos/replay.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_repos/replay.c?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_repos/replay.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_repos/replay.c Sat May 19 
15:20:48 2012
@@ -35,6 +35,7 @@
 #include "svn_path.h"
 #include "svn_private_config.h"
 #include "private/svn_fspath.h"
+#include "private/svn_repos_private.h"
 
 
 /*** Backstory ***/

Modified: subversion/branches/ev2-export/subversion/svn/status-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svn/status-cmd.c?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svn/status-cmd.c (original)
+++ subversion/branches/ev2-export/subversion/svn/status-cmd.c Sat May 19 
15:20:48 2012
@@ -349,7 +349,7 @@ svn_cl__status(apr_getopt_t *os,
                           NULL, opt_state->quiet,
                           /* not versioned: */
                           SVN_ERR_WC_NOT_WORKING_COPY,
-                          SVN_NO_ERROR));
+                          SVN_ERR_WC_PATH_NOT_FOUND));
 
       if (opt_state->xml)
         SVN_ERR(print_finish_target_xml(repos_rev, iterpool));

Modified: subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py 
(original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py Sat 
May 19 15:20:48 2012
@@ -814,12 +814,9 @@ def status_on_unversioned_dotdot(sbox):
   os.mkdir(new_subsub)
 
   os.chdir(new_subsub)
-  exit_code, out, err = svntest.main.run_svn(1, 'st', '..')
-  for line in err:
-    if line.find('svn: warning: W155007: \'..\' is not a working copy') != -1:
-      break
-  else:
-    raise svntest.Failure
+  svntest.actions.run_and_verify_svn2(None, None,
+                                     "svn: warning: W155(010|007):.*'.*'.*not",
+                                      0, 'st', '..')
 
 #----------------------------------------------------------------------
 

Modified: subversion/branches/ev2-export/tools/client-side/bash_completion
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/tools/client-side/bash_completion?rev=1340499&r1=1340498&r2=1340499&view=diff
==============================================================================
--- subversion/branches/ev2-export/tools/client-side/bash_completion (original)
+++ subversion/branches/ev2-export/tools/client-side/bash_completion Sat May 19 
15:20:48 2012
@@ -479,7 +479,7 @@ _svn()
 
            [[ $previous = '--extensions' || $previous = '-x' ]] && \
                values="--unified --ignore-space-change \
-                       --ignore-all-space --ignore-eol-style"
+                  --ignore-all-space --ignore-eol-style --show-c-functions"
 
            [[ $previous = '--depth' ]] && \
                values='empty files immediates infinity'
@@ -494,8 +494,8 @@ _svn()
                    # from svn help resolve
                    values='base working mine-full theirs-full'
                else # checkout merge switch update
-                   # not implemented yet: mine-conflict theirs-conflict
-                   values='postpone base mine-full theirs-full edit launch'
+                   values="postpone base mine-full theirs-full edit launch \
+                       mine-conflict theirs-conflict"
                fi
            }
 
@@ -889,7 +889,8 @@ _svn()
                          --parents"
                ;;
        patch)
-               cmdOpts="$qOpts $pOpts --dry-run --ignore-whitespace 
--reverse-diff --strip"
+               cmdOpts="$qOpts $pOpts --dry-run --ignore-whitespace \
+                       --reverse-diff --strip"
                ;;
        propdel|pdel|pd)
                cmdOpts="$qOpts -R --recursive $rOpts $pOpts $cOpts \


Reply via email to