Я пытаюсь правильно отслеживать вложенные репозитории с помощью TortoiseHg.
У меня есть основной репозиторий, который отслеживает весь мой проект. Этот проект содержит несколько небольших плагинов, которые хранятся внутри подкаталога plugins/.
Я хотел бы отслеживать каждый плагин независимо (совершая и нажимая BitBucket для каждого из них), все еще имея возможность совершить "целую" фиксацию моего проекта, включая изменения, внесенные в плагины, и нажатие на него другое местоположение (не BitBucket).
То, что я сделал до сих пор, - это создание нового репо для каждого из моих плагинов. Я могу совершить и быстро направить их в BitBucket. Но когда я отправился на свой "основной" репозиторий, TortoiseHg отображает сообщение об ошибке abort: path 'mainrepo\\plugins\\plugin1\\plugin1.php' is inside repo 'mainrepo\\plugins\\plugin1'
.
Я вижу, что я делаю что-то неправильно, но я не могу сказать, что.
Я использую ночное время как Mercurial, так и TortoiseHg (версия ToirtoiseHg 0.9.3 + 237-ea50f793bbe4 и Mercurial-1.4.3 + 225-70dea42c9406) на WinXP. Я прочитал, что обработка subrepos была добавлена в эту сборку TortoiseHg, но, ну, я даже не уверен, что subrepos - это функция, которую я должен использовать здесь.
Обновление
Я сделал некоторый прогресс, но все равно не могу заставить его работать так, как хотелось бы.
Вот моя структура:
-- .hg
-- core
-- app
-- file.php
-- file.css
-- plugins
-- plugin1
-- file1.php
-- plugin2
-- file2.php
Я пошел в app/plugins и клонировал плагин (именуемый plugin3) из BitBucket здесь. Затем я создал файл .hgsub в корне и добавил к нему app/plugins/plugin3 = app/plugins/plugin3
.
Затем я смог записать весь каталог.
Но потом я попытался захватить последнюю версию плагина1 из BitBucket, поэтому я пошел в приложение/плагины, удалил папку plugin1/и клонировал плагин1 из BitBucket. Затем я добавил app/plugins/plugin1 = app/plugins/plugin1
в .hgsub, но когда я попытался зафиксировать его, меня встретили с помощью abort: path 'app/plugins/plugin1/file1.php' is inside repo 'app\\plugins\\plugin1'
Проблема, похоже, срабатывает, когда мой subrepo имеет то же имя, что и каталог, уже отслеживаемый Hg в каталоге plugins/.
Что я делаю неправильно? Должен ли я добавлять/редактировать что-то особенное в .hg моих плагинов?
Обновление
Мне, наконец, удалось заставить его работать так, как я хочу.
Мне пришлось "вручную" сообщить Mercurial об удалении плагинов/плагинов1, плагинов/плагинов2, скопировать изменения, затем клонировать обратно плагин1 и плагин2 из BitBucket, добавить app/plugins/plugin1 = app/plugins/plugin1
в .hgsub и передать все. Это сработало.
Важным шагом было выполнение после удаления папок plugin1/plugin2.