Modified: subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.c?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.c Wed Jun  6 
13:03:48 2012
@@ -4648,8 +4648,7 @@ svn_wc__db_global_record_fileinfo(svn_wc
   rb.translated_size = translated_size;
   rb.last_mod_time = last_mod_time;
 
-  SVN_ERR(svn_wc__db_with_txn(wcroot, local_relpath, db_record_fileinfo, &rb,
-                              scratch_pool));
+  SVN_ERR(db_record_fileinfo(&rb, wcroot, local_relpath, scratch_pool));
 
   /* We *totally* monkeyed the entries. Toss 'em.  */
   SVN_ERR(flush_entries(wcroot, local_abspath, svn_depth_empty, scratch_pool));
@@ -10480,7 +10479,7 @@ get_moved_to(struct scan_deletion_baton_
              const char *local_relpath,
              apr_pool_t *scratch_pool)
 {
-  const char *moved_to_relpath = svn_sqlite__column_text(stmt, 2, NULL);
+  const char *moved_to_relpath = svn_sqlite__column_text(stmt, 3, NULL);
 
   if (moved_to_relpath)
     {
@@ -10546,8 +10545,11 @@ scan_deletion_txn(void *baton,
      check op-roots and parents of op-roots. */
   scan = (sd_baton->moved_to_op_root_relpath || sd_baton->moved_to_relpath);
 
-  SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                    STMT_SELECT_DELETION_INFO));
+  SVN_ERR(svn_sqlite__get_statement(
+                    &stmt, wcroot->sdb,
+                    scan ? STMT_SELECT_DELETION_INFO_SCAN
+                         : STMT_SELECT_DELETION_INFO));
+
   SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, current_relpath));
   SVN_ERR(svn_sqlite__step(&have_row, stmt));
   if (!have_row)
@@ -10566,7 +10568,7 @@ scan_deletion_txn(void *baton,
                              path_for_error_message(wcroot, local_relpath,
                                                     scratch_pool));
 
-  op_depth = svn_sqlite__column_int(stmt, 3);
+  op_depth = svn_sqlite__column_int(stmt, 2);
 
   /* Special case: LOCAL_RELPATH not-present within a WORKING tree, we
      treat this as an op-root.  At commit time we need to explicitly
@@ -10620,8 +10622,6 @@ scan_deletion_txn(void *baton,
           if (scan || current_depth == op_depth)
             {
               SVN_ERR(svn_sqlite__reset(stmt));
-              SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                                STMT_SELECT_DELETION_INFO));
               SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id,
                                         current_relpath));
               SVN_ERR(svn_sqlite__step(&have_row, stmt));
@@ -10635,8 +10635,6 @@ scan_deletion_txn(void *baton,
 
       SVN_ERR_ASSERT(current_relpath[0] != '\0'); /* Catch invalid data */
       parent_relpath = svn_relpath_dirname(current_relpath, scratch_pool);
-      SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                        STMT_SELECT_DELETION_INFO));
       SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, parent_relpath));
       SVN_ERR(svn_sqlite__step(&have_row, stmt));
       if (!have_row)
@@ -10662,7 +10660,7 @@ scan_deletion_txn(void *baton,
         }
 
       current_relpath = parent_relpath;
-      op_depth = svn_sqlite__column_int(stmt, 3);
+      op_depth = svn_sqlite__column_int(stmt, 2);
       have_base = !svn_sqlite__column_is_null(stmt, 0);
     }
 
@@ -11640,6 +11638,7 @@ svn_wc__db_read_kind(svn_kind_t *kind,
                      svn_wc__db_t *db,
                      const char *local_abspath,
                      svn_boolean_t allow_missing,
+                     svn_boolean_t show_hidden,
                      apr_pool_t *scratch_pool)
 {
   svn_wc__db_wcroot_t *wcroot;
@@ -11677,6 +11676,24 @@ svn_wc__db_read_kind(svn_kind_t *kind,
         }
     }
 
