Почему субрепозитории mercurial ведут себя как неверсированные файлы в eclipse И torotoiseHG
-
04-10-2019 - |
Вопрос
Я пытаюсь использовать функцию субрепо mercurial, используя плагин mercurial eclipse ortoiseHG.
Вот шаги, которые я предпринял:
- Создал пустой каталог
/root
- клонировал все репозитории, которые я хочу видеть в этой папке (
/root/sub1
,/root/sub2
) - Создал и добавил
.hgsub
файл в корневом репозитории/root/.hgsub
и поместите в него все сопоставления подрепозиториев - используя tortoiseHG, щелкните правой кнопкой мыши
/root
и выбранcreate repository here
- снова с черепахой, выбрал все файлы внутри
/root
и добавил их в корневой репозиторий - зафиксировал корневой репозиторий
- поместил локальный корневой репозиторий в пустой репозиторий, который я установил на печи
Затем я извлек корневое репо в eclipse, используя import->mercurial.
Теперь я вижу, что все подрепозитории выглядят так, как будто они не имеют версии (нет значка «оранжевого цилиндра» рядом с соответствующими папками в проводнике файлов eclipse).
Кроме того, когда я щелкаю правой кнопкой мыши по одному из подрепозиториев, я не получаю все команды hg в меню «команда», как обычно, с корневыми проектами - никаких «вытягиваний», «нажатий» и т. д.
Кроме того, когда я внес изменения в файл в субрепозитории, а затем «зафиксировал» корневой проект, он сообщил мне, что никаких изменений не обнаружено.
Я вижу такое же поведение и в черепахеHG. Когда я просматриваю файлы под /root
, файлы, принадлежащие непосредственно корневому репозиторию, имеют небольшой значок (знак V), обозначающий, что они находятся под контролем версий, а папки вложенных репозиториев не помечены как таковые.
Что заставляет меня подозревать, что это какая -то ошибка на моей стороне, это то, что 1.Как черепаха, так и затмение делают то же самое, поэтому в одном 2 менее вероятно, что в одном 2.То, что они делают, выглядит довольно сложно, поэтому вряд ли это могло произойти из-за ошибки - они оба игнорируют все папки, находящиеся в .hgsub.Если бы произошло обратное (все подрепозитории рассматривались как обычные папки основного репозитория, а не как неверсионные), я бы подумал, что это ошибка, вызванная необработкой подрепозиториев.Но очевидно, что оба приложения распознают файл .hgsub.
Я делаю что-то не так или это баг?
Решение
это известная ошибка: http://www.javaforge.com/issue/11871
Другие советы
На первом этапе у вас были вложенные репозитории Mercurial в корневом репозитории?
Ставим .hgsub
с "subdir = subdir
«Директивы недостаточно, чтобы сделать subdir
субрепозиторий, если это был просто подкаталог основного репозитория (без каких-либо .hg
самостоятельно).
Как сказано в документации:
Обратите внимание, что вложенный репозиторий должен действительно существовать, чтобы строка в .hgsub могла что-либо делать..
Например, если вместо создания локального вложенного репозитория вы пытаетесь связать его с уже существующим удаленным репозиторием, вы ТАКЖЕ должны клонировать этот репозиторий:
$ echo nested = https://example.com/nested/repo/path > .hgsub
$ hg add .hgsub
$ hg clone https://example.com/nested/repo/path nested
Если вы сомневаетесь, всегда старайтесь повторить то, что вы делаете (до момента нажатия) в командной строке, чтобы увидеть, что может показать вам сеанс Hg CLI (интерфейс командной строки).
Вы можете поэкспериментировать с клоном вашего текущего репозитория, чтобы увидеть, что пошло не так.
Теперь, если у вас есть вложенные репозитории Hg, все еще существует вероятность того, что плагин "Меркуриальное затмение" пока не поддерживает субрепозитории.
В примечаниях к выпуску он вообще не упоминает подрепозитории.
А TortoiseHg упоминает их только в своем последняя версия 1.0.
Поддержка подрепозиториев в инструменте статуса/фиксации.