Markus Schaber <m.schaber@codesys.com>
r1492634 | breser | 2013-06-13 06:57:45 -0500 (Thu, 13 Jun 2013)
Fix for the README file for the cmdline tests
* subversion/tests/cmdline/README
  Fix the section about the contents of the svntest subdirectory
  to actually reflect the current contents of that directory.
Patch by: Markus Schaber <m.schaber{_AT_}codesys.com>
 
r1492145 | rhuijben | 2013-06-12 06:18:18 -0500 (Wed, 12 Jun 2013)
Make sure svn_io_read_length_line() can't get in an endless loop when neither
an EOL nor EOF is found before the buffer is filled. Add regression test.
* subversion/libsvn_subr/io.c
  (svn_io_read_length_line): If there is nothing to get, break.
* subversion/tests/libsvn_subr/io-test.c
  (read_length_line_shouldnt_loop): New function.
  (test_funcs): Add read_length_line_shouldnt_loop.
Found by: Markus Schaber <m.schaber{_AT_}codesys.com>
 
r1491756 | rhuijben | 2013-06-11 06:48:45 -0500 (Tue, 11 Jun 2013)
Fix issue #4364: Correctly remove the stale entries from the lock table when
committing deletions.
* subversion/libsvn_client/commit.c
  (post_process_commit_item): always pass the flag to remove locks for deleted
    and replaced items.
* subversion/libsvn_wc/wc-queries.sql
  Add a new query which removes all lock rows recursively for a node.
* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_base_remove): Add a new parameter remove_locks to recursively
    remove the lock rows.
* subversion/libsvn_wc/wc_db.c
  (svn_wc__db_base_remove): Forward the new remove_locks parameter to
    db_base_remove.
  (db_base_remove): Add and implement remove_locks.
  (commit_node): Also remove the locks recursively for subnodes of the
    current node.
  (bump_node_revision): Pass FALSE for remove_locks to get the old default
    behaviour.
* subversion/libsvn_wc/adm_ops.c
  (process_committed_leaf): In the shortcut for deleted nodes, pass TRUE to
    remove the locks recursively.
* subversion/libsvn_wc/crop.c
  (crop_children): Pass FALSE for remove_locks to get the old default
    behaviour.
* subversion/libsvn_wc/externals.c
  (svn_wc__external_remove): Pass FALSE for remove_locks to get the old
    default behaviour.
* subversion/libsvn_wc/update_editor.c
  (delete_entry
   close_edit): Pass FALSE for remove_locks to get the old default behaviour.
* subversion/libsvn_wc/workqueue.c
  (run_base_remove): Pass FALSE for remove_locks to get the old default
    behaviour.
* subversion/tests/libsvn_wc/op-depth-test.c
  (base_dir_insert_remove): Pass FALSE for remove_locks to get the old default
    behaviour.
* subversion/tests/cmdline/lock_tests.py
  (def drop_locks_on_parent_deletion): Provide a regression test which catches
    reappearing locks.
Patch by: Markus Schaber <m.schaber{_AT_}codesys.com>
          (minor tweaks by me)
 
r1356261 | philip | 2012-07-02 09:34:11 -0500 (Mon, 02 Jul 2012)
Optimize merge_file_trivial() by avoiding to read the files twice by
using a new comparison function which compares 3 files at once. Also
add C tests for the new and existing file comparison functions in
libsvn_subr/io.c
* subversion/include/svn_io.h
  (svn_io_filesizes_three_different_p): Add new declaration
  (svn_io_files_contents_three_same_p): Add new declaration
* subversion/libsvn_subr/io.c
  (svn_io_filesizes_three_different_p): Add new function in analogy
   to svn_io_filesizes_different_p().
  (contents_three_identical_p): Add new function in analogy to
   contents_identical_p().
  (svn_io_files_contents_three_same_p): Add new function in analogy
   to svn_io_files_contents_same_p.
* subversion/libsvn_wc/merge.c
  (merge_file_trivial): Use the new three-file comparison functions to
   avoid reading files twice.
* build.conf
  (io-test): Add the new io-test.c file to the build configuration.
* subversion/tests/libsvn_subr:
  Add the executable and temporary test file folder to svn:ignore.
* subversion/tests/libsvn_subr/io-test.c
  (create_test_file): Helper function to create a test data file.
  (create_comparison_candidates): Helper function to create the full
   set of test data files.
  (test_two_file_size_comparison): Test function for
   svn_io_filesizes_different_p.
  (test_two_file_content_comparison): Test function for
   svn_io_files_contents_same_p.
  (test_three_file_size_comparison): Test function for
   test_three_file_size_comparison.
  (test_three_file_content_comparison): Test function for
   svn_io_files_contents_three_same_p.
