Sage LaTorra <> (sage)

r876735, r870420, r866522, r866521, r866520, r866502, r866286, r866272, r866271, r866270, r866214, r866213, r866212, r866202, r866201, r866200, r866199, r866138, r866136, r866134, r866077, r866076, r866056, r866055, r866054, r866003, r866002, r866001, r865982, r865930, r865929, r865927, r865926, r865925, r865859, r865857, r865815, r865798, r865797, r865796, r865788, r865737, r865735, r865719, r865716, r865699, r865635, r865634, r865536, r865486, r865348, r865270

r865270 | djames | 2007-05-29 23:25:53 +0000 (Tue, 29 May 2007)

Rename python classes to make their names more logical. The RemoteRepository
and LocalRepository classes allow direct access to repositories, but don't
allow access to working copies, so it makes more sense to call them
"repository" classes rather than "client" classes.

Patch by: Sage La Torra <>
(Tweaked by me)

* csvn/
  (ClientURI.__init__, ClientURI.join, ClientURI.dirname,
   ClientURI.longest_ancestor, RemoteRepository.__init__,
   RemoteRepository._abs_copyfrom_path): Rename ClientURI to RepositoryURI.
   Rename ClientSession to RemoteRepository. Rename LocalClient to
   LocalRepository. Adjust all callers.

  Adjust to use new names from

r865348 | djames | 2007-06-04 04:26:22 +0000 (Mon, 04 Jun 2007)

Move classes and functions which are unrelated to repositories out of and into separate modules.

Patch by: Sage La Torra <>

* csvn/, csvn/, csvn/
  (User): Move from to
  (SvnDate, LogEntry): Move from to
  (_LogMessageReceiver.receive, RemoteRepository.__init__,
   RemoteRepository.log, LocalRepository.__init__): Update
   references to moved classes.

r865486 | djames | 2007-06-15 05:59:27 +0000 (Fri, 15 Jun 2007)

* csvn/ Add a skeleton WC class for accessing and modifying
  working copies. This class is far from complete but offers some
  useful functionality.

Patch by: me
          Sage La Torra <>

r865536 | djames | 2007-06-20 05:07:16 +0000 (Wed, 20 Jun 2007)

Update the WC layer to support custom notification callbacks.

* csvn/
  (__init__): Initialize notify function and baton.
  (set_notify_func, _notify_func_wrapper): New functions.

Patch by: me
          Sage La Torra <>

r865634 | sage | 2007-06-27 22:40:15 +0000 (Wed, 27 Jun 2007)

* (COMMITERS): Added myself (Sage LaTorra) as a commiter for the 
  ctypes-python-bindings branch.

r865635 | sage | 2007-06-27 22:59:32 +0000 (Wed, 27 Jun 2007)

* csvn/
  (diff):  New method to produce the diff of something in the
           working copy against the base revision.

Patch by: me

r865699 | sage | 2007-07-02 23:21:29 +0000 (Mon, 02 Jul 2007)

Add a cleanup method to the WC class.

The cleanup method is a simple call to svn_client_cleanup().

(cleanup): New method to provide cleanup functionality. Uses
svn_client_cleanup() to do all the work.

r865716 | sage | 2007-07-03 21:28:22 +0000 (Tue, 03 Jul 2007)

Add export functionality to python WC class. Based on
svn_client_export3(), but designed to export the
working copy, not anything else.

* csvn/
  (export): New method to export the working copy.

r865719 | sage | 2007-07-04 03:17:43 +0000 (Wed, 04 Jul 2007)

Add resolved method to python WC class. The resolved
method works just like svn_client_resolved() (in fact,
it calls that function).

* csvn/
  (resolved): New method to mark a conflict as resolved.

r865735 | sage | 2007-07-05 21:54:59 +0000 (Thu, 05 Jul 2007)

Minor update to the python WC class. Fix typo,
make documentation clearer, and ensure that all
paths are canonicalized.

* csvn/
  (cleanup, resolved): Typo fixes, make sure all
  paths are canonicalized.

