У меня небольшая путаница с настройкой Mercurial на моем веб-сервере - PullRequest
0 голосов
/ 06 апреля 2010

Я начинаю использовать Mercurial на своем веб-сервере (в данном случае Grid MediaTemple). Я использовал SVN ранее, хотя я не эксперт систем контроля версий. Мне просто нужна небольшая помощь в устранении путаницы с оптимальной настройкой.

У меня есть папка «data», которая находится вне корневого каталога веб-сервера и к которой браузер не может получить доступ. До этого мне было рекомендовано установить мои репозитории Mercurial, а затем я бы клонировал отсюда локально на моем компьютере. У меня также была бы папка «домены», которая в основном является корневым каталогом веб-сервера, а внутри находятся мои реальные домены, где мои веб-сайты фактически передаются в браузер - их также необходимо обновить из репозиториев «данных».

Но, учитывая это, после настройки это кажется неэффективным ... Я клонирую в свой локальный (это имеет смысл), добавляя, фиксируя, нажимая. Это нормально ... Но затем я обновляюсь в своей папке хранилища данных, а затем обновляюсь в папке моих доменов, чтобы фактически обновить мои веб-сайты.

Конечно, мне на самом деле не нужна эта папка с данными для репозиториев? Разве мои настоящие живые папки 'доменов' не будут самими основными репозиториями? Так я клонирую локально и обновляюсь от этих? Пожалуйста, помогите мне устранить некоторые недоразумения со всем этим (если вы можете).

Ответы [ 2 ]

0 голосов
/ 07 апреля 2010

У меня есть папка репозитория (данных) вне корня сайта, содержащая различные репозитории и обслуживаемая через hgwebdir на отдельном домене (hg.mywebsite.com).

Однако хранилище моего сайта я храню в каталоге httpdocs основного домена. Я тестирую в своей локальной среде, а затем отправляю свои изменения на сервер и публикую их.

Для достижения этого у меня есть в моем hgweb.config:

private/mywebsite = ../../../httpdocs

И это в hgrc этого репозитория:

[hooks]
changegroup.update = hg update

Эта ловушка будет обновлять рабочий каталог до подсказки при каждом внесении изменений. Конечно, я также добавил в конфигурацию Apache правило, игнорирующее каталог .hg, и на поддомене, на котором работает hg, - правило, требующее авторизации для доступа к личным / путям.

Альтернативой может быть размещение хранилища вместе с остальными, а затем «hg archive» в каталог httpdocs. Немного более безопасно, немного медленнее, и я бы сказал, что для удобства это 50-50.

p.s. Также неплохо было бы добавить ловушку, запрещающую создание удаленных веток, если люди, которые могут нажимать -f, могут получить доступ к вашим репозиториям.

0 голосов
/ 06 апреля 2010

Это вопрос личных предпочтений. Некоторые люди делают свои живые сайты также «основным» репо, а некоторые делают его клоном репо в другом месте. То, что вы делаете правильно, это обслуживание ваших сайтов из каталога в репозитории, это хороший выбор.

Некоторые соображения относительно того, хотите ли вы, чтобы отдельные клоны «данных» не зависели от корневых клонов сети:

  • хотите ли вы иметь несколько голов в одной ветке, что может сбить с толку человека, обновляющего основной репо?
  • хотите ли вы, чтобы репо, в которое люди, которым вы не доверяете редактирование живого веб-сайта, могло выдвинуться так, чтобы доверенный администратор (вы?) Выполнял push / pull из данных в webroot?

Следует отметить, что в репо «data» вы можете сделать hg update -r null, который избавляется от рабочей копии (но сохраняет репо!), Так что используемое дисковое пространство практически равно нулю (при условии, что это клон webroot они будут использовать одни и те же файлы на уровне жестких ссылок FS).

...