+  if (!show_hidden)
+    {
+      int op_depth = svn_sqlite__column_int(stmt_info, 0);
+      svn_wc__db_status_t status = svn_sqlite__column_token(stmt_info, 3,
+                                                            presence_map);
+
+      if (op_depth > 0)
+        SVN_ERR(convert_to_working_status(&status, status));
+
+      if (status == svn_wc__db_status_not_present
+          || status == svn_wc__db_status_excluded)
+        {
+          *kind = svn_kind_none;
+          SVN_ERR(svn_sqlite__reset(stmt_info));
+          return SVN_NO_ERROR;
+        }
+    }
+
   *kind = svn_sqlite__column_token(stmt_info, 4, kind_map);
 
   return svn_error_trace(svn_sqlite__reset(stmt_info));

Modified: subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.h?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.h Wed Jun  6 
13:03:48 2012
@@ -941,6 +941,18 @@ svn_wc__db_pristine_get_sha1(const svn_c
                              apr_pool_t *scratch_pool);
 
 
+/* If necessary transfers the PRISTINE file of SRC_LOCAL_ABSPATH to the
+   working copy identified by DST_WRI_ABSPATH. If CHECKSUM is not NULL, use
+   CHECKSUM to identify which pristine file to transfer. */
+svn_error_t *
+svn_wc__db_pristine_transfer(svn_wc__db_t *db,
+                             const char *src_local_abspath,
+                             const svn_checksum_t *checksum,
+                             const char *dst_wri_abspath,
+                             svn_cancel_func_t cancel_func,
+                             void *cancel_baton,
+                             apr_pool_t *scratch_pool);
+
 /* Remove the pristine text with SHA-1 checksum SHA1_CHECKSUM from the
  * pristine store, iff it is not referenced by any of the (other) WC DB
  * tables. */
