Зачем git требуется сетевое соединение при «разрешении дельт»? - PullRequest
0 голосов
/ 09 ноября 2018

При выполнении клона git git проходит этапы

  • Receiving objects
  • Resolving deltas
  • Checking out files

Я ожидал бы, что вся сетевая активность будет в течение Receiving objects, тогда Resolving deltas будет полностью локальной (как объяснено здесь Что на самом деле делает git, когда говорит, что это "разрешение дельт"? ) но на самом деле соединение все еще открыто.

Я могу сказать это двумя способами:

  1. Wireshark не показывает активности в течение Resolving deltas, после чего происходит обмен несколькими пакетами послевместе с закрытием соединения.
  2. Иногда я вижу, как удаленное хост-соединение закрывает соединение во время длинного шага Resolving deltas.

Так что мне интересно знать, зачем нужен gitэто соединение остается открытым в течение Resolving deltas?Нужно ли после этого по какой-то причине (например, перехват)?

(примечание: это может зависеть от того, используете ли вы https или ssh)

1 Ответ

0 голосов
/ 09 ноября 2018

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

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

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