subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From br...@apache.org
Subject svn commit: r1438999 [1/7] - in /subversion/branches/windows-build-update: ./ build/generator/ subversion/include/ subversion/include/private/ subversion/libsvn_client/ subversion/libsvn_diff/ subversion/libsvn_ra_serf/ subversion/libsvn_repos/ subvers...
Date Sun, 27 Jan 2013 00:01:59 GMT
Author: brane
Date: Sun Jan 27 00:01:57 2013
New Revision: 1438999

URL: http://svn.apache.org/viewvc?rev=1438999&view=rev
Log:
Sync windows-build-update branch with trunk at r1438998.

Added:
    subversion/branches/windows-build-update/subversion/include/private/svn_diff_tree.h
      - copied unchanged from r1438998, subversion/trunk/subversion/include/private/svn_diff_tree.h
    subversion/branches/windows-build-update/subversion/libsvn_client/copy_foreign.c
      - copied unchanged from r1438998, subversion/trunk/subversion/libsvn_client/copy_foreign.c
    subversion/branches/windows-build-update/subversion/libsvn_diff/diff_tree.c
      - copied unchanged from r1438998, subversion/trunk/subversion/libsvn_diff/diff_tree.c
    subversion/branches/windows-build-update/subversion/tests/cmdline/svnauthz_tests.py
      - copied unchanged from r1438998, subversion/trunk/subversion/tests/cmdline/svnauthz_tests.py
Modified:
    subversion/branches/windows-build-update/   (props changed)
    subversion/branches/windows-build-update/COMMITTERS
    subversion/branches/windows-build-update/Makefile.in
    subversion/branches/windows-build-update/build.conf
    subversion/branches/windows-build-update/build/generator/gen_win.py
    subversion/branches/windows-build-update/configure.ac
    subversion/branches/windows-build-update/subversion/include/private/svn_client_private.h
    subversion/branches/windows-build-update/subversion/include/private/svn_wc_private.h
    subversion/branches/windows-build-update/subversion/include/svn_client.h
    subversion/branches/windows-build-update/subversion/include/svn_config.h
    subversion/branches/windows-build-update/subversion/include/svn_repos.h
    subversion/branches/windows-build-update/subversion/include/svn_wc.h
    subversion/branches/windows-build-update/subversion/libsvn_client/blame.c
    subversion/branches/windows-build-update/subversion/libsvn_client/client.h
    subversion/branches/windows-build-update/subversion/libsvn_client/copy.c
    subversion/branches/windows-build-update/subversion/libsvn_client/deprecated.c
    subversion/branches/windows-build-update/subversion/libsvn_client/diff.c
    subversion/branches/windows-build-update/subversion/libsvn_client/diff_summarize.c
    subversion/branches/windows-build-update/subversion/libsvn_client/merge.c
    subversion/branches/windows-build-update/subversion/libsvn_client/patch.c
    subversion/branches/windows-build-update/subversion/libsvn_client/repos_diff.c
    subversion/branches/windows-build-update/subversion/libsvn_diff/diff_file.c
    subversion/branches/windows-build-update/subversion/libsvn_diff/diff_memory.c
    subversion/branches/windows-build-update/subversion/libsvn_ra_serf/update.c
    subversion/branches/windows-build-update/subversion/libsvn_repos/authz.c
    subversion/branches/windows-build-update/subversion/libsvn_repos/deprecated.c
    subversion/branches/windows-build-update/subversion/libsvn_repos/repos.c
    subversion/branches/windows-build-update/subversion/libsvn_repos/repos.h
    subversion/branches/windows-build-update/subversion/libsvn_subr/io.c
    subversion/branches/windows-build-update/subversion/libsvn_subr/prompt.c
    subversion/branches/windows-build-update/subversion/libsvn_subr/sqlite3wrapper.c   (props changed)
    subversion/branches/windows-build-update/subversion/libsvn_wc/adm_ops.c
    subversion/branches/windows-build-update/subversion/libsvn_wc/conflicts.c
    subversion/branches/windows-build-update/subversion/libsvn_wc/conflicts.h
    subversion/branches/windows-build-update/subversion/libsvn_wc/diff_editor.c
    subversion/branches/windows-build-update/subversion/libsvn_wc/props.h
    subversion/branches/windows-build-update/subversion/libsvn_wc/status.c
    subversion/branches/windows-build-update/subversion/libsvn_wc/update_editor.c
    subversion/branches/windows-build-update/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/windows-build-update/subversion/libsvn_wc/wc_db.c
    subversion/branches/windows-build-update/subversion/libsvn_wc/wc_db_update_move.c
    subversion/branches/windows-build-update/subversion/mod_authz_svn/INSTALL
    subversion/branches/windows-build-update/subversion/mod_authz_svn/mod_authz_svn.c
    subversion/branches/windows-build-update/subversion/svn/cl.h
    subversion/branches/windows-build-update/subversion/svn/conflict-callbacks.c
    subversion/branches/windows-build-update/subversion/svn/merge-cmd.c
    subversion/branches/windows-build-update/subversion/svn/mergeinfo-cmd.c
    subversion/branches/windows-build-update/subversion/svn/notify.c
    subversion/branches/windows-build-update/subversion/svn/resolve-cmd.c
    subversion/branches/windows-build-update/subversion/svn/resolved-cmd.c
    subversion/branches/windows-build-update/subversion/svn/svn.c
    subversion/branches/windows-build-update/subversion/svnserve/serve.c
    subversion/branches/windows-build-update/subversion/svnserve/svnserve.c
    subversion/branches/windows-build-update/subversion/tests/cmdline/authz_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/copy_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/entries-dump.c
    subversion/branches/windows-build-update/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
    subversion/branches/windows-build-update/subversion/tests/cmdline/lock_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/merge_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/patch_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/svntest/main.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/svntest/verify.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/switch_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/update_tests.py
    subversion/branches/windows-build-update/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/windows-build-update/subversion/tests/libsvn_client/client-test.c
    subversion/branches/windows-build-update/subversion/tests/libsvn_diff/diff-diff3-test.c
    subversion/branches/windows-build-update/subversion/tests/libsvn_repos/repos-test.c
    subversion/branches/windows-build-update/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/windows-build-update/subversion/tests/svn_test_fs.c
    subversion/branches/windows-build-update/tools/dev/fsfs-access-map.c   (props changed)
    subversion/branches/windows-build-update/tools/dev/fsfs-reorg.c   (props changed)
    subversion/branches/windows-build-update/tools/server-side/fsfs-stats.c   (props changed)
    subversion/branches/windows-build-update/tools/server-side/svnauthz.c
    subversion/branches/windows-build-update/win-tests.py