@@ -2165,12 +2177,16 @@ svn_wc__db_read_conflicts(const apr_arra
    If the node is missing and ALLOW_MISSING is FALSE, then it will return
    SVN_ERR_WC_PATH_NOT_FOUND.
 
+   If SHOW_HIDDEN is FALSE and the status of LOCAL_ABSPATH is NOT_PRESENT or
+   EXCLUDED, set KIND to svn_kind_none.
+
    Uses SCRATCH_POOL for temporary allocations.  */
 svn_error_t *
 svn_wc__db_read_kind(svn_kind_t *kind,
                      svn_wc__db_t *db,
                      const char *local_abspath,
                      svn_boolean_t allow_missing,
+                     svn_boolean_t show_hidden,
                      apr_pool_t *scratch_pool);
 
 

Modified: subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_pristine.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_pristine.c?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_pristine.c 
(original)
+++ subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_pristine.c Wed 
Jun  6 13:03:48 2012
@@ -523,6 +523,176 @@ svn_wc__db_pristine_get_sha1(const svn_c
   return svn_error_trace(svn_sqlite__reset(stmt));
 }
 
+/* Baton for pristine_transfer() */
+struct pristine_transfer_baton
+{
+  svn_wc__db_wcroot_t *src_wcroot;
+  svn_wc__db_wcroot_t *dst_wcroot;
+  svn_cancel_func_t cancel_func;
+  void * cancel_baton;
+
+  /* pristine install baton, filled from pristine_transfer() */
+  struct pristine_install_baton_t ib;
+};
+
+/* Transaction implementation of svn_wc__db_pristine_transfer().
+   Calls itself again to obtain locks in both working copies */
+static svn_error_t *
+pristine_transfer(void *baton, svn_wc__db_wcroot_t *wcroot,
+                  const char *local_relpath, apr_pool_t *scratch_pool)
+{
+  struct pristine_transfer_baton *tb = baton;
+  svn_sqlite__stmt_t *stmt;
+  svn_boolean_t have_row;
+
+  /* Is this the initial call or the recursive call? */
+  if (wcroot == tb->dst_wcroot)
+    {
+      /* The initial call: */
+
+      /* Get all the info within a src wcroot lock */
+      SVN_ERR(svn_wc__db_with_txn(tb->src_wcroot, local_relpath,
+                                  pristine_transfer, tb, scratch_pool));
+
+      /* And do the final install, while we still have the dst lock */
+      if (tb->ib.tempfile_abspath)
+        SVN_ERR(pristine_install_txn(&(tb->ib), tb->dst_wcroot->sdb,
+                                     scratch_pool));
+      return SVN_NO_ERROR;
+    }
+
+  /* We have a lock on tb->dst_wcroot and tb->src_wcroot */
+
+  /* Get the right checksum if it wasn't passed */
+  if (!tb->ib.sha1_checksum)
+    {
+      SVN_ERR(svn_sqlite__get_statement(&stmt, tb->src_wcroot->sdb,
+                                        STMT_SELECT_NODE_INFO));
+
+      SVN_ERR(svn_sqlite__bindf(stmt, "is",
+                                 tb->src_wcroot->wc_id, local_relpath));
+
+      SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+      if (have_row)
+        SVN_ERR(svn_sqlite__column_checksum(&(tb->ib.sha1_checksum), stmt, 6,
+                                            scratch_pool));
+
+      SVN_ERR(svn_sqlite__reset(stmt));
+
+      if (!tb->ib.sha1_checksum)
+        return SVN_NO_ERROR; /* Nothing to transfer */
+    }
+
+  /* Check if we have the pristine in the destination wcroot */
+  SVN_ERR(svn_sqlite__get_statement(&stmt, tb->dst_wcroot->sdb,
+                                    STMT_SELECT_PRISTINE));
+  SVN_ERR(svn_sqlite__bind_checksum(stmt, 1, tb->ib.sha1_checksum,
+                                    scratch_pool));
+  SVN_ERR(svn_sqlite__step(&have_row, stmt));
+  SVN_ERR(svn_sqlite__reset(stmt));
+
+  /* Destination repository already has this pristine. We're done */
+  if (have_row)
+    return SVN_NO_ERROR;
+
+  /* Verify if the pristine actually exists and get the MD5 in one query */
+  SVN_ERR(svn_sqlite__get_statement(&stmt, tb->src_wcroot->sdb,
+                                    STMT_SELECT_PRISTINE));
+  SVN_ERR(svn_sqlite__bind_checksum(stmt, 1, tb->ib.sha1_checksum,
+                                    scratch_pool));
+  SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+  if (!have_row)
+    {
+      return svn_error_createf(SVN_ERR_WC_DB_ERROR, svn_sqlite__reset(stmt),
+                               _("The pristine text with checksum '%s' was "
+                                 "not found"),
+                               svn_checksum_to_cstring_display(
+                                        tb->ib.sha1_checksum, scratch_pool));
+    }
+  SVN_ERR(svn_sqlite__column_checksum(&(tb->ib.md5_checksum), stmt, 0,
+                                      scratch_pool));
+  SVN_ERR(svn_sqlite__reset(stmt));
+
+  /* We now have read locks in both working copies, so we can safely copy the
+     file to the temp location of the destination working copy */
+  {
+    svn_stream_t *src_stream;
+    svn_stream_t *dst_stream;
+    const char *tmp_abspath;
+    const char *src_abspath;
+
+    SVN_ERR(svn_stream_open_unique(&dst_stream, &tmp_abspath,
+                                   pristine_get_tempdir(tb->dst_wcroot,
+                                                        scratch_pool,
+                                                        scratch_pool),
+                                   svn_io_file_del_on_pool_cleanup,
+                                   scratch_pool, scratch_pool));
+
+    SVN_ERR(get_pristine_fname(&src_abspath, tb->src_wcroot->abspath,
+                               tb->ib.sha1_checksum,
+                               scratch_pool, scratch_pool));
+
+    SVN_ERR(svn_stream_open_readonly(&src_stream, src_abspath,
+                                     scratch_pool, scratch_pool));
+
+    /* ### Should we verify the SHA1 or MD5 here, or is that too expensive? */
+    SVN_ERR(svn_stream_copy3(src_stream, dst_stream,
+                             tb->cancel_func, tb->cancel_baton,
+                             scratch_pool));
+
+    /* And now set the right information to install once we leave the
+       src transaction */
+
+    SVN_ERR(get_pristine_fname(&(tb->ib.pristine_abspath),
+                               tb->dst_wcroot->abspath,
+                               tb->ib.sha1_checksum,
+                               scratch_pool, scratch_pool));
+    tb->ib.tempfile_abspath = tmp_abspath;
+  }
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_wc__db_pristine_transfer(svn_wc__db_t *db,
+                             const char *src_local_abspath,
+                             const svn_checksum_t *checksum,
+                             const char *dst_wri_abspath,
+                             svn_cancel_func_t cancel_func,
+                             void *cancel_baton,
+                             apr_pool_t *scratch_pool)
+{
+  const char *src_relpath;
+  const char *dst_relpath;
+  struct pristine_transfer_baton tb;
+  memset(&tb, 0, sizeof(tb));
+
+  SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&tb.src_wcroot, &src_relpath,
+                                                db, src_local_abspath,
+                                                scratch_pool, scratch_pool));
+  VERIFY_USABLE_WCROOT(tb.src_wcroot);
+  SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&tb.dst_wcroot, &dst_relpath,
+                                                db, dst_wri_abspath,
+                                                scratch_pool, scratch_pool));
+  VERIFY_USABLE_WCROOT(tb.dst_wcroot);
+
+  if (tb.src_wcroot == tb.dst_wcroot
+      || tb.src_wcroot->sdb == tb.dst_wcroot->sdb)
+    {
+      return SVN_NO_ERROR; /* Nothing to transfer */
+    }
+
+  tb.cancel_func = cancel_func;
+  tb.cancel_baton = cancel_baton;
+
+  return svn_error_trace(svn_wc__db_with_txn(tb.dst_wcroot, src_relpath,
+                                             pristine_transfer, &tb,
+                                             scratch_pool));
+}
+
+
+
 
 /* Remove the file at FILE_ABSPATH in such a way that we could re-create a
  * new file of the same name at any time thereafter.
@@ -708,7 +878,6 @@ pristine_cleanup_wcroot(svn_wc__db_wcroo
   return SVN_NO_ERROR;
 }
 
-
 svn_error_t *
 svn_wc__db_pristine_cleanup(svn_wc__db_t *db,
                             const char *wri_abspath,

Modified: subversion/branches/ev2-export/subversion/libsvn_wc/workqueue.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_wc/workqueue.c?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_wc/workqueue.c Wed Jun  6 
13:03:48 2012
@@ -715,6 +715,8 @@ run_file_install(svn_wc__db_t *db,
                                scratch_pool));
 
       /* No need to set exec or read-only flags on special files.  */
