200 MB файлды көчүрүңүз — ал учуп кетет. Ошол эле папкада git status иштетиңиз, күтүү башка нерсеге ой жүгүрткүдөй узак болот. Бул эки байкоо карама-каршы эмес, анткени массалык өткөрүү өткөрүү жөндөмүн өлчөйт, ал эми Git секундасына канча кичине файл системасынын суроосун бере аларын өлчөйт, жана тиркелген алыскы дарак ар бир суроону барып-келүүгө айландырат. VPNди жөндөө туура эмес формаланган жүктү оңдобойт.

Эмне үчүн status туура эмес өлчөм

Git көптөгөн файлдар жөнүндө билиши керек: кайсы өзгөргөн, кайсы көзөмөлдөнбөгөн жана кэштеги индекстик маалымат дискидегиге дагы эле туура келеби. SSHFS аркылуу бул байкоолордун ар бири тармактык операция болушу мүмкүн. Бул жердеги жумуш бирдиги — файлдардын саны, мегабайт эмес.

Ошондуктан клондон кийинки биринчи status жай, жана ошондуктан курулуш чыгышына толгон даракта кийинкилери андан да жай болушу мүмкүн. Көзөмөлдөнбөгөндөрдү сканерлөө сизди кызыктырбаган папкаларды аралайт, жана ар бир кадам — байланыш аркылуу дагы бир суроо. 40 ms жолдо бир нече миң жазуусу бар дарак бир нече миң барып-келүүгө айланат. Бул арифметиканы тастыктоо үчүн пакет кармоо керек эмес.

Жүктөө өлчөгүчү байланыш жакшы дейт; миң кичине окуу бүгүн түштөн кийин бүтөбү деген жөнүндө эч нерсе айтпайт.

Жумуш дарагын көчүрүңүз, жөндөө туткаларын эмес

Жергиликтүү клон жумуш дарагын, индексти жана Git операцияларын бир машинага коёт. Pull көрүнгөн тармактык кадамга айланат, ар бир файл текшерүүсү эмес.

Бул иштеп чыгуучу керектүү булакты жергиликтүү кармай алганда туура келет, ал көбүнчө ошондой. Ал commit жана жайгаштыруу чегин да курчутат, анткени жергиликтүү файлды түзөтүү эми иштеп жаткан алыскы кызматты кокустан өзгөртпөйт; өзгөртүү калгандары сыяктуу push жасалып, жайгаштырылышы керек. Баасы — код эки жерде болот, ошондуктан кайсы көчүрмө ыйгарым укуктуу экенин жана сервердеги шашылыш түзөтүүнүн кампага кантип кайтарын чечиңиз. Бул сүйлөшүү эч ким иштеткиси келбеген status буйругунан арзан.

Жумуш мейкини алыскы бойдон калышы керек болсо, Gitти ошол жерде иштетиңиз

Кээде жумуш мейкинин көчүрүү мүмкүн эмес: курулушка ошол чөйрө керек, маалымат өтө чоң же саясат булакты хостто кармайт. Ошондо Git жана тиешелүү иштеп чыгуу куралдарын файлдардын жанында, бекитилген алыскы кабык же алыскы иштеп чыгуу чөйрөсү аркылуу иштетиңиз. Редактор ноутбукта кала алат, анын сервердик бөлүгү жумуш дарагынын жанында иштеп жатканда.

Кымбат операциялар ошондо алыскы хостто жергиликтүү түрдө болот, жана тармак миңдеген stat чакыруусунун ордуна редактор трафигин ташыйт. Бул жергиликтүү клон менен бирдей түзөтүү, миграция эмес, жайгаштыруу тандоосу катары айтылган.

Синхрондоо — ээлери бар жумуш агымы, кэш эмес

Синхрондолгон жумуш мейкини кайталанган алыскы окууларды азайта алат, бирок ал ачык кэш эмес. Ага ар бир өзгөрүү үчүн ээ, кагылышуулар үчүн эреже жана эки тарап тең өзүнүкү деп эсептеген жаралган файлдар боюнча макулдашуу керек. Бул эрежелерсиз жайгашуу ыңгайлуулуктун ордуна келишпестик жаратат.

Аларсыз эки тараптуу синхрондоочу чечкен маселесинен башка маселе жаратат, адатта эч ким таба албаган бириктирүү. Эки Git процессин бир жалпы жумуш дарагында иштетүүдөн качыңыз, эгер алардын кантип шайкештелишин түшүнбөсөңүз.

Анан жөндөңүз жана SSHды акылдуу кармаңыз

Жайгашуу туура болгондон кийин, эки жөндөө Git канча файл жөнүндө сурай турганын өзгөртөт: status.showUntrackedFiles жана core.untrackedCache артындагы көзөмөлдөнбөгөн кэш. Экөө тең 40 ms ичинде ар бир суроонун баасын өзгөртпөйт; алар суроолордун санын гана өзгөртөт. Тутканы барып-келүүлөр жергиликтүү болгондон кийин гана бураңыз.

Бир чоң файлды көчүргөн өлчөгүчтөн ой жүгүртүүнүн ордуна, сизди тажаткан буйруктун убактысын өлчөңүз жана колдоого алынган SSH шифрлоосун тийбеңиз. Эскирген шифр барып-келүүнү кыскартпайт; ал биринчисинен узак жашаган экинчи маселени кошот. git status маалымдамасы бир жолу окууга татыктуу, анткени буйрук атынан алда канча көп иштейт.

Тектеш макалалар