VPN-ээр SSHFS дээр git status удаан байна: ажлыг зөө
Том файл хурдан хуулагддаг ч git status удаан байна. Мод VPN-ээр SSHFS дээр бол зардал файл бүрийн очих-буцах аялал, зурвасын өргөн биш. Ажлыг зөө.
200 MB файл хуулбал ниснэ. Тэр хавтаст git status ажиллуулбал хүлээлт өөр зүйл рүү анхаарлаа шилжүүлэхээр урт болно. Энэ хоёр ажиглалт зөрчилдөхгүй, учир нь бөөнөөр дамжуулах нь нэвтрүүлэх чадварыг хэмждэг бол Git секундэд хэдэн жижиг файлын системийн асуулт тавьж чадахыг хэмждэг, бөгөөд холбогдсон алсын мод асуулт бүрийг очих-буцах аялал болгоно. VPN-ийг тааруулах нь буруу хэлбэртэй ажлын ачааллыг засахгүй.
Яагаад status буруу хэмжүүр вэ
Git олон файлын талаар мэдэх ёстой: аль нь өөрчлөгдсөн, аль нь хянагдаагүй, кэшлэсэн индекс өгөгдөл диск дээрхтэй хараахан таарч байгаа эсэх. SSHFS-ээр дамжуулан эдгээр ажиглалт бүр сүлжээний үйлдэл байж болно. Энд ажлын нэгж нь файлын тоо, мегабайт биш.
Тиймээс клон хийсний дараах эхний status удаан, мөн барилгын гаралтаар дүүрэн модонд дараагийнх нь бүр удаан байж болно. Хянагдаагүй файлуудыг скан хийх нь таныг сонирхохгүй байж болох хавтасаар явж, алхам бүр холболтоор дамжуулсан өөр нэг хүсэлт болно. 40 ms замд хэдэн мянган бичлэгтэй мод хэдэн мянган очих-буцах аялал болно. Энэ арифметикийг батлахад пакет барих шаардлагагүй.
Татаж авах хэмжүүр холболт сайн гэж хэлнэ; мянган жижиг уншилт өнөөдөр үдээс хойш дуусах эсэхийг энэ нь юу ч хэлэхгүй.
Ажлын модыг зөө, тааруулах товчнуудыг биш
Локал клон ажлын мод, индекс, Git үйлдлүүдийг нэг машин дээр тавьдаг. Pull нь харагдах сүлжээний алхам болно, файл бүрийн шалгалт биш.
Энэ нь хөгжүүлэгч шаардлагатай эх сурвалжийг локалд байлгаж чадах бүрд тохирно, ихэнхдээ тийм байдаг. Энэ нь commit болон байршуулалтын хилийг ч хурцлана, учир нь локал файл засах нь ажиллаж буй алсын үйлчилгээг санамсаргүй өөрчлөхөө болино; өөрчлөлтийг бусад бүхний адил push хийж байршуулах ёстой. Үнэ нь код хоёр газарт оршино, тиймээс аль хуулбар нь эрх бүхий болох, сервер дээрх яаралтай засвар хэрхэн репозитор руу буцахыг шийд. Тэр яриа хэн ч ажиллуулахыг хүсэхгүй status тушаалаас хямд.
Ажлын орон зай алсын хэвээр байх ёстой бол Git-ийг тэнд ажиллуул
Заримдаа ажлын орон зайг зөөх боломжгүй: барилга тэр орчинг шаарддаг, өгөгдөл хэт том, эсвэл бодлого эх сурвалжийг хост дээр байлгадаг. Тэгвэл Git болон холбогдох хөгжүүлэлтийн хэрэгслүүдийг файлуудын дэргэд, зөвшөөрөгдсөн алсын бүрхүүл эсвэл алсын хөгжүүлэлтийн орчингоор ажиллуул. Засварлагч зөөврийн компьютер дээр үлдэж болно, түүний backend нь ажлын модны дэргэд ажиллах зуур.
Үнэтэй үйлдлүүд тэгвэл алсын хост дээр локалаар болж, сүлжээ мянган stat дуудлагын оронд засварлагчийн трафикийг зөөнө. Энэ нь локал клонтой ижил засвар бөгөөд шилжилт биш, байршуулалтын сонголт хэлбэрээр илэрхийлэгдсэн.
Синк бол эзэдтэй ажлын урсгал, кэш биш
Синк хийсэн ажлын орон зай давтагдсан алсын уншилтыг багасгаж чадна, гэхдээ энэ нь тунгалаг кэш биш. Түүнд өөрчлөлт бүрд эзэн, зөрчилдөөнд дүрэм, хоёр тал өөрийн гэж үздэг үүсгэсэн файлуудын талаар тохиролцоо хэрэгтэй. Эдгээр дүрэмгүйгээр зохион байгуулалт тав тухын оронд санал зөрөлдөөн үүсгэдэг.
Тэдгүй хоёр талын синхрончлол нь шийдсэн асуудлаасаа өөр асуудал үүсгэдэг, ихэвчлэн хэн ч хамааруулж чадахгүй нэгтгэл. Нэг хуваалцсан ажлын мод дээр хоёр Git процесс ажиллуулахаас зайлсхий, хэрэв тэд хэрхэн зохицдогийг ойлгохгүй бол.
Дараа нь тааруул, SSH-ийг ухаалаг байлга
Зохион байгуулалт зөв болсны дараа хоёр тохиргоо Git хэдэн файлын талаар асуухыг өөрчилнө: status.showUntrackedFiles болон core.untrackedCache-ийн ард байгаа хянагдаагүй кэш. Аль нь ч 40 ms дахь асуулт бүрийн зардлыг өөрчлөхгүй; тэд зөвхөн асуултын тоог өөрчилнө. Очих-буцах аялал локал болсны дараа л товч эргүүл.
Нэг том файл хуулдаг хэмжүүрээс дүгнэхийн оронд таныг бухимдуулдаг тушаалын цагийг хэмж, дэмжигдсэн SSH шифрлэлтийг хэвээр үлдээ. Хуучирсан шифр очих-буцах аяллыг богиносгодоггүй; эхнийхээс илүү удаан амьдрах хоёр дахь асуудлыг нэмдэг. git status-ийн лавлагаа нэг удаа унших үнэ цэнэтэй, учир нь тушаал нэрнээс нь хавьгүй илүү ажил хийдэг.