Visual Studio lues op enger VPN-Deelung: firwat Späicheren zu Ëmwee gëtt
Iwwer eng Deelung editéieren mécht Späicheren, Menüen an Ännerungsverfolgung zu Ëmwee. Verréckelt d'Arbechtskopie op lokal, a bündelt d'Geschicht amplaz se duerchzegoen.
Eng Léisung, déi sech an enger Sekonn vun enger lokaler Plack opmécht, brauch drësseg Sekonnen, fir sech vun enger Deelung opzemaachen, déi iwwer en Tunnel erreecht gëtt. Den Tunnel ass selten d'Ursaach eleng. Wat sech ännert, ass datt Operatiounen, déi lokal Opruff waren, synchron Ëmwee ginn, an den Editeur mécht verschidden dovun, ier d'Fënster erschéngt. De Mechanismus hei drënner erkläert, firwat jiddweree deier ass a wéi eng Dir kënnt ewechhuelen.
Wat den Editeur mécht, wärend eng Datei op ass
En Editeur mat Ännerungsverfolgung hält en Abonnement op all Datei, déi op ass. En lokale Volume bedéngt dëst Abonnement aus dem Dateisystem ouni Netzwierk. Iwwer eng Deelung kann déi selwecht Funktioun zu widderhuelende Metadatenliesungen degeneréieren, well d'Notifikatiounsmodell sech iwwer SMB net gläich verhält. D'Ännerungsverfolgung ausschalten ass en éierlecht éischt Experiment, well et eng ganz Klass Ufroen ewechhëlt, ouni den Tunnel unzepaken.
D'Projektsystem bäisetzt säin eegene Verkéier. Eng Léisung lueden zielt Verzeechnisser op, liest Projektdateien a freet vläicht SDKen oder Pakete of, an all Ofwuert ass en Ëmwee, wann de Wee wäit ewech ass. Eng Léisung mat ville Projeten multiplizéiert déi Zuel, dofir wächst d'Opmaachzäit méi séier wéi d'Dateigréissten et géifen uginn.
Shell-Nowuesse, déi oflafen, ier de Menü erschéngt
Windows bréngt eng zweet Quell vu Stockungen an, déi näischt mam IDE ze dinn huet. Den Explorer an seng Shell-Erweiderungen léisen Drécker, gemappte Laufwierker a Verknëppungen, déi virdru benotzt goufen, all Kéier nei op, wann en Kontextmenü sech opmécht. Wann déi Ziler op engem Netzwierk sinn, dat den Tunnel net erreecht, blockéiert all Opléisung, bis en Timeout oflaf, an eréischt dann gëtt de Menü gemoolt. Dofir kann e Rietsklick Sekonne hänken, wärend d'Datei selwer normal opmécht.
Huelt déi doudeg Mappings an Dréckerqueue ewech, oder behält just déi, déi op deem Netzwierk existéieren, op deem Dir wierklech sidd. Déi selwecht Begrënnung deckt alles of, wat am Hannergrond e Wee opléist, dorënner Lëschte vun de leschten Dateien a festgemaachte Dossieren.
net use
Get-Printer | Select-Object Name, PortName
Measure-Command { Get-ChildItem \files\proj | Out-Null }
Firwat eng lokal Arbechtskopie gewënnt
Direkt op der Deelung schaffen ass déi schlechtest Ariichtung fir eng Bewäertung-Ännerung-Build-Test-Schleef, well den Editeur, de Compiler an de Versiounskontroll-Client jiddwereen déi wäit ewech Dateien separat liest. Jiddwereen dovun bezilt säin eegenen Ëmwee, an e Build bezilt eemol pro Datei. Eng lokal Kopie mat Push iwwer de Repository ersetzt eng Flut vu klengen Iwwerfuerderungen duerch eng eenzeg bewosst. D'Verbindung ass net besser ginn; d'Zuel vun den Iwwerfuerderunge ass zesummegebrach.
Dat ass eng strukturell Ännerung an net eng Upassungsübung, an dat ass genee firwat et funktionéiert, wann Tunnel-Astellungen et net maachen. Et mécht och de Feelermodus evident: wann de Build mat enger lokaler Kopie nach lues ass, war d'Deelung ni de Problem.
Verréckelt d'Geschicht als een Objet
Wann de Repository selwer den Tunnel misst iwwerqueren, schéckt d'Geschicht an engem eenzegen Objet amplaz se duerchzegoen. E Bundle ass eng eenzeg Datei a sou eng eenzeg Transfer, wärend e Checkout, deen Dausende vu lockeren Objeten duerchgeet, Dausende vun Iwwerfuerderunge kascht. Mercurial a Git ënnerstëtzen allen zwee déi Form.
hg bundle --base 9f2c1a7e outgoing.hg
hg unbundle outgoing.hg
git bundle create repo.bundle main
git clone repo.bundle repo
D'Basisrevisioun ass deen Deel, dee richteg muss getraff ginn, well se entscheet, wéi vill Geschicht reest. Alles bündelen funktionéiert a verschwend d'Verbindung, wärend d'Bündelen vun der leschter gemeinsamer Ännerung just dat verréckelt, wat der anerer Säit feelt.
Moosst dräi Operatiounen, ier Dir d'Bandbreet beschëllegt
Moosst dräi Saachen getrennt: eng kleng Datei opgemaach, en Verzeechnis opgezielt, eng Späicherung fäerdeg. Wann all dräi lues sinn am Verhältnis zu der Zuel vun den Dateien, sinn d'Käschten Ëmwee. Wann eng hänkt, wärend déi aner gutt sinn, verdächtegt en Timeout géint eng onereechbar Ressource an net d'Bandbreet. Notéiert, op wéi engem Netzwierk d'Maschinn bei all Laf war, well e Laptop, deen sech erëm mat engem anere Profil verbënnt, d'Äntwert tëscht Versich ka änneren.
Widderhëlt dann déiselwecht dräi géint eng lokal Kopie vum Projet. Den Ënnerscheed ass de Präis vun der Deelung, an dat ass d'Zuel, déi een zitéiere soll, wann een eng méi séier Verbindung als Léisung proposéiert.