+
+      /* ### Shouldn't this record a timestamp and size, etc.? */
       return SVN_NO_ERROR;
     }
 
@@ -781,12 +783,27 @@ run_file_install(svn_wc__db_t *db,
   }
 
   /* Tweak the on-disk file according to its properties.  */
-  if (props
-      && (apr_hash_get(props, SVN_PROP_NEEDS_LOCK, APR_HASH_KEY_STRING)
-          || apr_hash_get(props, SVN_PROP_EXECUTABLE, APR_HASH_KEY_STRING)))
-    {
-      SVN_ERR(svn_wc__sync_flags_with_props(NULL, db, local_abspath,
-                                            scratch_pool));
+#ifndef WIN32
+  if (props && apr_hash_get(props, SVN_PROP_EXECUTABLE, APR_HASH_KEY_STRING))
+    SVN_ERR(svn_io_set_file_executable(local_abspath, TRUE, FALSE,
+                                       scratch_pool));
+#endif
+
+  /* Note that this explicitly checks the pristine properties, to make sure
+     that when the lock is locally set (=modification) it is not read only */
+  if (props && apr_hash_get(props, SVN_PROP_NEEDS_LOCK, APR_HASH_KEY_STRING))
+    {
+      svn_wc__db_status_t status;
+      svn_wc__db_lock_t *lock;
+      SVN_ERR(svn_wc__db_read_info(&status, NULL, NULL, NULL, NULL, NULL, NULL,
+                                   NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                                   NULL, NULL, &lock, NULL, NULL, NULL, NULL,
+                                   NULL, NULL, NULL, NULL, NULL, NULL,
+                                   db, local_abspath,
+                                   scratch_pool, scratch_pool));
+
+      if (!lock && status != svn_wc__db_status_added)
+        SVN_ERR(svn_io_set_file_read_only(local_abspath, FALSE, scratch_pool));
     }
 
   if (use_commit_times)
@@ -1249,32 +1266,6 @@ run_record_fileinfo(svn_wc__db_t *db,
                                                  scratch_pool));
 }
 
