Git klon “bağlantı kontrolü” - nedir bu?


11

git cloneSSH veya HTTP üzerinden bir repo yaparken , şuna benzer bir çıktı alırsınız:

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.

Bu son "Bağlantıyı kontrol etme" adımıyla ilgileniyorum. Olur sonra repo ve onun tüm meta verileri indirildikten, yani herhangi bir internet bağlantısı bittikten sonra iyi.

Sürecin bu adımı tam olarak neyi başarıyor?


1
Eğer fark ettiniz Checking out files: 100% (2897/2897), done.SONRA Checking connectivity? O görünüyor Receiving objectsaslında içeriğin alınması anlamına gelmez. Örneğin, ben klonlanmış zaman git, ben çıktı bu satırı var: Receiving objects: 100% (199562/199562), 84.06 MiB | 3.90 MiB/s, done.. Ancak, GitHub'dan bir zip indirdiğimde, sıkıştırılmış dizin sadece 28 MiB idi. Bunun ne anlama geldiğinden emin değilim, ancak tüm geçmiş taahhütlerin özeti veya bunun gibi bir şey olabilir.
Mart'ta ecube

1
@ecube: Git deposunun klonlanması, her şube, taahhüt ve revizyon dahil tüm tarihinin yerel bir kopyasını oluşturur. Github tarafından sağlanan ZIP dosyası bir git deposu değil, birincil daldaki deponun en son revizyonunun bir anlık görüntüsüdür. İkincisi elbette her zaman daha küçük olacaktır.
Radon Rosborough

Yanıtlar:


15

connectivityBuradaki kelimenin ağ bağlantısıyla bir ilgisi olmadığını düşünüyorum . Mesaj git sunucusundan tüm veriler alındıktan sonra görüntülenir.

Git kaynaklarında bazı ipuçları bulabilirsiniz. Connected.c dosyasında aşağıdaki yorum var :

/*
 * 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.
 */

Mesaj görüntülendiktencheck_everything_connected_real sonra çağrılan fonksiyonla ilgilidir .Checking connectivity...

Bu temelde git'in tüm nesnelerin doğru şekilde alınıp alınmadığını (mevcut referanslara bağlı olup olmadığını) kontrol ettiği anlamına gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.