Patch by: Markus Schaber <m.schaber@3s-software.com>
 
r1349288 | philip | 2012-06-12 07:08:04 -0500 (Tue, 12 Jun 2012)
Fix issue 4128: no conflict for identical files.
* subversion/libsvn_wc/merge.c
  (merge_file_trivial): Successful report merge_unchanged when incoming
   file is identical to existing, locally modified file.
* subversion/tests/cmdline/update_tests.py
  (update_binary_file_3): Tweak expectations, remove XFAIL marker.
Patch by: Markus Schaber <m.schaber@3s-software.com>
 
r1296109 | danielsh | 2012-03-02 04:11:17 -0600 (Fri, 02 Mar 2012)
* subversion/tests/cmdline/README
  Mention that new python tests should be added to the end of the list.
Patch by: Markus Schaber <m.schaber@3s-software.com>
 
r1294161 | danielsh | 2012-02-27 08:02:00 -0600 (Mon, 27 Feb 2012)
Add an XFail test for issue #4128.
* subversion/tests/cmdline/update_tests.py
  (update_binary_file_3): New test.
  (test_list): Run it.
Patch by: Markus Schaber <m.schaber@3s-software.com>
 
r1211483 | rhuijben | 2011-12-07 09:54:10 -0600 (Wed, 07 Dec 2011)
Replace a segfault with a proper error code for a simple
$ svn mkdir svn://localhost -m ""
In Subversion 1.6 and earlier we just chopped of 'localhost'
and got an inresolvable url, which would return some proper error.
Found by: Markus Schaber <m.schaber{_AT_}3s-software.com>
(while using SharpSvn)
* subversion/libsvn_client/add.c
  (mkdir_urls): Don't try to calculate a uri above a uri root.
 
r1162033 | rhuijben | 2011-08-26 04:06:34 -0500 (Fri, 26 Aug 2011)
Resolve segfault when retrieving svn_wc_entry_t on a binary conflict. Also
fix a similar segfault in svn on printing conflicts. (Issue #3998)
* subversion/libsvn_wc/entries.c
  (read_one_entry): Assume that conflict paths can be NULL.
* subversion/svn/info-cmd.c
  (print_info): Assume that conflict paths can be NULL. Make conflict paths
    relative if possible.
* subversion/tests/cmdline/info_tests.py
  (binary_tree_conflict): Remove XFail. Add issue number and update the
    conflict path verification to make the test pass. Cleanup whitespace
Found by: Markus Schaber <msr{_AT_}schabi.de>
 
r1162024 | rhuijben | 2011-08-26 03:32:38 -0500 (Fri, 26 Aug 2011)
Add reproduction recipe for a segfault using 'svn info' in 1.7.x. This same
segfault can also be triggered by just retrieving svn_wc_entry_t for this
node.
* subversion/tests/cmdline/info_tests.py
  (binary_tree_conflict): New test.
  (test_list): Add binary_tree_conflict.
Found by: Markus Schaber <msr{_AT_}schabi.de>
(reported via SharpSvn)
 
r1160671 | rhuijben | 2011-08-23 08:12:20 -0500 (Tue, 23 Aug 2011)
Resolve issue #3994, "Subversion working copies that contain 'svn lock'-style"
locks cannot be upgraded.
Do this by using a single sqlite handle for performing upgrades from entries to
the wc-ng format. This makes it possible to use the normal svn_wc__db api while
upgrading.
This api usage used to work correctly before we optimized the performance of
upgrades by using a transaction (r1136525).
Before this patch the repository lock handling in the working copy verified if
a node existed via one sqlite handle, but which was part of an uncommitted
transaction in the other handle. (This is the cause of issue #3994)
This moves more of the upgrade processing in a single transaction, so it might
also improve performance a bit.
* subversion/libsvn_wc/upgrade.c
  (svn_wc_upgrade): Update caller. Don't close the sqlite database directly
    as closing wc_db will do that now.
* subversion/libsvn_wc/wc_db.c
  (svn_wc__db_upgrade_begin): Store the new sqlite handle in the now passed
    wc_db to allow using the standard wc_db api on the same database handle.
* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_upgrade_begin): Add some documentation. Update prototype.
Found by: Markus Schaber <msr{_AT_}schabi.de>