def do_commit(self): repos = self.link.repos msg = parse.string(self.args[0]) self.commit_info = None if self.aborted: self.link.send_msg(gen.error(1, "aborted")) return try: rev, date, author, error = repos.complete_commit(self.commit, msg) except HookFailure as hf: err, msg = hooks.pre_commit(hf.code, hf.text) self.link.send_msg(gen.error(err, msg)) return print rev, date, author, error if rev is None: self.link.send_msg(gen.error(1, "vcs error: %s" % error)) return self.commit_info = gen.list(rev, gen.list(gen.string(date)), gen.list(gen.string(author)), gen.list()) self.link.send_msg(gen.success()) raise ChangeMode('auth', 'command')
def do_commit(self): repos = self.link.repos msg = parse.string(self.args[0]) self.commit_info = None if self.aborted: self.link.send_msg(gen.error(1, "aborted")) return try: rev, date, author, error = repos.complete_commit(self.commit, msg) except HookFailure as hf: err, msg = hooks.pre_commit(hf.code, hf.text) self.link.send_msg(gen.error(err, msg)) return print rev, date, author, error if rev is None: self.link.send_msg(gen.error(1, "vcs error: %s" % error)) return self.commit_info = gen.list(rev, gen.list(gen.string(date)), gen.list(gen.string(author)), gen.list()) self.link.send_msg(gen.success()) raise ChangeMode("auth", "command")
def do_cmd(self): repos = self.link.repos latest_rev = repos.get_latest_rev() if latest_rev is None: msg = gen.error(210005, "No repository found in '%s'" % self.link.url) else: msg = gen.success(latest_rev) self.link.send_msg(msg)
def do_cmd(self): args = self.args url = parse.string(args.pop(0)) if len(url) > 0: new_repo, path, base_url = self.link.server.find_repo(url) if new_repo != self.link.repos: self.link.send_msg(gen.error("URL %s is outside of repository %s" % url, self.link.base_url)) return print "new url: %s" % url self.link.url = path self.link.send_msg(gen.success())
def send_response(self, path, url, rev): repos = self.link.repos self.sendq = Queue.Queue() self.waitq = Queue.Queue() thread = threading.Thread(target=send_thread, args=(self.link, self.sendq, self.waitq)) thread.start() import time t1 = time.time() print "get contents" contents = repos.get_files(url, rev) print len(contents) t2 = time.time() print t2 - t1 print "start sending" self.update_dir('', rev, path, [], contents) print "all sends now queued" t3 = time.time() print t3 - t2 print t3 - t1 self.sendq.put(None) print "wait for sending thread" self.waitq.get() print "send close-edit message" self.link.send_msg(gen.tuple('close-edit')) msg = parse.msg(self.link.read_msg()) if msg[0] != 'success': errno = msg[1][0][0] errmsg = parse.string(msg[1][0][1]) self.link.send_msg(gen.tuple('abort-edit')) self.link.send_msg(gen.error(errno, errmsg)) else: self.link.send_msg(gen.success())
def apply_textdelta(self, file_token, base_checksum): try: self.files[file_token].delta_start(base_checksum) except PathChanged as e: self.aborted = True self.link.send_msg(gen.error(1, "File '%s' is out of date" % e))