def get(self, path): reponame = path.split("/")[0] url = settings.repositories[reponame] + "/" + "/".join(path.split("/")[1:]) # TODO enable caching (again) #mc = memcache.Client(['127.0.0.1:11211'], debug=0) #logs = mc.get('%s_history' % reponame.encode('ISO-8859-1')) #if not logs: # logs = svnbrowse.list_history(url) # mc.set('%s_history' % reponame.encode('ISO-8859-1'), logs, time=300) revision = self.get_argument('rev', None) if revision: logs = svnbrowse.list_history(url, revision) else: logs = svnbrowse.list_history(url) self.render("templates/repohist.html", logs=logs, repo={"name": reponame}, breadcrumbs=[reponame], activecrumb='log', svnurl=url)
def get(self, name, path=""): parts = [name] parts.extend(path.strip("/").split("/")) parts = filter(lambda s: s.strip(), parts) url = settings.repositories[name] files = svnbrowse.list_repository2(url, path) mc = memcache.Client(['127.0.0.1:11211'], debug=0) logs = mc.get('repo_log_%s' % str(name)) if logs is None: logs = list(reversed(svnbrowse.list_history(url))) mc.set('repo_log_%s' % str(name), logs, time=36000) for f in files: f['webpath'] = "/" + name + f['fullpath'] if len(files) == 1 and files[0]['kind'] == 'file': # TODO fetch file size #if int(files[0]['size']) > 1048576: # source = "File too large to display" #else: # source = svnbrowse.highlight_file(url + "/" + path) source = svnbrowse.highlight_file(url + "/" + path) self.render("templates/repofile.html", file=files[0], source=source, repo={"name": name}, breadcrumbs=parts[:-1], activecrumb=parts[-1], logs=logs, svnurl=url + "/" + path, currentpath=name + "/" + path) else: readmes = [s for s in files if 'readme' in s['name'].lower()] readme = "" if len(readmes) > 0: readme = svnbrowse.highlight_file(url + "/" + path + "/" + readmes[0]['name']) self.render("templates/repodir.html", repo={"name": name}, files=[f for f in files if f['fullpath'] not in ("/" + path, '')], breadcrumbs=parts[:-1], activecrumb=parts[-1], logs=logs, svnurl=url + "/" + path, readme=readme, currentpath=name + "/" + path)
def post(self): reponame = str(self.get_argument('reponame')) try: svnmanage.create_repo(reponame, str(self.get_current_user()['username'])) mc = memcache.Client(['127.0.0.1:11211'], debug=0) reload(settings) url = settings.repositories[reponame] mc.set('repo_list_%s' % reponame, svnbrowse.get_root_info(url), time=36000) mc.set('repo_log_%s' % reponame, list(reversed(svnbrowse.list_history(url))), time=36000) self.redirect("/%s" % reponame) except Exception, e: self.get([str(e)])