-
-svn_error_t *
-svn_wc__wq_build_record_fileinfo(svn_skel_t **work_item,
-                                 svn_wc__db_t *db,
-                                 const char *local_abspath,
-                                 apr_time_t set_time,
-                                 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_ASSERT(svn_dirent_is_absolute(local_abspath));
-
-  SVN_ERR(svn_wc__db_to_relpath(&local_relpath, db, local_abspath,
-                                local_abspath, result_pool, scratch_pool));
-
-  if (set_time)
-   svn_skel__prepend_int(set_time, *work_item, result_pool);
-
-  svn_skel__prepend_str(local_relpath, *work_item, result_pool);
-  svn_skel__prepend_str(OP_RECORD_FILEINFO, *work_item, result_pool);
-
-  return SVN_NO_ERROR;
-}
-
 /* ------------------------------------------------------------------------ */
 
 /* OP_TMP_SET_TEXT_CONFLICT_MARKERS  */

Modified: subversion/branches/ev2-export/subversion/libsvn_wc/workqueue.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_wc/workqueue.h?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_wc/workqueue.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_wc/workqueue.h Wed Jun  6 
13:03:48 2012
@@ -182,22 +182,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 record file information of
-   LOCAL_ABSPATH into the TRANSLATED_SIZE and LAST_MOD_TIME of the node via
-   the svn_wc__db_global_record_fileinfo() function.
-
-   If SET_TIME is not 0, set LOCAL_ABSPATH's last modified time to this
-   time and after that record the actual file time.
-
-   ### it is unclear whether this should survive.  */
-svn_error_t *
-svn_wc__wq_build_record_fileinfo(svn_skel_t **work_item,
-                                 svn_wc__db_t *db,
-                                 const char *local_abspath,
-                                 apr_time_t set_time,
-                                 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.

Modified: 
subversion/branches/ev2-export/subversion/tests/cmdline/export_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/export_tests.py?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/export_tests.py 
(original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/export_tests.py Wed 
Jun  6 13:03:48 2012
@@ -166,7 +166,7 @@ def export_working_copy_with_mods(sbox):
     'A/D/G/tau'         : Item(status='A '),
     'A/mu'              : Item(status='A '),
     'A/B'               : Item(status='A '),
-    'A/B/E'             : Item(status='A '),
+    #'A/B/E'             : Item(status='A '), # Used to be reported as added
     'A/B/lambda'        : Item(status='A '),
     'A/B/F'             : Item(status='A '),
     'A/C'               : Item(status='A '),

Modified: 
subversion/branches/ev2-export/subversion/tests/cmdline/merge_symmetric_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/merge_symmetric_tests.py?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- 
subversion/branches/ev2-export/subversion/tests/cmdline/merge_symmetric_tests.py
 (original)
+++ 
subversion/branches/ev2-export/subversion/tests/cmdline/merge_symmetric_tests.py
 Wed Jun  6 13:03:48 2012
@@ -481,6 +481,7 @@ def merge_twice_same_direction_2(sbox):
 #   Merge to and fro
 
 @SkipUnless(server_has_mergeinfo)
+@Wimp("needs SVN_WITH_SYMMETRIC_MERGE")
 def merge_to_and_fro_1_1(sbox):
   """merge_to_and_fro_1_1"""
 
@@ -497,6 +498,7 @@ def merge_to_and_fro_1_1(sbox):
                   expect_3ways=[three_way_merge('A4', 'B7')])
 
 @SkipUnless(server_has_mergeinfo)
+@Wimp("needs SVN_WITH_SYMMETRIC_MERGE")
 def merge_to_and_fro_1_2(sbox):
   """merge_to_and_fro_1_2"""
 
@@ -540,6 +542,7 @@ def init_merge_to_and_fro_2(sbox, mod_9,
     no_op_commit(sbox)  # r10
 
 @SkipUnless(server_has_mergeinfo)
+@Wimp("needs SVN_WITH_SYMMETRIC_MERGE")
 def merge_to_and_fro_2_1(sbox):
   """merge_to_and_fro_2_1"""
 
@@ -556,6 +559,7 @@ def merge_to_and_fro_2_1(sbox):
                   expect_3ways=[three_way_merge('A7', 'B10')])
 
 @SkipUnless(server_has_mergeinfo)
+@Wimp("needs SVN_WITH_SYMMETRIC_MERGE")
 def merge_to_and_fro_2_2(sbox):
   """merge_to_and_fro_2_2"""
 
@@ -599,6 +603,7 @@ def init_merge_to_and_fro_3(sbox, mod_9,
     no_op_commit(sbox)  # r10
 
 @SkipUnless(server_has_mergeinfo)
+@Wimp("needs SVN_WITH_SYMMETRIC_MERGE")
 def merge_to_and_fro_3_1(sbox):
   """merge_to_and_fro_3_1"""
 
@@ -615,6 +620,7 @@ def merge_to_and_fro_3_1(sbox):
                   expect_3ways=[three_way_merge_no_op('B7', 'B10')])
 
 @SkipUnless(server_has_mergeinfo)
+@Wimp("needs SVN_WITH_SYMMETRIC_MERGE")
 def merge_to_and_fro_3_2(sbox):
   """merge_to_and_fro_3_2"""
 
@@ -631,6 +637,7 @@ def merge_to_and_fro_3_2(sbox):
                   expect_3ways=[three_way_merge('B7', 'B10')])
 
 @SkipUnless(server_has_mergeinfo)
