diff options
| -rw-r--r-- | error.py | 4 | ||||
| -rwxr-xr-x | main.py | 5 | ||||
| -rw-r--r-- | project.py | 6 |
3 files changed, 14 insertions, 1 deletions
| @@ -21,6 +21,10 @@ class ManifestInvalidRevisionError(Exception): | |||
| 21 | """The revision value in a project is incorrect. | 21 | """The revision value in a project is incorrect. |
| 22 | """ | 22 | """ |
| 23 | 23 | ||
| 24 | class NoManifestException(Exception): | ||
| 25 | """The required manifest does not exist. | ||
| 26 | """ | ||
| 27 | |||
| 24 | class EditorError(Exception): | 28 | class EditorError(Exception): |
| 25 | """Unspecified error from the user's text editor. | 29 | """Unspecified error from the user's text editor. |
| 26 | """ | 30 | """ |
| @@ -42,6 +42,7 @@ from editor import Editor | |||
| 42 | from error import DownloadError | 42 | from error import DownloadError |
| 43 | from error import ManifestInvalidRevisionError | 43 | from error import ManifestInvalidRevisionError |
| 44 | from error import ManifestParseError | 44 | from error import ManifestParseError |
| 45 | from error import NoManifestException | ||
| 45 | from error import NoSuchProjectError | 46 | from error import NoSuchProjectError |
| 46 | from error import RepoChangedException | 47 | from error import RepoChangedException |
| 47 | from manifest_xml import XmlManifest | 48 | from manifest_xml import XmlManifest |
| @@ -140,6 +141,10 @@ class _Repo(object): | |||
| 140 | except ManifestInvalidRevisionError as e: | 141 | except ManifestInvalidRevisionError as e: |
| 141 | print('error: %s' % str(e), file=sys.stderr) | 142 | print('error: %s' % str(e), file=sys.stderr) |
| 142 | result = 1 | 143 | result = 1 |
| 144 | except NoManifestException as e: | ||
| 145 | print('error: manifest required for this command -- please run init', | ||
| 146 | file=sys.stderr) | ||
| 147 | result = 1 | ||
| 143 | except NoSuchProjectError as e: | 148 | except NoSuchProjectError as e: |
| 144 | if e.name: | 149 | if e.name: |
| 145 | print('error: project %s not found' % e.name, file=sys.stderr) | 150 | print('error: project %s not found' % e.name, file=sys.stderr) |
| @@ -30,6 +30,7 @@ from git_command import GitCommand, git_require | |||
| 30 | from git_config import GitConfig, IsId, GetSchemeFromUrl, ID_RE | 30 | from git_config import GitConfig, IsId, GetSchemeFromUrl, ID_RE |
| 31 | from error import GitError, HookError, UploadError | 31 | from error import GitError, HookError, UploadError |
| 32 | from error import ManifestInvalidRevisionError | 32 | from error import ManifestInvalidRevisionError |
| 33 | from error import NoManifestException | ||
| 33 | from trace import IsTrace, Trace | 34 | from trace import IsTrace, Trace |
| 34 | 35 | ||
| 35 | from git_refs import GitRefs, HEAD, R_HEADS, R_TAGS, R_PUB, R_M | 36 | from git_refs import GitRefs, HEAD, R_HEADS, R_TAGS, R_PUB, R_M |
| @@ -1894,7 +1895,10 @@ class Project(object): | |||
| 1894 | path = os.path.join(self._project.gitdir, HEAD) | 1895 | path = os.path.join(self._project.gitdir, HEAD) |
| 1895 | else: | 1896 | else: |
| 1896 | path = os.path.join(self._project.worktree, '.git', HEAD) | 1897 | path = os.path.join(self._project.worktree, '.git', HEAD) |
| 1897 | fd = open(path, 'rb') | 1898 | try: |
| 1899 | fd = open(path, 'rb') | ||
| 1900 | except IOError: | ||
| 1901 | raise NoManifestException(path) | ||
| 1898 | try: | 1902 | try: |
| 1899 | line = fd.read() | 1903 | line = fd.read() |
| 1900 | finally: | 1904 | finally: |
