Как я могу настроить не-голое git-репо на моем сервере? - PullRequest
1 голос
/ 28 ноября 2011

Я пытаюсь настроить достойную схему разработки с моим другом. План состоит в том, чтобы мы выполняли независимую разработку на наших собственных компьютерах, затем отправляем тестирование на сервер dev, а затем отправляем его с сервера dev на производительный сервер (Heroku).

Проблема в том, что я не могу заставить себя вести себя. Возможно, я просто не знаю достаточно, чтобы фундаментально понять, что происходит. Я настроил репо на сервере dev, но когда я клонирую его на свой персональный компьютер, я не могу «отодвинуть» его обратно, потому что он жалуется на то, что он перешёл на не голое репо. Тогда я попытался разветвлять репо и продвигать ветки, но теперь я получаю много быстрых заявлений, и я не думаю, что они тоже нужны.

Так что мой вопрос таков. Как мне настроить сервер, чтобы он просто «работал»? Сервер не может быть простым репозиторием, он должен содержать код, чтобы мы могли протестировать приложение. Мы хотим, чтобы у нас была возможность плавно переходить от репозитория к нашим собственным разработчикам. И сервер должен быть в состоянии нажать на Heroku (он может сделать это уже). Это на моем собственном сервере, поэтому у меня есть полный доступ ко всему, что мне нужно, чтобы это работало. (Ubuntu Server Edition 11.04).

Спасибо!

Ответы [ 2 ]

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

Причина, по которой вы не можете перенести в не-пустой репозиторий по умолчанию, заключается в том, что с не-пустым репозиторием связана извлеченная рабочая копия.Когда вы отправляете обновления в извлеченную ветвь, рабочая копия будет не синхронизирована с собственным репозиторием, если только вы специально не запустите команду для ее обновления (что можно сделать с помощью ловушки после получения).Если вам известно об этом, и вы все равно хотели бы перейти в не-пустой репозиторий, вы можете установить для свойства конфигурации receive.denyCurrentBranch значение ignore, и git разрешит отправку.Для получения дополнительной информации я отсылаю вас к сообщению в блоге , которое я написал некоторое время назад (вероятно, из-за обновления), в котором описывается аналогичная настройка, которую я использую для своего собственного веб-сайта.

Обратите внимание, что вместо этоготолько для серверов разработки и производства (у каждого из которых есть свои собственные не-пустые репозитории) у меня также есть третий репозиторий, пустой, в который я помещаю изменения в первую очередь перед отправкой их в dev;таким образом, я только когда-либо отправляюсь на сервер разработки из одного места, что помогает поддерживать синхронизацию.

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

Чтобы пояснить комментарий @David Zaslavsky, я бы настроил «голое» репо, чтобы продвигаться большую часть времени, а затем использовал что-то вроде git-deploy , чтобы выдвинуть на ваш сервер разработки. Вы получаете ту же семантику, что и нажатие на Heroku, без Heroku.

...