~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
0.2.3 by Michael Ellerman
Factor out bzrisms.
20
try:
21
    from bzrlib.errors import BzrCommandError as CommandError
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
22
    from bzrlib.errors import BzrError
0.2.3 by Michael Ellerman
Factor out bzrisms.
23
except ImportError:
24
    class CommandError(Exception):
25
        pass
0.1.89 by Michael Ellerman
Add support for unshelving -p0 patches, for backward compatibility.
26
627 by Aaron Bentley
Make patch a nice BzrError
27
class PatchFailed(BzrError):
28
29
    _fmt = """Patch application failed"""
345 by Aaron Bentley
Added zap command
30
423.1.4 by Aaron Bentley
Add --no-color option to shelf
31
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
32
class PatchInvokeError(BzrError):
33
611 by Aaron Bentley
Handle missing patch, fix tabs
34
    _fmt = """Error invoking patch: %(errstr)s%(stderr)s"""
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
35
    internal_error = False
36
611 by Aaron Bentley
Handle missing patch, fix tabs
37
    def __init__(self, e, stderr=''):
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
38
        self.exception = e
39
        self.errstr = os.strerror(e.errno)
611 by Aaron Bentley
Handle missing patch, fix tabs
40
        self.stderr = '\n' + stderr
471 by Aaron Bentley
Fixed handling of pipe errors when writing to patch
41
42
423.1.4 by Aaron Bentley
Add --no-color option to shelf
43
class NoColor(Exception):
44
    """Color not available on this terminal."""
45
46
47
class NoBzrtoolsColor(Exception):
48
    """Bzrtools is required for color display"""
49
50
345 by Aaron Bentley
Added zap command
51
class NotCheckout(CommandError):
52
    """Specified path is not a checkout."""
346 by Aaron Bentley
Text updates
53
    def __init__(self, path):
54
        CommandError.__init__(self, "%s is not a checkout" % path)
345 by Aaron Bentley
Added zap command
55
56
class UncommittedCheckout(CommandError):
57
    """This checkout contains uncommitted changes"""
346 by Aaron Bentley
Text updates
58
    def __init__(self):
59
        CommandError.__init__(self, "This checkout has uncommitted changes")
401 by Aaron Bentley
Add check whether branch has unique revisions
60
61
class ParentMissingRevisions(CommandError):
62
    """The parent branch is missing revisions."""
63
    def __init__(self, parent):
531.2.2 by Charlie Shepherd
Remove all trailing whitespace
64
        CommandError.__init__(self,
65
            "The parent branch %s is missing revisions from this branch." %
401 by Aaron Bentley
Add check whether branch has unique revisions
66
            parent)
67
        self.parent = parent
407 by Aaron Bentley
Fix zap for checkouts of branches with no parents
68
69
class NoParent(CommandError):
70
    def __init__(self):
71
        CommandError.__init__(self, "There is no parent, so deleting the"
72
                                    " branch could destroy data.")
562 by Aaron Bentley
Better error when shelving binary files
73
74
class ChangedBinaryFiles(BzrError):
75
76
    _fmt = 'Changes involve binary files.'
702 by Aaron Bentley
Get conflict-diff under test.
77
78
79
class NoConflictFiles(CommandError):
80
81
    _fmt = '%(base_name)s does not exist and there are no pending merges.'
82
83
    def __init__(self, base_name):
84
        CommandError.__init__(self, base_name=base_name)
772 by Aaron Bentley
Better handling of compound tar names.
85
86
87
class NotArchiveType(BzrError):
88
89
    _fmt = '%(path)s is not an archive.'
90
91
    def __init__(self, path):
92
        BzrError.__init__(self)
93
        self.path = path