Propchange: subversion/branches/windows-build-update/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1436508-1438998

Modified: subversion/branches/windows-build-update/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/COMMITTERS?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/COMMITTERS [UTF-8] (original)
+++ subversion/branches/windows-build-update/COMMITTERS [UTF-8] Sun Jan 27 00:01:57 2013
@@ -157,6 +157,7 @@ Commit access for specific areas:
       artagnon   Ramkumar Ramachandra <artagnon@gmail.com>   (svnrdump, svntest)
          arwin   Arwin Arni <arwin@collab.net>               (svn-bisect)
           joes   Joe Schaefer <joe_schaefer@yahoo.com>       (svnpubsub)
+      prabhugs   Prabhu Gnana Sundar <prabhugs@collab.net>   (verify-keep-going)
 
 
   Translation of message files:

Modified: subversion/branches/windows-build-update/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/Makefile.in?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/Makefile.in (original)
+++ subversion/branches/windows-build-update/Makefile.in Sun Jan 27 00:01:57 2013
@@ -926,5 +926,4 @@ INSTALL_EXTRA_TOOLS=\
   $(MKDIR) $(DESTDIR)$(bindir); \
   test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
   ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
-  ln -sf $(DESTDIR)$(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
-  ln -sf svnauthz$(EXEEXT) $(DESTDIR)$(toolsdir)/svnauthz-validate$(EXEEXT)
+  ln -sf $(DESTDIR)$(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT)

Modified: subversion/branches/windows-build-update/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/build.conf?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/build.conf (original)
+++ subversion/branches/windows-build-update/build.conf Sun Jan 27 00:01:57 2013
@@ -230,7 +230,7 @@ type = lib
 path = subversion/libsvn_diff
 libs = libsvn_subr apriconv apr zlib
 install = lib
-msvc-export = svn_diff.h private\svn_diff_private.h
+msvc-export = svn_diff.h private/svn_diff_private.h private/svn_diff_tree.h
 
 # The repository filesystem library
 [libsvn_fs]
@@ -1204,7 +1204,7 @@ path = build/win32
 libs = svn svnadmin svndumpfilter svnlook svnmucc svnserve svnrdump svnsync
        svnversion
        mod_authz_svn mod_dav_svn mod_dontdothat
-       svnauthz svnraisetreeconflict
+       svnauthz svnauthz-validate svnraisetreeconflict
 
 [__ALL_TESTS__]
 type = project
@@ -1330,6 +1330,19 @@ sources = svnauthz.c
 install = tools
 libs = libsvn_repos libsvn_fs libsvn_subr apr
 
+# svnauthz-validate is the compat mode of the new svnauthz tool.  It is
+# exactly the same code as svnauthz.  This duplicated target is needed
+# in order to easily test both commands as part of the build since libtool
+# does not provide a way to set argv[0] different from the commands actual
+# name in the wrapper script.
+[svnauthz-validate]
+description = Authz config file validator
+type = exe
+path = tools/server-side
+sources = svnauthz.c
+install = tools
+libs = libsvn_repos libsvn_fs libsvn_subr apr
+
 [svn-populate-node-origins-index]
 type = exe
 path = tools/server-side

Modified: subversion/branches/windows-build-update/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/build/generator/gen_win.py?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/build/generator/gen_win.py (original)
+++ subversion/branches/windows-build-update/build/generator/gen_win.py Sun Jan 27 00:01:57 2013
@@ -462,7 +462,10 @@ class WinGeneratorBase(GeneratorBase):
       # Link everything except tests against the dll. Tests need to be linked
       # against the static libraries because they sometimes access internal
       # library functions.
-      if dep in deps[key] and key.find("test") == -1:
+
+      # ### The magic behavior for 'test' in a name and 'entries-dump' should
+      # ### move to another option in build.conf
+      if dep in deps[key] and key.find("test") == -1 and key != 'entries-dump':
         deps[key].remove(dep)
         deps[key].append(target)
 

Modified: subversion/branches/windows-build-update/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/configure.ac?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/configure.ac (original)
+++ subversion/branches/windows-build-update/configure.ac Sun Jan 27 00:01:57 2013
@@ -883,6 +883,13 @@ AC_CHECK_FUNCS(symlink readlink)
 dnl check for uname
 AC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], [])
 
