git status skríður á SSHFS yfir VPN: færðu vinnuna
Stór skrá afritast vel og git status skríður. Ef tréð er á SSHFS yfir VPN er kostnaðurinn ferðir fram og til baka á hverja skrá, ekki bandvídd. Færðu vinnuna.
Afritaðu 200 MB skrá og hún flýgur. Keyrðu git status í sömu möppu og biðin er nógu löng til að hugsa um eitthvað annað. Þessar tvær athuganir stangast ekki á, því magnflutningur mælir afköst á meðan Git mælir hversu margar litlar spurningar um skráakerfið það getur lagt fram á sekúndu, og upphengd fjartré gera hverja spurningu að ferð fram og til baka. Að stilla VPN-ið lagar ekki rangt mótaða vinnu.
Hvers vegna status er rangi mælikvarðinn
Git verður að vita um margar skrár: hverjar eru breyttar, hverjar eru óraktaðar og hvort skyggðar vísitölugögn passi enn við það sem er á disknum. Yfir SSHFS getur hver þessara athugana verið netaðgerð. Vinnueiningin hér er fjöldi skráa, ekki megabætin.
Þess vegna er fyrsta status eftir klón hægt, og þess vegna geta þau næstu verið enn hægari í tré fullu af byggingarúttaki. Skönnun óraktaðra skráa gengur um möppur sem þig varar ekki um, og hvert skref er önnur beiðni yfir tenginguna. Á 40 ms leið verður tré með nokkur þúsund færslur að nokkrum þúsund ferðum fram og til baka. Ekki þarf að grípa pakka til að staðfesta þessa reikningu.
Niðurhalsmælikvarði segir að tengingin sé í lagi; hann segir ekkert um hvort þúsund litlar lestrar klárist í dag síðdegis.
Færðu vinnutréð, ekki stillihnappana
Staðbundið klón setur vinnutréð, vísitöluna og Git-aðgerðirnar á sömu vél. Pull verður sýnilegt netþrep í stað þess að hver skráarathugun verði það.
Þetta hentar alltaf þegar forritarinn getur haldið nauðsynlegum frumkóða staðbundið, sem er oftast. Það skerpir líka mörkin milli commit og uppsetningar, því að breyta staðbundinni skrá breytir ekki lengur fjartengdri þjónustu í keyrslu fyrir slysni; breytinguna verður að ýta og setja upp eins og allt annað. Verðið er að kóðinn er á tveimur stöðum, svo ákveddu hvaða eintak er hið ráðandi og hvernig flýtilagfæring á þjóninum fer aftur í geymsluna. Það samtal er ódýrara en status-skipun sem enginn vill keyra.
Ef vinnusvæðið verður að vera fjarri, keyrðu Git þar
Stundum er ekki hægt að færa vinnusvæðið: byggingin þarf það umhverfi, gögnin eru of stór eða stefna heldur frumkóðanum á hýsilnum. Keyrðu þá Git og viðeigandi þróunartól við hlið skránna, gegnum samþykkta fjarskel eða fjarvinnuumhverfi. Ritillinn getur verið á fartölvunni á meðan bakendi hans vinnur við hlið vinnutrésins.
Dýrar aðgerðir eiga sér þá stað staðbundið á fjárhýsilnum, og netið ber umferð ritilsins í stað þúsunda stat-kalla. Þetta er sama lagfæring og staðbundið klón, sett fram sem uppsetningarval en ekki flutningur.
Samstilling er vinnuflæði með eigendum, ekki skyggni
Samstillt vinnusvæði getur dregið úr endurteknum fjarlestr um, en það er ekki gegnsætt skyggni. Það þarf eiganda fyrir hverja breytingu, reglu fyrir árekstra og samkomulag um myndaðar skrár sem báðir aðilar telja sig eiga. Án þessara reglna skapar fyrirkomulagið ágreining frekar en þægindi.
Tvíhliða samstillir án þeirra býr til annað vandamál en það leysti, yfirleitt sameiningu sem enginn getur eignað. Forðastu að keyra tvö Git-ferli á einu sameiginlegu vinnutré nema þú skiljir hvernig þau samræma sig.
Stilltu svo, og haltu SSH skynsamlegu
Þegar fyrirkomulagið er rétt breyta tvær stillingar því um hversu margar skrár Git verður að spyrja: status.showUntrackedFiles og skyggnið fyrir óraktaðar skrár bak við core.untrackedCache. Hvorug breytir því hvað hver spurning kostar yfir 40 ms; þær breyta aðeins fjölda spurninga. Snúðu hnappi aðeins þegar ferðirnar fram og til baka eru staðbundnar.
Tímamældu skipunina sem pirrar þig í stað þess að röksemda út frá mælikvarða sem afritar eina stóra skrá, og láttu studda SSH-dulkóðun í friði. Úrelt dulritun styttir ekki ferð fram og til baka; hún bætir við öðru vandamáli sem lifir því fyrra lengur. Git status-tilvísunin er eins lestrar virði, því skipunin vinnur miklu meiri vinnu en nafn hennar gefur til kynna.