Как заменить 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 у тебя должно быть все в порядке.

Другие вопросы по тегам