Show More
@@ -29,6 +29,7 b' import traceback' | |||
|
29 | 29 | from pylons import request, url, session, tmpl_context as c |
|
30 | 30 | from pylons.controllers.util import redirect |
|
31 | 31 | from pylons.i18n.translation import _ |
|
32 | from webob.exc import HTTPNotFound, HTTPBadRequest | |
|
32 | 33 | |
|
33 | 34 | import rhodecode.lib.helpers as h |
|
34 | 35 | from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator |
@@ -39,7 +40,7 b' from rhodecode.lib.graphmod import _colo' | |||
|
39 | 40 | from rhodecode.lib.vcs.exceptions import RepositoryError, ChangesetDoesNotExistError,\ |
|
40 | 41 | ChangesetError, NodeDoesNotExistError, EmptyRepositoryError |
|
41 | 42 | from rhodecode.lib.utils2 import safe_int |
|
42 | from webob.exc import HTTPNotFound | |
|
43 | ||
|
43 | 44 | |
|
44 | 45 | log = logging.getLogger(__name__) |
|
45 | 46 | |
@@ -68,6 +69,33 b' class ChangelogController(BaseRepoContro' | |||
|
68 | 69 | super(ChangelogController, self).__before__() |
|
69 | 70 | c.affected_files_cut_off = 60 |
|
70 | 71 | |
|
72 | def __get_cs_or_redirect(self, rev, repo, redirect_after=True, | |
|
73 | partial=False): | |
|
74 | """ | |
|
75 | Safe way to get changeset if error occur it redirects to changeset with | |
|
76 | proper message. If partial is set then don't do redirect raise Exception | |
|
77 | instead | |
|
78 | ||
|
79 | :param rev: revision to fetch | |
|
80 | :param repo: repo instance | |
|
81 | """ | |
|
82 | ||
|
83 | try: | |
|
84 | return c.rhodecode_repo.get_changeset(rev) | |
|
85 | except EmptyRepositoryError, e: | |
|
86 | if not redirect_after: | |
|
87 | return None | |
|
88 | h.flash(h.literal(_('There are no changesets yet')), | |
|
89 | category='warning') | |
|
90 | redirect(url('changelog_home', repo_name=repo.repo_name)) | |
|
91 | ||
|
92 | except RepositoryError, e: | |
|
93 | log.error(traceback.format_exc()) | |
|
94 | h.flash(str(e), category='warning') | |
|
95 | if not partial: | |
|
96 | redirect(h.url('changelog_home', repo_name=repo.repo_name)) | |
|
97 | raise HTTPBadRequest() | |
|
98 | ||
|
71 | 99 | def _graph(self, repo, revs_int, repo_size, size, p): |
|
72 | 100 | """ |
|
73 | 101 | Generates a DAG graph for repo |
@@ -120,7 +148,7 b' class ChangelogController(BaseRepoContro' | |||
|
120 | 148 | except (NodeDoesNotExistError, ChangesetError): |
|
121 | 149 | #this node is not present at tip ! |
|
122 | 150 | try: |
|
123 | cs = self.__get_cs_or_redirect(revision, repo_name) | |
|
151 | cs = self.__get_css_or_redirect(revision, repo_name) | |
|
124 | 152 | collection = cs.get_file_history(f_path) |
|
125 | 153 | except RepositoryError, e: |
|
126 | 154 | h.flash(str(e), category='warning') |
General Comments 0
You need to be logged in to leave comments.
Login now