Mercurial > kallithea
comparison rhodecode/controllers/files.py @ 945:05b59c48556f beta
fixed error when trying to make download on empty repository
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 16 Jan 2011 12:27:44 +0100 |
parents | 32318ec7bfc1 |
children | 85ee0ea183e7 |
comparison
equal
deleted
inserted
replaced
944:bec32ac08c9a | 945:05b59c48556f |
---|---|
152 archive_specs = { | 152 archive_specs = { |
153 '.tar.bz2': ('application/x-tar', 'tbz2'), | 153 '.tar.bz2': ('application/x-tar', 'tbz2'), |
154 '.tar.gz': ('application/x-tar', 'tgz'), | 154 '.tar.gz': ('application/x-tar', 'tgz'), |
155 '.zip': ('application/zip', 'zip'), | 155 '.zip': ('application/zip', 'zip'), |
156 } | 156 } |
157 | 157 |
158 fileformat = None | 158 fileformat = None |
159 revision = None | 159 revision = None |
160 | 160 |
161 for ext in archive_specs.keys(): | 161 for ext in archive_specs.keys(): |
162 archive_spec = fname.split(ext) | 162 archive_spec = fname.split(ext) |
163 if len(archive_spec) == 2: | 163 if len(archive_spec) == 2: |
164 fileformat = archive_spec[1] or ext | 164 fileformat = archive_spec[1] or ext |
165 revision = archive_spec[0] | 165 revision = archive_spec[0] |
166 | 166 |
167 if not archive_specs.has_key(fileformat): | 167 if not archive_specs.has_key(fileformat): |
168 return _('Unknown archive type') | 168 return _('Unknown archive type') |
169 | 169 |
170 repo = ScmModel().get_repo(repo_name) | 170 repo = ScmModel().get_repo(repo_name) |
171 | 171 |
172 try: | 172 try: |
173 repo.get_changeset(revision) | 173 repo.get_changeset(revision) |
174 except ChangesetDoesNotExistError: | 174 except ChangesetDoesNotExistError: |
175 return _('Unknown revision %s') % revision | 175 return _('Unknown revision %s') % revision |
176 except EmptyRepositoryError: | |
177 return _('Empty repository') | |
176 | 178 |
177 archive = tempfile.TemporaryFile() | 179 archive = tempfile.TemporaryFile() |
178 localrepo = repo.repo | 180 localrepo = repo.repo |
179 fname = '%s-%s%s' % (repo_name, revision, fileformat) | 181 fname = '%s-%s%s' % (repo_name, revision, fileformat) |
180 archival.archive(localrepo, archive, revision, archive_specs[fileformat][1], | 182 archival.archive(localrepo, archive, revision, archive_specs[fileformat][1], |