~abentley/bzrtools/bzrtools.dev

325.1.2 by Aaron Bentley
Merge shelf v2
1
# Copyright (C) 2005 Aaron Bentley, 2006 Michael Ellerman
612 by Aaron Bentley
Update email address
2
# <aaron@aaronbentley.com>
325.1.2 by Aaron Bentley
Merge shelf v2
3
#
4
#    This program is free software; you can redistribute it and/or modify
5
#    it under the terms of the GNU General Public License as published by
6
#    the Free Software Foundation; either version 2 of the License, or
7
#    (at your option) any later version.
8
#
9
#    This program is distributed in the hope that it will be useful,
10
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
11
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
#    GNU General Public License for more details.
13
#
14
#    You should have received a copy of the GNU General Public License
15
#    along with this program; if not, write to the Free Software
16
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
18
import os
19
325.1.2 by Aaron Bentley
Merge shelf v2
20
class NoPyBaz(Exception):
21
    def __init__(self):
22
        Exception.__init__(self, "PyBaz is not installed.")
0.2.3 by Michael Ellerman
Factor out bzrisms.
23
try:
24
    from bzrlib.errors import BzrCommandError as CommandError
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
25
    from bzrlib.errors import BzrError
0.2.3 by Michael Ellerman
Factor out bzrisms.
26
except ImportError:
27
    class CommandError(Exception):
28
        pass
0.1.89 by Michael Ellerman
Add support for unshelving -p0 patches, for backward compatibility.
29
627 by Aaron Bentley
Make patch a nice BzrError
30
class PatchFailed(BzrError):
31
32
    _fmt = """Patch application failed"""
345 by Aaron Bentley
Added zap command
33
423.1.4 by Aaron Bentley
Add --no-color option to shelf
34
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
35
class PatchInvokeError(BzrError):
36
611 by Aaron Bentley
Handle missing patch, fix tabs
37
    _fmt = """Error invoking patch: %(errstr)s%(stderr)s"""
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
38
    internal_error = False
39
611 by Aaron Bentley
Handle missing patch, fix tabs
40
    def __init__(self, e, stderr=''):
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
41
        self.exception = e
42
        self.errstr = os.strerror(e.errno)
611 by Aaron Bentley
Handle missing patch, fix tabs
43
        self.stderr = '\n' + stderr
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
44
45
423.1.4 by Aaron Bentley
Add --no-color option to shelf
46
class NoColor(Exception):
47
    """Color not available on this terminal."""
48
49
50
class NoBzrtoolsColor(Exception):
51
    """Bzrtools is required for color display"""
52
53
345 by Aaron Bentley
Added zap command
54
class NotCheckout(CommandError):
55
    """Specified path is not a checkout."""
346 by Aaron Bentley
Text updates
56
    def __init__(self, path):
57
        CommandError.__init__(self, "%s is not a checkout" % path)
345 by Aaron Bentley
Added zap command
58
59
class UncommittedCheckout(CommandError):
60
    """This checkout contains uncommitted changes"""
346 by Aaron Bentley
Text updates
61
    def __init__(self):
62
        CommandError.__init__(self, "This checkout has uncommitted changes")
401 by Aaron Bentley
Add check whether branch has unique revisions
63
64
class ParentMissingRevisions(CommandError):
65
    """The parent branch is missing revisions."""
66
    def __init__(self, parent):
531.2.2 by Charlie Shepherd
Remove all trailing whitespace
67
        CommandError.__init__(self,
68
            "The parent branch %s is missing revisions from this branch." %
401 by Aaron Bentley
Add check whether branch has unique revisions
69
            parent)
70
        self.parent = parent
407 by Aaron Bentley
Fix zap for checkouts of branches with no parents
71
72
class NoParent(CommandError):
73
    def __init__(self):
74
        CommandError.__init__(self, "There is no parent, so deleting the"
75
                                    " branch could destroy data.")
562 by Aaron Bentley
Better error when shelving binary files
76
77
class ChangedBinaryFiles(BzrError):
78
79
    _fmt = 'Changes involve binary files.'