Заставить пульт дистанционного управления к кассе - PullRequest
1 голос
/ 29 ноября 2011

В настоящее время мы развертываем на dev-сервере через Git с перехватом после получения. Это сервер разработки, а не промежуточный сервер, поэтому мы хотели бы иметь возможность развертывать / просматривать несколько веток (а не просто ветку «dev» или что-то подобное).

Когда нажата новая ветка или фиксация, ловушка после получения успешно выполняет извлечение удаленного репо в любую ветвь, которая была нажата.

Наш типичный цикл может быть:

Просмотр новой ветки 1 на сервере разработчика - git push devserver branch1

Просмотр новой ветки 2 на сервере разработчика - git push devserver branch2

Снова посмотреть старое branch1 на сервере dev - git push devserver branch1

Однако, когда мы хотели бы оформить заказ на ветку, более старую, чем текущая активная, мы не можем сделать это git push devserver branch1, потому что удаленный репозиторий отвечает «Все актуально», поскольку branch1 уже был перенесен тому назад. Очевидно, что ловушка после получения не запускается, поэтому есть ли другой способ выполнить удаленную проверку?

Я знаю, что могу подключиться по SSH к серверу разработчиков и таким образом оформить заказ на branch1, но я бы хотел выполнить действие из моего локального репо, если это возможно. Я пробовал зацеплять pre-receive и update, но ни один из них не работает в этих условиях.

Любая помощь высоко ценится!

Ответы [ 3 ]

2 голосов
/ 29 ноября 2011

Поскольку это всего лишь сервер (dev), почему бы вам не удалить ветку и не воссоздать ее?

git push devserver :branch1
git push devserver branch1
0 голосов
/ 29 ноября 2011

Вы можете попробовать подключить тот же скрипт, что и pre-receive hook .Это означает, что ваш скрипт будет работать независимо от того, успешна ваша команда push или нет.Тем не менее, я бы очень настороженно относился к такого рода вещам, потому что то, что вы делаете сейчас, - это использование крючков таким образом, чтобы они не были предназначены для использования, и, возможно, вырытие дыры для себя в будущем.

Реальным решением было бы то, что предложил @CharlesB - используйте простой скрипт.

РЕДАКТИРОВАТЬ: Пожалуйста, игнорируйте этот ответ.Это не будет работать, как предлагают комментарии.Не стесняйтесь понижать голос тоже;)

0 голосов
/ 29 ноября 2011

Управление удаленной рабочей копией очень ограничено, так как git на самом деле не предназначен для этого, поэтому вам нужно SSH сервер. Сделайте небольшой скрипт для подключения, а оформление заказа сэкономит ваше время и мышцы пальцев.

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