Преобразование SVN в Mercurial на Mac с работающей привязкой Python не работает - PullRequest
2 голосов
/ 04 марта 2010

Я пытаюсь преобразовать локальный репозиторий SCN (со всей его историей) в Mercurial. Я работаю на Mac (10.6.2). Поэтому я использую Macports в качестве инструмента управления пакетами.

Я начал преобразование с:

hg convert file:// ´pwd´/calebsvn/ 

В результате он начинает нормально работать, но через некоторое время останавливается. Это вывод:

initializing svn wc 'calebsvn-wc'
** unknown exception encountered, details follow
** report bug details to http://mercurial.selenic.com/bts/
** or mercurial@selenic.com
** Mercurial Distributed SCM (version 1.4.2)
** Extensions loaded: convert
Traceback (most recent call last):
  File "/opt/local/bin/hg", line 27, in <module>
    mercurial.dispatch.run()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/dispatch.py", line 16, in run
    sys.exit(dispatch(sys.argv[1:]))
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/dispatch.py", line 30, in dispatch
    return _runcatch(u, args)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/dispatch.py", line 46, in _runcatch
    return _dispatch(ui, args)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/dispatch.py", line 454, in _dispatch
    return runcommand(lui, repo, cmd, fullargs, ui, options, d)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/dispatch.py", line 324, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/dispatch.py", line 505, in _runcommand
    return checkargs()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/dispatch.py", line 459, in checkargs
    return cmdfunc()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/dispatch.py", line 453, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mercurial/util.py", line 386, in check
    return func(*args, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/hgext/convert/__init__.py", line 229, in convert
    return convcmd.convert(ui, src, dest, revmapfile, **opts)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/hgext/convert/convcmd.py", line 368, in convert
    destc = convertsink(ui, dest, opts.get('dest_type'))
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/hgext/convert/convcmd.py", line 66, in convertsink
    return sink(ui, path)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/hgext/convert/subversion.py", line 1004, in __init__
    xport = transport.SvnRaTransport(url=geturl(path))
NameError: global name 'transport' is not defined

Я искал список рассылки и нашел инструкцию для проверки привязок svn в моей локальной установке python. Они работают, как вы можете видеть на следующем выводе:

$ python -c 'import svn.core; print svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR'
1 6

В качестве дополнительной информации, вот полный список всех пакетов, которые я установил с MacPorts:

apr                            @1.3.12         devel/apr
apr                            @1.3.12         devel/apr
apr-util                       @1.3.9          devel/apr-util
bzip2                          @1.0.5          archivers/bzip2
cvs2svn                        @2.3.0          devel/cvs2svn
cyrus-sasl2                    @2.1.23         security/cyrus-sasl2
db46                           @4.6.21         databases/db46
expat                          @2.0.1          textproc/expat
fontconfig                     @2.8.0          graphics/fontconfig
freetype                       @2.3.12         print/freetype
gdbm                           @1.8.3          databases/gdbm
gettext                        @0.17           devel/gettext
gperf                          @3.0.4          devel/gperf
libiconv                       @1.13.1         textproc/libiconv
mercurial                      @1.4.2          devel/mercurial
ncurses                        @5.7            devel/ncurses
ncursesw                       @5.7            devel/ncursesw
neon                           @0.29.3         www/neon
openssl                        @0.9.8m         devel/openssl
openssl                        @0.9.8m         devel/openssl
pkgconfig                      @0.23           devel/pkgconfig
py26-hgsvn                     @0.1.7          python/py26-hgsvn
py26-setuptools                @0.6c11         python/py26-setuptools
py26-svn                       @1.7.0          python/py26-svn
python26                       @2.6.4          lang/python26
readline                       @6.1.000        devel/readline
serf                           @0.3.0          www/serf
sqlite3                        @3.6.22         databases/sqlite3
subversion                     @1.6.9          devel/subversion
tcl                            @8.5.8          lang/tcl
tk                             @8.5.8          x11/tk
Xft2                           @2.1.14         x11/Xft2
xorg-bigreqsproto              @1.1.0          x11/xorg-bigreqsproto
xorg-inputproto                @2.0            x11/xorg-inputproto
xorg-kbproto                   @1.0.4          x11/xorg-kbproto
xorg-libX11                    @1.3.3          x11/xorg-libX11
xorg-libXau                    @1.0.5          x11/xorg-libXau
xorg-libXdmcp                  @1.0.3          x11/xorg-libXdmcp
xorg-libXext                   @1.1.1          x11/xorg-libXext
xorg-libXScrnSaver             @1.2.0          x11/xorg-libXScrnSaver
xorg-renderproto               @0.11           x11/xorg-renderproto
xorg-scrnsaverproto            @1.2.0          x11/xorg-scrnsaverproto
xorg-util-macros               @1.6.0          x11/xorg-util-macros
xorg-xcmiscproto               @1.2.0          x11/xorg-xcmiscproto
xorg-xextproto                 @7.1.1          x11/xorg-xextproto
xorg-xf86bigfontproto          @1.2.0          x11/xorg-xf86bigfontproto
xorg-xproto                    @7.0.16         x11/xorg-xproto
xorg-xtrans                    @1.2.5          x11/xorg-xtrans
xrender                        @0.9.5          x11/xrender
zlib                           @1.2.3          archivers/zlib

Спасибо и признательность за вашу помощь!

Ответы [ 2 ]

6 голосов
/ 13 июня 2010

Расширяя вопрос и ответ Болидора:

Если у вас возникли проблемы с преобразованием репозитория из Subversion и Mercurial, и вы используете MacPorts, вам, вероятно, захочется:

  1. Установить привязки Python Subversion:

    sudo port install subversion-python26bindings
    
  2. Переключиться на Python MacPorts:

    sudo port install python_select
    sudo python_select python26
    
  3. Сделайте ваше преобразование

  4. Переключите ваш питон (необязательно)

    sudo python_select python26-apple
    
1 голос
/ 05 марта 2010

Хорошо. Я понял.

Я пропустил комментарий установки python26 с Macports о том, что эту версию python еще предстоит выбрать путем установки и выполнения скрипта. Проблема заключалась в том, что я все еще работал над оригинальным Python на Snow Leopard. Поэтому я выполнил дополнительно к установке python26

sudo ports install python-select
sudo python_select python26

и снова попробовал преобразование. Преобразование тогда мгновенно сработало.

...