+@Wimp("needs SVN_WITH_SYMMETRIC_MERGE")
 def merge_to_and_fro_4_1(sbox):
   """merge_to_and_fro_4_1"""
 
@@ -647,6 +654,7 @@ def merge_to_and_fro_4_1(sbox):
                   expect_3ways=[three_way_merge_no_op('B7', 'A10')])
 
 @SkipUnless(server_has_mergeinfo)
+@Wimp("needs SVN_WITH_SYMMETRIC_MERGE")
 def merge_to_and_fro_4_2(sbox):
   """merge_to_and_fro_4_2"""
 

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=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py 
(original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py Wed 
Jun  6 13:03:48 2012
@@ -993,8 +993,16 @@ def status_unversioned_dir(sbox):
   dir = sbox.wc_dir
   svntest.main.safe_rmtree(sbox.wc_dir)
   os.mkdir(dir)
-  expected_err = "svn: warning: (W155007|W155010): '.*(/|\\\\)" \
-                                        + os.path.basename(dir) + "'"
+
+  # Depending on whether you run the tests below a working copy
+  # or not, the error message might either be something like
+  # svn: warning: W155007: '...copies/stat_tests-19' is not a working copy
+  # or
+  # svn: warning: W155010: The node '...copies/stat_tests-19' was not found.
+
+  expected_err = "svn: warning: W1550(07|10): .*'.*(/|\\\\)" + \
+                 os.path.basename(dir) + \
+                 "' (is not a working copy|was not found)"
   svntest.actions.run_and_verify_svn2(None, [], expected_err, 0,
                                       "status", dir, dir)
 

Modified: 
subversion/branches/ev2-export/subversion/tests/cmdline/update_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/update_tests.py?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/update_tests.py 
(original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/update_tests.py Wed 
Jun  6 13:03:48 2012
@@ -5793,6 +5793,62 @@ def update_nested_move_text_mod(sbox):
                                         None, None, None,
                                         None, None, 1)
 
+def update_with_parents_and_exclude(sbox):
+  "bring a subtree in over an excluded path"
+
+  sbox.build(read_only = True)
+  wc_dir = sbox.wc_dir
+
+  # Now we are going to exclude A
+  expected_output = svntest.wc.State(wc_dir, {
+    'A' : Item(status='D '),
+  })
+
+  expected_status = svntest.wc.State(wc_dir, {
+    ''     : Item(status='  ', wc_rev='1'),
+    'iota' : Item(status='  ', wc_rev='1'),
+  })
+
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        None,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, False,
+                                        '--set-depth', 'exclude',
+                                        sbox.ospath('A'))
+
+  expected_output = svntest.wc.State(wc_dir, {
+    'A'                 : Item(status='A '),
+    'A/B'               : Item(status='A '),
+    'A/B/F'             : Item(status='A '),
+    'A/B/E'             : Item(status='A '),
+    'A/B/E/beta'        : Item(status='A '),
+    'A/B/E/alpha'       : Item(status='A '),
+    'A/B/lambda'        : Item(status='A '),
+  })
+
+  expected_status = svntest.wc.State(wc_dir, {
+    ''                  : Item(status='  ', wc_rev='1'),
+    'A'                 : Item(status='  ', wc_rev='1'),
+    'A/B'               : Item(status='  ', wc_rev='1'),
+    'A/B/F'             : Item(status='  ', wc_rev='1'),
+    'A/B/E'             : Item(status='  ', wc_rev='1'),
+    'A/B/E/beta'        : Item(status='  ', wc_rev='1'),
+    'A/B/E/alpha'       : Item(status='  ', wc_rev='1'),
+    'A/B/lambda'        : Item(status='  ', wc_rev='1'),
+    'iota'              : Item(status='  ', wc_rev='1'),
+  })
+
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        None,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, False,
+                                        '--parents',
+                                        sbox.ospath('A/B'))
+
 
 #######################################################################
 # Run the tests
