Mae git status yn cropian dros SSHFS ar VPN: symudwch y gwaith
Mae ffeil fawr yn copïo'n iawn ond mae git status yn cropian. Os yw'r goeden ar SSHFS dros VPN, y gost yw teithiau cwblhau fesul ffeil, nid lled band. Symudwch y gwaith.
Copïwch ffeil 200 MB ac mae'n hedfan. Rhedwch git status yn yr un cyfeiriadur a bydd yr aros yn ddigon hir i newid gweithgaredd. Nid yw'r ddau sylw hyn yn groes, oherwydd mae trosglwyddiad swmp yn mesur trwybwn tra mae Git yn mesur faint o gwestiynau bach am y system ffeiliau y gall eu gofyn yr eiliad, ac mae coeden bell wedi'i mowntio yn troi pob cwestiwn yn daith gwblhau. Ni fydd addasu'r VPN yn trwsio llwyth sydd wedi'i lunio'n anghywir.
Pam mai status yw'r meincnod anghywir
Rhaid i Git ddysgu am lawer o ffeiliau: pa rai sydd wedi newid, pa rai heb eu holrhain, ac a yw data'r mynegai yn y cache yn dal i gyd-fynd â'r hyn sydd ar y ddisg. Dros SSHFS gall pob un o'r sylwadau hynny fod yn weithrediad rhwydwaith. Uned y gwaith yma yw nifer y ffeiliau, nid y megabeit.
Dyna pam mae'r status cyntaf ar ôl clôn yn araf, a pham gall y rhai nesaf fod yn arafach fyth mewn coeden yn llawn allbwn adeiladu. Mae sganio ffeiliau heb eu holrhain yn cerdded cyfeiriaduron efallai nad oes gennych ddiddordeb ynddynt, ac mae pob cam yn gais arall dros y cysylltiad. Ar lwybr 40 ms mae coeden â chwpwl o filoedd o gofnodion yn troi'n gwpwl o filoedd o deithiau cwblhau. Nid oes angen dal pecynnau i gadarnhau'r rhifyddeg honno.
Mae meincnod lawrlwytho yn dweud bod y cysylltiad yn iawn; nid yw'n dweud dim am a fydd mil o ddarlleniadau bach yn gorffen y prynhawn yma.
Symudwch y goeden waith, nid y nobiau addasu
Mae clôn lleol yn rhoi'r goeden waith, y mynegai a gweithrediadau Git ar yr un peiriant. Mae pull yn dod yn gam rhwydwaith gweladwy yn lle bod pob gwiriad ffeil felly.
Mae hyn yn addas pryd bynnag y gall y datblygwr gadw'r ffynhonnell ofynnol yn lleol, sef y rhan fwyaf o'r amser. Mae hefyd yn miniogi'r ffin rhwng commit a defnyddio, oherwydd nid yw golygu ffeil leol bellach yn newid gwasanaeth pell sy'n rhedeg ar ddamwain; rhaid gwthio a defnyddio'r newid fel unrhyw beth arall. Y gost yw bod y cod mewn dau le, felly penderfynwch pa gopi sy'n awdurdodol a sut mae cywiriad cyflym ar y gweinydd yn dychwelyd i'r storfa. Mae'r sgwrs honno'n rhatach na gorchymyn status nad oes neb eisiau ei redeg.
Os rhaid i'r gweithle aros yn bell, rhedwch Git yno
Weithiau ni all y gweithle symud: mae'r adeiladwaith angen yr amgylchedd hwnnw, mae'r data'n rhy fawr, neu mae polisi'n cadw'r ffynhonnell ar y gwesteiwr. Yna rhedwch Git a'r offer datblygu perthnasol wrth ymyl y ffeiliau, trwy gragen bell a gymeradwywyd neu amgylchedd datblygu o bell. Gall y golygydd aros ar y gliniadur tra bo ei gefn yn gweithio wrth ymyl y goeden waith.
Yna mae gweithrediadau drud yn digwydd yn lleol ar y gwesteiwr pell, ac mae'r rhwydwaith yn cario traffig y golygydd yn lle miloedd o alwadau stat. Yr un atgyweiriad â chlôn lleol yw hwn, wedi'i fynegi fel dewis defnyddio yn hytrach na mudo.
Mae cydamseru yn llif gwaith â pherchnogion, nid yn cache
Gall gweithle wedi'i gydamseru dorri darlleniadau pell ailadroddus, ond nid yw'n cache tryloyw. Mae angen perchennog ar gyfer pob newid, rheol ar gyfer gwrthdaro, a chytundeb ar ffeiliau a gynhyrchir y mae'r ddwy ochr yn credu eu bod yn berchen arnynt. Heb y rheolau hynny mae'r trefniant yn creu anghytundeb yn hytrach na chyfleustra.
Mae cydamserwr dwyffordd hebddyn nhw yn cynhyrchu problem wahanol i'r un a ddatrysodd, fel arfer uno na all neb ei phriodoli. Osgoi rhedeg dau broses Git ar un goeden waith a rennir oni bai eich bod yn deall sut maen nhw'n cydlynu.
Yna addaswch, a chadwch SSH yn synhwyrol
Ar ôl i'r trefniant fod yn gywir, mae dau osodiad yn newid faint o ffeiliau y mae'n rhaid i Git ofyn amdanynt: status.showUntrackedFiles a'r cache ffeiliau heb eu holrhain y tu ôl i core.untrackedCache. Nid yw'r un yn newid cost pob cwestiwn dros 40 ms; dim ond faint o gwestiynau sydd yn newid. Trowch nob yn unig pan fydd y teithiau cwblhau yn lleol.
Amserwch y gorchymyn sy'n eich blino yn lle rhesymu o feincnod sy'n copïo un ffeil fawr, a gadewch i'r amgryptio SSH a gefnogir fod yn llonydd. Nid yw seiffr hen ffasiwn yn byrhau taith gwblhau; mae'n ychwanegu ail broblem sy'n goroesi'r gyntaf. Mae cyfeirlyfr git status yn werth un darlleniad, oherwydd mae'r gorchymyn yn gwneud llawer mwy o waith nag y mae ei enw'n ei awgrymu.