You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
154
154
Die erste Zeile enthält auch eine Liste der Serverfunktionen (hier `report-status`, `delete-refs` und einige andere, einschließlich der Client-ID).
155
155
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.
159
161
160
162
Jetzt, da der Server-Status bekannt ist, bestimmt Ihr `send-pack`-Prozess, welche Commits er hat, die der Server nicht hat.
161
163
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
209
211
Die `POST`-Abfrage enthält die `send-pack`-Ausgabe und das packfile als Nutzdaten.
210
212
Der Server zeigt dann mit seiner HTTP-Antwort Erfolg oder Fehler an.
211
213
214
+
Denken Sie daran, dass das HTTP-Protokoll diese Daten möglicherweise zusätzlich in einen „chunked transfer“ Code verpackt.
0 commit comments