одновременный git pull и push на одном и том же удаленном репо из разных мест - PullRequest
4 голосов
/ 17 мая 2011

Предположим, я вытаскиваю или клонирую из какого-то удаленного репозитория git Что будет если 1) после того, как я начал вытягивать / клонировать - кто-то начинает подталкивать к этому удаленному репо в середине? 2) когда кто-то пытается отправить код в удаленное хранилище Git - и я начинаю его клонировать?

Что я получу в каждом из случаев?

Спасибо

1 Ответ

4 голосов
/ 17 мая 2011

Нет проблем в любом случае.В случае 1) наступит момент, когда ссылка (как правило, имя ветви) обновляется, когда кто-то нажимает, и любая выборка (существенная часть клонирования и извлечения) либо получит старое значение до этой точки, либо новоеодин потом.Ссылка обновляется только тогда, когда все необходимые для нее объекты находятся в базе данных объектов удаленного репозитория, поэтому проблем здесь нет.2) Точно так же, если выборка, составляющая ваше извлечение, происходит после обновления ссылки, на которую передается ссылка, вы получите новое значение, в противном случае вы получите старое.

(Один из возможных вариантов)Исключением является транспорт «тупой HTTP», в котором вам нужно запускать git update-server-info в удаленном репозитории после каждого нажатия, так что вполне возможно, что выборка немедленно завершится ошибкой после нажатия, но до того, как ловушка выполнит эту команду - однакоЯ думаю, что в наши дни относительно редко можно использовать тупой HTTP-транспорт.

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