Почему ртутные вложенные компоненты ведут себя как неверсированные файлы в eclipse AND torotoiseHG - PullRequest
2 голосов
/ 22 мая 2010

Я пытаюсь использовать функцию subrepo в mercurial, используя плагин mercurial eclipse \ tortoiseHG.

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

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

Затем я вытащил корневое репо в eclipse, используя import-> mercurial.

Теперь я вижу, что все вложенные элементы выглядят так, как будто они не версионные (рядом с соответствующими папками в проводнике файлов затмений нет значка «оранжевый цилиндр»).

Кроме того, когда я щелкаю правой кнопкой мыши по одному из подпунктов, я не получаю все команды hg в меню «команда», как обычно, с корневыми проектами - нет «тянуть», «толкать»и т. д.

Кроме того, когда я внес изменение в файл в подпункте, а затем «зафиксировал» корневой проект, он сказал мне, что никаких изменений не найдено.

Я вижу то же самоеповедение также в tortoiseHG - Когда я просматриваю файлы в /root, файлы, принадлежащие непосредственно к корневому репо, имеют небольшой значок (знак V), обозначающий, что они контролируются версией, в то время как папки подпунктов не помечаются какнапример.

Что заставляет меня подозревать, что это какая-то ошибка на моей стороне, заключается в том, что 1. и черепаха, и затмение делают одно и то же, поэтому менее вероятно, что они будут ошибкой в ​​одном из них 2. То, что они делают, выглядит довольно изощренно,поэтому ошибка не может произойти - они обе игнорируют все папки, которые находятся в .hgsub.Если бы произошло обратное (все подпункты рассматривались как обычные папки основного репо, а не как неверсионные), я бы подумал, что это ошибка, вызванная отсутствием обработки подпунктов.Но ясно, что оба приложения подтверждают файл .hgsub

Я что-то не так делаю или это ошибка?

Ответы [ 2 ]

2 голосов
/ 23 мая 2010

это известная ошибка: http://www.javaforge.com/issue/11871

1 голос
/ 22 мая 2010

На первом этапе у вас были реальные вложенные репозитории 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, есть возможность, что плагин " MercurialEclipse " пока не поддерживает subRepos.
В примечаниях к выпуску он вообще не упоминает подпункты.
И TortoiseHg упоминает их только в последней версии 1.0 .

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

...