##// END OF EJS Templates
moved sqlalchemy session to base.
moved sqlalchemy session to base.

File last commit:

r149:b3c93efd default
r151:988477a0 default
Show More
files.py
108 lines | 4.0 KiB | text/x-python | PythonLexer
added empty controllers for branches tags files graph, routing and test for them
r93 import logging
Updated basic files browser with, pygments
r99 from pylons import request, response, session, tmpl_context as c, url, config, app_globals as g
added empty controllers for branches tags files graph, routing and test for them
r93 from pylons.controllers.util import abort, redirect
from pylons_app.lib.base import BaseController, render
Updated basic files browser with, pygments
r99 from pylons_app.lib.utils import get_repo_slug
from pylons_app.model.hg_model import HgModel
Implemented mercurial style diff-lib
r131 from difflib import unified_diff
from pylons_app.lib.differ import render_udiff
fixed error when browsing revisions on path that doesn't exist. Fixed files browsing. Fixed templates in branches and tags
r145 from vcs.exceptions import RepositoryError, ChangesetError
Implemented mercurial style diff-lib
r131
added empty controllers for branches tags files graph, routing and test for them
r93 log = logging.getLogger(__name__)
class FilesController(BaseController):
Updated basic files browser with, pygments
r99 def __before__(self):
c.repos_prefix = config['repos_name']
c.repo_name = get_repo_slug(request)
added empty controllers for branches tags files graph, routing and test for them
r93
Updated basic files browser with, pygments
r99 def index(self, repo_name, revision, f_path):
hg_model = HgModel()
c.repo = repo = hg_model.get_repo(c.repo_name)
Updated template for summary (archives links)...
r149 revision = request.POST.get('at_rev', None) or revision
fixed error when browsing revisions on path that doesn't exist. Fixed files browsing. Fixed templates in branches and tags
r145
Updated template for summary (archives links)...
r149 def get_next_rev(cur):
fixed error when browsing revisions on path that doesn't exist. Fixed files browsing. Fixed templates in branches and tags
r145 max_rev = len(c.repo.revisions) - 1
Updated template for summary (archives links)...
r149 r = cur + 1
if r > max_rev:
r = max_rev
return r
def get_prev_rev(cur):
r = cur - 1
return r
Updated basic files browser with, pygments
r99 c.f_path = f_path
Updated template for summary (archives links)...
r149
Added rawfile support, and few fixes for file
r147
fixed files when repository is empty
r138 try:
Updated template for summary (archives links)...
r149 cur_rev = repo.get_changeset(revision).revision
prev_rev = repo.get_changeset(get_prev_rev(cur_rev)).raw_id
next_rev = repo.get_changeset(get_next_rev(cur_rev)).raw_id
c.url_prev = url('files_home', repo_name=c.repo_name,
revision=prev_rev, f_path=f_path)
c.url_next = url('files_home', repo_name=c.repo_name,
revision=next_rev, f_path=f_path)
c.changeset = repo.get_changeset(revision)
Added rawfile support, and few fixes for file
r147 try:
c.file_msg = c.changeset.get_file_message(f_path)
except:
c.file_msg = None
Changeg graph to changelog, and changelog to shortlog
r142 c.cur_rev = c.changeset.raw_id
c.rev_nr = c.changeset.revision
fixed files when repository is empty
r138 c.files_list = c.changeset.get_node(f_path)
c.file_history = self._get_history(repo, c.files_list, f_path)
Added rawfile support, and few fixes for file
r147
fixed error when browsing revisions on path that doesn't exist. Fixed files browsing. Fixed templates in branches and tags
r145 except (RepositoryError, ChangesetError):
fixed files when repository is empty
r138 c.files_list = None
Updated basic files browser with, pygments
r99
Implemented file history.
r128 return render('files/files.html')
Added rawfile support, and few fixes for file
r147 def rawfile(self, repo_name, revision, f_path):
hg_model = HgModel()
c.repo = hg_model.get_repo(c.repo_name)
file_node = c.repo.get_changeset(revision).get_node(f_path)
response.headers['Content-type'] = file_node.mimetype
response.headers['Content-disposition'] = 'attachment; filename=%s' \
% f_path.split('/')[-1]
return file_node.content
Updated template for summary (archives links)...
r149 def archivefile(self, repo_name, revision, fileformat):
return '%s %s %s' % (repo_name, revision, fileformat)
implemented simple diffs for history of files.
r129 def diff(self, repo_name, f_path):
hg_model = HgModel()
diff1 = request.GET.get('diff1')
diff2 = request.GET.get('diff2')
Implemented mercurial style diff-lib
r131 c.no_changes = diff1 == diff2
implemented simple diffs for history of files.
r129 c.f_path = f_path
c.repo = hg_model.get_repo(c.repo_name)
c.changeset_1 = c.repo.get_changeset(diff1)
c.changeset_2 = c.repo.get_changeset(diff2)
Added rawfile support, and few fixes for file
r147 c.file_1 = c.changeset_1.get_file_content(f_path)
c.file_2 = c.changeset_2.get_file_content(f_path)
implemented simple diffs for history of files.
r129 c.diff1 = 'r%s:%s' % (c.changeset_1.revision, c.changeset_1._short)
c.diff2 = 'r%s:%s' % (c.changeset_2.revision, c.changeset_2._short)
Implemented mercurial style diff-lib
r131
d2 = unified_diff(c.file_1.splitlines(1), c.file_2.splitlines(1))
c.diff_files = render_udiff(udiff=d2)
Added differ lib from mercurial.
r130
Implemented mercurial style diff-lib
r131 if len(c.diff_files) < 1:
c.no_changes = True
implemented simple diffs for history of files.
r129 return render('files/file_diff.html')
Implemented file history.
r128 def _get_history(self, repo, node, f_path):
from vcs.nodes import NodeKind
if not node.kind is NodeKind.FILE:
return []
implemented simple diffs for history of files.
r129 changesets = node.history
Implemented file history.
r128 hist_l = []
for chs in changesets:
n_desc = 'r%s:%s' % (chs.revision, chs._short)
hist_l.append((chs._short, n_desc,))
return hist_l