Рабочий процесс, чтобы держать Mercurial подгруппы в актуальном состоянии, когда изменения вносятся в клоны?

Я прочитал все вопросы о подкаталогах Mercurial, которые я мог и до сих пор не уверен, как это работает. Мы используем hgweb.cgi в IIS, поэтому у нас есть пути http:// ко всем нашим репозиториям.

Вот основной макет:

/Libraries - http://server/Libraries
/Project1 - http://server/Project1
/Project1/LibrariesSubrepo - http://server/Project1/LibrariesSubrepo (clone of libraries)
/Project2 - http://server/Project1
/Project2/LibrariesSubrepo - http://server/Project2/LibrariesSubrepo (clone of libraries)

В файлах.hgsub у меня есть путь установки:

LibrariesSubrepo = LibrariesSubrepo

Если я хочу работать над проектами, я клонирую их с сервера на свою рабочую станцию, поэтому у меня есть клон Project1 и Project2, и он также автоматически извлекает подпункты.

В проекте 1 на моей локальной рабочей станции я делаю некоторые изменения в файлах в /Project1/LibrariesSubrepo. Как я могу гарантировать, что эти изменения вернутся в исходное хранилище для библиотек на сервере? Нужно ли вручную выдвигать изменения из репо в исходное репо субрепо?

Я хотел бы иметь возможность вносить изменения в репозиторий Project1 локально, затем фиксировать / проталкивать эти изменения, а затем в Project2 я должен иметь возможность извлекать изменения с сервера, который должен обновить Project2/LibrariesSubrepo до последней версии.

1 ответ

Решение

Вы можете определенно нажать вручную с вашего LibrariesSubrepo в Project1 к Libraries хранилище на сервере, а затем вручную вытащить из Libraries в LibrariesSubrepo в клоне Project2.

Тем не менее, вы также можете связать подпункты на сервере:

  1. Расширение общего доступа позволяет создавать два или более репозитория, которые совместно используют .hg папка. Сделайте это на сервере, чтобы три экземпляра вложенного отчета на сервере совместно использовали .hg папки.

  2. Симлинк .hg Папки - больше oldschol, и это работает, только если вы находитесь на сервере, где вы можете создать символическую ссылку (серверы Unix или Windows Vista и более поздние версии с нужными привилегиями).

  3. Оставьте на сервере только один подпункт, но трижды выставьте его в hgweb конфигурации. Как это:

    [paths]
    Project1                  = /repos/Project1
    Project1/LibrariesSubrepo = /repos/Libraries
    Project2                  = /repos/Project2
    Project2/LibrariesSubrepo = /repos/Libraries
    

Во всех случаях на сервере есть только три репозитория: Project1, Project2, а также Libraries,

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