Sage La Torra wrote:
> On 4/9/07, David James <firstname.lastname@example.org> wrote:
>> Here's an example code snippet, which atomically replaces the "abc"
>> branch at "http://svn.collab.net/repos/svn/branches/abc" with a brand
>> new copy of trunk. This code snippet is useful for folks who want to
>> rebranch in a single atomic commit.
>> client = Client("http://svn.collab.net/repos/svn")
>> txn = client.session().txn()
>> client.cp("trunk", "branches/abc")
>> txn.commit("Rebranch the abc branch from the latest revision of
>> The above task is significantly easier to implement using csvn
>> high-level API than it is using the low-level C API. To implement the
>> above functionality using the low-level C API, you would need to drive
>> the commit editor by hand, much like mucc does, and this is not
> I think an interface like this is great: it's close to what the user
> would do if they were doing the same thing themselves on the command
> line as opposed to in code.
I also think that such an interface would be great. I don't feel
qualified to offer an opinion on whether or not to implement it using
ctypes, but however we implement it, I *strongly* encourage a consistent
interface across language bindings. This may mean a more thorough
design discussion on this list before we finalize a generic high-level
FWIW, I've been toying around with some C++ bindings for the last few
weeks, and I think the object model used for the higher-level Python
bindings would, or should, easily translate to other object-oriented
languages. It would also make writing some generic cross-layer bindings
documentation a reasonable goal.
Received on Tue Apr 10 04:44:45 2007