Skip to content

Commit 2326c20

Browse files
committed
Update transfer-protocols.asc
including merge commit #8148dc6 from English repo
1 parent 6acba43 commit 2326c20

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

book/10-git-internals/sections/transfer-protocols.asc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,11 @@ $ ssh -x git@server "git-receive-pack 'simplegit-progit.git'"
153153
Der Befehl `git-receive-pack` antwortet sofort mit einer Zeile für jede Referenz, die er derzeit hat – in diesem Fall nur den `master`-Branch und seinen SHA-1.
154154
Die erste Zeile enthält auch eine Liste der Serverfunktionen (hier `report-status`, `delete-refs` und einige andere, einschließlich der Client-ID).
155155

156-
Jede Zeile beginnt mit einem 4-stelligen Hex-Wert, der angibt, wie lang der Rest der Zeile ist.
157-
Ihre erste Zeile beginnt mit 00a5, was hexadezimal für 165 ist. Dies bedeutet, dass 165 Bytes in dieser Zeile verbleiben.
158-
Die nächste Zeile ist 0000, was bedeutet, dass der Server mit seiner Referenzliste fertig ist.
156+
Die Daten werden in Paketen (eng. chunks) übertragen.
157+
Jeder Chunk beginnt mit einem 4-stelligen Hex-Wert, der angibt, wie lang der Chunk ist (einschließlich der 4 Bytes der Gesamtlänge).
158+
Die Pakete enthalten in der Regel eine einzige Zeile mit Daten und einen abschließenden Zeilenvorschub.
159+
Ihr erster Chunk beginnt mit 00a5, also hexadezimal für 165, womit das Paket 165 Bytes lang ist.
160+
Der nächste Chunk ist 0000, d.h. der Server ist mit seiner Referenzliste fertig.
159161

160162
Jetzt, da der Server-Status bekannt ist, bestimmt Ihr `send-pack`-Prozess, welche Commits er hat, die der Server nicht hat.
161163
Für jede Referenz, die durch diesen Push aktualisiert wird, teilt der `send-pack`-Prozess dem `receive-pack`-Prozess diese Informationen mit.
@@ -209,6 +211,8 @@ Der Client stellt dann eine weitere Anfrage, diesmal einen `POST`, mit den Daten
209211
Die `POST`-Abfrage enthält die `send-pack`-Ausgabe und das packfile als Nutzdaten.
210212
Der Server zeigt dann mit seiner HTTP-Antwort Erfolg oder Fehler an.
211213

214+
Denken Sie daran, dass das HTTP-Protokoll diese Daten möglicherweise zusätzlich in einen „chunked transfer“ Code verpackt.
215+
212216
===== Daten herunterladen
213217

214218
(((git commands, fetch-pack)))(((git commands, upload-pack)))

0 commit comments

Comments
 (0)