Git Remote для тестирования - PullRequest
2 голосов
/ 07 марта 2011

Я привык использовать Github в качестве резервной копии или центрального хранилища, а также выполнять разработку и тестирование локально.

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

1) Большинство инструкций, которые я нашел для настройки пультов, - это использовать --bare init. Насколько я понимаю, это означает, что удаленному не хватает рабочего каталога, и он может принимать нажатия. Настройка пульта без --bare выдает ошибку, когда я пытаюсь нажать. Как я могу выполнить вышеуказанный рабочий процесс?

2) Является ли этот рабочий процесс хорошей идеей? Должен ли я иметь тестовое репо на удаленной машине в дополнение к голому репо. Я делаю толчок от разработки к голому репо, а затем, когда я готов к тестированию, я вытягиваю из голого репо в тестовое репо.

В случае, если это имеет значение, я спрашиваю о проекте Rails, но я не пометил этот вопрос как таковой, потому что не могу понять, почему это так.

Ответы [ 3 ]

4 голосов
/ 07 марта 2011

Я бы предложил использовать пустой репозиторий для push-уведомлений и второй репозиторий, который будет извлекать его из него, где будут выполняться тесты. Это будет легче понять, и вам не нужно быть осторожным, когда вы решите поцарапать тестовую среду и воссоздать ее. Если они находятся на одном сервере, в тестовом репо может быть установлен «альтернативный» для центрального сервера, поэтому объекты не будут храниться дважды (созданные с помощью git clone --shared).

Даже при такой настройке вы можете легко запускать тесты автоматически. Просто установите хук post-receive или post-update в центральном репозитории, который запустит тест. Существует даже готовая реализация в contrib/continuous в исходных кодах git, которую вы можете настроить в соответствии со своими потребностями.

Дело не в том, что вы не можете настроить push-репозиторий с рабочим каталогом. Git не позволит вам нажать на извлеченную ветку (потому что он не знает, как обновить его во время push и не будет знать, как это сделать позже), но это можно обойти, используя «detached HEAD». Однако это может привести к путанице, и вы рискуете случайно удалить важные данные, когда решите восстановить свою тестовую среду.

1 голос
/ 07 марта 2011

В большинстве случаев вы не хотите загружать в не-пустой репозиторий. Причина в том, что нажатие обновляет только историю, но не рабочий каталог; это объясняется в git FAQ .

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

0 голосов
/ 07 марта 2011

То, как мы делаем это в наших проектах, - это создание отдельной ветки для каждого тестового сервера (staging, test, qa).Когда вы хотите внедрить некоторые изменения на одном из серверов, вы просто объединяете их в определенную ветвь для этого сервера, а затем используете Capistrano для развертывания.

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