19
by John Arbash Meinel
More refactoring. Add some direct tests for GitModel. |
1 |
# Copyright (C) 2007 Canonical Ltd
|
2 |
#
|
|
3 |
# This program is free software; you can redistribute it and/or modify
|
|
4 |
# it under the terms of the GNU General Public License as published by
|
|
5 |
# the Free Software Foundation; either version 2 of the License, or
|
|
6 |
# (at your option) any later version.
|
|
7 |
#
|
|
8 |
# This program is distributed in the hope that it will be useful,
|
|
9 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11 |
# GNU General Public License for more details.
|
|
12 |
#
|
|
13 |
# You should have received a copy of the GNU General Public License
|
|
14 |
# along with this program; if not, write to the Free Software
|
|
15 |
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
16 |
||
439
by Jelmer Vernooij
Add exception for ghost revisions. |
17 |
|
19
by John Arbash Meinel
More refactoring. Add some direct tests for GitModel. |
18 |
"""A grouping of Exceptions for bzr-git"""
|
19 |
||
439
by Jelmer Vernooij
Add exception for ghost revisions. |
20 |
|
292
by Jelmer Vernooij
Fix formatting. |
21 |
from dulwich import errors as git_errors |
22 |
||
19
by John Arbash Meinel
More refactoring. Add some direct tests for GitModel. |
23 |
from bzrlib import errors as bzr_errors |
24 |
||
439
by Jelmer Vernooij
Add exception for ghost revisions. |
25 |
|
19
by John Arbash Meinel
More refactoring. Add some direct tests for GitModel. |
26 |
class BzrGitError(bzr_errors.BzrError): |
27 |
"""The base-level exception for bzr-git errors."""
|
|
28 |
||
29 |
||
30 |
class GitCommandError(BzrGitError): |
|
31 |
"""Raised when spawning 'git' does not return normally."""
|
|
32 |
||
33 |
_fmt = 'Command failed (%(returncode)s): command %(command)s\n%(stderr)s' |
|
34 |
||
35 |
def __init__(self, command, returncode, stderr): |
|
36 |
self.command = command |
|
37 |
self.returncode = returncode |
|
38 |
self.stderr = stderr |
|
165
by Jelmer Vernooij
Give a proper error when the ref can not be found. |
39 |
|
40 |
||
41 |
class NoSuchRef(BzrGitError): |
|
677.1.18
by Jelmer Vernooij
Clean up trailing whitespace. |
42 |
"""Raised when a ref can not be found."""
|
165
by Jelmer Vernooij
Give a proper error when the ref can not be found. |
43 |
|
44 |
_fmt = "The ref %(ref)s was not found." |
|
677.1.18
by Jelmer Vernooij
Clean up trailing whitespace. |
45 |
|
277
by Jelmer Vernooij
Allow passing in refs that *were* found in NoSuchRef. |
46 |
def __init__(self, ref, present_refs=None): |
165
by Jelmer Vernooij
Give a proper error when the ref can not be found. |
47 |
self.ref = ref |
277
by Jelmer Vernooij
Allow passing in refs that *were* found in NoSuchRef. |
48 |
self.present_refs = present_refs |
49 |
||
210
by Jelmer Vernooij
properly error out about not support lightweight checkouts. |
50 |
|
242
by Jelmer Vernooij
Add conversion function for dulwich errors. |
51 |
def convert_dulwich_error(error): |
52 |
"""Convert a Dulwich error to a Bazaar error."""
|
|
53 |
||
54 |
if isinstance(error, git_errors.HangupException): |
|
55 |
raise bzr_errors.ConnectionReset(error.msg, "") |
|
56 |
raise error |
|
291
by Jelmer Vernooij
Print proper error about not supporting push. |
57 |
|
58 |
||
59 |
class NoPushSupport(bzr_errors.BzrError): |
|
60 |
_fmt = "Push is not yet supported for bzr-git. Try dpush instead." |
|
319
by Jelmer Vernooij
Print proper error when trying unsupported operations against a git server. |
61 |
|
62 |
||
63 |
class GitSmartRemoteNotSupported(bzr_errors.BzrError): |
|
64 |
_fmt = "This operation is not supported by the Git smart server protocol." |