# HG changeset patch # User Marcin Kuzminski # Date 1273608463 -7200 # Node ID 873fd2dc62c2e15d59d33fe0c6777103c748e511 # Parent 8bd3ce1dace325c0ee43cacb948ea4f89e1efdfd Added rawfile support, and few fixes for file diff -r 8bd3ce1dace3 -r 873fd2dc62c2 pylons_app/controllers/files.py --- a/pylons_app/controllers/files.py Mon May 10 23:23:12 2010 +0200 +++ b/pylons_app/controllers/files.py Tue May 11 22:07:43 2010 +0200 @@ -31,17 +31,34 @@ revision = max_rev c.f_path = f_path + + try: c.changeset = repo.get_changeset(repo._get_revision(revision)) + try: + c.file_msg = c.changeset.get_file_message(f_path) + except: + c.file_msg = None + c.cur_rev = c.changeset.raw_id c.rev_nr = c.changeset.revision c.files_list = c.changeset.get_node(f_path) c.file_history = self._get_history(repo, c.files_list, f_path) + except (RepositoryError, ChangesetError): c.files_list = None return render('files/files.html') + 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 + def diff(self, repo_name, f_path): hg_model = HgModel() diff1 = request.GET.get('diff1') @@ -52,8 +69,8 @@ c.changeset_1 = c.repo.get_changeset(diff1) c.changeset_2 = c.repo.get_changeset(diff2) - c.file_1 = c.changeset_1.get_node(f_path).content - c.file_2 = c.changeset_2.get_node(f_path).content + c.file_1 = c.changeset_1.get_file_content(f_path) + c.file_2 = c.changeset_2.get_file_content(f_path) 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)