Hello Subversion devs.

I had a thought that, as the move-tracking experimental design I was working on a few years ago isn't heading anywhere, we should remove the associated code, as it is better to keep a cleaner codebase on trunk and releases.

The associated code is almost entirely decoupled from the public interfaces. (There was one undocumented environment-variable: see in the patch below.) Therefore there seems to be no impact from removing it. I did one basic test run ('make svnserveautocheck') at r1915144 and all those tests pass.

I am happy to commit this patch if the community agrees.

It looks like this:

[[[
Remove the old move-tracking experiment.

No impact on public functionality. (There was one undocumented environment-variable.)
]]]

[[[
$ svn diff --no-diff-deleted
Index: LICENSE
===================================================================
--- LICENSE     (revision 1915144)
+++ LICENSE     (working copy)
@@ -367,35 +367,6 @@
  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-For the (modified) 'linenoise' library in tools/dev/svnmover/linenoise
-
-  Copyright (c) 2010-2014, Salvatore Sanfilippo <antirez at gmail dot com>
-  Copyright (c) 2010-2013, Pieter Noordhuis <pcnoordhuis at gmail dot com>
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice,
-    this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 For the (modified) LZ4 library files in subversion/libsvn_subr/lz4

   LZ4 Library
Index: build/generator/gen_base.py
===================================================================
--- build/generator/gen_base.py (revision 1915144)
+++ build/generator/gen_base.py (working copy)
@@ -664,7 +664,7 @@
     TargetLinked.add_dependencies(self)

     # collect test programs
-    if 'svnauthz' in self.name or 'svnmover' in self.name: # special case
+    if 'svnauthz' in self.name: # special case
       self.gen_obj.test_deps.append(self.filename)
       self.gen_obj.test_helpers.append(self.filename)
     elif self.install == 'test':
Index: build.conf
===================================================================
--- build.conf  (revision 1915144)
+++ build.conf  (working copy)
@@ -48,8 +48,6 @@
         subversion/bindings/cxx/tests/*.hpp
         subversion/bindings/javahl/native/*.hpp
         subversion/bindings/javahl/native/jniwrapper/jni_*.hpp
-        tools/dev/svnmover/linenoise/linenoise.h
-        tools/dev/svnmover/linenoise/linenoise.c
         subversion/libsvn_subr/utf8proc/utf8proc_internal.h
         subversion/libsvn_subr/utf8proc/utf8proc.c
         subversion/libsvn_subr/utf8proc/utf8proc_data.c
@@ -258,7 +256,7 @@
 install = fsmod-lib
 path = subversion/libsvn_delta
 libs = libsvn_subr aprutil apriconv apr zlib
-msvc-export = svn_delta.h private/svn_editor.h private/svn_delta_private.h private/svn_element.h private/svn_branch.h private/svn_branch_compat.h private/svn_branch_impl.h private/svn_branch_nested.h private/svn_branch_repos.h
+msvc-export = svn_delta.h private/svn_editor.h private/svn_delta_private.h

 # Routines for diffing
 [libsvn_diff]
@@ -1576,7 +1574,7 @@
        svnversion
        mod_authz_svn mod_dav_svn mod_dontdothat
        svnauthz svnauthz-validate svnraisetreeconflict
-       svnfsfs svnbench svnmover
+       svnfsfs svnbench

 [__ALL_TESTS__]
 type = project
@@ -1745,14 +1743,6 @@
 install = tools
 libs = libsvn_subr apr

-[svnmover]
-description = Subversion Mover Command Client
-type = exe
-path = tools/dev/svnmover
-sources = *.c
-libs = libsvn_client libsvn_ra libsvn_subr libsvn_delta apriconv apr
-install = tools
-
 [svnconflict]
 type = exe
 path = tools/client-side/svnconflict
Index: notes/move-tracking/README (deleted)
===================================================================
Index: notes/move-tracking/element-model/CommitBranch1.pdf (deleted)
===================================================================
Index: notes/move-tracking/element-model/MergeBranch1.pdf (deleted)
===================================================================
Index: notes/move-tracking/element-model/NestedBranches.svg (deleted)
===================================================================
Index: notes/move-tracking/element-model/TopLevelBranches.svg (deleted)
===================================================================
Index: notes/move-tracking/element-model/moves-element-model.html (deleted)
===================================================================
Index: notes/move-tracking/element-model/moves-element-model.lyx (deleted)
===================================================================
Index: notes/move-tracking/path_pairs_to_eid_map.py (deleted)
===================================================================
Index: subversion/include/private/svn_branch.h (deleted)
===================================================================
Index: subversion/include/private/svn_branch_compat.h (deleted)
===================================================================
Index: subversion/include/private/svn_branch_impl.h (deleted)
===================================================================
Index: subversion/include/private/svn_branch_nested.h (deleted)
===================================================================
Index: subversion/include/private/svn_branch_repos.h (deleted)
===================================================================
Index: subversion/include/private/svn_element.h (deleted)
===================================================================
Index: subversion/libsvn_client/client.h
===================================================================
--- subversion/libsvn_client/client.h   (revision 1915144)
+++ subversion/libsvn_client/client.h   (working copy)
@@ -1198,22 +1198,6 @@

 } merge_target_t;

-/*
- * Similar API to svn_client_merge_peg5().
- */
-svn_error_t *
-svn_client__merge_elements(svn_boolean_t *use_sleep,
-                           apr_array_header_t *merge_sources,
-                           merge_target_t *target,
-                           svn_ra_session_t *ra_session,
-                           svn_boolean_t diff_ignore_ancestry,
-                           svn_boolean_t force_delete,
-                           svn_boolean_t dry_run,
-                           const apr_array_header_t *merge_options,
-                           svn_client_ctx_t *ctx,
-                           apr_pool_t *result_pool,
-                           apr_pool_t *scratch_pool);
-
 /* Data for reporting when a merge aborted because of raising conflicts.
  *
* ### TODO: More info, including the ranges (or other parameters) the user
Index: subversion/libsvn_client/merge.c
===================================================================
--- subversion/libsvn_client/merge.c    (revision 1915144)
+++ subversion/libsvn_client/merge.c    (working copy)
@@ -12016,21 +12016,6 @@

   /* Do the real merge!  (We say with confidence that our merge
      sources are both ancestral and related.) */
-  if (getenv("SVN_ELEMENT_MERGE")
-      && same_repos
-      && (depth == svn_depth_infinity || depth == svn_depth_unknown)
-      && ignore_mergeinfo
-      && !record_only)
-    {
-      err = svn_client__merge_elements(&use_sleep,
-                                       merge_sources, target, ra_session,
-                                       diff_ignore_ancestry, force_delete,
-                                       dry_run, merge_options,
-                                       ctx, result_pool, scratch_pool);
-      /* ### Currently this merge just errors out on any conflicts */
-      *conflict_report = NULL;
-    }
-  else
   err = do_merge(NULL, NULL, conflict_report, &use_sleep,
                  merge_sources, target, ra_session,
                  TRUE /*sources_related*/, same_repos, ignore_mergeinfo,
Index: subversion/libsvn_client/merge_elements.c (deleted)
===================================================================
Index: subversion/libsvn_delta/branch.c (deleted)
===================================================================
Index: subversion/libsvn_delta/branch_compat.c (deleted)
===================================================================
Index: subversion/libsvn_delta/branch_migrate.c (deleted)
===================================================================
Index: subversion/libsvn_delta/branch_nested.c (deleted)
===================================================================
Index: subversion/libsvn_delta/branch_repos.c (deleted)
===================================================================
Index: subversion/libsvn_delta/element.c (deleted)
===================================================================
Index: subversion/tests/cmdline/svnmover_tests.py (deleted)
===================================================================
Index: subversion/tests/cmdline/svntest/actions.py
===================================================================
--- subversion/tests/cmdline/svntest/actions.py (revision 1915144)
+++ subversion/tests/cmdline/svntest/actions.py (working copy)
@@ -432,27 +432,6 @@
   return output


-def run_and_verify_svnmover(expected_stdout, expected_stderr,
-                            *varargs):
-  """Run svnmover command and check its output"""
-
-  expected_exit = 0
-  if expected_stderr is not None and expected_stderr != []:
-    expected_exit = 1
-  return run_and_verify_svnmover2(expected_stdout, expected_stderr,
-                                  expected_exit, *varargs)
-
-def run_and_verify_svnmover2(expected_stdout, expected_stderr,
-                             expected_exit, *varargs):
-  """Run svnmover command and check its output and exit code."""
-
-  exit_code, out, err = main.run_svnmover(*varargs)
-  verify.verify_outputs("Unexpected output", out, err,
-                        expected_stdout, expected_stderr)
- verify.verify_exit_code("Unexpected return code", exit_code, expected_exit)
-  return exit_code, out, err
-
-
 def run_and_verify_svnmucc(expected_stdout, expected_stderr,
                            *varargs):
   """Run svnmucc command and check its output"""
Index: subversion/tests/cmdline/svntest/main.py
===================================================================
--- subversion/tests/cmdline/svntest/main.py    (revision 1915144)
+++ subversion/tests/cmdline/svntest/main.py    (working copy)
@@ -209,7 +209,6 @@
 svnauthz_validate_binary = os.path.abspath(
     '../../../tools/server-side/svnauthz-validate' + _exe
 )
-svnmover_binary = os.path.abspath('../../../tools/dev/svnmover/svnmover' + _exe)

 # Where to find the libtool script created during build
 libtool_script = os.path.abspath('../../../libtool')
@@ -905,12 +904,6 @@
   as list of lines (including line terminators)."""
   return run_command(svnversion_binary, 1, False, *varargs)

-def run_svnmover(*varargs):
-  """Run svnmover with VARARGS, returns exit code as int; stdout, stderr as
-  list of lines (including line terminators)."""
-  return run_command(svnmover_binary, 1, False,
-                     *(_with_auth(_with_config_dir(varargs))))
-
 def run_svnmucc(*varargs):
   """Run svnmucc with VARARGS, returns exit code as int; stdout, stderr as
list of lines (including line terminators). Use binary mode for output."""
@@ -2500,7 +2493,6 @@
   global svnsync_binary
   global svndumpfilter_binary
   global svnversion_binary
-  global svnmover_binary
   global svnmucc_binary
   global svnauthz_binary
   global svnauthz_validate_binary
@@ -2610,7 +2602,6 @@
     svnauthz_binary = os.path.join(options.tools_bin, 'svnauthz' + _exe)
     svnauthz_validate_binary = os.path.join(options.tools_bin,
                                             'svnauthz-validate' + _exe)
-    svnmover_binary = os.path.join(options.tools_bin, 'svnmover' + _exe)

   ######################################################################

Index: tools/dev/svnmover/linenoise/LICENSE (deleted)
===================================================================
Index: tools/dev/svnmover/linenoise/README.markdown (deleted)
===================================================================
Index: tools/dev/svnmover/linenoise/linenoise.c (deleted)
===================================================================
Index: tools/dev/svnmover/linenoise/linenoise.h (deleted)
===================================================================
Index: tools/dev/svnmover/merge3.c (deleted)
===================================================================
Index: tools/dev/svnmover/ra.c (deleted)
===================================================================
Index: tools/dev/svnmover/scanlog.c (deleted)
===================================================================
Index: tools/dev/svnmover/svnmover.c (deleted)
===================================================================
Index: tools/dev/svnmover/svnmover.h (deleted)
===================================================================
Index: tools/dev/svnmover/util.c (deleted)
===================================================================
]]]

--
- Julian Foad

--
- Matrix me: @julian:foad.me.uk <https://matrix.to/#/@julian:foad.me.uk>
- Follow me: @jul...@fed.foad.me.uk <https://fed.foad.me.uk/julian>

Reply via email to