[svn r37770] remove very old try at doing svn bindings
--HG-- branch : trunk
This commit is contained in:
parent
e5d7fcd0d8
commit
31f4c194e8
|
@ -1,110 +0,0 @@
|
||||||
"""
|
|
||||||
|
|
||||||
module defining subversion path objects.
|
|
||||||
|
|
||||||
SvnBindingPath implementation using svn-swig-py-bindings
|
|
||||||
|
|
||||||
"""
|
|
||||||
# import svn swig-c-bindings
|
|
||||||
|
|
||||||
if 0:
|
|
||||||
#import svn.client, svn.core, svn.util, atexit
|
|
||||||
#svn.util.apr_initialize()
|
|
||||||
#atexit.register(svn.util.apr_terminate)
|
|
||||||
|
|
||||||
#import os, sys, time, re
|
|
||||||
#from common import *
|
|
||||||
#from svncommon import _cache, _repocache, SvnPathBase
|
|
||||||
|
|
||||||
class SvnBindingPath(SvnPathBase):
|
|
||||||
pool = svn.util.svn_pool_create(None)
|
|
||||||
|
|
||||||
def _make_rev_t(self):
|
|
||||||
rev = svn.core.svn_opt_revision_t()
|
|
||||||
if self.rev is not None:
|
|
||||||
rev.kind = svn.core.svn_opt_revision_number
|
|
||||||
rev.value.number = self.rev
|
|
||||||
return rev
|
|
||||||
|
|
||||||
def _make_cctx(self):
|
|
||||||
cctx = svn.client.svn_client_ctx_t()
|
|
||||||
provider = svn.client.svn_client_get_simple_provider(self.pool)
|
|
||||||
cctx.auth_baton = svn.util.svn_auth_open([provider], self.pool)
|
|
||||||
return cctx
|
|
||||||
|
|
||||||
def open(self, mode='r'):
|
|
||||||
assert 'w' not in mode and 'a' not in mode
|
|
||||||
assert self.exists() # svn cat returns an empty file otherwise
|
|
||||||
return os.popen("svn cat -r %s '%s'" % (self.rev, self.strpath))
|
|
||||||
# XXX we don't know how to make our own stream
|
|
||||||
#from svn import client, util, core
|
|
||||||
#url = self.strpath
|
|
||||||
#rev = self._make_rev_t()
|
|
||||||
#cctx = self._make_cctx()
|
|
||||||
#stream = core.svn_stream_create(None, self.pool)
|
|
||||||
#client.svn_client_cat(stream, url, rev, cctx, self.pool)
|
|
||||||
#return stream.get_value()
|
|
||||||
|
|
||||||
def _propget(self, name):
|
|
||||||
url = self.strpath
|
|
||||||
rev = self._make_rev_t()
|
|
||||||
cctx = self._make_cctx()
|
|
||||||
|
|
||||||
table = svn.client.svn_client_propget(name, url, rev, 0, cctx, self.pool)
|
|
||||||
return str(table.values()[0])
|
|
||||||
|
|
||||||
def _proplist(self):
|
|
||||||
url = self.strpath
|
|
||||||
rev = self._make_rev_t()
|
|
||||||
cctx = self._make_cctx()
|
|
||||||
table = svn.client.svn_client_proplist(url, rev, 0, cctx, self.pool)
|
|
||||||
|
|
||||||
if not table:
|
|
||||||
return {}
|
|
||||||
content = table[0][1]
|
|
||||||
for name, value in content.items():
|
|
||||||
content[name] = str(value)
|
|
||||||
return content
|
|
||||||
|
|
||||||
def exists(self):
|
|
||||||
try:
|
|
||||||
self.proplist()
|
|
||||||
except RuntimeError, e:
|
|
||||||
if e.args[0].lower().find('unknown node')!=-1:
|
|
||||||
return 0
|
|
||||||
raise
|
|
||||||
return 1
|
|
||||||
|
|
||||||
def _listdir_nameinfo(self):
|
|
||||||
""" return a tuple of paths on 'self' as a directory """
|
|
||||||
url = self.strpath
|
|
||||||
rev = self._make_rev_t()
|
|
||||||
cctx = self._make_cctx()
|
|
||||||
try:
|
|
||||||
dic = svn.client.svn_client_ls(url, rev, 0, cctx, self.pool)
|
|
||||||
except RuntimeError, e:
|
|
||||||
raise IOError(e.args)
|
|
||||||
|
|
||||||
nameinfo_seq = map(lambda x: (x[0], InfoSvnBinding(x[1])), dic.items())
|
|
||||||
return nameinfo_seq
|
|
||||||
|
|
||||||
class InfoSvnBinding:
|
|
||||||
def __init__(self, _info):
|
|
||||||
self.size = _info.size
|
|
||||||
self.time = _info.time
|
|
||||||
self.last_author = _info.last_author
|
|
||||||
self.created_rev = _info.created_rev
|
|
||||||
self.has_props = _info.has_props
|
|
||||||
|
|
||||||
if _info.kind == svn.core.svn_node_dir:
|
|
||||||
self.kind = 'dir'
|
|
||||||
elif _info.kind == svn.core.svn_node_file:
|
|
||||||
self.kind = 'file'
|
|
||||||
else:
|
|
||||||
raise ValueError, "unknown kind of svn object"
|
|
||||||
|
|
||||||
self.mtime = self.time / 1000000
|
|
||||||
def __eq__(self, other):
|
|
||||||
return self.__dict__ == other.__dict__
|
|
||||||
|
|
||||||
SvnPath = SvnBindingPath
|
|
Loading…
Reference in New Issue