Suggested by: djames

r865737 | sage | 2007-07-05 22:19:47 +0000 (Thu, 05 Jul 2007)

Add mkdir method to the Python WC class. The method
takes a path or a list of paths and creates those
directories, as well as marking those directories
for addition in the next commit.

* csvn/
  (mkdir): New method to create directories in the
  working copy.

r865788 | sage | 2007-07-11 03:00:09 +0000 (Wed, 11 Jul 2007)

Add a propset method to the python ctypes WC class. Works
just like svn_client_propset2.

* csvn/
  (propset): New method to set a property. Works as a
  wrapper for svn_client_propset2().

r865796 | sage | 2007-07-12 18:59:49 +0000 (Thu, 12 Jul 2007)

Add the ability to register cancel function callbacks to
the python ctypes WC class. Cancelation callbacks are
handeled much like the notification callbacks that
have already been implemented. A wrapper function
is used to make the callback as easy as possible.

* csvn/
  (__init__): Add callback registration.
  (_cancel_func_wrapper): Wrapper to handle the callback.
  (set_cancel_func): Set a new cancel function.

r865797 | sage | 2007-07-12 19:04:59 +0000 (Thu, 12 Jul 2007)

Correct pool useage in propset method of python ctypes
WC class. Change from using pool to correctly using
iterpool for temporary string creation.

* csvn/
  (propset): Correct pool useage.

r865798 | sage | 2007-07-12 19:10:18 +0000 (Thu, 12 Jul 2007)

Make sure temporary pools are always cleared after operations
in the ctypes python WC class. 

* csvn/
  (cleanup, export, propset): Add code to clear temporary pools.

r865815 | sage | 2007-07-14 18:14:30 +0000 (Sat, 14 Jul 2007)

Add progress callback registration to the python ctypes WC
class. Using a similar approach to the notify and cancel
callbacks, the user can register a progress callback for
network progress information.

* csvn/
  (__init__): Add callback registration.
  (_progress_func_wrapper): Wrapper function that is actually
   called by the callback, calls the user registered function.
  (set_progress_func): Sets the progress function.

r865857 | sage | 2007-07-18 22:21:27 +0000 (Wed, 18 Jul 2007)

Add a status method to the python ctypes WC class. The status method allows the
user to register a callback to be called for each item in the WC, just like
svn_client_status2, with a few differences:

- The user provided callback is wrapped by a python method to ensure

- The callback is retained between calls, so if a new callback function is not
provided the previously registered one will be called.

In addition to the status method, the callback can be set using set_status_func
without walking entries.

* csvn/
  (__init__): Add code to store the user within the WC object and setup the
    auth baton. Also wrap the callback method and set the user callback to None.
  (_status_wrapper): Method to wrap the user status function.
  (set_status_func): Method to set the status callback without actually calling
  (status): Get the status of a given item in the WC using a callback.

r865859 | sage | 2007-07-18 22:30:15 +0000 (Wed, 18 Jul 2007)

Change default for user argument in python ctypes repository and wc classes. At
present, the constructors for the repository and wc classes default the user
argument to None. This needs to be changed, as if the default is used an error
is thrown as soon as a method of the user is called. This can be corrected by
defaulting the user argument to a User object (with default username and
password), so that even if the default argument is left the code will run,
though authentication may fail.

* csvn/
  (__init__): Change default user argument to a new User object to avoid
    problems when no user is provided.

* csvn/
  (LocalRepository.__init__, RemoteRepository.__init__): Change default user
    argument to a new User object to avoid problems when no user is provided.

r865925 | sage | 2007-07-26 22:26:13 +0000 (Thu, 26 Jul 2007)

Fix missing import in csvn/ User from csvn.auth is needed
for proper defaults.

