~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
30
class PatchFailed(Exception):
31
    """Failed applying patch!"""
345 by Aaron Bentley
Added zap command
32
423.1.4 by Aaron Bentley
Add --no-color option to shelf
33
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
34
class PatchInvokeError(BzrError):
35
611 by Aaron Bentley
Handle missing patch, fix tabs
36
    _fmt = """Error invoking patch: %(errstr)s%(stderr)s"""
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
37
    internal_error = False
38
611 by Aaron Bentley
Handle missing patch, fix tabs
39
    def __init__(self, e, stderr=''):
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
40
        self.exception = e
41
        self.errstr = os.strerror(e.errno)
611 by Aaron Bentley
Handle missing patch, fix tabs
42
        self.stderr = '\n' + stderr
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
43
44
423.1.4 by Aaron Bentley
Add --no-color option to shelf
45
class NoColor(Exception):
46
    """Color not available on this terminal."""
47
48
49
class NoBzrtoolsColor(Exception):
50
    """Bzrtools is required for color display"""
51
52
345 by Aaron Bentley
Added zap command
53
class NotCheckout(CommandError):
54
    """Specified path is not a checkout."""
346 by Aaron Bentley
Text updates
55
    def __init__(self, path):
56
        CommandError.__init__(self, "%s is not a checkout" % path)
345 by Aaron Bentley
Added zap command
57
58
class UncommittedCheckout(CommandError):
59
    """This checkout contains uncommitted changes"""
346 by Aaron Bentley
Text updates
60
    def __init__(self):
61
        CommandError.__init__(self, "This checkout has uncommitted changes")
401 by Aaron Bentley
Add check whether branch has unique revisions
62
63
class ParentMissingRevisions(CommandError):
64
    """The parent branch is missing revisions."""
65
    def __init__(self, parent):
531.2.2 by Charlie Shepherd
Remove all trailing whitespace
66
        CommandError.__init__(self,
67
            "The parent branch %s is missing revisions from this branch." %
401 by Aaron Bentley
Add check whether branch has unique revisions
68
            parent)
69
        self.parent = parent
407 by Aaron Bentley
Fix zap for checkouts of branches with no parents
70
71
class NoParent(CommandError):
72
    def __init__(self):
73
        CommandError.__init__(self, "There is no parent, so deleting the"
74
                                    " branch could destroy data.")
562 by Aaron Bentley
Better error when shelving binary files
75
76
class ChangedBinaryFiles(BzrError):
77
78
    _fmt = 'Changes involve binary files.'