Git clone“ ตรวจสอบการเชื่อมต่อ” - มันคืออะไร?


11

เมื่อทำgit cloneธุรกรรมซื้อคืนผ่าน SSH หรือ HTTP คุณจะได้รับผลลัพธ์ที่มีลักษณะดังนี้:

Cloning into 'some_directory'...
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 7 (delta 0), reused 5 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), done.
Checking connectivity... done.

ฉันสนใจขั้นตอน "การตรวจสอบการเชื่อมต่อ" ครั้งสุดท้าย มันเกิดขึ้นหลังจาก repo และข้อมูลเมตาทั้งหมดถูกดาวน์โหลดนั่นคือหลังจากการเชื่อมต่ออินเทอร์เน็ตเสร็จสิ้น

อะไรคือขั้นตอนของกระบวนการนี้ที่ทำให้สำเร็จ?


1
คุณสังเกตเห็นChecking out files: 100% (2897/2897), done.หลังจากChecking connectivityหรือไม่ ดูเหมือนReceiving objectsว่าไม่ได้หมายถึงการรับเนื้อหาจริงๆ ตัวอย่างเช่นเมื่อฉันโคลนgitฉันจะได้ผลลัพธ์จากบรรทัดนี้: Receiving objects: 100% (199562/199562), 84.06 MiB | 3.90 MiB/s, done.. อย่างไรก็ตามเมื่อฉันดาวน์โหลด zip จาก GitHub ไดเรกทอรีที่คลายการบีบอัดมีเพียง 28 MiB ฉันไม่แน่ใจว่าสิ่งนี้หมายถึงอะไร แต่มันอาจเป็นบทสรุปของความมุ่งมั่นที่ผ่านมาทั้งหมดหรืออะไรทำนองนั้น
ecube

1
@ecube: การโคลนที่เก็บ git ถือเป็นการทำสำเนาโลคัลของประวัติศาสตร์ทั้งหมดรวมถึงทุกสาขากระทำและแก้ไข ไฟล์ ZIP ที่จัดทำโดย Github ไม่ใช่ที่เก็บ git แต่เป็นภาพรวมของการแก้ไขที่เก็บล่าสุดในสาขาหลัก แน่นอนว่าหลังสุดจะเล็กกว่าเสมอ
Radon Rosborough

คำตอบ:


15

ฉันคิดว่าคำconnectivityนี้ไม่เกี่ยวกับการเชื่อมต่อเครือข่ายที่นี่ ข้อความจะปรากฏขึ้นหลังจากได้รับข้อมูลทั้งหมดจากเซิร์ฟเวอร์ git แล้ว

สามารถพบเบาะแสบางอย่างในแหล่ง git มีดังต่อไปนี้เป็นความคิดเห็นในconnected.cไฟล์:

/*
 * If we feed all the commits we want to verify to this command
 *
 *  $ git rev-list --objects --stdin --not --all
 *
 * and if it does not error out, that means everything reachable from
 * these commits locally exists and is connected to our existing refs.
 * Note that this does _not_ validate the individual objects.
 *
 * Returns 0 if everything is connected, non-zero otherwise.
 */

มันเป็นเรื่องที่เกี่ยวข้องกับฟังก์ชั่นcheck_everything_connected_realที่เรียกว่าหลังจากที่Checking connectivity...ข้อความจะปรากฏ

ดังนั้นโดยทั่วไปหมายความว่าคอมไพล์กำลังตรวจสอบว่าวัตถุทั้งหมดได้รับอย่างถูกต้อง (เชื่อมต่อกับการอ้างอิงที่มีอยู่)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.