* (csvn/
  (imports): Import User class from csvn.auth for proper defaults.

r865926 | sage | 2007-07-26 22:31:36 +0000 (Thu, 26 Jul 2007)

Fix typo in LocalRepository and RemoteRepository python classes. Change
"svn_node_node" to svn_node_none.

* (csvn/
  (LocalRepository.check_path, RemoteRepository.check_path): Correct documentation
  to refer to svn_node_none instead of "svn_node_node".

r865927 | sage | 2007-07-26 22:39:31 +0000 (Thu, 26 Jul 2007)

Add argument to LocalRepository.set_rev_prop so that it now works as written.
The author argument (default: NULL) is needed so that the call to
svn_repos_fs_change_rev_prop2 works as written, otherwise no variable named
author is in scope.

* (csvn/
  (set_rev_prop): Add author argument so that the code as written works. Author
    defaults to NULL.

r865929 | sage | 2007-07-26 22:45:59 +0000 (Thu, 26 Jul 2007)

Add get_rev_prop method to the ctypes python LocalRepository class to match the
set_rev_prop method. Allows the user to fetch the value of a given property at
a given revision.

* (csvn/
  (get_rev_prop): New method to allow retrieval of revision properties.

r865930 | sage | 2007-07-26 23:10:05 +0000 (Thu, 26 Jul 2007)

Add load method to LocalRepository ctypes python class. The load method loads
a dumpfile into the repository, sending feedback to a feedback file,
and calling commit hooks if requested (off by default).

* (csvn/
  (LocalRepository.load): New method to load a dumpfile into the repository.

r865982 | sage | 2007-07-31 22:03:36 +0000 (Tue, 31 Jul 2007)

Add a proplist method to the python ctypes WC class. The proplist method wraps a
call to svn_client_proplist2, but with the revision always set to the working copy
since this method is part of the WC class.

* (csvn/
  (proplist): New method to list the properties of a path.

r866001 | sage | 2007-08-01 22:49:09 +0000 (Wed, 01 Aug 2007)

Add a checkout method to the python ctypes WC class. The checkout method checks
out a new working copy, placing it in the working copy as specified by the user.
Essentially works as a wrapper for svn_client_checkout2.

* (csvn/
  (checkout): New method to checkout a working copy from a repository.

r866002 | sage | 2007-08-01 22:51:11 +0000 (Wed, 01 Aug 2007)

Add a propget method to the python ctypes WC class. Allows the user to get the
value of a prop for a given target (which may be a directory, in which case the
operation can recurse). Works as a wrapper for svn_client_propget2.

* (csvn/
  (propget): New method to get property values for the working copy.

r866003 | sage | 2007-08-01 22:57:25 +0000 (Wed, 01 Aug 2007)

Add a info method and helper functions to the python ctypes WC class. Wraps all
the functionality needed to allow the user to get info on the wc through callbacks
to a user defined function.

* (csvn/
  (__init__): Add initalization code to setup info callbacks.
  (_info_wrapper): Internal method to wrap a call to the user provided info
  (set_info_func): New method to allow the user to set the info callback without
    invoking the info method. Also used internally by the info method.
  (info): Method to get information on the working copy using a callback.

r866054 | sage | 2007-08-07 22:34:28 +0000 (Tue, 07 Aug 2007)

Add log message functions to the python ctypes WC class. New methods allow
the user to register a log message callback to provide log messages for
commit and commit-like operations.

* (csvn/
  (__init__): Add code to setup and register callbacks.
  (set_log_func): New method to set a callback to provide log messages.
  (_log_func_wrapper): Private method to wrap the user-provided callback.

r866055 | sage | 2007-08-07 22:36:02 +0000 (Tue, 07 Aug 2007)

Add commit method to the python ctypes WC class. Acts as a wrapper for

* (csvn/
  (commit): New method to commit changes in the wc back to the repository.

r866056 | sage | 2007-08-07 22:39:05 +0000 (Tue, 07 Aug 2007)

Add tests to the ctypes python bindings. This patch adds test suites for
the WC class, local and remote repositories, and utility classes, as well as
a run all. Most existing functionality of these classes is at least
basically tested by the test suite, though some features do not yet have

* (test): New directory to hold tests.

* (test/ File to run all tests.

* (test/ Tests for the wc class.

* (test/ Tests for the localrepository class.

* (test/ Tests for the remoterepository class.

* (test/ Tests for svn utility classes.

* (test/test.dumpfile): Dump of repository to be used by test scripts.

r866076 | sage | 2007-08-08 22:41:23 +0000 (Wed, 08 Aug 2007)

Add update method to python ctypes WC class, as well as a corresponding test
to the test suite. The new method acts as a wrapper for svn_client_update2, 
providing a python-ish interface. The new update test is just a basis, it
tests a couple of main features but is not comprehensive.

* (csvn/
  (update): New method to update the working copy to a given revision.
* (test/
  (test_update): New unit test to test WC update.

r866077 | sage | 2007-08-08 22:43:27 +0000 (Wed, 08 Aug 2007)

Correct docstring for set_rev_prop method to include info on author argument

* (csvn/
  (set_rev_prop): Update docstring to include information on author argument

r866134 | sage | 2007-08-13 21:31:18 +0000 (Mon, 13 Aug 2007)

Add list method and supporting methods to python ctypes WC class. Allows the user
access to the svn_client_list function, as well as supporting callbacks.

* (csvn/
  (__init__): Add code to set up callbacks.
  (_list_wrapper): Private method to wrap user callbacks
  (set_list_func): Method to allow the user to set the callback to be used.
  (list): Method to call the list callback with information about items.

r866136 | sage | 2007-08-13 21:47:23 +0000 (Mon, 13 Aug 2007)

Add relocate mehod to python ctypes WC class. Wraps the functionality of svn_client_relocate().

* (csv/
  (relocate): New method to change the urls associated with a WC.

r866138 | sage | 2007-08-13 22:23:30 +0000 (Mon, 13 Aug 2007)

Add switch method to python ctypes WC class, as well as corresponding test. Wraps
functionality of svn_client_switch().

* (csvn/
  (switch): New method to switch a path to a new url.

* (test/
  (test_switch): New unittest to test switch method.

r866199 | sage | 2007-08-16 23:29:26 +0000 (Thu, 16 Aug 2007)

Fix typo that ruins indentation in ctypes python WC class. With
current identation, the WC code will not run.

* (csvn/
  (relocate): Fix method indentation. No functionality changes.

r866200 | sage | 2007-08-16 23:56:32 +0000 (Thu, 16 Aug 2007)

Add the ability to list revision properties to the python remote
repository class.
The new revprop_list() method wraps a call to svn_client_revprop_list().
Also adds a corresponding test to the test suite.

* (csvn/
    New method to list revision properties.

* (test/
    New test, checks revprop_list() with zero or one arguments.

r866201 | sage | 2007-08-17 00:02:46 +0000 (Fri, 17 Aug 2007)

Add ability to get revision properties by name to the python remote
repository class.  The new method relies on the existing revprop_list
method to the actual heavy lifting, the new revporp_get method just
uses the hash returned. Also adds a test for the new method.

* (csvn/
    New method to get a revision property by name for a given revision.
* (test/
    New test, covers both the one and two argument calls to revprop_get().

r866202 | sage | 2007-08-17 00:47:11 +0000 (Fri, 17 Aug 2007)

Add ability to set revision props to ctypes python remote repository
class. Acts as a wrapper for svn_client_revprop_set(). Also add a test
for the new method.

* (csvn/
  (revprop_set): New method to set revision properties.
* (test/
  (test_revprop_set): New method to test revprop_set() method.

r866212 | sage | 2007-08-17 18:21:44 +0000 (Fri, 17 Aug 2007)

Correct test for relocate in python ctypes bindings. Missing part of a path
would cause test to pass in all cases.

* (test/
  (test_relocate): Correct path being checked, test now is actually useful.

r866213 | sage | 2007-08-17 18:23:56 +0000 (Fri, 17 Aug 2007)

Make sure path is canonicalized in relocate method of the python ctypes WC

Suggested By: David James

* csvn/
  (relocate): Add path canonicalization, as it should happen.

r866214 | sage | 2007-08-17 18:47:54 +0000 (Fri, 17 Aug 2007)

Add lock and unlock methods to the python ctypes WC class. Also add tests for
locking and unlocking to the test suite. Lock and unlock are implemented as
simple wrappers for svn_client_lock and svn_client_unlock.

* csvn/
  (lock): New method to create a lock.
  (unlock): New method to destroy a lock.

* test/
  (test_lock): New test for lock method.
  (test_unlock): New test for unlock method.

r866270 | sage | 2007-08-20 03:58:37 +0000 (Mon, 20 Aug 2007)

Add import method and corresponding test to ctypes python remote repository
class. Acts as a wrapper for svn_client_import2().

* csvn/
  (__init__): Add log message callback setup.
  (import): New method to import file to repository.
  (set_log_func): Method to set log function callback. 
  (_log_func_wrapper): Wrapper for user log callback.

* test/
  (test_import): Test for import method.
  (_log_func): Dummy log function, for use with import test.

r866271 | sage | 2007-08-20 04:22:42 +0000 (Mon, 20 Aug 2007)

Change the diff method of the python ctypes WC class. The original design was to
have the WC class diff method only compare the base and working revisions. This
reverses that decision, making the WC diff method an unrestricted wrapper for
svn_client_diff3(). The test for WC.diff() has also been updated to test the
expanded functionality.

* csvn/
  (diff): Diff no longer restricted to diffing working and base revisions.

* test/
  (test_diff): Extend diff test to test full functionality.

r866272 | sage | 2007-08-20 04:29:12 +0000 (Mon, 20 Aug 2007)

Fix formatting in test files. Make sure all lines are the proper length, in

* test/, test/
  Fix line length problems and other formatting.

r866286 | sage | 2007-08-20 19:13:05 +0000 (Mon, 20 Aug 2007)

Add merge method to the python ctypes WC class. Wraps the functionality of

* csvn/
  (merge): New method to merge changes.

r866502 | sage | 2007-09-02 03:54:11 +0000 (Sun, 02 Sep 2007)

Remove useless whitespace in ctypes python bindings.

Suggested by: epg

* csvn/, csvn/, csvn/ Remove useless whitespace.

r866520 | sage | 2007-09-04 21:32:23 +0000 (Tue, 04 Sep 2007)

 Update docstrings for python ctypes WC class. Updated docstrings conform to the
python style (or are at least much closer).

Suggested by: epg

* csvn/ Update all docstrings to official python format

r866521 | sage | 2007-09-04 21:46:18 +0000 (Tue, 04 Sep 2007)

Change _build_path_list to only accept lists, not single items, to avoid magic.
Also update tests to conform to new calls, as well as updating docstrings to
reflect list requirement in calling.

Suggested by: epg

* csvn/
  (): Update docstrings to reflect _build_path_list()s argument change
  (_build_path_list): Changed to only support passing lists as arguments

* test/
  (test_delete): Change test to fit new arguments
  (test_mkdir): Change test to fit new arguments

r866522 | sage | 2007-09-04 21:53:41 +0000 (Tue, 04 Sep 2007)

Change lock and unlock methods of python ctypes WC class to properly
canonicalize paths. 

Suggested by: epg

* csvn/
  (lock, unlock): Make sure paths are correctly canonicalized

r870420 | sage | 2008-04-05 17:59:09 +0000 (Sat, 05 Apr 2008)

Change named arguments of _LogMessageReceiver.collect and RemoteRepository.log
to better reflect what they do. Changed "verbose" to "discover_changed_paths"
which should be a much clearer name.

Suggested by: Eric Gillespie <>

* csvn/
  (RemoteRepository.log, _LogMessageReceiver.collect): Changed named argument
    from "verbose" to the more descriptive "discover_changed_paths"

r876735 | hwright | 2009-03-18 18:02:17 +0000 (Wed, 18 Mar 2009)

* www/svn_1.6_releasenotes.html
  (ctypes-python-bindings): Add some more content.

Patch by: sage