~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to baz_import.py

  • Committer: Daniel Silverstone
  • Date: 2005-11-10 18:08:20 UTC
  • mfrom: (278 bzrtools)
  • mto: This revision was merged to the branch mainline in revision 279.
  • Revision ID: daniel.silverstone@canonical.com-20051110180820-6990ef6c382cd1c1
Merge in from aaron

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
import os.path
28
28
import shutil
29
29
import bzrlib
30
 
from bzrlib.errors import BzrError
 
30
from bzrlib.errors import BzrError, NotBranchError, BzrCommandError
31
31
import bzrlib.trace
32
32
import bzrlib.merge
33
33
import bzrlib.inventory
223
223
        # the current version is
224
224
        branch = find_branch(output_dir)
225
225
        last_patch = get_last_revision(branch)
 
226
        if last_patch is None:
 
227
            raise NotPreviousImport(branch.base)
226
228
        if version is None:
227
229
            version = last_patch.version
228
230
    elif version is None:
287
289
    try:
288
290
        ancestors, old_revno = get_remaining_revisions(output_dir, version)
289
291
    except NotInABranch, e:
290
 
        raise UserError("%s exists, but is not a bzr branch." % e.path)
 
292
        raise NotPreviousImport(e.path)
291
293
    if len(ancestors) == 0:
292
294
        last_revision = get_last_revision(find_branch(output_dir))
293
295
        print 'Tree is up-to-date with %s' % last_revision
343
345
        shutil.rmtree(tempdir)
344
346
    print "Import complete."
345
347
            
346
 
class UserError(Exception):
 
348
class UserError(BzrCommandError):
347
349
    def __init__(self, message):
348
350
        """Exception to throw when a user makes an impossible request
349
351
        :param message: The message to emit when printing this exception
350
352
        :type message: string
351
353
        """
352
 
        Exception.__init__(self, message)
 
354
        BzrCommandError.__init__(self, message)
 
355
 
 
356
class NotPreviousImport(UserError):
 
357
    def __init__(self, path):
 
358
        UserError.__init__(self, "%s is not the location of a previous import."
 
359
                           % path)
 
360
 
353
361
 
354
362
def revision_id(arch_revision):
355
363
    """
547
555
    """
548
556
    try:
549
557
        return Branch.open(path)
550
 
    except BzrError, e:
551
 
        if e.args[0].endswith("' is not in a branch"):
552
 
            raise NotInABranch(path)
 
558
    except NotBranchError, e:
 
559
        raise NotInABranch(path)
553
560
 
554
561
class cmd_baz_import(Command):
555
562
    """Import an Arch or Baz branch into a bzr branch"""