Как заменить Mercurial subrepo на папку? - PullRequest
1 голос
/ 03 апреля 2012

Я работаю с репозиторием Mercurial, который имеет следующую структуру:

  -- Root
     -- .hgsub
     -- SubDir
        -- SubSubDir
        -- SubRepo

Файл .hgsub объявляет SubRepo следующим образом:

    SubDir/SubRepo = ssh://server//subcomponent

Мне нужно было избавиться от подпункта и заменить его реальной папкой в ​​репозитории под названием SubRepo, поэтому я сделал то, что сказано в документации hg , удалив файл .hgsub и зафиксировав. Затем я поместил свой собственный материал в SubRepo и зафиксировал его, оставив мне:

  -- Root
     -- SubDir
        -- SubSubDir
        -- SubRepo

Dandy. Но когда я пытаюсь, скажем, извлечь изменения из репозитория, в котором все еще есть файл .hgsub, у меня возникают проблемы.

Есть ли лучший способ заменить под-репозиторий? Или есть что-то умное, что я должен сделать, чтобы сделать эту работу лучше, например, использовать параметр для извлечения или временного изменения моего .hgsub, чтобы он указывал на новую папку, вместо того, чтобы удалять ее вообще?

1 Ответ

2 голосов
/ 03 апреля 2012

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

...