/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: Robert Collins
  • Date: 2010-05-06 11:08:10 UTC
  • mto: This revision was merged to the branch mainline in revision 5223.
  • Revision ID: robertc@robertcollins.net-20100506110810-h3j07fh5gmw54s25
Cleaner matcher matching revised unlocking protocol.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008 Canonical Ltd
 
1
# Copyright (C) 2005-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
702
702
# TODO: Probably this behavior of should be a common superclass
703
703
class NotBranchError(PathError):
704
704
 
705
 
    _fmt = 'Not a branch: "%(path)s".'
 
705
    _fmt = 'Not a branch: "%(path)s"%(detail)s.'
706
706
 
707
 
    def __init__(self, path):
 
707
    def __init__(self, path, detail=None, bzrdir=None):
708
708
       import bzrlib.urlutils as urlutils
709
 
       self.path = urlutils.unescape_for_display(path, 'ascii')
 
709
       path = urlutils.unescape_for_display(path, 'ascii')
 
710
       if detail is not None:
 
711
           detail = ': ' + detail
 
712
       self.detail = detail
 
713
       self.bzrdir = bzrdir
 
714
       PathError.__init__(self, path=path)
 
715
 
 
716
    def _format(self):
 
717
        # XXX: Ideally self.detail would be a property, but Exceptions in
 
718
        # Python 2.4 have to be old-style classes so properties don't work.
 
719
        # Instead we override _format.
 
720
        if self.detail is None:
 
721
            if self.bzrdir is not None:
 
722
                try:
 
723
                    self.bzrdir.open_repository()
 
724
                except NoRepositoryPresent:
 
725
                    self.detail = ''
 
726
                else:
 
727
                    self.detail = ': location is a repository'
 
728
            else:
 
729
                self.detail = ''
 
730
        return PathError._format(self)
710
731
 
711
732
 
712
733
class NoSubmitBranch(PathError):
1158
1179
 
1159
1180
class InvalidRevisionSpec(BzrError):
1160
1181
 
1161
 
    _fmt = ("Requested revision: %(spec)r does not exist in branch:"
 
1182
    _fmt = ("Requested revision: '%(spec)s' does not exist in branch:"
1162
1183
            " %(branch)s%(extra)s")
1163
1184
 
1164
1185
    def __init__(self, spec, branch, extra=None):
1276
1297
class BoundBranchOutOfDate(BzrError):
1277
1298
 
1278
1299
    _fmt = ("Bound branch %(branch)s is out of date with master branch"
1279
 
            " %(master)s.")
 
1300
            " %(master)s.%(extra_help)s")
1280
1301
 
1281
1302
    def __init__(self, branch, master):
1282
1303
        BzrError.__init__(self)
1283
1304
        self.branch = branch
1284
1305
        self.master = master
 
1306
        self.extra_help = ''
1285
1307
 
1286
1308
 
1287
1309
class CommitToDoubleBoundBranch(BzrError):
2154
2176
 
2155
2177
    def __init__(self, repo):
2156
2178
        BzrError.__init__(self)
2157
 
        self.repo_path = repo.bzrdir.root_transport.base
 
2179
        self.repo_path = repo.user_url
2158
2180
 
2159
2181
 
2160
2182
class InconsistentDelta(BzrError):
2732
2754
 
2733
2755
    def __init__(self, bzrdir):
2734
2756
        import bzrlib.urlutils as urlutils
2735
 
        display_url = urlutils.unescape_for_display(bzrdir.root_transport.base,
 
2757
        display_url = urlutils.unescape_for_display(bzrdir.user_url,
2736
2758
                                                    'ascii')
2737
2759
        BzrError.__init__(self, bzrdir=bzrdir, display_url=display_url)
2738
2760
 
2813
2835
            more = ' ' + more
2814
2836
        import bzrlib.urlutils as urlutils
2815
2837
        display_url = urlutils.unescape_for_display(
2816
 
            tree.bzrdir.root_transport.base, 'ascii')
 
2838
            tree.user_url, 'ascii')
2817
2839
        BzrError.__init__(self, tree=tree, display_url=display_url, more=more)
2818
2840
 
2819
2841
 
3093
3115
    def __init__(self, source_branch, target_branch):
3094
3116
        self.source_branch = source_branch
3095
3117
        self.target_branch = target_branch
 
3118
 
 
3119
 
 
3120
class FileTimestampUnavailable(BzrError):
 
3121
 
 
3122
    _fmt = "The filestamp for %(path)s is not available."
 
3123
 
 
3124
    internal_error = True
 
3125
 
 
3126
    def __init__(self, path):
 
3127
        self.path = path
 
3128
 
 
3129
 
 
3130
class NoColocatedBranchSupport(BzrError):
 
3131
 
 
3132
    _fmt = ("%(bzrdir)r does not support co-located branches.")
 
3133
 
 
3134
    def __init__(self, bzrdir):
 
3135
        self.bzrdir = bzrdir
 
3136