+dnl check for termios
+AC_CHECK_HEADER(termios.h,[
+  AC_CHECK_FUNCS(tcgetattr tcsetattr,[
+    AC_DEFINE(HAVE_TERMIOS_H,1,[Defined if we have a usable termios library.])
+  ])
+])
+
 dnl Process some configuration options ----------
 
 AC_ARG_WITH(ssl,

Modified: subversion/branches/windows-build-update/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/include/private/svn_client_private.h?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/windows-build-update/subversion/include/private/svn_client_private.h Sun Jan 27 00:01:57 2013
@@ -239,6 +239,26 @@ svn_client__arbitrary_nodes_diff(const c
                                  svn_client_ctx_t *ctx,
                                  apr_pool_t *scratch_pool);
 
+/* Copy the file or directory on URL in some repository to DST_ABSPATH,
+ * copying node information and properties. Resolve URL using PEG_REV and
+ * REVISION.
+ *
+ * If URL specifies a directory, create the copy using depth DEPTH.
+ *
+ * If MAKE_PARENTS is TRUE and DST_ABSPATH doesn't have an added parent
+ * create missing parent directories
+ */
+svn_error_t *
+svn_client__copy_foreign(const char *url,
+                         const char *dst_abspath,
+                         svn_opt_revision_t *peg_revision,
+                         svn_opt_revision_t *revision,
+                         svn_depth_t depth,
+                         svn_boolean_t make_parents,
+                         svn_boolean_t already_locked,
+                         svn_client_ctx_t *ctx,
+                         apr_pool_t *scratch_pool);
+
 
 #ifdef __cplusplus
 }

Modified: subversion/branches/windows-build-update/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/include/private/svn_wc_private.h?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/windows-build-update/subversion/include/private/svn_wc_private.h Sun Jan 27 00:01:57 2013
@@ -39,6 +39,7 @@
 
 #include "svn_types.h"
 #include "svn_wc.h"
+#include "private/svn_diff_tree.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -1672,6 +1673,60 @@ svn_wc__get_diff_editor(const svn_delta_
                         apr_pool_t *result_pool,
                         apr_pool_t *scratch_pool);
 
