~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: Martin Pool
  • Date: 2006-10-15 11:57:58 UTC
  • mto: This revision was merged to the branch mainline in revision 2119.
  • Revision ID: mbp@sourcefrog.net-20061015115758-041391cf08503621
Clean up BzrNewError, other exception classes and users.

This cleans up the probably-mistaken BzrNewError behaviour of using error
class docstrings as their format string.  Instead errors can define a _fmt
attribute with the same meaning.  The docstring is now reserved for its
regular purpose of documentation for programmers.  This behaviour is added to
BzrError.  BzrNewError is left in place for compatibility but no builtin
errors use it anymore and it gives a deprecation warning on construction.

BzrError now accepts either a single preformatted string, or a set of named
parameters to be substituted in to a format string for that class.  This 
behaviour is cleaned up and a couple of callers that depended on the
Python2.4-style exception args tuple are fixed.

Display of unprintable errors is slightly more robust.

errors.IncompatibleFormat was defined twice (shadowing the first
definition), so one use was disambiguated to IncompatibleBundleFormat.

UnsupportedEOLMarker called the wrong superclass constructor.

test_time_creates_benchmark_in_result was too dependent on benchmark
timing and has been loosened.

Some error representations changed slightly because of this (e.g. in use
of punctuation.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
940
940
        tree, relpath = WorkingTree.open_containing(filename)
941
941
        i = tree.inventory.path2id(relpath)
942
942
        if i is None:
943
 
            raise BzrError("%r is not a versioned file" % filename)
 
943
            raise errors.NotVersionedError(filename)
944
944
        else:
945
945
            self.outf.write(i + '\n')
946
946
 
961
961
        inv = tree.inventory
962
962
        fid = inv.path2id(relpath)
963
963
        if fid is None:
964
 
            raise BzrError("%r is not a versioned file" % filename)
 
964
            raise errors.NotVersionedError(filename)
965
965
        for fip in inv.get_idpath(fid):
966
966
            self.outf.write(fip + '\n')
967
967
 
1191
1191
            new_label = 'new/'
1192
1192
        else:
1193
1193
            if not ':' in prefix:
1194
 
                 raise BzrError("--diff-prefix expects two values separated by a colon")
 
1194
                 raise BzrCommandError("--diff-prefix expects two values separated by a colon")
1195
1195
            old_label, new_label = prefix.split(":")
1196
1196
        
1197
1197
        try:
1659
1659
            rev_id = b.last_revision()
1660
1660
        else:
1661
1661
            if len(revision) != 1:
1662
 
                raise BzrError('bzr export --revision takes exactly 1 argument')
 
1662
                raise BzrCommandError('bzr export --revision takes exactly 1 argument')
1663
1663
            rev_id = revision[0].in_history(b).rev_id
1664
1664
        t = b.repository.revision_tree(rev_id)
1665
1665
        try: