~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

merge 2.0 branch rev 4647

Show diffs side-by-side

added added

removed removed

Lines of Context:
636
636
        self.url = url
637
637
 
638
638
 
 
639
class UnstackableLocationError(BzrError):
 
640
 
 
641
    _fmt = "The branch '%(branch_url)s' cannot be stacked on '%(target_url)s'."
 
642
 
 
643
    def __init__(self, branch_url, target_url):
 
644
        BzrError.__init__(self)
 
645
        self.branch_url = branch_url
 
646
        self.target_url = target_url
 
647
 
 
648
 
639
649
class UnstackableRepositoryFormat(BzrError):
640
650
 
641
651
    _fmt = ("The repository '%(url)s'(%(format)s) is not a stackable format. "
783
793
 
784
794
 
785
795
class IncompatibleRepositories(BzrError):
 
796
    """Report an error that two repositories are not compatible.
 
797
 
 
798
    Note that the source and target repositories are permitted to be strings:
 
799
    this exception is thrown from the smart server and may refer to a
 
800
    repository the client hasn't opened.
 
801
    """
786
802
 
787
803
    _fmt = "%(target)s\n" \
788
804
            "is not compatible with\n" \
1996
2012
 
1997
2013
class BadConversionTarget(BzrError):
1998
2014
 
1999
 
    _fmt = "Cannot convert to format %(format)s.  %(problem)s"
 
2015
    _fmt = "Cannot convert from format %(from_format)s to format %(format)s." \
 
2016
            "    %(problem)s"
2000
2017
 
2001
 
    def __init__(self, problem, format):
 
2018
    def __init__(self, problem, format, from_format=None):
2002
2019
        BzrError.__init__(self)
2003
2020
        self.problem = problem
2004
2021
        self.format = format
 
2022
        self.from_format = from_format or '(unspecified)'
2005
2023
 
2006
2024
 
2007
2025
class NoDiffFound(BzrError):
2083
2101
 
2084
2102
class OutOfDateTree(BzrError):
2085
2103
 
2086
 
    _fmt = "Working tree is out of date, please run 'bzr update'."
 
2104
    _fmt = "Working tree is out of date, please run 'bzr update'.%(more)s"
2087
2105
 
2088
 
    def __init__(self, tree):
 
2106
    def __init__(self, tree, more=None):
 
2107
        if more is None:
 
2108
            more = ''
 
2109
        else:
 
2110
            more = ' ' + more
2089
2111
        BzrError.__init__(self)
2090
2112
        self.tree = tree
 
2113
        self.more = more
2091
2114
 
2092
2115
 
2093
2116
class PublicBranchOutOfDate(BzrError):
2147
2170
        self.reason = reason
2148
2171
 
2149
2172
 
 
2173
class InconsistentDeltaDelta(InconsistentDelta):
 
2174
    """Used when we get a delta that is not valid."""
 
2175
 
 
2176
    _fmt = ("An inconsistent delta was supplied: %(delta)r"
 
2177
            "\nreason: %(reason)s")
 
2178
 
 
2179
    def __init__(self, delta, reason):
 
2180
        BzrError.__init__(self)
 
2181
        self.delta = delta
 
2182
        self.reason = reason
 
2183
 
 
2184
 
2150
2185
class UpgradeRequired(BzrError):
2151
2186
 
2152
2187
    _fmt = "To use this feature you must upgrade your branch at %(path)s."
2161
2196
    _fmt = "To use this feature you must upgrade your repository at %(path)s."
2162
2197
 
2163
2198
 
 
2199
class RichRootUpgradeRequired(UpgradeRequired):
 
2200
 
 
2201
    _fmt = ("To use this feature you must upgrade your branch at %(path)s to"
 
2202
           " a format which supports rich roots.")
 
2203
 
 
2204
 
2164
2205
class LocalRequiresBoundBranch(BzrError):
2165
2206
 
2166
2207
    _fmt = "Cannot perform local-only commits on unbound branches."
2167
2208
 
2168
2209
 
2169
 
class InvalidProgressBarType(BzrError):
2170
 
 
2171
 
    _fmt = ("Environment variable BZR_PROGRESS_BAR='%(bar_type)s"
2172
 
            " is not a supported type Select one of: %(valid_types)s")
2173
 
 
2174
 
    def __init__(self, bar_type, valid_types):
2175
 
        BzrError.__init__(self, bar_type=bar_type, valid_types=valid_types)
2176
 
 
2177
 
 
2178
2210
class UnsupportedOperation(BzrError):
2179
2211
 
2180
2212
    _fmt = ("The method %(mname)s is not supported on"
2771
2803
 
2772
2804
class UncommittedChanges(BzrError):
2773
2805
 
2774
 
    _fmt = 'Working tree "%(display_url)s" has uncommitted changes.'
 
2806
    _fmt = ('Working tree "%(display_url)s" has uncommitted changes'
 
2807
            ' (See bzr status).%(more)s')
2775
2808
 
2776
 
    def __init__(self, tree):
 
2809
    def __init__(self, tree, more=None):
 
2810
        if more is None:
 
2811
            more = ''
 
2812
        else:
 
2813
            more = ' ' + more
2777
2814
        import bzrlib.urlutils as urlutils
2778
2815
        display_url = urlutils.unescape_for_display(
2779
2816
            tree.bzrdir.root_transport.base, 'ascii')
2780
 
        BzrError.__init__(self, tree=tree, display_url=display_url)
 
2817
        BzrError.__init__(self, tree=tree, display_url=display_url, more=more)
2781
2818
 
2782
2819
 
2783
2820
class MissingTemplateVariable(BzrError):
2889
2926
    _fmt = 'Cannot bind address "%(host)s:%(port)i": %(orig_error)s.'
2890
2927
 
2891
2928
    def __init__(self, host, port, orig_error):
 
2929
        # nb: in python2.4 socket.error doesn't have a useful repr
2892
2930
        BzrError.__init__(self, host=host, port=port,
2893
 
            orig_error=orig_error[1])
 
2931
            orig_error=repr(orig_error.args))
2894
2932
 
2895
2933
 
2896
2934
class UnknownRules(BzrError):