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],