@@ -5868,6 +5924,7 @@ test_list = [ None,
               update_binary_file_3,
               update_move_text_mod,
               update_nested_move_text_mod,
+              update_with_parents_and_exclude,
              ]
 
 if __name__ == '__main__':

Modified: 
subversion/branches/ev2-export/subversion/tests/libsvn_subr/dirent_uri-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/libsvn_subr/dirent_uri-test.c?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- 
subversion/branches/ev2-export/subversion/tests/libsvn_subr/dirent_uri-test.c 
(original)
+++ 
subversion/branches/ev2-export/subversion/tests/libsvn_subr/dirent_uri-test.c 
Wed Jun  6 13:03:48 2012
@@ -882,6 +882,8 @@ static const testcase_canonicalize_t uri
     { "https://SERVER:80/";,    "https://server:80"; },
     { "svn://server:80",       "svn://server:80" },
     { "svn://SERVER:443/",     "svn://server:443" },
+    { "file:///C%7C/temp/REPOS", "file:///C%7C/temp/REPOS" },
+    { "file:///C|/temp/REPOS", "file:///C%7C/temp/REPOS" },
 #ifdef SVN_USE_DOS_PATHS
     { "file:///c:/temp/repos", "file:///C:/temp/repos" },
     { "file:///c:/temp/REPOS", "file:///C:/temp/REPOS" },

