Citāda versiju kontrole
Interesanti, cik daudz sagadīšanās patiesībā ir likumsakarības? Piemēram, es vakar nolēmu, ka lokāli jāuzstāda kāda versiju kontroles sistēma. Jā, es esmu no tiem, kas uzskata, ka arī lokāli ir jāveic pirmkoda versionēšana, jo tad paveras daudz plašākas iespējas izdarīt dažādus eksperimentus, nebaidoties, ka tiks zaudēts sākotnējais, strādājošais kods. Nu un lokāli izmantot Team System man liekas pārspīlēti. Jautāsiet, kur sagadīšanās? Tur, ka šodien Valdis ir nopublicējis rakstu par SVN integrāciju ar Visual Studio, izmantojot AnkhSVN.
Lokāli uzstādīts SVN bija viens no variantiem, kurus es izskatīju, tomēr (gan bez spēcīgas argumentācijas) nolēmu izmantot Git. Vēl viena sagadīšanās, jo ja es būtu izmantojis SVN, tad diez vai vairs būtu par ko stāstīt :)
Kāda tad ir būtiskākā atšķirība, kāpēc izvēlējos Git? Tas, ka Git ļauj strādāt bez centralizēta servera, kas manā gadījumā ir vienkāršāk. Citu būtisku argumentu par labu vai sliktu Git man nebija.
Uzstādīšanas process ir vienkāršs, un būtiski neatšķiras no jebkuras citas programmas uzstādīšanas. Msysgit instalācijas pakotne ir atrodama viņu Google Code lapā. Integrācijai ar Visual Studio izmantoju GitExtensions papildinājumu, kurā iekļauts arī Visual Studio (2008 un 2005) spraudnis, pēc kura instalācijas studijā parādās jauna rīkjosla, no kuras ir pieejamas nepieciešamās darbības.
GitExtensions neintegrējas studijas versiju kontroles apakšsistēmā, galvenokārt tāpēc, ka šim rīkam ir savādāka filozofija. Šeit nav failu “izčekošanas” un “iečekošanas”, bet ir tikai atbilstošas versijas iegūšana un tai sekojoša izmaiņu sapludināšana (“merge”), līdz ar to visa darbība notiek ārējos rīkos. Kopumā tas ir ērtāk, nekā izklausās.
Pagaidām vēl šo to neesmu līdz galam izpratis, piemēram, kā pareizāk strukturēt koda repozitorijus, un kā piespiest Git ignorēt kompilācijas blakusproduktus, bet pirmie iespaidi ir vairāk pozitīvi nekā negatīvi. Redzēs, kādas domas man būs pēc tam, kad būšu šo rīku palietojis ilgāku laiku.
Interneta resursi, kuri man noderēja izvēloties un uzstādot Git: