Создание локального прозрачного кэша ртутного хранилища - PullRequest
3 голосов
/ 13 октября 2010

У меня много разных клонов, с которыми я работаю отдельно. Когда я хочу обновить эти клоны, их обновление с сервера может быть довольно медленным. Поэтому вместо этого у меня есть «чистый» клон, который я регулярно обновляю с сервера, а все остальные клоны клонируют из чистого клона (надеюсь, это имеет смысл).

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

В идеале, «чистый» клон должен быть прозрачным: когда он извлекается, он сам выполняет вытягивание. Таким образом, у нас будет кэширование и 1 шаг. Есть ли способ сделать это?

Ответы [ 2 ]

2 голосов
/ 13 октября 2010

Локальное хранение чистого клона очень распространено, и в целом это хорошая идея. Я всегда придерживался описанного вами двухэтапного процесса, но вы можете сделать это с помощью хуков, если хотите.

В вашем кэше репозиториях вы поместите что-то подобное в файл .hg/hgrc:

[hooks]
preoutgoing = hg pull

, который говорит, что репо следует выполнить hg pull до того, как оно объединит изменения в ответ на запрос pull или clone, сделанный для него.

Обратите внимание, что даже если нисходящий репозиторий ( реальный клон ) запрашивает подмножество наборов изменений, используя pull -r или clone -r, это репозиторий кэша разрушит все. Это, вероятно, то, что вы хотите, так как ваша цель - зеркало, но комментатор указывает, на что стоит обратить внимание.

1 голос
/ 13 октября 2010

Вы можете сделать это, используя hooks . В вашем <clean-clone>/.hg/hgrc добавьте их в качестве первого черновика:

[hooks]

# Before a pull from this repository, pull from upstream.
preoutgoing.autopull = [ $HG_SOURCE = 'pull' ] && hg pull

# After a push to this repository, push to upstream.
changegroup.autopush = [ $HG_SOURCE = 'push' ] && hg push

(Примечание: «autopush» и «autopull» являются необязательными идентификаторами, не имеющими специального значения; их можно не указывать, если у вас не определены другие хуки.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...