VK Sameer <sameer@collab.net>

Patch Suggested
r856359, r855361, r854455, r854360, r853232, r852993, r852655, r852015 r854506

r852015 | kfogel | 2004-11-18 05:25:25 +0000 (Thu, 18 Nov 2004)

* HACKING: Make location of design docs in Subversion website clearer.

Patch by: VK Sameer <sameer@collab.net>

r852655 | kfogel | 2005-01-04 02:39:23 +0000 (Tue, 04 Jan 2005)

Error on add or import of a path that is invalid in Subversion.  

Patch by: VK Sameer <sameer@collab.net>
(Tweaked by me.)

This partially resolves issue #1954.  However, we still need to
protect URL operations that create paths (e.g., 'svn mkdir URL').

* subversion/include/svn_path.h, subversion/libsvn_subr/path.c
  (svn_path_check_valid): New function.

* subversion/libsvn_wc/adm_ops.c
  (svn_wc_add): Call svn_path_check_valid().

* subversion/libsvn_client/commit.c
  (import_file, import_dir): Same.

* subversion/tests/clients/cmdline/commit_tests.py
  (tab_test): New test.
  (test_list): Added tab_test.
  (commit_uri_unsafe): Moved tab test parts to tab_test.

r852993 | kfogel | 2005-02-04 21:11:50 +0000 (Fri, 04 Feb 2005)

Fix issue #2147: Control chars in log messages could cause 'svn log'
to fail over DAV.  

Patch by: VK Sameer <sameer@collab.net> 
(Tweaked by me.)
Review by: Julian Foad <julianfoad@btopenworld.com>
           Philip Martin <philip@codematters.co.uk>

* subversion/include/svn_xml.h, subversion/libsvn_subr/xml.c
  (svn_xml_fuzzy_escape): New function.

* subversion/mod_dav_svn/log.c
  (log_receiver): Call svn_xml_fuzzy_escape() on the log message
    before passing it to apr_xml_quote_string().

* subversion/tests/clients/cmdline/log_tests.py
  (escape_control_chars): New test.
  (test_list): Run it.

* subversion/libsvn_subr/utf.c
  (svn_utf__cstring_from_utf8_fuzzy): Add comment about staying
    consistent with svn_xml_fuzzy_escape().

r853232 | kfogel | 2005-02-25 21:49:44 +0000 (Fri, 25 Feb 2005)

Resolve issue #2154: 'svn blame' on a directory over DAV would get a
messy "invalid XML" complaint instead of a clean error.

Patch by: VK Sameer <sameer@collab.net>

* subversion/tests/clients/cmdline/blame_tests.py
  (blame_directory): Add new test to blame a directory.
  test_list: Added blame_directory test.

* subversion/mod_dav_svn/file_revs.c
  (dav_svn__file_revs_report): Change to return immediately without
  cleanup if svn_repos_get_file_revs() returns an error.

* subversion/libsvn_repos/rev_hunt.c
  (svn_repos_get_file_revs): Add path when generating error message.

r854360 | lundblad | 2005-04-18 11:49:35 +0000 (Mon, 18 Apr 2005)

Fix davautocheck.sh failures caused by looking for mod_dav_svn.so
in invalid location.  Add authentication directives to httpd
configuration for lock-tests in 'make davautocheck'.

Patch by: Vivek C. <vivek@collab.net>
          VK Sameer <sameer@collab.net>
(Tweaked by me.)
Review by: Markus Rückert <darix@web.de>
           Max Bowsher <maxb@ukf.net>

* subversion/tests/clients/cmdline/davautocheck.sh
  Docstring fixes.
  (APXS): variable for apxs (value may be from --with-apxs)
  (HTPASSWD): new variable for htpasswd
  (HTTPD): modified to use apxs to locate httpd
  (HTTPD_CFG): add authentication directives for locking tests
  (HTTPD_USERS): new password file variable
  (get_loadmodule_config): use apxs to find LIBEXECDIR instead of
  hard-coding Apache modules directory

r854455 | lundblad | 2005-04-21 21:23:58 +0000 (Thu, 21 Apr 2005)

Make davautocheck use the apxs specified at configure time and kill
Apache on signals.

Patch by: VK Sameer <sameer@collab.net>
(Tweaked by me.)
Suggestions by: Eric Hanchrow <offby1@blarg.net>

* Makefile.in
  (davautocheck): Add $(APXS) to davautocheck.sh invocation.

* subversion/tests/clients/cmdline/davautocheck.sh
  (trap_cleanup): New function.
  Catch some signals and call trap_cleanup.

r854506 | lundblad | 2005-04-25 09:14:41 +0000 (Mon, 25 Apr 2005)

Followup to r14381.

Suggested by: VK Sameer <sameer@collab.net>

* subversion/tests/clients/cmdline/davautocheck.sh:
  Remove redundant check for Apache PID file existence.

r855361 | kfogel | 2005-07-07 18:03:23 +0000 (Thu, 07 Jul 2005)

Fix issue #2264: Send multiple locks/unlocks at once over ra_svn.
Note that lock_tests.py #22 ('lock_several_files') already covers this.

Patch by: VK Sameer <sameer@collab.net>

* subversion/libsvn_ra_svn/ra_svn.h
  (svn_ra_svn__handle_failure_status): New function pulled out of
  svn_ra_svn_read_cmd_response to allow lower-level handling of
  cmd response.

* subversion/libsvn_ra_svn/marshal.c
  (svn_ra_svn__handle_failure_status): New function.
  (svn_ra_svn_read_cmd_response): Refactored to call

* subversion/libsvn_ra_svn/client.c:
  (ra_svn_vtable): Function pointers for "lock" and "unlock" changed to
  lock_many and unlock_many, respectively.
  (ra_svn_lock_compat): Old ra_svn_lock, fallback for 1.2.x servers.
  (ra_svn_unlock_compat): Old ra_svn_unlock, fallback for 1.2.x servers.
  (ra_svn_lock): Modified to implement "lock-many" verb.
  (ra_svn_unlock): Modified to implement "unlock-many" verb

* subversion/libsvn_ra_svn/protocol:
  Added grammar for "lock-many", "unlock-many"

* subversion/libsvn_ra_svn/serve.c:
  (main_commands): Added "lock-many", "unlock-many" verbs and corresponding
  function pointers.
  (lock_many): New function to implement "lock-many" verb.
  (unlock_many): New function to implement "unlock-many" verb.

r856359 | lundblad | 2005-09-26 19:57:57 +0000 (Mon, 26 Sep 2005)

Follow-up to r15287 to fix the regression it caused: (un)locking
multiple files over ra_svn would fail for benign (un)locking errors.
Modify the ra_svn protocol and implementation for (un)lock-many to
return status for each path on (un)lock.

Patch by: VK Sameer <sameer@collab.net>

* subversion/libsvn_ra_svn/protocol: Grammar change:
  (lock-many, unlock-many): Allow an error to be returned for each path to
  be (un)locked.

* subversion/libsvn_ra_svn/client.c
  (ra_svn_lock): Accept multiple lock-many responses from server.
  Avoid leaking an error.
  (ra_svn_unlock): Accept multiple unlock-many responses from server.
  Avoid error leak.

* subversion/svnserve/serve.c:
  (lock_many, unlock_many): Rreturns multiple lock description or error
  for each path.

* subversion/tests/clients/cmdline/lock_tests.py:
  (unlock_already_unlocked_files): New test.
  (test_list): Add unlock_already_added_files.