+/** Callback for the svn_diff_tree_processor_t wrapper, to allow handling
+ *  notifications like how the repos diff in libsvn_client does.
+ *
+ * Probably only necessary while transitioning to svn_diff_tree_processor_t
+ */
+typedef svn_error_t *
+        (*svn_wc__diff_state_handle_t)(svn_boolean_t tree_conflicted,
+                                       svn_wc_notify_state_t *state,
+                                       svn_wc_notify_state_t *prop_state,
+                                       const char *relpath,
+                                       svn_kind_t kind,
+                                       svn_boolean_t before_op,
+                                       svn_boolean_t for_add,
+                                       svn_boolean_t for_delete,
+                                       void *state_baton,
+                                       apr_pool_t *scratch_pool);
+
+/** Callback for the svn_diff_tree_processor_t wrapper, to allow handling
+ *  notifications like how the repos diff in libsvn_client does.
+ *
+ * Probably only necessary while transitioning to svn_diff_tree_processor_t
+ */
+typedef svn_error_t *
+        (*svn_wc__diff_state_close_t)(const char *relpath,
+                                      svn_kind_t kind,
+                                      void *state_baton,
+                                      apr_pool_t *scratch_pool);
+
+/** Callback for the svn_diff_tree_processor_t wrapper, to allow handling
+ *  absent nodes.
+ *
+ * Probably only necessary while transitioning to svn_diff_tree_processor_t
+ */
+typedef svn_error_t *
+        (*svn_wc__diff_state_absent_t)(const char *relpath,
+                                       void *state_baton,
+                                       apr_pool_t *scratch_pool);
+
+/** Obtains a diff processor that will drive the diff callbacks when it
+ * is invoked. The state arguments will be handled by the state processor
+ * or ignored if STATE_HANDLER is NULL
+ */
+svn_error_t *
+svn_wc__wrap_diff_callbacks(svn_diff_tree_processor_t **diff_processor,
+                            const svn_wc_diff_callbacks4_t *callbacks,
+                            void *callback_baton,
+                            svn_wc__diff_state_handle_t state_handle,
+                            svn_wc__diff_state_close_t state_close,
+                            svn_wc__diff_state_absent_t state_absent,
+                            void *state_baton,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
+
+
 /**
  * Assuming @a local_abspath itself or any of its children are under version
  * control or a tree conflict victim and in a state of conflict, take these
@@ -1789,6 +1844,26 @@ svn_wc__move2(svn_wc_context_t *wc_ctx,
               void *notify_baton,
               apr_pool_t *scratch_pool);
 
+
+/* During merge when we encounter added directories, we add them using
+   svn_wc_add4(), recording its original location, etc. But at that time
+   we don't have its original properties. This function allows updating the
+   BASE properties of such a special added node, but only before it receives
+   other changes.
+
+   NEW_ORIGINAL_PROPS is a new set of properties, including entry props that
+   will be applied to LOCAL_ABSPATH as pristine properties.
+
+   The copyfrom_* arguments are used to verify (some of) the assumptions of
+   this function */
+svn_error_t *
+svn_wc__complete_directory_add(svn_wc_context_t *wc_ctx,
+                               const char *local_abspath,
+                               apr_hash_t *new_original_props,
+                               const char *copyfrom_url,
+                               svn_revnum_t copyfrom_rev,
+                               apr_pool_t *scratch_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/windows-build-update/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/include/svn_client.h?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/include/svn_client.h (original)
+++ subversion/branches/windows-build-update/subversion/include/svn_client.h Sun Jan 27 00:01:57 2013
@@ -3502,7 +3502,7 @@ svn_client_find_automatic_merge_no_wc(
  * the WC at @a target_wcpath.  The @a merge structure would typically come
  * from calling svn_client_find_automatic_merge().
  *
- * The other parameters are as in svn_client_merge4().
+ * The other parameters are as in svn_client_merge5().
  *
  * @since New in 1.8.
  */
@@ -3510,6 +3510,7 @@ svn_error_t *
 svn_client_do_automatic_merge(const svn_client_automatic_merge_t *merge,
                               const char *target_wcpath,
                               svn_depth_t depth,
+                              svn_boolean_t diff_ignore_ancestry,
                               svn_boolean_t force_delete,
                               svn_boolean_t record_only,
                               svn_boolean_t dry_run,
@@ -3588,11 +3589,14 @@ svn_client_automatic_merge_get_locations
  *
  * If @a depth is #svn_depth_unknown, use the depth of @a target_wcpath.
  *
- * Use @a ignore_ancestry to control whether or not items being
- * diffed will be checked for relatedness first.  Unrelated items
- * are typically transmitted to the editor as a deletion of one thing
- * and the addition of another, but if this flag is TRUE, unrelated
- * items will be diffed as if they were related.
+ * If @a ignore_mergeinfo is true, disable merge tracking, by treating the
+ * two sources as unrelated even if they actually have a common ancestor.
+ *
+ * If @a diff_ignore_ancestry is true, diff unrelated nodes as if related:
+ * that is, diff the 'left' and 'right' versions of a node as if they were
+ * related (if they are the same kind) even if they are not related.
+ * Otherwise, diff unrelated items as a deletion of one thing and the
+ * addition of another.
  *
  * If @a force_delete is false and the merge involves deleting a file whose
  * content differs from the source-left version, or a locally modified
@@ -3623,8 +3627,33 @@ svn_client_automatic_merge_get_locations
  * The authentication baton cached in @a ctx is used to communicate with the
  * repository.
  *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_client_merge5(const char *source1,
+                  const svn_opt_revision_t *revision1,
+                  const char *source2,
+                  const svn_opt_revision_t *revision2,
+                  const char *target_wcpath,
+                  svn_depth_t depth,
+                  svn_boolean_t ignore_mergeinfo,
+                  svn_boolean_t diff_ignore_ancestry,
+                  svn_boolean_t force_delete,
+                  svn_boolean_t record_only,
+                  svn_boolean_t dry_run,
+                  svn_boolean_t allow_mixed_rev,
+                  const apr_array_header_t *merge_options,
+                  svn_client_ctx_t *ctx,
+                  apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_merge5(), but the single @a ignore_ancestry
+ * parameter maps to both @c ignore_mergeinfo and @c diff_ignore_ancestry.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  * @since New in 1.7.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_client_merge4(const char *source1,
                   const svn_opt_revision_t *revision1,
@@ -3713,49 +3742,16 @@ svn_client_merge(const char *source1,
 
 
 /**
- * Determine the URLs and revisions needed to perform a reintegrate merge
- * from @a source_path_or_url at @a source_peg_revision into the working
- * copy at @a target_wcpath.
- *
- * Set @a *url1_p and @a *rev1_p to the left side, and @a *url2_p and
- * @a *rev2_p to the right side, URLs and revisions of the source of the
- * required two-URL merge.
- *
- * If no merge should be performed, set @a *url1_p to NULL and @a *rev1_p
- * to #SVN_INVALID_REVNUM.
- *
- * The authentication baton cached in @a ctx is used to communicate with the
- * repository.
- *
- * Allocate all the results in @a result_pool.  Use @a scratch_pool for
- * temporary allocations.
- *
- * @since New in 1.8.
- */
-svn_error_t *
-svn_client_find_reintegrate_merge(const char **url1_p,
-                                  svn_revnum_t *rev1_p,
-                                  const char **url2_p,
-                                  svn_revnum_t *rev2_p,
-                                  /* inputs */
-                                  const char *source_path_or_url,
-                                  const svn_opt_revision_t *source_peg_revision,
-                                  const char *target_wcpath,
-                                  svn_client_ctx_t *ctx,
-                                  apr_pool_t *result_pool,
-                                  apr_pool_t *scratch_pool);
-
-/**
  * Perform a reintegration merge of @a source_path_or_url at @a source_peg_revision
  * into @a target_wcpath.
  * @a target_wcpath must be a single-revision, #svn_depth_infinity,
  * pristine, unswitched working copy -- in other words, it must
  * reflect a single revision tree, the "target".  The mergeinfo on @a
  * source_path_or_url must reflect that all of the target has been merged into it.
- * Then this behaves like a merge with svn_client_merge4() from the
+ * Then this behaves like a merge with svn_client_merge5() from the
  * target's URL to the source.
  *
- * All other options are handled identically to svn_client_merge4().
+ * All other options are handled identically to svn_client_merge5().
  * The depth of the merge is always #svn_depth_infinity.
  *
  * @since New in 1.5.
@@ -3782,10 +3778,34 @@ svn_client_merge_reintegrate(const char 
  * list of provided ranges has an `unspecified' or unrecognized
  * `kind', return #SVN_ERR_CLIENT_BAD_REVISION.
  *
- * All other options are handled identically to svn_client_merge4().
+ * All other options are handled identically to svn_client_merge5().
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_client_merge_peg5(const char *source_path_or_url,
+                      const apr_array_header_t *ranges_to_merge,
+                      const svn_opt_revision_t *source_peg_revision,
+                      const char *target_wcpath,
+                      svn_depth_t depth,
+                      svn_boolean_t ignore_mergeinfo,
+                      svn_boolean_t diff_ignore_ancestry,
+                      svn_boolean_t force_delete,
+                      svn_boolean_t record_only,
+                      svn_boolean_t dry_run,
+                      svn_boolean_t allow_mixed_rev,
+                      const apr_array_header_t *merge_options,
+                      svn_client_ctx_t *ctx,
+                      apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_merge_peg5(), but the single @a ignore_ancestry
+ * parameter maps to both @c ignore_mergeinfo and @c diff_ignore_ancestry.
  *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  * @since New in 1.7.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_client_merge_peg4(const char *source_path_or_url,
                       const apr_array_header_t *ranges_to_merge,

Modified: subversion/branches/windows-build-update/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/include/svn_config.h?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/include/svn_config.h (original)
+++ subversion/branches/windows-build-update/subversion/include/svn_config.h Sun Jan 27 00:01:57 2013
@@ -149,6 +149,7 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_OPTION_USE_SASL                  "use-sasl"
 #define SVN_CONFIG_OPTION_MIN_SSF                   "min-encryption"
 #define SVN_CONFIG_OPTION_MAX_SSF                   "max-encryption"
+#define SVN_CONFIG_OPTION_GROUPS_DB                 "groups-db"
 
 /* For repository password database */
 #define SVN_CONFIG_SECTION_USERS                "users"

Modified: subversion/branches/windows-build-update/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/include/svn_repos.h?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/include/svn_repos.h (original)
+++ subversion/branches/windows-build-update/subversion/include/svn_repos.h Sun Jan 27 00:01:57 2013
@@ -247,7 +247,7 @@ typedef enum svn_repos_notify_action_t
   /** A revision was skipped during loading. @since New in 1.8. */
   svn_repos_notify_load_skipped_rev,
 
-  /** The structure of a revision is begin verified.  @since New in 1.8. */
+  /** The structure of a revision is being verified.  @since New in 1.8. */
   svn_repos_notify_verify_struc_rev
 
 } svn_repos_notify_action_t;
@@ -3171,19 +3171,24 @@ svn_repos_authz_read(svn_authz_t **authz
  * url, an absolute file url, or a registry path) into @a *authz_p,
  * allocated in @a pool.
  *
- * If @a path is not a valid authz rule file, then return 
+ * If @a groups_path (a file, repos relative url, an absolute file url,
+ * or a registry path) is set, use the global groups parsed from it.
+ *
+ * If @a path or @a groups_path is not a valid authz rule file, then return
  * #SVN_ERR_AUTHZ_INVALID_CONFIG.  The contents of @a *authz_p is then
- * undefined.  If @a must_exist is TRUE, a missing authz file is also
- * an error.
+ * undefined.  If @a must_exist is TRUE, a missing authz or groups file
+ * is also an error.
  *
  * If @a path is a repos relative URL then @a repos_root must be set to
  * the root of the repository the authz configuration will be used with.
+ * The same applies to @a groups_path if it is being used.
  *
  * @since New in 1.8
  */
 svn_error_t *
 svn_repos_authz_read2(svn_authz_t **authz_p,
                       const char *path,
+                      const char *groups_path,
                       svn_boolean_t must_exist,
                       const char *repos_root,
                       apr_pool_t *pool);
@@ -3193,11 +3198,14 @@ svn_repos_authz_read2(svn_authz_t **auth
  * Read authz configuration data from @a stream into @a *authz_p,
  * allocated in @a pool.
  *
+ * If @a groups_stream is set, use the global groups parsed from it.
+ *
  * @since New in 1.8
  */
 svn_error_t *
 svn_repos_authz_parse(svn_authz_t **authz_p,
                       svn_stream_t *stream, 
+                      svn_stream_t *groups_stream,
                       apr_pool_t *pool);
 
 /**

Modified: subversion/branches/windows-build-update/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/include/svn_wc.h?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/include/svn_wc.h (original)
+++ subversion/branches/windows-build-update/subversion/include/svn_wc.h Sun Jan 27 00:01:57 2013
@@ -1245,7 +1245,11 @@ typedef enum svn_wc_notify_action_t
   /** The current operation left local changes of something that was deleted
    * The changes are available on (and below) the notified path
    * @since New in 1.8. */
-  svn_wc_notify_left_local_modifications
+  svn_wc_notify_left_local_modifications,
+
+  /** A copy from a foreign repository has started 
+   * @since New in 1.8. */
+  svn_wc_notify_foreign_copy_begin
 
 } svn_wc_notify_action_t;
 

Modified: subversion/branches/windows-build-update/subversion/libsvn_client/blame.c
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/libsvn_client/blame.c?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/libsvn_client/blame.c (original)
+++ subversion/branches/windows-build-update/subversion/libsvn_client/blame.c Sun Jan 27 00:01:57 2013
@@ -54,9 +54,9 @@ struct rev
 /* One chunk of blame */
 struct blame
 {
-  struct rev *rev;    /* the responsible revision */
-  apr_off_t start;    /* the starting diff-token (line) */
-  struct blame *next; /* the next chunk */
+  const struct rev *rev;    /* the responsible revision */
+  apr_off_t start;          /* the starting diff-token (line) */
+  struct blame *next;       /* the next chunk */
 };
 
 /* A chain of blame chunks */
@@ -70,7 +70,7 @@ struct blame_chain
 /* The baton use for the diff output routine. */
 struct diff_baton {
   struct blame_chain *chain;
-  struct rev *rev;
+  const struct rev *rev;
 };
 
 /* The baton used for a file revision. */
@@ -118,7 +118,7 @@ struct delta_baton {
    at token START, and allocated in CHAIN->mainpool. */
 static struct blame *
 blame_create(struct blame_chain *chain,
-             struct rev *rev,
+             const struct rev *rev,
              apr_off_t start)
 {
   struct blame *blame;
@@ -217,7 +217,7 @@ blame_delete_range(struct blame_chain *c
    at token START and continuing for LENGTH tokens */
 static svn_error_t *
 blame_insert_range(struct blame_chain *chain,
-                   struct rev *rev,
+                   const struct rev *rev,
                    apr_off_t start,
                    apr_off_t length)
 {
@@ -273,8 +273,8 @@ static const svn_diff_output_fns_t outpu
         output_diff_modified
 };
 
-/* Add the blame for the diffs between LAST_FILE and CUR_FILE with the rev
-   specified in FRB.  LAST_FILE may be NULL in which
+/* Add the blame for the diffs between LAST_FILE and CUR_FILE to CHAIN,
+   for revision REV.  LAST_FILE may be NULL in which
    case blame is added for every line of CUR_FILE. */
 static svn_error_t *
 add_file_blame(const char *last_file,
@@ -306,6 +306,13 @@ add_file_blame(const char *last_file,
   return SVN_NO_ERROR;
 }
 
+/* The delta window handler for the text delta between the previously seen
+ * revision and the revision currently being handled.
+ *
+ * Record the blame information for this revision in BATON->file_rev_baton.
+ *
+ * Implements svn_txdelta_window_handler_t.
+ */
 static svn_error_t *
 window_handler(svn_txdelta_window_t *window, void *baton)
 {
@@ -398,7 +405,15 @@ check_mimetype(const apr_array_header_t 
   return SVN_NO_ERROR;
 }
 
-
+/* Calculate and record blame information for one revision of the file,
+ * by comparing the file content against the previously seen revision.
+ *
+ * This handler is called once for each interesting revision of the file.
+ *
+ * Record the blame information for this revision in (file_rev_baton) BATON.
+ *
+ * Implements svn_file_rev_handler_t.
+ */
 static svn_error_t *
 file_rev_handler(void *baton, const char *path, svn_revnum_t revnum,
                  apr_hash_t *rev_props,

Modified: subversion/branches/windows-build-update/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/libsvn_client/client.h?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/libsvn_client/client.h (original)
+++ subversion/branches/windows-build-update/subversion/libsvn_client/client.h Sun Jan 27 00:01:57 2013
@@ -722,6 +722,9 @@ svn_client__get_inheritable_props(apr_ha
    If NOTIFY_FUNC is non-null, invoke it with NOTIFY_BATON for each
    file and directory operated on during the edit.
 
+   If ABSENT_RELPATHS is non-null, collect const char * keys in it with
+   the relative paths marked as absent by the diff driver.
+
    EDITOR/EDIT_BATON return the newly created editor and baton. */
 svn_error_t *
 svn_client__get_diff_editor(const svn_delta_editor_t **editor,
@@ -731,6 +734,7 @@ svn_client__get_diff_editor(const svn_de
                             svn_revnum_t revision,
                             svn_boolean_t walk_deleted_dirs,
                             svn_boolean_t text_deltas,
+                            apr_hash_t *absent_relpaths,
                             const svn_wc_diff_callbacks4_t *diff_callbacks,
                             void *diff_cmd_baton,
                             svn_cancel_func_t cancel_func,

Modified: subversion/branches/windows-build-update/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/libsvn_client/copy.c?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/windows-build-update/subversion/libsvn_client/copy.c Sun Jan 27 00:01:57 2013
@@ -1546,58 +1546,73 @@ repos_to_wc_copy_single(svn_client__copy
 
   SVN_ERR_ASSERT(svn_dirent_is_absolute(dst_abspath));
 
-  if (pair->src_kind == svn_node_dir)
+  if (!same_repositories && ctx->notify_func2)
     {
-      svn_boolean_t sleep_needed = FALSE;
-      const char *tmpdir_abspath, *tmp_abspath;
+      svn_wc_notify_t *notify;
+      notify = svn_wc_create_notify_url(
+                            pair->src_abspath_or_url,
+                            svn_wc_notify_foreign_copy_begin,
+                            pool);
+      notify->kind = pair->src_kind;
+      ctx->notify_func2(ctx->notify_baton2, notify, pool);
 
-      /* Find a temporary location in which to check out the copy source. */
-      SVN_ERR(svn_wc__get_tmpdir(&tmpdir_abspath, ctx->wc_ctx, dst_abspath,
-                                 pool, pool));
-                                 
-      SVN_ERR(svn_io_open_unique_file3(NULL, &tmp_abspath, tmpdir_abspath,
-                                       svn_io_file_del_on_close, pool, pool));
-
-      /* Make a new checkout of the requested source. While doing so,
-       * resolve pair->src_revnum to an actual revision number in case it
-       * was until now 'invalid' meaning 'head'.  Ask this function not to
-       * sleep for timestamps, by passing a sleep_needed output param.
-       * Send notifications for all nodes except the root node, and adjust
-       * them to refer to the destination rather than this temporary path. */
-      {
-        svn_wc_notify_func2_t old_notify_func2 = ctx->notify_func2;
-        void *old_notify_baton2 = ctx->notify_baton2;
-        struct notification_adjust_baton nb;
-        svn_error_t *err;
-
-        nb.inner_func = ctx->notify_func2;
-        nb.inner_baton = ctx->notify_baton2;
-        nb.checkout_abspath = tmp_abspath;
-        nb.final_abspath = dst_abspath;
-        ctx->notify_func2 = notification_adjust_func;
-        ctx->notify_baton2 = &nb;
-
-        err = svn_client__checkout_internal(&pair->src_revnum,
-                                            pair->src_original,
-                                            tmp_abspath,
-                                            &pair->src_peg_revision,
-                                            &pair->src_op_revision,
-                                            svn_depth_infinity,
-                                            ignore_externals, FALSE,
-                                            &sleep_needed, ctx, pool);
+      /* Allow a theoretical cancel to get through. */
+      if (ctx->cancel_func)
+        SVN_ERR(ctx->cancel_func(ctx->cancel_baton));
+    }
 
-        ctx->notify_func2 = old_notify_func2;
-        ctx->notify_baton2 = old_notify_baton2;
+  if (pair->src_kind == svn_node_dir)
+    {
+      if (same_repositories)
+        {
+          svn_boolean_t sleep_needed = FALSE;
+          const char *tmpdir_abspath, *tmp_abspath;
+
+          /* Find a temporary location in which to check out the copy source. */
+          SVN_ERR(svn_wc__get_tmpdir(&tmpdir_abspath, ctx->wc_ctx, dst_abspath,
+                                     pool, pool));
+                                     
+          SVN_ERR(svn_io_open_unique_file3(NULL, &tmp_abspath, tmpdir_abspath,
+                                           svn_io_file_del_on_close, pool, pool));
+
+          /* Make a new checkout of the requested source. While doing so,
+           * resolve pair->src_revnum to an actual revision number in case it
+           * was until now 'invalid' meaning 'head'.  Ask this function not to
+           * sleep for timestamps, by passing a sleep_needed output param.
+           * Send notifications for all nodes except the root node, and adjust
+           * them to refer to the destination rather than this temporary path. */
+          {
+            svn_wc_notify_func2_t old_notify_func2 = ctx->notify_func2;
+            void *old_notify_baton2 = ctx->notify_baton2;
+            struct notification_adjust_baton nb;
+            svn_error_t *err;
+          
+            nb.inner_func = ctx->notify_func2;
+            nb.inner_baton = ctx->notify_baton2;
+            nb.checkout_abspath = tmp_abspath;
+            nb.final_abspath = dst_abspath;
+            ctx->notify_func2 = notification_adjust_func;
+            ctx->notify_baton2 = &nb;
+          
+            err = svn_client__checkout_internal(&pair->src_revnum,
+                                                pair->src_original,
+                                                tmp_abspath,
+                                                &pair->src_peg_revision,
+                                                &pair->src_op_revision,
+                                                svn_depth_infinity,
+                                                ignore_externals, FALSE,
+                                                &sleep_needed, ctx, pool);
+          
+            ctx->notify_func2 = old_notify_func2;
+            ctx->notify_baton2 = old_notify_baton2;
 
-        SVN_ERR(err);
-      }
+            SVN_ERR(err);
+          }
 
       /* Schedule dst_path for addition in parent, with copy history.
          Don't send any notification here.
          Then remove the temporary checkout's .svn dir in preparation for
          moving the rest of it into the final destination. */
-      if (same_repositories)
-        {
           SVN_ERR(svn_wc_copy3(ctx->wc_ctx, tmp_abspath, dst_abspath,
                                TRUE /* metadata_only */,
                                ctx->cancel_func, ctx->cancel_baton,
@@ -1616,21 +1631,16 @@ repos_to_wc_copy_single(svn_client__copy
         }
       else
         {
-          /* ### We want to schedule this as a simple add, or even better
-             a copy from a foreign repos, but we don't yet have the
-             WC APIs to do that, so we will just move the whole WC into
-             place as a disjoint, nested WC. */
-
-          /* Move the working copy to where it is expected. */
-          SVN_ERR(svn_wc__rename_wc(ctx->wc_ctx, tmp_abspath, dst_abspath,
-                                    pool));
+          SVN_ERR(svn_client__copy_foreign(pair->src_abspath_or_url,
+                                           dst_abspath,
+                                           &pair->src_peg_revision,
+                                           &pair->src_op_revision,
+                                           svn_depth_infinity,
+                                           FALSE /* make_parents */,
+                                           TRUE /* already_locked */,
+                                           ctx, pool));
 
-          svn_io_sleep_for_timestamps(dst_abspath, pool);
-
-          return svn_error_createf(
-             SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-             _("Source URL '%s' is from foreign repository; "
-               "leaving it as a disjoint WC"), pair->src_abspath_or_url);
+          return SVN_NO_ERROR;
         }
     } /* end directory case */
 
@@ -1648,6 +1658,10 @@ repos_to_wc_copy_single(svn_client__copy
       SVN_ERR(svn_ra_get_file(ra_session, src_rel, pair->src_revnum,
                               new_base_contents,
                               &pair->src_revnum, &new_props, pool));
+
+      if (new_props && ! same_repositories)
+        apr_hash_set(new_props, SVN_PROP_MERGEINFO, APR_HASH_KEY_STRING, NULL);
+
       SVN_ERR(svn_wc_add_repos_file4(
          ctx->wc_ctx, dst_abspath,
          new_base_contents, NULL, new_props, NULL,

Modified: subversion/branches/windows-build-update/subversion/libsvn_client/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/libsvn_client/deprecated.c?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/libsvn_client/deprecated.c (original)
+++ subversion/branches/windows-build-update/subversion/libsvn_client/deprecated.c Sun Jan 27 00:01:57 2013
@@ -1630,6 +1630,34 @@ svn_client_log(const apr_array_header_t 
 /*** From merge.c ***/
 
 svn_error_t *
+svn_client_merge4(const char *source1,
+                  const svn_opt_revision_t *revision1,
+                  const char *source2,
+                  const svn_opt_revision_t *revision2,
+                  const char *target_wcpath,
+                  svn_depth_t depth,
+                  svn_boolean_t ignore_ancestry,
+                  svn_boolean_t force_delete,
+                  svn_boolean_t record_only,
+                  svn_boolean_t dry_run,
+                  svn_boolean_t allow_mixed_rev,
+                  const apr_array_header_t *merge_options,
+                  svn_client_ctx_t *ctx,
+                  apr_pool_t *pool)
+{
+  SVN_ERR(svn_client_merge5(source1, revision1,
+                            source2, revision2,
+                            target_wcpath,
+                            depth,
+                            ignore_ancestry /*ignore_mergeinfo*/,
+                            ignore_ancestry /*diff_ignore_ancestry*/,
+                            force_delete, record_only,
+                            dry_run, allow_mixed_rev,
+                            merge_options, ctx, pool));
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_client_merge3(const char *source1,
                   const svn_opt_revision_t *revision1,
                   const char *source2,
@@ -1690,6 +1718,34 @@ svn_client_merge(const char *source1,
 }
 
 svn_error_t *
+svn_client_merge_peg4(const char *source_path_or_url,
+                      const apr_array_header_t *ranges_to_merge,
+                      const svn_opt_revision_t *source_peg_revision,
+                      const char *target_wcpath,
+                      svn_depth_t depth,
+                      svn_boolean_t ignore_ancestry,
+                      svn_boolean_t force_delete,
+                      svn_boolean_t record_only,
+                      svn_boolean_t dry_run,
+                      svn_boolean_t allow_mixed_rev,
+                      const apr_array_header_t *merge_options,
+                      svn_client_ctx_t *ctx,
+                      apr_pool_t *pool)
+{
+  SVN_ERR(svn_client_merge_peg5(source_path_or_url,
+                                ranges_to_merge,
+                                source_peg_revision,
+                                target_wcpath,
+                                depth,
+                                ignore_ancestry /*ignore_mergeinfo*/,
+                                ignore_ancestry /*diff_ignore_ancestry*/,
+                                force_delete, record_only,
+                                dry_run, allow_mixed_rev,
+                                merge_options, ctx, pool));
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_client_merge_peg3(const char *source,
                       const apr_array_header_t *ranges_to_merge,
                       const svn_opt_revision_t *peg_revision,

Modified: subversion/branches/windows-build-update/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/libsvn_client/diff.c?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/windows-build-update/subversion/libsvn_client/diff.c Sun Jan 27 00:01:57 2013
@@ -2015,6 +2015,7 @@ diff_repos_repos(const svn_wc_diff_callb
                 depth,
                 extra_ra_session, rev1, TRUE /* walk_deleted_dirs */,
                 TRUE /* text_deltas */,
+                NULL /* absent relpaths */,
                 callbacks, callback_baton,
                 ctx->cancel_func, ctx->cancel_baton,
                 NULL /* no notify_func */, NULL /* no notify_baton */,
@@ -2701,6 +2702,7 @@ diff_summarize_repos_repos(svn_client_di
             depth,
             extra_ra_session, rev1, TRUE /* walk_deleted_dirs */,
             FALSE /* text_deltas */,
+            NULL /* absent relpaths */,
             callbacks, callback_baton,
             ctx->cancel_func, ctx->cancel_baton,
             NULL /* notify_func */, NULL /* notify_baton */, pool));

Modified: subversion/branches/windows-build-update/subversion/libsvn_client/diff_summarize.c
URL: http://svn.apache.org/viewvc/subversion/branches/windows-build-update/subversion/libsvn_client/diff_summarize.c?rev=1438999&r1=1438998&r2=1438999&view=diff
==============================================================================
--- subversion/branches/windows-build-update/subversion/libsvn_client/diff_summarize.c (original)
+++ subversion/branches/windows-build-update/subversion/libsvn_client/diff_summarize.c Sun Jan 27 00:01:57 2013
@@ -77,6 +77,8 @@ send_summary(struct summarize_baton_t *b
           case svn_client_diff_summarize_kind_deleted:
             summarize_kind = svn_client_diff_summarize_kind_added;
             break;
+          default:
+            break;
         }
     }
 
@@ -180,6 +182,9 @@ cb_dir_closed(svn_wc_notify_state_t *con
   struct summarize_baton_t *b = diff_baton;
   svn_boolean_t prop_change;
 
+  if (! svn_relpath_skip_ancestor(b->target, path))
+    return SVN_NO_ERROR;
+
   prop_change = apr_hash_get(b->prop_changes, path, APR_HASH_KEY_STRING) != NULL;
   if (dir_was_added || prop_change)
     SVN_ERR(send_summary(b, path,



Mime
View raw message