git status merangkak pada SSHFS melalui VPN: pindahkan kerja
Fail besar disalin dengan pantas dan git status merangkak. Jika pokok berada pada SSHFS melalui VPN, kosnya ialah perjalanan pergi balik setiap fail, bukan lebar jalur. Pindahkan kerja.
Salin fail 200 MB dan ia terbang. Jalankan git status dalam direktori yang sama dan penantian cukup lama untuk beralih perhatian. Kedua-dua pemerhatian ini tidak bercanggah, kerana pemindahan pukal mengukur daya pemprosesan manakala Git mengukur berapa banyak soalan kecil sistem fail yang boleh ditanya sesaat, dan pokok jauh yang dipasang menjadikan setiap soalan satu perjalanan pergi balik. Menala VPN tidak akan membaiki beban kerja yang salah bentuk.
Mengapa status ialah penanda aras yang salah
Git perlu tahu tentang banyak fail: yang mana diubah, yang mana tidak dijejaki dan sama ada data indeks yang dicache masih sepadan dengan apa yang ada pada cakera. Melalui SSHFS setiap pemerhatian itu boleh menjadi operasi rangkaian. Unit kerja di sini ialah bilangan fail, bukan megabait.
Sebab itulah status pertama selepas klon lambat, dan sebab itulah yang berikutnya boleh lebih lambat dalam pokok penuh output binaan. Pengimbasan fail tidak dijejaki merentasi direktori yang mungkin anda tidak peduli, dan setiap langkah ialah satu lagi permintaan melalui pautan. Pada laluan 40 ms pokok dengan beberapa ribu entri menjadi beberapa ribu perjalanan pergi balik. Tiada tangkapan paket diperlukan untuk mengesahkan aritmetik itu.
Penanda aras muat turun memberitahu pautan itu baik; ia tidak berkata apa-apa tentang sama ada seribu bacaan kecil akan selesai petang ini.
Pindahkan pokok kerja, bukan tombol talaan
Klon setempat meletakkan pokok kerja, indeks dan operasi Git pada mesin yang sama. Pull menjadi langkah rangkaian yang kelihatan dan bukannya setiap pemeriksaan fail menjadi begitu.
Ini sesuai setiap kali pembangun boleh menyimpan sumber yang diperlukan secara setempat, yang kebanyakannya begitu. Ia juga menajamkan sempadan antara commit dan penggunaan, kerana menyunting fail setempat tidak lagi mengubah perkhidmatan jauh yang berjalan secara tidak sengaja; perubahan itu mesti ditolak dan digunakan seperti segala-galanya. Harganya ialah kod wujud di dua tempat, jadi tentukan salinan mana yang berwibawa dan bagaimana pembaikan segera pada pelayan kembali ke repositori. Perbualan itu lebih murah daripada arahan status yang tiada siapa mahu jalankan.
Jika ruang kerja mesti kekal jauh, jalankan Git di sana
Kadangkala ruang kerja tidak boleh dipindahkan: binaan memerlukan persekitaran itu, data terlalu besar atau dasar menyimpan sumber pada hos. Maka jalankan Git dan alat pembangunan berkaitan di sebelah fail, melalui shell jauh yang diluluskan atau persekitaran pembangunan jauh. Editor boleh kekal di komputer riba sementara backendnya bekerja di sebelah pokok kerja.
Operasi mahal kemudian berlaku secara setempat pada hos jauh, dan rangkaian membawa trafik editor dan bukan ribuan panggilan stat. Ini pembaikan yang sama seperti klon setempat, dinyatakan sebagai pilihan penggunaan dan bukan migrasi.
Segerak ialah aliran kerja dengan pemilik, bukan cache
Ruang kerja yang disegerakkan boleh mengurangkan bacaan jauh berulang, tetapi ia bukan cache telus. Ia memerlukan pemilik bagi setiap perubahan, peraturan untuk konflik dan persetujuan tentang fail yang dijana yang kedua-dua pihak anggap milik mereka. Tanpa peraturan itu susunan itu mencipta perselisihan dan bukan kemudahan.
Penyegerak dua hala tanpa peraturan itu menghasilkan masalah yang berbeza daripada yang diselesaikannya, biasanya gabungan yang tiada siapa dapat mengaitkan. Elakkan menjalankan dua proses Git pada satu pokok kerja kongsi kecuali anda memahami bagaimana ia menyelaras.
Kemudian tala, dan kekalkan SSH waras
Setelah susunan betul, dua tetapan mengubah berapa banyak fail yang perlu Git tanya: status.showUntrackedFiles dan cache fail tidak dijejaki di sebalik core.untrackedCache. Kedua-duanya tidak mengubah kos setiap soalan merentasi 40 ms; ia hanya mengubah berapa banyak soalan. Putar tombol hanya apabila perjalanan pergi balik menjadi setempat.
Ukur masa arahan yang menjengkelkan anda dan bukan membuat penaakulan daripada penanda aras yang menyalin satu fail besar, dan biarkan penyulitan SSH yang disokong sebagaimana adanya. Sifer usang tidak memendekkan perjalanan pergi balik; ia menambah masalah kedua yang hidup lebih lama daripada yang pertama. Rujukan git status wajar dibaca sekali, kerana arahan itu melakukan jauh lebih banyak kerja daripada namanya.