mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Raise a NoManifestException when the manifest DNE
When a command (eg, `repo forall`) expects the manifest project to exist, but there is no manifest, an IOException gets raised. This change defines a new Exception type to be raised in these cases and raises it when project.py fails to read the manifest. Change-Id: Iac576c293a37f7d8f60cd4f6aa95b2c97f9e7957
This commit is contained in:
parent
88b86728a4
commit
75ee0570da
4
error.py
4
error.py
@ -21,6 +21,10 @@ class ManifestInvalidRevisionError(Exception):
|
||||
"""The revision value in a project is incorrect.
|
||||
"""
|
||||
|
||||
class NoManifestException(Exception):
|
||||
"""The required manifest does not exist.
|
||||
"""
|
||||
|
||||
class EditorError(Exception):
|
||||
"""Unspecified error from the user's text editor.
|
||||
"""
|
||||
|
5
main.py
5
main.py
@ -42,6 +42,7 @@ from editor import Editor
|
||||
from error import DownloadError
|
||||
from error import ManifestInvalidRevisionError
|
||||
from error import ManifestParseError
|
||||
from error import NoManifestException
|
||||
from error import NoSuchProjectError
|
||||
from error import RepoChangedException
|
||||
from manifest_xml import XmlManifest
|
||||
@ -140,6 +141,10 @@ class _Repo(object):
|
||||
except ManifestInvalidRevisionError as e:
|
||||
print('error: %s' % str(e), file=sys.stderr)
|
||||
result = 1
|
||||
except NoManifestException as e:
|
||||
print('error: manifest required for this command -- please run init',
|
||||
file=sys.stderr)
|
||||
result = 1
|
||||
except NoSuchProjectError as e:
|
||||
if e.name:
|
||||
print('error: project %s not found' % e.name, file=sys.stderr)
|
||||
|
@ -30,6 +30,7 @@ from git_command import GitCommand, git_require
|
||||
from git_config import GitConfig, IsId, GetSchemeFromUrl, ID_RE
|
||||
from error import GitError, HookError, UploadError
|
||||
from error import ManifestInvalidRevisionError
|
||||
from error import NoManifestException
|
||||
from trace import IsTrace, Trace
|
||||
|
||||
from git_refs import GitRefs, HEAD, R_HEADS, R_TAGS, R_PUB, R_M
|
||||
@ -1894,7 +1895,10 @@ class Project(object):
|
||||
path = os.path.join(self._project.gitdir, HEAD)
|
||||
else:
|
||||
path = os.path.join(self._project.worktree, '.git', HEAD)
|
||||
fd = open(path, 'rb')
|
||||
try:
|
||||
fd = open(path, 'rb')
|
||||
except IOError:
|
||||
raise NoManifestException(path)
|
||||
try:
|
||||
line = fd.read()
|
||||
finally:
|
||||
|
Loading…
Reference in New Issue
Block a user