~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

Merge from bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
185
185
    _fmt = "The tree builder is already building a tree."
186
186
 
187
187
 
 
188
class BranchError(BzrError):
 
189
    """Base class for concrete 'errors about a branch'."""
 
190
 
 
191
    def __init__(self, branch):
 
192
        BzrError.__init__(self, branch=branch)
 
193
 
 
194
 
188
195
class BzrCheckError(InternalBzrError):
189
196
    
190
197
    _fmt = "Internal check failed: %(message)s"
305
312
        BzrError.__init__(self, repository=repository, file_id=file_id)
306
313
 
307
314
 
 
315
class NotStacked(BranchError):
 
316
 
 
317
    _fmt = "The branch '%(branch)s' is not stacked."
 
318
 
 
319
 
308
320
class InventoryModified(InternalBzrError):
309
321
 
310
322
    _fmt = ("The current inventory for the tree %(tree)r has been modified,"
541
553
 
542
554
class InvalidURLJoin(PathError):
543
555
 
544
 
    _fmt = 'Invalid URL join request: "%(args)s"%(extra)s'
 
556
    _fmt = "Invalid URL join request: %(reason)s: %(base)r + %(join_args)r"
545
557
 
546
 
    def __init__(self, msg, base, args):
547
 
        PathError.__init__(self, base, msg)
548
 
        self.args = [base] + list(args)
 
558
    def __init__(self, reason, base, join_args):
 
559
        self.reason = reason
 
560
        self.base = base
 
561
        self.join_args = join_args
 
562
        PathError.__init__(self, base, reason)
549
563
 
550
564
 
551
565
class UnknownHook(BzrError):
566
580
        PathError.__init__(self, url, extra=extra)
567
581
 
568
582
 
 
583
class UnstackableBranchFormat(BzrError):
 
584
 
 
585
    _fmt = ("The branch '%(url)s'(%(format)s) is not a stackable format. "
 
586
        "You will need to upgrade the branch to permit branch stacking.")
 
587
 
 
588
    def __init__(self, format, url):
 
589
        BzrError.__init__(self)
 
590
        self.format = format
 
591
        self.url = url
 
592
 
 
593
 
 
594
class UnstackableRepositoryFormat(BzrError):
 
595
 
 
596
    _fmt = ("The repository '%(url)s'(%(format)s) is not a stackable format. "
 
597
        "You will need to upgrade the repository to permit branch stacking.")
 
598
 
 
599
    def __init__(self, format, url):
 
600
        BzrError.__init__(self)
 
601
        self.format = format
 
602
        self.url = url
 
603
 
 
604
 
569
605
class ReadError(PathError):
570
606
    
571
607
    _fmt = """Error reading from %(path)r."""
1173
1209
        self.bases = bases
1174
1210
 
1175
1211
 
1176
 
class NoCommits(BzrError):
 
1212
class NoCommits(BranchError):
1177
1213
 
1178
1214
    _fmt = "Branch %(branch)s has no commits."
1179
1215
 
1180
 
    def __init__(self, branch):
1181
 
        BzrError.__init__(self, branch=branch)
1182
 
 
1183
1216
 
1184
1217
class UnlistableStore(BzrError):
1185
1218
 
1443
1476
        self.details = details
1444
1477
 
1445
1478
 
 
1479
class UnknownSmartMethod(InternalBzrError):
 
1480
 
 
1481
    _fmt = "The server does not recognise the '%(verb)s' request."
 
1482
 
 
1483
    def __init__(self, verb):
 
1484
        self.verb = verb
 
1485
 
 
1486
 
1446
1487
# A set of semi-meaningful errors which can be thrown
1447
1488
class TransportNotPossible(TransportError):
1448
1489
 
2033
2074
        self.path = path
2034
2075
 
2035
2076
 
 
2077
class RepositoryUpgradeRequired(UpgradeRequired):
 
2078
 
 
2079
    _fmt = "To use this feature you must upgrade your repository at %(path)s."
 
2080
 
 
2081
 
2036
2082
class LocalRequiresBoundBranch(BzrError):
2037
2083
 
2038
2084
    _fmt = "Cannot perform local-only commits on unbound branches."
2182
2228
 
2183
2229
    _fmt = "No smart server available at %(url)s"
2184
2230
 
 
2231
    @symbol_versioning.deprecated_method(symbol_versioning.one_four)
2185
2232
    def __init__(self, url):
2186
2233
        self.url = url
2187
2234
 
2524
2571
    _fmt = "'%(display_url)s' is already a lightweight checkout."
2525
2572
 
2526
2573
 
 
2574
class AlreadyUsingShared(BzrDirError):
 
2575
 
 
2576
    _fmt = "'%(display_url)s' is already using a shared repository."
 
2577
 
 
2578
 
 
2579
class AlreadyStandalone(BzrDirError):
 
2580
 
 
2581
    _fmt = "'%(display_url)s' is already standalone."
 
2582
 
 
2583
 
2527
2584
class ReconfigurationNotSupported(BzrDirError):
2528
2585
 
2529
2586
    _fmt = "Requested reconfiguration of '%(display_url)s' is not supported."
2582
2639
        self.timezone = timezone
2583
2640
 
2584
2641
 
 
2642
class CommandAvailableInPlugin(StandardError):
 
2643
    
 
2644
    internal_error = False
 
2645
 
 
2646
    def __init__(self, cmd_name, plugin_metadata, provider):
 
2647
        
 
2648
        self.plugin_metadata = plugin_metadata
 
2649
        self.cmd_name = cmd_name
 
2650
        self.provider = provider
 
2651
 
 
2652
    def __str__(self):
 
2653
 
 
2654
        _fmt = ('"%s" is not a standard bzr command. \n' 
 
2655
                'However, the following official plugin provides this command: %s\n'
 
2656
                'You can install it by going to: %s'
 
2657
                % (self.cmd_name, self.plugin_metadata['name'], 
 
2658
                    self.plugin_metadata['url']))
 
2659
 
 
2660
        return _fmt
 
2661
 
 
2662
 
 
2663
class NoPluginAvailable(BzrError):
 
2664
    pass    
 
2665
 
 
2666
 
2585
2667
class NotATerminal(BzrError):
2586
2668
 
2587
2669
    _fmt = 'Unable to ask for a password without real terminal.'