Почему субрепозитории mercurial ведут себя как неверсированные файлы в eclipse И torotoiseHG

StackOverflow https://stackoverflow.com/questions/2887107

Вопрос

Я пытаюсь использовать функцию субрепо mercurial, используя плагин mercurial eclipse ortoiseHG.

Вот шаги, которые я предпринял:

  1. Создал пустой каталог /root
  2. клонировал все репозитории, которые я хочу видеть в этой папке (/root/sub1, /root/sub2)
  3. Создал и добавил .hgsub файл в корневом репозитории /root/.hgsub и поместите в него все сопоставления подрепозиториев
  4. используя tortoiseHG, щелкните правой кнопкой мыши /root и выбран create repository here
  5. снова с черепахой, выбрал все файлы внутри /root и добавил их в корневой репозиторий
  6. зафиксировал корневой репозиторий
  7. поместил локальный корневой репозиторий в пустой репозиторий, который я установил на печи

Затем я извлек корневое репо в 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.

Поддержка подрепозиториев в инструменте статуса/фиксации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top