Risinājums
Microsoft Visual Studio 2013 4. atjauninājuma (KB3023577) atjauninājums
Lejupielādējiet Microsoft Visual Studio 2013 4. atjauninājuma atjauninājumu, lai novērstu Git problēmu.
- Visual Studio 2013 atjauninājums (KB3023576)
- Visual Studio TFS 2013 atjauninājums (KB3023302)
- Visual Studio TFS 2013 4. atjauninājuma (KB3023304) atjauninājums
Kā darbojas labojums
Team Foundation Server (TFS) labojums noraida jebkuru gpiešanu (augšupielādi), kas satur failu vai ceļa komponentu, kas atbilst ".git" virknei. Tas novērš sliktu failu ievadīšanu viesotajās repos.
Visual Studio klientam labojums neļauj paņemt nevienu failu .git direktorijā. Tas, savukārt, novērš repo, kas satur nederīgus failus, ietekmēt lietotāja lokālo datoru.
Par problēmu pakalpojumā Git
Šī problēma izpaužas visā Git ekosistēmā un nav raksturīga tikai Microsoft atbalstam Git repozitorijiem mūsu izstrādes platformās. Tomēr mēs veicām svarīgas, proaktīvas darbības, lai nodrošinātu, ka Microsoft klienti, kuri izmanto Git repozitorijus, ir aizsargāti pret šo problēmu.
Problēmu, kas skar visus Git klientus, atklāja galvenie Git uzturētāji. Šī problēma ļauj ievadīt failu Git repo. Faila nosaukums tiek piešķirts tā, ka, lietotājam lejupielādējot izmaiņas attālajā krātuvē, īpaši izstrādāts fails var klusi aizstāt lietotāja konfigurācijas failu. Lietotāja konfigurācijas fails atrodas ārpus repozitorija. Aizstājot šo failu ar nepareizu failu, git komandas var pārkartēt, lai izpildītu patvaļīgas komandas, kas tiek izpildītas saskaņā ar lietotāja akreditācijas datiem.
Ietekme uz Visual Studio
Visual Studio 2013 un Visual Studio TFS 2013 šī problēma tieši neietekmē. Visual Studio un TFS neizpilda patvaļīgas komandas no .git metadatiem. Tomēr, pārbaudot repo, kas satur īpaši izstrādātu failu, Visual Studio var pārrakstīt .git metadatu daļas, pakļaujot šo problēmu Git operētājsistēmai Windows komandrindas rīkiem. TFS tika proaktīvi ielāpots, lai novērstu šīs problēmas izplatīšanos.
Iemesls
Katra lokālā Git datu bāze tiek uzturēta diskā repo saknes mapē slēptā .git direktorijā. Kad faili tiek paņemti (piemēram, pēc lejupielādes izvietoti lokālajā diskā), fails, kura nosaukums ir ". GIT/config" tiek ievietots Git datu bāzē. Reģistrnejutīgs salīdzinājums ".git" ir daļēji atbildīgs par šo problēmu. Turklāt automātiska failu ceļu apstrāde Windows platformās paplašina ietekmētos failu modeļus daudz vairāk nekā skaidri nosauktie ". GIT/config" modelis.
Statuss
Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".