Mercurial > hg > mercurial-crew-with-dirclash
comparison hgext/convert/__init__.py @ 5018:c7623d2b2a66
convert: get rid of ugly use of hasattr
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Thu, 26 Jul 2007 13:36:53 -0700 |
parents | 4ebc8693ce72 |
children | ef338e34a906 |
comparison
equal
deleted
inserted
replaced
5017:06329efa722d | 5018:c7623d2b2a66 |
---|---|
20 converters = [convert_cvs, convert_git, convert_svn, mercurial_source, | 20 converters = [convert_cvs, convert_git, convert_svn, mercurial_source, |
21 mercurial_sink] | 21 mercurial_sink] |
22 | 22 |
23 def convertsource(ui, path, **opts): | 23 def convertsource(ui, path, **opts): |
24 for c in converters: | 24 for c in converters: |
25 if not hasattr(c, 'getcommit'): | |
26 continue | |
27 try: | 25 try: |
28 return c(ui, path, **opts) | 26 return c.getcommit and c(ui, path, **opts) |
29 except NoRepo: | 27 except (AttributeError, NoRepo): |
30 pass | 28 pass |
31 raise util.Abort('%s: unknown repository type' % path) | 29 raise util.Abort('%s: unknown repository type' % path) |
32 | 30 |
33 def convertsink(ui, path): | 31 def convertsink(ui, path): |
34 if not os.path.isdir(path): | 32 if not os.path.isdir(path): |
35 raise util.Abort("%s: not a directory" % path) | 33 raise util.Abort("%s: not a directory" % path) |
36 for c in converters: | 34 for c in converters: |
37 if not hasattr(c, 'putcommit'): | |
38 continue | |
39 try: | 35 try: |
40 return c(ui, path) | 36 return c.putcommit and c(ui, path) |
41 except NoRepo: | 37 except (AttributeError, NoRepo): |
42 pass | 38 pass |
43 raise util.Abort('%s: unknown repository type' % path) | 39 raise util.Abort('%s: unknown repository type' % path) |
44 | 40 |
45 class convert(object): | 41 class convert(object): |
46 def __init__(self, ui, source, dest, revmapfile, filemapper, opts): | 42 def __init__(self, ui, source, dest, revmapfile, filemapper, opts): |