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.
"""
class NoManifestException(Exception):
"""The required manifest does not exist.
"""
class EditorError(Exception):
"""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 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)

View File

@ -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)
try:
fd = open(path, 'rb')
except IOError:
raise NoManifestException(path)
try:
line = fd.read()
finally: