summaryrefslogtreecommitdiff
path: root/subvertpy/ra_svn.py
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@jelmer.uk>2017-07-16 21:31:45 +0000
committerJelmer Vernooij <jelmer@jelmer.uk>2017-07-16 21:31:45 +0000
commitc1b317d2a65ce63720cf3edd488e868532918add (patch)
treed81c4093d903068b6cd069cd909d12f6f2af056b /subvertpy/ra_svn.py
parentd0930fe3cc3e3d349631650bb1da9c01134c5e95 (diff)
Fix style issues.
Diffstat (limited to 'subvertpy/ra_svn.py')
-rw-r--r--subvertpy/ra_svn.py178
1 files changed, 109 insertions, 69 deletions
diff --git a/subvertpy/ra_svn.py b/subvertpy/ra_svn.py
index 7b92bfeb..3e61e283 100644
--- a/subvertpy/ra_svn.py
+++ b/subvertpy/ra_svn.py
@@ -122,7 +122,7 @@ class SVNConnection(object):
except NeedMoreData:
newdata = self.recv_fn(1)
if newdata != "":
- #self.mutter("IN: %r" % newdata)
+ # self.mutter("IN: %r" % newdata)
self.inbuffer += newdata
def send_msg(self, data):
@@ -158,7 +158,8 @@ def feed_editor(conn, editor):
if len(args[3]) == 0:
token = tokens[args[1]].add_directory(args[0])
else:
- token = tokens[args[1]].add_directory(args[0], args[3][0], args[4][0])
+ token = tokens[args[1]].add_directory(
+ args[0], args[3][0], args[4][0])
tokens[args[2]] = token
elif command == "open-dir":
tokens[args[2]] = tokens[args[1]].open_directory(args[0], args[3])
@@ -175,15 +176,18 @@ def feed_editor(conn, editor):
if len(args[3]) == 0:
token = tokens[args[1]].add_file(args[0])
else:
- token = tokens[args[1]].add_file(args[0], args[3][0], args[4][0])
+ token = tokens[args[1]].add_file(
+ args[0], args[3][0], args[4][0])
tokens[args[2]] = token
elif command == "open-file":
tokens[args[2]] = tokens[args[1]].open_file(args[0], args[3])
elif command == "apply-textdelta":
if len(args[1]) == 0:
- txdelta_handler[args[0]] = tokens[args[0]].apply_textdelta(None)
+ txdelta_handler[args[0]] = tokens[args[0]].apply_textdelta(
+ None)
else:
- txdelta_handler[args[0]] = tokens[args[0]].apply_textdelta(args[1][0])
+ txdelta_handler[args[0]] = tokens[args[0]].apply_textdelta(
+ args[1][0])
diff[args[0]] = ""
elif command == "textdelta-chunk":
diff[args[0]] += args[1]
@@ -220,7 +224,7 @@ class Reporter(object):
self.conn = conn
self.editor = editor
- def set_path(self, path, rev, start_empty=False, lock_token=None,
+ def set_path(self, path, rev, start_empty=False, lock_token=None,
depth=None):
args = [path, rev, start_empty]
if lock_token is not None:
@@ -235,8 +239,8 @@ class Reporter(object):
def delete_path(self, path):
self.conn.send_msg([literal("delete-path"), [path]])
- def link_path(self, path, url, rev, start_empty=False, lock_token=None,
- depth=None):
+ def link_path(self, path, url, rev, start_empty=False, lock_token=None,
+ depth=None):
args = [path, url, rev, start_empty]
if lock_token is not None:
args.append([lock_token])
@@ -249,7 +253,7 @@ class Reporter(object):
def finish(self):
self.conn.send_msg([literal("finish-report"), []])
- auth = self.conn.recv_msg()
+ self.conn.recv_msg()
feed_editor(self.conn, self.editor)
self.conn.busy = False
@@ -301,18 +305,21 @@ class DirectoryEditor(object):
copyfrom_data = [copyfrom_path, copyfrom_rev]
else:
copyfrom_data = []
- self.conn.send_msg([literal("add-file"), [path, self.id, child, copyfrom_data]])
+ self.conn.send_msg([literal("add-file"),
+ [path, self.id, child, copyfrom_data]])
return FileEditor(self.conn, child)
def open_file(self, path, base_revnum):
self._is_last_open()
child = generate_random_id()
- self.conn.send_msg([literal("open-file"), [path, self.id, child, base_revnum]])
+ self.conn.send_msg([literal("open-file"),
+ [path, self.id, child, base_revnum]])
return FileEditor(self.conn, child)
def delete_entry(self, path, base_revnum):
self._is_last_open()
- self.conn.send_msg([literal("delete-entry"), [path, base_revnum, self.id]])
+ self.conn.send_msg([literal("delete-entry"),
+ [path, base_revnum, self.id]])
def add_directory(self, path, copyfrom_path=None, copyfrom_rev=-1):
self._is_last_open()
@@ -321,13 +328,15 @@ class DirectoryEditor(object):
copyfrom_data = [copyfrom_path, copyfrom_rev]
else:
copyfrom_data = []
- self.conn.send_msg([literal("add-dir"), [path, self.id, child, copyfrom_data]])
+ self.conn.send_msg([literal("add-dir"),
+ [path, self.id, child, copyfrom_data]])
return DirectoryEditor(self.conn, child)
def open_directory(self, path, base_revnum):
self._is_last_open()
child = generate_random_id()
- self.conn.send_msg([literal("open-dir"), [path, self.id, child, base_revnum]])
+ self.conn.send_msg([literal("open-dir"),
+ [path, self.id, child, base_revnum]])
return DirectoryEditor(self.conn, child)
def change_prop(self, name, value):
@@ -336,7 +345,8 @@ class DirectoryEditor(object):
value = []
else:
value = [value]
- self.conn.send_msg([literal("change-dir-prop"), [self.id, name, value]])
+ self.conn.send_msg([literal("change-dir-prop"),
+ [self.id, name, value]])
def _is_last_open(self):
assert self.conn._open_ids[-1] == self.id
@@ -374,13 +384,17 @@ class FileEditor(object):
base_check = []
else:
base_check = [base_checksum]
- self.conn.send_msg([literal("apply-textdelta"), [self.id, base_check]])
- self.conn.send_msg([literal("textdelta-chunk"), [self.id, SVNDIFF0_HEADER]])
+ self.conn.send_msg([literal("apply-textdelta"),
+ [self.id, base_check]])
+ self.conn.send_msg([literal("textdelta-chunk"),
+ [self.id, SVNDIFF0_HEADER]])
+
def send_textdelta(delta):
if delta is None:
self.conn.send_msg([literal("textdelta-end"), [self.id]])
else:
- self.conn.send_msg([literal("textdelta-chunk"), [self.id, pack_svndiff0_window(delta)]])
+ self.conn.send_msg([literal("textdelta-chunk"),
+ [self.id, pack_svndiff0_window(delta)]])
return send_textdelta
def change_prop(self, name, value):
@@ -389,11 +403,12 @@ class FileEditor(object):
value = []
else:
value = [value]
- self.conn.send_msg([literal("change-file-prop"), [self.id, name, value]])
+ self.conn.send_msg([literal("change-file-prop"),
+ [self.id, name, value]])
def mark_busy(unbound):
-
+
def convert(self, *args, **kwargs):
self.busy = True
try:
@@ -406,6 +421,7 @@ def mark_busy(unbound):
convert.__name__ = unbound.__name__
return convert
+
def unmarshall_dirent(d):
ret = {
"name": d[0],
@@ -423,7 +439,7 @@ def unmarshall_dirent(d):
class SVNClient(SVNConnection):
- def __init__(self, url, progress_cb=None, auth=None, config=None,
+ def __init__(self, url, progress_cb=None, auth=None, config=None,
client_string_func=None, open_tmp_file_func=None):
self.url = url
(type, opaque) = urlparse.splittype(url)
@@ -439,12 +455,19 @@ class SVNClient(SVNConnection):
else:
(recv_func, send_func) = self._connect_ssh(host)
super(SVNClient, self).__init__(recv_func, send_func)
- (min_version, max_version, _, self._server_capabilities) = self._recv_greeting()
- self.send_msg([max_version, [literal(x) for x in CAPABILITIES if x in self._server_capabilities], self.url])
+ (min_version, max_version, _, self._server_capabilities) = (
+ self._recv_greeting())
+ self.send_msg(
+ [max_version,
+ [literal(x) for x in CAPABILITIES
+ if x in self._server_capabilities],
+ self.url])
(self._server_mechanisms, mech_arg) = self._unpack()
if self._server_mechanisms != []:
# FIXME: Support other mechanisms as well
- self.send_msg([literal("ANONYMOUS"), [base64.b64encode("anonymous@%s" % socket.gethostname())]])
+ self.send_msg([literal("ANONYMOUS"),
+ [base64.b64encode(
+ "anonymous@%s" % socket.gethostname())]])
self.recv_msg()
msg = self._unpack()
if len(msg) > 2:
@@ -475,9 +498,11 @@ class SVNClient(SVNConnection):
def _connect(self, host):
(host, port) = urlparse.splitnport(host, SVN_PORT)
- sockaddrs = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
+ sockaddrs = socket.getaddrinfo(
+ host, port, socket.AF_UNSPEC,
socket.SOCK_STREAM, 0, 0)
self._socket = None
+ err = RuntimeError('no addresses for %s:%s' % (host, port))
for (family, socktype, proto, canonname, sockaddr) in sockaddrs:
try:
self._socket = socket.socket(family, socktype, proto)
@@ -500,7 +525,8 @@ class SVNClient(SVNConnection):
else:
password = None
(host, port) = urlparse.splitnport(host, 22)
- self._tunnel = get_ssh_vendor().connect_ssh(user, password, host, port, ["svnserve", "-t"])
+ self._tunnel = get_ssh_vendor().connect_ssh(
+ user, password, host, port, ["svnserve", "-t"])
return (self._tunnel.recv, self._tunnel.send)
def get_file_revs(self, path, start, end, file_rev_handler):
@@ -508,7 +534,8 @@ class SVNClient(SVNConnection):
@mark_busy
def get_locations(self, path, peg_revision, location_revisions):
- self.send_msg([literal("get-locations"), [path, peg_revision, location_revisions]])
+ self.send_msg([literal("get-locations"), [path, peg_revision,
+ location_revisions]])
self._recv_ack()
ret = {}
while True:
@@ -530,10 +557,11 @@ class SVNClient(SVNConnection):
def unlock(self, path_tokens, break_lock, lock_func):
raise NotImplementedError(self.unlock)
- def mergeinfo(self, paths, revision=-1, inherit=None, include_descendants=False):
+ def mergeinfo(self, paths, revision=-1, inherit=None,
+ include_descendants=False):
raise NotImplementedError(self.mergeinfo)
- def location_segments(self, path, start_revision, end_revision,
+ def location_segments(self, path, start_revision, end_revision,
include_merged_revisions=False):
args = [path]
if start_revision is None or start_revision == -1:
@@ -571,7 +599,8 @@ class SVNClient(SVNConnection):
self.send_msg([literal("check-path"), args])
self._recv_ack()
ret = self._unpack()[0]
- return {"dir": NODE_DIR, "file": NODE_FILE, "unknown": NODE_UNKNOWN, "none": NODE_NONE}[ret]
+ return {"dir": NODE_DIR, "file": NODE_FILE, "unknown": NODE_UNKNOWN,
+ "none": NODE_NONE}[ret]
def get_lock(self, path):
self.send_msg([literal("get-lock"), [path]])
@@ -583,13 +612,14 @@ class SVNClient(SVNConnection):
return ret[0]
@mark_busy
- def get_dir(self, path, revision=-1, dirent_fields=0, want_props=True, want_contents=True):
+ def get_dir(self, path, revision=-1, dirent_fields=0, want_props=True,
+ want_contents=True):
args = [path]
if revision is None or revision == -1:
args.append([])
else:
args.append([revision])
-
+
args += [want_props, want_contents]
fields = []
@@ -646,7 +676,7 @@ class SVNClient(SVNConnection):
self._recv_ack()
self._unparse()
- def get_commit_editor(self, revprops, callback=None, lock_tokens=None,
+ def get_commit_editor(self, revprops, callback=None, lock_tokens=None,
keep_locks=False):
args = [revprops[properties.PROP_REVISION_LOG]]
if lock_tokens is not None:
@@ -675,16 +705,19 @@ class SVNClient(SVNConnection):
return ret[0]
@mark_busy
- def replay(self, revision, low_water_mark, update_editor, send_deltas=True):
- self.send_msg([literal("replay"), [revision, low_water_mark, send_deltas]])
+ def replay(self, revision, low_water_mark, update_editor,
+ send_deltas=True):
+ self.send_msg([literal("replay"), [revision, low_water_mark,
+ send_deltas]])
self._recv_ack()
feed_editor(self, update_editor)
self._unpack()
@mark_busy
- def replay_range(self, start_revision, end_revision, low_water_mark, cbs,
+ def replay_range(self, start_revision, end_revision, low_water_mark, cbs,
send_deltas=True):
- self.send_msg([literal("replay-range"), [start_revision, end_revision, low_water_mark, send_deltas]])
+ self.send_msg([literal("replay-range"), [start_revision, end_revision,
+ low_water_mark, send_deltas]])
self._recv_ack()
for i in range(start_revision, end_revision+1):
msg = self.recv_msg()
@@ -694,7 +727,7 @@ class SVNClient(SVNConnection):
cbs[1](i, dict(msg[1]), edit)
self._unpack()
- def do_switch(self, revision_to_update_to, update_target, recurse,
+ def do_switch(self, revision_to_update_to, update_target, recurse,
switch_url, update_editor, depth=None):
args = []
if revision_to_update_to is None or revision_to_update_to == -1:
@@ -716,7 +749,7 @@ class SVNClient(SVNConnection):
self.busy = False
raise
- def do_update(self, revision_to_update_to, update_target, recurse,
+ def do_update(self, revision_to_update_to, update_target, recurse,
update_editor, depth=None):
args = []
if revision_to_update_to is None or revision_to_update_to == -1:
@@ -738,13 +771,15 @@ class SVNClient(SVNConnection):
raise
def do_diff(self, revision_to_update, diff_target, versus_url, diff_editor,
- recurse=True, ignore_ancestry=False, text_deltas=False, depth=None):
+ recurse=True, ignore_ancestry=False, text_deltas=False,
+ depth=None):
args = []
if revision_to_update is None or revision_to_update == -1:
args.append([])
else:
args.append([revision_to_update])
- args += [diff_target, recurse, ignore_ancestry, versus_url, text_deltas]
+ args += [diff_target, recurse, ignore_ancestry, versus_url,
+ text_deltas]
if depth is not None:
args.append(literal(depth))
self.busy = True
@@ -782,9 +817,9 @@ class SVNClient(SVNConnection):
return self._uuid
@mark_busy
- def log(self, paths, start, end, limit=0,
- discover_changed_paths=True, strict_node_history=True,
- include_merged_revisions=True, revprops=None):
+ def log(self, paths, start, end, limit=0, discover_changed_paths=True,
+ strict_node_history=True, include_merged_revisions=True,
+ revprops=None):
args = [paths]
if start is None or start == -1:
args.append([])
@@ -825,7 +860,8 @@ class SVNClient(SVNConnection):
if len(msg) > 6 and msg[6]:
revno = None
else:
- revno = msg[1]
+ revno = msg[1] # noqa: F841
+ # TODO(jelmer): Do something with revno
revprops = {}
if len(msg[2]) != 0:
revprops[properties.PROP_REVISION_AUTHOR] = msg[2][0]
@@ -845,7 +881,7 @@ class SVNClient(SVNConnection):
callback(paths, rev, props)
else:
callback(paths, rev, props, has_children)
-
+
MIN_VERSION = 2
MAX_VERSION = 2
@@ -861,9 +897,8 @@ class SVNServer(SVNConnection):
self._logf = logf
super(SVNServer, self).__init__(recv_fn, send_fn)
- def send_greeting(self):
self.send_success(
- MIN_VERSION, MAX_VERSION, [literal(x) for x in MECHANISMS],
+ MIN_VERSION, MAX_VERSION, [literal(x) for x in MECHANISMS],
[literal(x) for x in CAPABILITIES])
def send_mechs(self):
@@ -876,8 +911,9 @@ class SVNServer(SVNConnection):
self.send_success([], "")
def send_unknown(self, cmd):
- self.send_failure([ERR_RA_SVN_UNKNOWN_CMD,
- "Unknown command '%s'" % cmd, __file__, 52])
+ self.send_failure(
+ [ERR_RA_SVN_UNKNOWN_CMD,
+ "Unknown command '%s'" % cmd, __file__, 52])
def get_latest_rev(self):
self.send_ack()
@@ -890,13 +926,14 @@ class SVNServer(SVNConnection):
revnum = rev[0]
kind = self.repo_backend.check_path(path, revnum)
self.send_ack()
- self.send_success(literal({NODE_NONE: "none",
- NODE_DIR: "dir",
- NODE_FILE: "file",
- NODE_UNKNOWN: "unknown"}[kind]))
-
- def log(self, target_path, start_rev, end_rev, changed_paths,
- strict_node, limit=None, include_merged_revisions=False,
+ self.send_success(literal({
+ NODE_NONE: "none",
+ NODE_DIR: "dir",
+ NODE_FILE: "file",
+ NODE_UNKNOWN: "unknown"}[kind]))
+
+ def log(self, target_path, start_rev, end_rev, changed_paths,
+ strict_node, limit=None, include_merged_revisions=False,
all_revprops=None, revprops=None):
def send_revision(revno, author, date, message, changed_paths=None):
changes = []
@@ -916,14 +953,15 @@ class SVNServer(SVNConnection):
end_revnum = None
else:
end_revnum = end_rev[0]
- self.repo_backend.log(send_revision, target_path, start_revnum,
+ self.repo_backend.log(send_revision, target_path, start_revnum,
end_revnum, changed_paths, strict_node, limit)
self.send_msg(literal("done"))
self.send_success()
def open_backend(self, url):
(rooturl, location) = urlparse.splithost(url)
- self.repo_backend, self.relpath = self.backend.open_repository(location)
+ self.repo_backend, self.relpath = self.backend.open_repository(
+ location)
def reparent(self, parent):
self.open_backend(parent)
@@ -941,7 +979,7 @@ class SVNServer(SVNConnection):
self.send_success([])
else:
args = [dirent["name"], dirent["kind"], dirent["size"],
- dirent["has-props"], dirent["created-rev"]]
+ dirent["has-props"], dirent["created-rev"]]
if "created-date" in dirent:
args.append([dirent["created-date"]])
else:
@@ -953,8 +991,8 @@ class SVNServer(SVNConnection):
self.send_success([args])
def commit(self, logmsg, locks, keep_locks=False, rev_props=None):
- self.send_failure([ERR_UNSUPPORTED_FEATURE,
- "commit not yet supported", __file__, 42])
+ self.send_failure([ERR_UNSUPPORTED_FEATURE,
+ "commit not yet supported", __file__, 42])
def rev_proplist(self, revnum):
self.send_ack()
@@ -977,7 +1015,8 @@ class SVNServer(SVNConnection):
self.send_msg(literal("done"))
self.send_success()
- def update(self, rev, target, recurse, depth=None, send_copyfrom_param=True):
+ def update(self, rev, target, recurse, depth=None,
+ send_copyfrom_param=True):
self.send_ack()
while True:
msg = self.recv_msg()
@@ -997,7 +1036,8 @@ class SVNServer(SVNConnection):
if client_result[0] == "success":
return
else:
- self.mutter("Client reported error during update: %r" % client_result)
+ self.mutter("Client reported error during update: %r" %
+ client_result)
# Needs to be sent back to the client to display
self.send_failure(client_result[1][0])
@@ -1053,7 +1093,7 @@ class SVNServer(SVNConnection):
# Expect:
while not self._stop:
- ( cmd, args ) = self.recv_msg()
+ (cmd, args) = self.recv_msg()
if cmd not in self.commands:
self.mutter("client used unknown command %r" % cmd)
self.send_unknown(cmd)
@@ -1073,11 +1113,12 @@ class TCPSVNRequestHandler(StreamRequestHandler):
def __init__(self, request, client_address, server):
self._server = server
- StreamRequestHandler.__init__(self, request,
- client_address, server)
+ StreamRequestHandler.__init__(
+ self, request, client_address, server)
def handle(self):
- server = SVNServer(self._server._backend, self.rfile.read,
+ server = SVNServer(
+ self._server._backend, self.rfile.read,
self.wfile.write, self._server._logf)
try:
server.serve()
@@ -1096,4 +1137,3 @@ class TCPSVNServer(TCPServer):
self._logf = logf
self._backend = backend
TCPServer.__init__(self, addr, TCPSVNRequestHandler)
-