Как заменить Mercurial subrepo на папку?
Я работаю с репозиторием Mercurial, который имеет следующую структуру:
-- Root
-- .hgsub
-- SubDir
-- SubSubDir
-- SubRepo
Файл.hgsub объявляет SubRepo следующим образом:
SubDir/SubRepo = ssh://server//subcomponent
Мне нужно было избавиться от подпункта и заменить его реальной папкой в репозитории под названием SubRepo, поэтому я сделал то, что сказано в документации hg, удалив файл.hgsub и подтвердив. Затем я поместил свой собственный материал в SubRepo и зафиксировал его, оставив мне:
-- Root
-- SubDir
-- SubSubDir
-- SubRepo
Денди. Но когда я пытаюсь, скажем, извлечь изменения из репозитория, в котором все еще есть файл.hgsub, у меня возникают проблемы.
Есть ли лучший способ заменить под-репозиторий? Или есть что-то умное, что я должен сделать, чтобы сделать эту работу лучше, например, использовать параметр для извлечения или временного изменения моего.hgsub, чтобы он указывал на новую папку, а не удалял ее вообще?
1 ответ
Вы сделали это правильно. Как только вы извлекаете из репо, которые еще есть .hgsub
вам нужно слить свою голову (это не имеет .hgsub
) с их (что делает), и когда вы удалите файл как часть этого слияния / фиксации, вы получите только одну голову, которая не имеет .hgsub
и все будет правильно в мире. До тех пор, пока вы не "обновите hg" для их удаленной головы, которая все еще имеет .hgsub
у тебя должно быть все в порядке.