2009-10-15 1 views
23

Я использовал команду «hg convert», чтобы попытаться переместить мой SVN-репозиторий на hg, и, похоже, он работает (требуется время и распечатывает все сообщения фиксации по мере их поступления), но в конце получившийся каталог Mercurial пуст. В нем есть скрытый подкаталог .hg, и это около 200 МБ, так что SOMETHING произошло, но ни один из файлов не существует.Пустой репозиторий после подрывной деятельности -> меркурийное преобразование

Любые мысли?

Единственное, что я могу думать, как быть вовлеченным в том, что вместо того, чтобы ствол верхнего уровня, brankes, теги каталоги, у нас есть много проектов, каждый со своими собственными магистральными, ветви, теги:


svn-repository/ 
    Project1/ 
     trunk/ 
     branches/ 
     tags/ 
    Project2/ 
     trunk/ 
     branches/ 
     tags/ 

и т. Д.

Может ли быть причиной проблемы? Я понимаю, что SVN не волнует, как вы организуете репозиторий, но Mercurial?

+0

Хех, поддержал вопрос, так как я был там и сделал это! – MattGWagner

ответ

29

Чтобы получить рабочую копию, вам необходимо запустить hg update.

(Такие ртутные репозитории без рабочей копии могут использоваться как чистые точки связи, в которые исправлены или оттянуты ревизии, подобно серверу subversion. В этом случае он был создан hg convert, но вы также можете создавать такие хранилища с hg clone --noupdate или hg update null. опуская рабочие файлы копирование экономит пространство.)

Кроме того, я бы порекомендовал вам преобразовать каждый проект отдельно. Если вы укажете URL-адрес для «project1», то hg convert автоматически обнаружит подпапки trunk, branches и tags и будет делать все правильно.

В меркуриальных ветвях есть первоклассные концепции, а не только папки, которые, как оказалось, были скопированы с сундука. Филиалы не живут в любом видимом пользователем месте, как в svn. Наличие нескольких проектов (каждый со своими филиалами) в единственном ртутном хранилище не имеет смысла.

+0

Ах, конечно, я не могу поверить, что не пробовал. Я все еще привык к разнице между push/pull и commit/update. Если я могу спросить о последующих действиях: почему вы рекомендуете разбивать проекты на разные репозитории? Причина, по которой они теперь группируются, состоит в том, что многие из проектов являются модульными и используются в разных комбинациях вместе, но мы все же хотим иметь возможность их разветвлять. Является ли эта организация структурой, над чем будет жаловаться Mercurial? –

+0

@hvjackson: в подрывной деятельности вы можете объединять изменения между папками с другим путем, но с общей родословной. Mercurial работает совсем по-другому: слияние - это ревизия, которая имеет две родительские ревизии. Если вы повторяете подрывный способ делать что-то, то вы не сможете слиться должным образом. Это может показаться запутанным - я рекомендую вам работать через учебник hg: http://mercurial.selenic.com/wiki/Tutorial –

+0

Или посмотрите http://mercurial.selenic.com/wiki/Merge –

Смежные вопросы