Modified: 
subversion/branches/ev2-export/tools/buildbot/slaves/win32-SharpSvn/svntest-test.cmd
URL: 
http://svn.apache.org/viewvc/subversion/branches/ev2-export/tools/buildbot/slaves/win32-SharpSvn/svntest-test.cmd?rev=1346869&r1=1346868&r2=1346869&view=diff
==============================================================================
--- 
subversion/branches/ev2-export/tools/buildbot/slaves/win32-SharpSvn/svntest-test.cmd
 (original)
+++ 
subversion/branches/ev2-export/tools/buildbot/slaves/win32-SharpSvn/svntest-test.cmd
 Wed Jun  6 13:03:48 2012
@@ -77,21 +77,21 @@ IF "%LOCAL%+%FSFS%" == "1+1" (
 
 IF "%SVN%+%FSFS%" == "1+1" (
   taskkill /im svnserve.exe /f 2> nul:
-  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs -u svn://localhost %ARGS% 
"%TESTDIR%\tests"
-  win-tests.py -c %PARALLEL% %MODE% -f fsfs -u svn://localhost %ARGS% 
"%TESTDIR%\tests"
+  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs -u svn://127.0.0.1 %ARGS% 
"%TESTDIR%\tests"
+  win-tests.py -c %PARALLEL% %MODE% -f fsfs -u svn://127.0.0.1 %ARGS% 
"%TESTDIR%\tests"
   IF ERRORLEVEL 1 EXIT /B 1
 )
 
 IF "%SERF%+%FSFS%" == "1+1" (
   taskkill /im httpd.exe /f 2> nul:
-  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library serf 
--httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u 
http://localhost:%TESTPORT% %ARGS% "%TESTDIR%\tests"
-  win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library serf --httpd-dir 
"%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u 
http://localhost:%TESTPORT% %ARGS% "%TESTDIR%\tests"
+  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library serf 
--httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u 
http://127.0.0.1:%TESTPORT% %ARGS% "%TESTDIR%\tests"
+  win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library serf --httpd-dir 
"%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u 
http://127.0.0.1:%TESTPORT% %ARGS% "%TESTDIR%\tests"
   IF ERRORLEVEL 1 EXIT /B 1
 )
 
 IF "%NEON%+%FSFS%" == "1+1" (
   taskkill /im httpd.exe /f 2> nul:
-  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library neon 
--httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u 
http://localhost:%TESTPORT% %ARGS% "%TESTDIR%\tests"
-  win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library neon --httpd-dir 
"%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u 
http://localhost:%TESTPORT% %ARGS% "%TESTDIR%\tests"
+  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library neon 
--httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u 
http://127.0.0.1:%TESTPORT% %ARGS% "%TESTDIR%\tests"
+  win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library neon --httpd-dir 
"%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u 
http://127.0.0.1:%TESTPORT% %ARGS% "%TESTDIR%\tests"
   IF ERRORLEVEL 1 EXIT /B 1
 )

Propchange: 
subversion/branches/ev2-export/tools/client-side/mergeinfo-sanitizer.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/tools/dev/gdb-py/svndbg/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/tools/dev/gdb-py/svndbg/printers.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/tools/dev/histogram.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/tools/dev/sbox-ospath.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/tools/server-side/svnpredumpfilter.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/commit-hook.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/daemonize.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/svnpubsub/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/svnpubsub/client.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/svnpubsub/server.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/svntweet.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/svnwcsub.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/testserver.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
subversion/branches/ev2-export/tools/server-side/svnpubsub/watcher.py
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to