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 анықтамасы бір рет оқуға тұрарлық, өйткені бұйрық атынан әлдеқайда көп жұмыс істейді.

Қатысты мақалалар