Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
 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)])