Я изо всех сил пытаюсь правильно отслеживать вложенные репозитории с помощью 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. Я читал, что в эту сборку TortoiseHg была добавлена обработка подрепо, но я даже не уверен, что подрепо - это функция, которую я должен здесь использовать.
Обновление
Я добился некоторых успехов, но все еще не могу заставить его работать так, как мне хотелось бы.
Вот моя структура:
-- .hg
-- core
-- app
-- file.php
-- file.css
-- plugins
-- plugin1
-- file1.php
-- plugin2
-- file2.php
Я зашел в приложение / плагины и клонировал плагин (названный plugin3) из BitBucket здесь. Затем я создал в корне файл .hgsub и добавил к нему app/plugins/plugin3 = app/plugins/plugin3
. Затем я смог зафиксировать весь свой каталог.
Но затем я попытался получить последнюю версию plugin1 из BitBucket, поэтому я пошел в app / plugins, удалил папку plugin1 / и клонировал plugin1 из BitBucket. Затем я добавил app/plugins/plugin1 = app/plugins/plugin1
в .hgsub, но когда я попытался зафиксировать его, меня встретил abort: path 'app/plugins/plugin1/file1.php' is inside repo 'app\\plugins\\plugin1'
Проблема, кажется, возникает, когда мое вложенное репо имеет то же имя, что и каталог, уже отслеживаемый Hg в каталоге plugins /.
Что я делаю неправильно ? Должен ли я добавить / отредактировать что-то особенное в .hg моих плагинов?
Обновление
Мне, наконец, удалось заставить его работать так, как я хочу.
Мне пришлось «вручную» сказать Mercurial удалить каталоги plugins / plugin1, plugins / plugin2, выполнить фиксацию изменения, затем клонируйте plugin1 и plugin2 из BitBucket, добавьте app/plugins/plugin1 = app/plugins/plugin1
в .hgsub и зафиксируйте все. Это сработало.
Важным шагом была фиксация после удаления папок plugin1 / plugin2.
.hgsub
- это первый «вложенный» путь в нашем рабочем каталоге, а второй - это URL-адрес или путь, из которого нужно извлечь: поэтому вы не должны указыватьapp/plugins/plugin3 = app/plugins/plugin3
, аapp/plugins/plugin3 = bitbucket url for plugin3
. То же для plugin1 - person VonC   schedule 04.03.2010http://bitbucket.org/username/plugin3/
,https://[email protected]/username/plugin3/
и дажеssh://[email protected]/username/plugin3
в качестве URL-адреса, но все равно имел то же сообщение об отмене. Я все время пробовал прямо из командной строки, и результат тот же. - person pixelastic   schedule 04.03.2010