Mercurial > kallithea
annotate rhodecode/controllers/files.py @ 1203:6832ef664673 beta
source code cleanup: remove trailing white space, normalize file endings
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 03 Apr 2011 18:23:15 +0200 |
parents | 3ecaa17d9dea |
children | a671db5bdd58 |
rev | line source |
---|---|
812
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
1 # -*- coding: utf-8 -*- |
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
2 """ |
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
3 rhodecode.controllers.files |
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
318
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
275
diff
changeset
|
5 |
812
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
6 Files controller for RhodeCode |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1200
diff
changeset
|
7 |
812
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
8 :created_on: Apr 21, 2010 |
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
9 :author: marcink |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1200
diff
changeset
|
10 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com> |
812
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
11 :license: GPLv3, see COPYING for more details. |
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
12 """ |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
13 # This program is free software; you can redistribute it and/or |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
14 # modify it under the terms of the GNU General Public License |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
15 # as published by the Free Software Foundation; version 2 |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
16 # of the License or (at your opinion) any later version of the license. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1200
diff
changeset
|
17 # |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
18 # This program is distributed in the hope that it will be useful, |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
21 # GNU General Public License for more details. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1200
diff
changeset
|
22 # |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
23 # You should have received a copy of the GNU General Public License |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
24 # along with this program; if not, write to the Free Software |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
26 # MA 02110-1301, USA. |
1134
1dc5d169e85a
fixed issue with vcs stream
Marcin Kuzminski <marcin@python-works.com>
parents:
1132
diff
changeset
|
27 |
1200
3ecaa17d9dea
added os.sep for files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
28 import os |
812
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
29 import logging |
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
30 import rhodecode.lib.helpers as h |
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
31 |
318
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
275
diff
changeset
|
32 from pylons import request, response, session, tmpl_context as c, url |
544
d8778cde98f0
added limits to single file diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
33 from pylons.i18n.translation import _ |
318
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
275
diff
changeset
|
34 from pylons.controllers.util import redirect |
812
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
35 |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
544
diff
changeset
|
36 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
37 from rhodecode.lib.base import BaseRepoController, render |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
544
diff
changeset
|
38 from rhodecode.lib.utils import EmptyChangeset |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
39 from rhodecode.model.repo import RepoModel |
812
30ad41c76fae
fixes #79 cut off limit was added into .ini config files
Marcin Kuzminski <marcin@python-works.com>
parents:
774
diff
changeset
|
40 |
948
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
41 from vcs.backends import ARCHIVE_SPECS |
1134
1dc5d169e85a
fixed issue with vcs stream
Marcin Kuzminski <marcin@python-works.com>
parents:
1132
diff
changeset
|
42 from vcs.exceptions import RepositoryError, ChangesetDoesNotExistError, \ |
1dc5d169e85a
fixed issue with vcs stream
Marcin Kuzminski <marcin@python-works.com>
parents:
1132
diff
changeset
|
43 EmptyRepositoryError, ImproperArchiveTypeError, VCSError |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
44 from vcs.nodes import FileNode, NodeKind |
318
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
275
diff
changeset
|
45 from vcs.utils import diffs as differ |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
46 |
93
aec4c0071cb3
added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
47 log = logging.getLogger(__name__) |
aec4c0071cb3
added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
48 |
1134
1dc5d169e85a
fixed issue with vcs stream
Marcin Kuzminski <marcin@python-works.com>
parents:
1132
diff
changeset
|
49 |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
50 class FilesController(BaseRepoController): |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
51 |
191
b68b2246e5a6
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents:
160
diff
changeset
|
52 @LoginRequired() |
318
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
275
diff
changeset
|
53 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
54 'repository.admin') |
99
5b57295601b6
Updated basic files browser with, pygments
Marcin Kuzminski <marcin@python-works.com>
parents:
93
diff
changeset
|
55 def __before__(self): |
191
b68b2246e5a6
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents:
160
diff
changeset
|
56 super(FilesController, self).__before__() |
813
e8b5be26fb78
fixed small issue made on latest patches
Marcin Kuzminski <marcin@python-works.com>
parents:
812
diff
changeset
|
57 c.cut_off_limit = self.cut_off_limit |
93
aec4c0071cb3
added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
58 |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
59 def __get_cs_or_redirect(self, rev, repo_name): |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
60 """ |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
61 Safe way to get changeset if error occur it redirects to tip with |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
62 proper message |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1200
diff
changeset
|
63 |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
64 :param rev: revision to fetch |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
65 :param repo_name: repo name to redirect after |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
66 """ |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
67 |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
68 try: |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
69 return c.rhodecode_repo.get_changeset(rev) |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
70 except EmptyRepositoryError, e: |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
71 h.flash(_('There are no files yet'), category='warning') |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
72 redirect(h.url('summary_home', repo_name=repo_name)) |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
73 |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
74 except RepositoryError, e: |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
75 h.flash(str(e), category='warning') |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
76 redirect(h.url('files_home', repo_name=repo_name, revision='tip')) |
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
77 |
1189
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
78 |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
79 def __get_filenode_or_redirect(self, repo_name, cs, path): |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
80 """ |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
81 Returns file_node, if error occurs or given path is directory, |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
82 it'll redirect to top level path |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1200
diff
changeset
|
83 |
1189
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
84 :param repo_name: repo_name |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
85 :param cs: given changeset |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
86 :param path: path to lookup |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
87 """ |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
88 |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
89 |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
90 try: |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
91 file_node = cs.get_node(path) |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
92 if file_node.is_dir(): |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
93 raise RepositoryError('given path is a directory') |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
94 except RepositoryError, e: |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
95 h.flash(str(e), category='warning') |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
96 redirect(h.url('files_home', repo_name=repo_name, |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
97 revision=cs.raw_id)) |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
98 |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
99 return file_node |
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
100 |
99
5b57295601b6
Updated basic files browser with, pygments
Marcin Kuzminski <marcin@python-works.com>
parents:
93
diff
changeset
|
101 def index(self, repo_name, revision, f_path): |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
102 #reditect to given revision from form if given |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
103 post_revision = request.POST.get('at_rev', None) |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
104 if post_revision: |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
105 cs = self.__get_cs_or_redirect(revision, repo_name) |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
106 redirect(url('files_home', repo_name=c.repo_name, |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
107 revision=cs.raw_id, f_path=f_path)) |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
108 |
884
322b53be49cc
Fixed url bug when using numeric revision in file browser,
Marcin Kuzminski <marcin@python-works.com>
parents:
883
diff
changeset
|
109 |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
110 c.changeset = self.__get_cs_or_redirect(revision, repo_name) |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
111 c.branch = request.GET.get('branch', None) |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
112 c.f_path = f_path |
884
322b53be49cc
Fixed url bug when using numeric revision in file browser,
Marcin Kuzminski <marcin@python-works.com>
parents:
883
diff
changeset
|
113 |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
114 cur_rev = c.changeset.revision |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
115 |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
116 #prev link |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
117 try: |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
118 prev_rev = c.rhodecode_repo.get_changeset(cur_rev).prev(c.branch) |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
119 c.url_prev = url('files_home', repo_name=c.repo_name, |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
120 revision=prev_rev.raw_id, f_path=f_path) |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
121 if c.branch: |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
122 c.url_prev += '?branch=%s' % c.branch |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
123 except (ChangesetDoesNotExistError, VCSError): |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
124 c.url_prev = '#' |
883
20ed6f6a6329
Changed prev/next in file browser to new vcs methods
Marcin Kuzminski <marcin@python-works.com>
parents:
872
diff
changeset
|
125 |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
126 #next link |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
127 try: |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
128 next_rev = c.rhodecode_repo.get_changeset(cur_rev).next(c.branch) |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
129 c.url_next = url('files_home', repo_name=c.repo_name, |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
130 revision=next_rev.raw_id, f_path=f_path) |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
131 if c.branch: |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
132 c.url_next += '?branch=%s' % c.branch |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
133 except (ChangesetDoesNotExistError, VCSError): |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
134 c.url_next = '#' |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
135 |
1189
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
136 #files or dirs |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
137 try: |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
138 c.files_list = c.changeset.get_node(f_path) |
1190
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
139 |
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
140 if c.files_list.is_file(): |
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
141 c.file_history = self._get_node_history(c.changeset, f_path) |
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
142 else: |
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
143 c.file_history = [] |
644
c8bd0e6cc3da
some changes for #45.
Marcin Kuzminski <marcin@python-works.com>
parents:
636
diff
changeset
|
144 except RepositoryError, e: |
c8bd0e6cc3da
some changes for #45.
Marcin Kuzminski <marcin@python-works.com>
parents:
636
diff
changeset
|
145 h.flash(str(e), category='warning') |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
146 redirect(h.url('files_home', repo_name=repo_name, |
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
147 revision=revision)) |
644
c8bd0e6cc3da
some changes for #45.
Marcin Kuzminski <marcin@python-works.com>
parents:
636
diff
changeset
|
148 |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
149 |
128
9deb6f1d5b90
Implemented file history.
Marcin Kuzminski <marcin@python-works.com>
parents:
106
diff
changeset
|
150 return render('files/files.html') |
9deb6f1d5b90
Implemented file history.
Marcin Kuzminski <marcin@python-works.com>
parents:
106
diff
changeset
|
151 |
147
873fd2dc62c2
Added rawfile support, and few fixes for file
Marcin Kuzminski <marcin@python-works.com>
parents:
145
diff
changeset
|
152 def rawfile(self, repo_name, revision, f_path): |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
153 cs = self.__get_cs_or_redirect(revision, repo_name) |
1189
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
154 file_node = self.__get_filenode_or_redirect(repo_name, cs, f_path) |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
155 |
1189
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
156 response.content_disposition = 'attachment; filename=%s' % \ |
1200
3ecaa17d9dea
added os.sep for files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
157 f_path.split(os.sep)[-1].encode('utf8', 'replace') |
1189
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
158 |
160
0f7f93df5802
implemented rawdiff and diff download into diff view.
Marcin Kuzminski <marcin@python-works.com>
parents:
158
diff
changeset
|
159 response.content_type = file_node.mimetype |
147
873fd2dc62c2
Added rawfile support, and few fixes for file
Marcin Kuzminski <marcin@python-works.com>
parents:
145
diff
changeset
|
160 return file_node.content |
485
9836541b0509
added limit for showing pygemntized source codes larger than 250kb.
Marcin Kuzminski <marcin@python-works.com>
parents:
438
diff
changeset
|
161 |
9836541b0509
added limit for showing pygemntized source codes larger than 250kb.
Marcin Kuzminski <marcin@python-works.com>
parents:
438
diff
changeset
|
162 def raw(self, repo_name, revision, f_path): |
1137
82344ce0a892
clean and fixes in files controller
Marcin Kuzminski <marcin@python-works.com>
parents:
1134
diff
changeset
|
163 cs = self.__get_cs_or_redirect(revision, repo_name) |
1189
a4e1b955fe07
fixes for rawfile, annotation, download. It will check now if it's a filenode.
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
164 file_node = self.__get_filenode_or_redirect(repo_name, cs, f_path) |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
165 |
485
9836541b0509
added limit for showing pygemntized source codes larger than 250kb.
Marcin Kuzminski <marcin@python-works.com>
parents:
438
diff
changeset
|
166 response.content_type = 'text/plain' |
9836541b0509
added limit for showing pygemntized source codes larger than 250kb.
Marcin Kuzminski <marcin@python-works.com>
parents:
438
diff
changeset
|
167 return file_node.content |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
168 |
191
b68b2246e5a6
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents:
160
diff
changeset
|
169 def annotate(self, repo_name, revision, f_path): |
1190
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
170 c.cs = self.__get_cs_or_redirect(revision, repo_name) |
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
171 c.file = self.__get_filenode_or_redirect(repo_name, c.cs, f_path) |
774
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
172 |
1190
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
173 c.file_history = self._get_node_history(c.cs, f_path) |
191
b68b2246e5a6
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents:
160
diff
changeset
|
174 c.f_path = f_path |
b68b2246e5a6
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents:
160
diff
changeset
|
175 return render('files/files_annotate.html') |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
176 |
872
b956e6f415a2
implemented #91,
Marcin Kuzminski <marcin@python-works.com>
parents:
813
diff
changeset
|
177 def archivefile(self, repo_name, fname): |
945
05b59c48556f
fixed error when trying to make download on empty repository
Marcin Kuzminski <marcin@python-works.com>
parents:
942
diff
changeset
|
178 |
942
32318ec7bfc1
added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents:
915
diff
changeset
|
179 fileformat = None |
32318ec7bfc1
added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents:
915
diff
changeset
|
180 revision = None |
948
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
181 ext = None |
945
05b59c48556f
fixed error when trying to make download on empty repository
Marcin Kuzminski <marcin@python-works.com>
parents:
942
diff
changeset
|
182 |
948
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
183 for a_type, ext_data in ARCHIVE_SPECS.items(): |
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
184 archive_spec = fname.split(ext_data[1]) |
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
185 if len(archive_spec) == 2 and archive_spec[1] == '': |
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
186 fileformat = a_type or ext_data[1] |
942
32318ec7bfc1
added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents:
915
diff
changeset
|
187 revision = archive_spec[0] |
948
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
188 ext = ext_data[1] |
872
b956e6f415a2
implemented #91,
Marcin Kuzminski <marcin@python-works.com>
parents:
813
diff
changeset
|
189 |
b956e6f415a2
implemented #91,
Marcin Kuzminski <marcin@python-works.com>
parents:
813
diff
changeset
|
190 try: |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
191 dbrepo = RepoModel().get_by_repo_name(repo_name) |
1038
5554aa9c2480
another major code rafactor, reimplemented (almost from scratch)
Marcin Kuzminski <marcin@python-works.com>
parents:
962
diff
changeset
|
192 if dbrepo.enable_downloads is False: |
962
72f008ed9b18
implemented #84 downloads can be enabled/disabled per each repository from now.
Marcin Kuzminski <marcin@python-works.com>
parents:
961
diff
changeset
|
193 return _('downloads disabled') |
72f008ed9b18
implemented #84 downloads can be enabled/disabled per each repository from now.
Marcin Kuzminski <marcin@python-works.com>
parents:
961
diff
changeset
|
194 |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
195 cs = c.rhodecode_repo.get_changeset(revision) |
950
343c28c33c19
fixed key error on unknown archival
Marcin Kuzminski <marcin@python-works.com>
parents:
948
diff
changeset
|
196 content_type = ARCHIVE_SPECS[fileformat][0] |
872
b956e6f415a2
implemented #91,
Marcin Kuzminski <marcin@python-works.com>
parents:
813
diff
changeset
|
197 except ChangesetDoesNotExistError: |
b956e6f415a2
implemented #91,
Marcin Kuzminski <marcin@python-works.com>
parents:
813
diff
changeset
|
198 return _('Unknown revision %s') % revision |
945
05b59c48556f
fixed error when trying to make download on empty repository
Marcin Kuzminski <marcin@python-works.com>
parents:
942
diff
changeset
|
199 except EmptyRepositoryError: |
05b59c48556f
fixed error when trying to make download on empty repository
Marcin Kuzminski <marcin@python-works.com>
parents:
942
diff
changeset
|
200 return _('Empty repository') |
961
840ca7492dbe
fixed typo in exception
Marcin Kuzminski <marcin@python-works.com>
parents:
953
diff
changeset
|
201 except (ImproperArchiveTypeError, KeyError): |
948
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
202 return _('Unknown archive type') |
872
b956e6f415a2
implemented #91,
Marcin Kuzminski <marcin@python-works.com>
parents:
813
diff
changeset
|
203 |
950
343c28c33c19
fixed key error on unknown archival
Marcin Kuzminski <marcin@python-works.com>
parents:
948
diff
changeset
|
204 response.content_type = content_type |
343c28c33c19
fixed key error on unknown archival
Marcin Kuzminski <marcin@python-works.com>
parents:
948
diff
changeset
|
205 response.content_disposition = 'attachment; filename=%s-%s%s' \ |
343c28c33c19
fixed key error on unknown archival
Marcin Kuzminski <marcin@python-works.com>
parents:
948
diff
changeset
|
206 % (repo_name, revision, ext) |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
207 |
1151
0c5629ce52e4
fixed problems with archives
Marcin Kuzminski <marcin@python-works.com>
parents:
1149
diff
changeset
|
208 return cs.get_chunked_archive(stream=None, kind=fileformat) |
948
85ee0ea183e7
fixed archival in rhodecode to use new functions from vcs
Marcin Kuzminski <marcin@python-works.com>
parents:
945
diff
changeset
|
209 |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
210 |
129
42d46deb124d
implemented simple diffs for history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
128
diff
changeset
|
211 def diff(self, repo_name, f_path): |
42d46deb124d
implemented simple diffs for history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
128
diff
changeset
|
212 diff1 = request.GET.get('diff1') |
42d46deb124d
implemented simple diffs for history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
128
diff
changeset
|
213 diff2 = request.GET.get('diff2') |
337
fa3835d34fc1
fixed bug when diff command was different than available options
Marcin Kuzminski <marcin@python-works.com>
parents:
335
diff
changeset
|
214 c.action = request.GET.get('diff') |
131
49c7e191c2cd
Implemented mercurial style diff-lib
Marcin Kuzminski <marcin@python-works.com>
parents:
130
diff
changeset
|
215 c.no_changes = diff1 == diff2 |
129
42d46deb124d
implemented simple diffs for history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
128
diff
changeset
|
216 c.f_path = f_path |
152
0c00fbaff55a
Fixed differ to properly extract filenames, and dates from diff file. and swaped order of columns with lines nr in diff html
Marcin Kuzminski <marcin@python-works.com>
parents:
149
diff
changeset
|
217 |
275
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
218 try: |
544
d8778cde98f0
added limits to single file diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
219 if diff1 not in ['', None, 'None', '0' * 12, '0' * 40]: |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
220 c.changeset_1 = c.rhodecode_repo.get_changeset(diff1) |
275
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
221 node1 = c.changeset_1.get_node(f_path) |
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
222 else: |
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
223 c.changeset_1 = EmptyChangeset() |
544
d8778cde98f0
added limits to single file diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
224 node1 = FileNode('.', '', changeset=c.changeset_1) |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
225 |
544
d8778cde98f0
added limits to single file diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
226 if diff2 not in ['', None, 'None', '0' * 12, '0' * 40]: |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
227 c.changeset_2 = c.rhodecode_repo.get_changeset(diff2) |
275
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
228 node2 = c.changeset_2.get_node(f_path) |
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
229 else: |
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
230 c.changeset_2 = EmptyChangeset() |
544
d8778cde98f0
added limits to single file diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
231 node2 = FileNode('.', '', changeset=c.changeset_2) |
275
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
232 except RepositoryError: |
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
233 return redirect(url('files_home', |
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
234 repo_name=c.repo_name, f_path=f_path)) |
2d61aa00e855
fixed bugs when putting empty or unknown changesets into diff
Marcin Kuzminski <marcin@python-works.com>
parents:
272
diff
changeset
|
235 |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
236 |
337
fa3835d34fc1
fixed bug when diff command was different than available options
Marcin Kuzminski <marcin@python-works.com>
parents:
335
diff
changeset
|
237 if c.action == 'download': |
1132
c4b59dcf063e
fixed files diffs to use gitdiff enabled diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1125
diff
changeset
|
238 diff = differ.DiffProcessor(differ.get_gitdiff(node1, node2), |
c4b59dcf063e
fixed files diffs to use gitdiff enabled diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1125
diff
changeset
|
239 format='gitdiff') |
1044
f3402cb92fdf
changed raw and download diffs to gitdiff
Marcin Kuzminski <marcin@python-works.com>
parents:
1043
diff
changeset
|
240 |
160
0f7f93df5802
implemented rawdiff and diff download into diff view.
Marcin Kuzminski <marcin@python-works.com>
parents:
158
diff
changeset
|
241 diff_name = '%s_vs_%s.diff' % (diff1, diff2) |
0f7f93df5802
implemented rawdiff and diff download into diff view.
Marcin Kuzminski <marcin@python-works.com>
parents:
158
diff
changeset
|
242 response.content_type = 'text/plain' |
0f7f93df5802
implemented rawdiff and diff download into diff view.
Marcin Kuzminski <marcin@python-works.com>
parents:
158
diff
changeset
|
243 response.content_disposition = 'attachment; filename=%s' \ |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
244 % diff_name |
160
0f7f93df5802
implemented rawdiff and diff download into diff view.
Marcin Kuzminski <marcin@python-works.com>
parents:
158
diff
changeset
|
245 return diff.raw_diff() |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
246 |
337
fa3835d34fc1
fixed bug when diff command was different than available options
Marcin Kuzminski <marcin@python-works.com>
parents:
335
diff
changeset
|
247 elif c.action == 'raw': |
1132
c4b59dcf063e
fixed files diffs to use gitdiff enabled diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1125
diff
changeset
|
248 diff = differ.DiffProcessor(differ.get_gitdiff(node1, node2), |
c4b59dcf063e
fixed files diffs to use gitdiff enabled diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1125
diff
changeset
|
249 format='gitdiff') |
649
3765f0f479a2
fixed raw diff as purly raw without html
Marcin Kuzminski <marcin@python-works.com>
parents:
644
diff
changeset
|
250 response.content_type = 'text/plain' |
3765f0f479a2
fixed raw diff as purly raw without html
Marcin Kuzminski <marcin@python-works.com>
parents:
644
diff
changeset
|
251 return diff.raw_diff() |
662
373ee7031003
fixed annotation bug, added history to annotation.
Marcin Kuzminski <marcin@python-works.com>
parents:
649
diff
changeset
|
252 |
337
fa3835d34fc1
fixed bug when diff command was different than available options
Marcin Kuzminski <marcin@python-works.com>
parents:
335
diff
changeset
|
253 elif c.action == 'diff': |
1149
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
254 |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
255 if node1.is_binary or node2.is_binary: |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
256 c.cur_diff = _('Binary file') |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
257 elif node1.size > self.cut_off_limit or node2.size > self.cut_off_limit: |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
258 c.cur_diff = _('Diff is too big to display') |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
259 else: |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
260 diff = differ.DiffProcessor(differ.get_gitdiff(node1, node2), |
1132
c4b59dcf063e
fixed files diffs to use gitdiff enabled diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1125
diff
changeset
|
261 format='gitdiff') |
544
d8778cde98f0
added limits to single file diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
262 c.cur_diff = diff.as_html() |
337
fa3835d34fc1
fixed bug when diff command was different than available options
Marcin Kuzminski <marcin@python-works.com>
parents:
335
diff
changeset
|
263 else: |
1149
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
264 |
337
fa3835d34fc1
fixed bug when diff command was different than available options
Marcin Kuzminski <marcin@python-works.com>
parents:
335
diff
changeset
|
265 #default option |
1149
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
266 if node1.is_binary or node2.is_binary: |
1043
6ec53c16c744
fixed binary file issues
Marcin Kuzminski <marcin@python-works.com>
parents:
1038
diff
changeset
|
267 c.cur_diff = _('Binary file') |
1149
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
268 elif node1.size > self.cut_off_limit or node2.size > self.cut_off_limit: |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
269 c.cur_diff = _('Diff is too big to display') |
544
d8778cde98f0
added limits to single file diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
270 else: |
1149
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
271 diff = differ.DiffProcessor(differ.get_gitdiff(node1, node2), |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
272 format='gitdiff') |
544
d8778cde98f0
added limits to single file diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
273 c.cur_diff = diff.as_html() |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
274 |
1149
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
275 if not c.cur_diff: |
d162de13caec
memory optimizations, call diffs only when needed ie. after checking for binary, and cutoff limit.
Marcin Kuzminski <marcin@python-works.com>
parents:
1137
diff
changeset
|
276 c.no_changes = True |
129
42d46deb124d
implemented simple diffs for history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
128
diff
changeset
|
277 return render('files/file_diff.html') |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
278 |
1190
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
279 def _get_node_history(self, cs, f_path): |
0d7a127e6449
use cs get history instead of node.history, node history have to much reference calls
Marcin Kuzminski <marcin@python-works.com>
parents:
1189
diff
changeset
|
280 changesets = cs.get_file_history(f_path) |
128
9deb6f1d5b90
Implemented file history.
Marcin Kuzminski <marcin@python-works.com>
parents:
106
diff
changeset
|
281 hist_l = [] |
774
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
282 |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
283 changesets_group = ([], _("Changesets")) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
284 branches_group = ([], _("Branches")) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
285 tags_group = ([], _("Tags")) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
286 |
128
9deb6f1d5b90
Implemented file history.
Marcin Kuzminski <marcin@python-works.com>
parents:
106
diff
changeset
|
287 for chs in changesets: |
512
d945c95ba4ac
refactoring for new vcs implementation
Marcin Kuzminski <marcin@python-works.com>
parents:
485
diff
changeset
|
288 n_desc = 'r%s:%s' % (chs.revision, chs.short_id) |
774
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
289 changesets_group[0].append((chs.raw_id, n_desc,)) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
290 |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
291 hist_l.append(changesets_group) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
292 |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
293 for name, chs in c.rhodecode_repo.branches.items(): |
774
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
294 #chs = chs.split(':')[-1] |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
295 branches_group[0].append((chs, name),) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
296 hist_l.append(branches_group) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
297 |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1044
diff
changeset
|
298 for name, chs in c.rhodecode_repo.tags.items(): |
774
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
299 #chs = chs.split(':')[-1] |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
300 tags_group[0].append((chs, name),) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
301 hist_l.append(tags_group) |
c47152c5fe01
added tags, and branches to file history select box, fixed annotation changeset errors crash on wrongly given revions
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
302 |
128
9deb6f1d5b90
Implemented file history.
Marcin Kuzminski <marcin@python-works.com>
parents:
106
diff
changeset
|
303 return hist_l |