Как сделать Hg / Git удаленным репо? - PullRequest
5 голосов
/ 30 июня 2011

Я новичок в DVCS (я из мира SVN), и теперь, когда я освоил собственное локальное репо, я хотел бы настроить удаленный компьютер (Amazon EC2) для хранения своихВеб-файлы, так что я могу легко обновить веб-приложение без FTP или каких-то других вещей

Я хотел бы в конечном итоге использовать:

hg push http://hg.domain.com/webserver/hello

или git

git push myAmazon master

Что мне нужно настроить на моем удаленном сервере (установить Hg / Git), сделать папку репо, используя init и что должно быть дальше?


Может быть, я не был на 100%ясно с ответом выше, поэтому вот простой вопрос

Я хочу заменить FTP Upload с помощью Git / Hg push, как мне это сделать?

Итак, давайте представим такой сценарий:

C:\Inetpub\wwwroot\mybrandNewWebApp является корнем сайтаразмещенный в IIS (это удаленный компьютер, пример: в Amazon EC2), в этом каталоге я запустил репозиторий, используя git init / hg init.

Как я могу настроить это, что со своего ноутбука я могу сделать push remote для «Загрузка своих изменений»?

Как настроить этот репозиторий на доступный и доступный?


Вопрос от прочтения всех комментариев?

Должен ли я создать другой каталог для репо и, используя хороший толчок, я мог бы запустить скрипт, который фактически обновил бы сайткорневой каталог?

Ответы [ 3 ]

1 голос
/ 30 июня 2011

Если вы запускаете ssh на сервере, вы можете использовать mercurial и git со своими ssh-протоколами.

Вы даже можете создавать репозитории на сервере следующим образом:

 hg clone ~/myrepo ssh://user@server/hg/clone
1 голос
/ 30 июня 2011

Для Mercurial вам нужно настроить hgweb веб-сервер, который поставляется с Mercurial, по крайней мере, в исходной версии.

Шаги (возможно, неправильный порядок):

  1. Настройка IIS на вашем сервере
  2. Загрузите исходный код Mercurial и следуйте учебному пособию о том, какие файлы должны быть доступны в настроенном вами приложении IIS
  3. Настройка IIS для запуска pythonпрограммы (Mercurial hgweb - это сценарий Python CGI)
  4. Настройка hgweb для ваших нужд хостинга

В Интернете существует множество учебных пособий, ни одно из которых не выполнено на 100% в том смысле, что еслиследуйте им шаг за шагом, все это будет работать, но с небольшим количеством поворотов это будет работать.

Вот пара:


Редактировать :В моем ответе рассказывается, как настроить веб-сервер Mercurial,Т вы можете подтолкнуть к.Поскольку ваша цель заключается в обновлении веб-сервера путем внесения изменений, существуют другие варианты:

У меня такой же тип настройки, но я сделал следующее:

  1. Я создал учетную запись в Интернете в одной из хостинговых компаний (я использую Kiln , но другие легко это сделают)
  2. Затем я настроил настроенный там репозиторий для проверки связи с моим веб-сервером.всякий раз, когда я толкнул в хранилище.В основном, когда я нажимаю, сервер Kiln вызывает cgi-скрипт на моем собственном сервере с некоторой информацией
  3. Этот мой cgi-скрипт, который пингуется, затем выполняет обычную команду hg pull -u в локальном клоне,а затем ROBOCOPY для зеркалирования всего (кроме некоторых файлов отладки и каталога .hg) в основную папку веб-сайта

Это означает, что:

  1. Я неЯ должен разместить свои собственные репозитории
  2. Мне не нужно проходить через настройку моего собственного сервера Mercurial / Git
  3. Мне не нужно обрабатывать (читай: беспокоиться) безопасностьэтой настройки
  4. Я все еще получаю функциональность push-to-update-website
0 голосов
/ 30 июня 2011

Вы можете использовать как Mercurial, так и Git для этой цели. Если вы что-то нажмете на своем компьютере, инструмент скопирует новые данные на удаленный сервер.

Проблема в том, что данные просто хранятся в удаленном хранилище, но вы хотите, чтобы они находились там, где веб-сервер мог их видеть, то есть вы пропускаете шаг «обновления» (скопируйте данные из хранилища в Интернет). файловая система сервера).

Чтобы было понятнее:

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

Я предлагаю написать небольшой скрипт, который запускает hg update или git pull каждый час или около того. Установите этот скрипт как задачу в Windows.

...