Bug 16362

Summary: Не импортирует нелокальные репозитории
Product: Sisyphus Reporter: Alexey Gladkov <legion>
Component: hg2gitAssignee: real <real>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: led, solo
Version: unstable   
Hardware: all   
OS: Linux   

Description Alexey Gladkov 2008-07-15 19:06:33 MSD
hg2git работает с локальными репозиториями, но отказывается импортировать нелокальные репозитории:

[legion@localhost tmp]$ mkdir mozilla
[legion@localhost tmp]$ cd mozilla/
[legion@localhost mozilla]$ git-init
Initialized empty Git repository in /tmp/mozilla/.git/
[legion@localhost mozilla]$ hg2git -r http://hg.mozilla.org/index.cgi/mozilla-central
Traceback (most recent call last):
  File "/usr/bin/hg2git.py", line 453, in <module>
    options.statusfile,authors=a,sob=options.sob,force=options.force))
  File "/usr/bin/hg2git.py", line 388, in hg2git
    if not verify_heads(ui,repo,heads_cache,force):
  File "/usr/bin/hg2git.py", line 351, in verify_heads
    branches=repo.branchtags()
AttributeError: 'httprepository' object has no attribute 'branchtags'
git-fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects:       5000
Total objects:            0 (         0 duplicates                  )
      blobs  :            0 (         0 duplicates          0 deltas)
      trees  :            0 (         0 duplicates          0 deltas)
      commits:            0 (         0 duplicates          0 deltas)
      tags   :            0 (         0 duplicates          0 deltas)
Total branches:           0 (         0 loads     )
      marks:           1024 (         0 unique    )
      atoms:              0
Memory total:          2204 KiB
       pools:          2048 KiB
     objects:           156 KiB
---------------------------------------------------------------------
pack_report: getpagesize()            =       4096
pack_report: core.packedGitWindowSize =   33554432
pack_report: core.packedGitLimit      =  268435456
pack_report: pack_used_ctr            =          0
pack_report: pack_mmap_calls          =          0
pack_report: pack_open_windows        =          0 /          0
pack_report: pack_mapped              =          0 /          0
---------------------------------------------------------------------

Каждый раз затягивать весь репозиторий ради инкрементального обновления очень неудобно. Есть ли способ научить его этому ?
Comment 1 Sir Raorn 2008-07-15 19:17:36 MSD
hg2git помер, теперь вместо него http://repo.or.cz/w/fast-export.git (прямой потомок по коммитам).

Чем не устраивает ситуация сделать один раз hg clone, а потом в нём hg update?  Импорт через временный репозитарий, вполне инкрементально получается.
Comment 2 Alexey Gladkov 2008-07-15 19:26:14 MSD
(In reply to comment #1)
> hg2git помер, теперь вместо него http://repo.or.cz/w/fast-export.git (прямой потомок по
> коммитам).

Спасибо за ссылку. Посмотрю обязательно.

> Чем не устраивает ситуация сделать один раз hg clone, а потом в нём hg update?  Импорт
> через временный репозитарий, вполне инкрементально получается.

Не устраивает то что нужно держать оооооочень большой репозиторий hg ради одного только импорта в git. Если бы цена вопроса была бы в метр, то я не стал бы заморачиваться.
Comment 3 Alexey Gladkov 2008-07-15 19:48:35 MSD
(In reply to comment #2)
> Спасибо за ссылку. Посмотрю обязательно.

fast-export/hg-fast-export.sh падает точно также.
Comment 4 led 2009-01-23 01:58:21 MSK
(В ответ на комментарий №3)
> (In reply to comment #2)
> > Спасибо за ссылку. Посмотрю обязательно.
> 
> fast-export/hg-fast-export.sh падает точно также.

При том, что погуглив, получил впечатлений, что у всех всё чудесно раьотает, не работает только у нас :(
Comment 5 led 2009-01-23 02:19:11 MSK
(В ответ на комментарий №4)
> При том, что погуглив, получил впечатлений, что у всех всё чудесно раьотает, не
> работает только у нас :(

...но, похоже, это всё про локальные репозитории. потому что:

Notes/Limitations
.............
The way the hg API and remote access protocol is designed it is not
possible to use hg-fast-export on remote repositories
(http/ssh). First clone the repository, then convert it.
Comment 6 Andrey Rahmatullin 2009-04-30 17:09:40 MSD
(В ответ на комментарий №5)
> The way the hg API and remote access protocol is designed it is not
> possible to use hg-fast-export on remote repositories
> (http/ssh). First clone the repository, then convert it.
Да.
Comment 7 solo 2009-04-30 20:44:17 MSD
(В ответ на комментарий №1)
> hg2git помер, теперь вместо него http://repo.or.cz/w/fast-export.git (прямой
> потомок по коммитам).

  Несколько пропатченная версия есть здесь: <http://git.altlinux.org/people/solo/packages/?p=hg2git.git;a=shortlog;h=refs/heads/solo/master>. Основные изменения: привязка импорта выполняется не по номеру ревизии (в разных "родственных" hg репозитариях он может плавать), а по id коммитов (в hg эта сущьность постоянная, как и в git). (Подробности описаны здесь: <http://lists.altlinux.org/pipermail/devel/2008-May/155808.html>).