Merge "Raise a NoManifestException when the manifest DNE"

This commit is contained in:
Conley Owens 2012-11-16 10:39:24 -08:00 committed by Gerrit Code Review
commit a67df63ef1
3 changed files with 14 additions and 1 deletions

View File

@ -21,6 +21,10 @@ class ManifestInvalidRevisionError(Exception):
"""The revision value in a project is incorrect. """The revision value in a project is incorrect.
""" """
class NoManifestException(Exception):
"""The required manifest does not exist.
"""
class EditorError(Exception): class EditorError(Exception):
"""Unspecified error from the user's text editor. """Unspecified error from the user's text editor.
""" """

View File

@ -42,6 +42,7 @@ from editor import Editor
from error import DownloadError from error import DownloadError
from error import ManifestInvalidRevisionError from error import ManifestInvalidRevisionError
from error import ManifestParseError from error import ManifestParseError
from error import NoManifestException
from error import NoSuchProjectError from error import NoSuchProjectError
from error import RepoChangedException from error import RepoChangedException
from manifest_xml import XmlManifest from manifest_xml import XmlManifest
@ -140,6 +141,10 @@ class _Repo(object):
except ManifestInvalidRevisionError as e: except ManifestInvalidRevisionError as e:
print('error: %s' % str(e), file=sys.stderr) print('error: %s' % str(e), file=sys.stderr)
result = 1 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: except NoSuchProjectError as e:
if e.name: if e.name:
print('error: project %s not found' % e.name, file=sys.stderr) print('error: project %s not found' % e.name, file=sys.stderr)

View File

@ -30,6 +30,7 @@ from git_command import GitCommand, git_require
from git_config import GitConfig, IsId, GetSchemeFromUrl, ID_RE from git_config import GitConfig, IsId, GetSchemeFromUrl, ID_RE
from error import GitError, HookError, UploadError from error import GitError, HookError, UploadError
from error import ManifestInvalidRevisionError from error import ManifestInvalidRevisionError
from error import NoManifestException
from trace import IsTrace, Trace from trace import IsTrace, Trace
from git_refs import GitRefs, HEAD, R_HEADS, R_TAGS, R_PUB, R_M 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) path = os.path.join(self._project.gitdir, HEAD)
else: else:
path = os.path.join(self._project.worktree, '.git', HEAD) path = os.path.join(self._project.worktree, '.git', HEAD)
fd = open(path, 'rb') try:
fd = open(path, 'rb')
except IOError:
raise NoManifestException(path)
try: try:
line = fd.read() line = fd.read()
finally: finally: