Jakaminen versionhallintavarastojen välillä alipuuyhdistyksellä
Ohjelmistokehityksessä on joskus tarve sisällyttää toisen projektin lähdekoodi oman projektin versionhallintaan moduulina tavalla jossa muutokset moduuliin voivat liikkua hallitusti molempiin suuntiin oman ja toisen projektin välillä: omassa projektissa voi tehdä muutoksia toisen projektin lähdekoodiin jotka myöhemmin voidaan hallitusti viedä takaisin alkuperäiseen toiseen projektiin, sekä toisen projektin uusia muutoksia voidaan hallitusti tuoda omaan projektiin.
Tämä onnistuu esimerkiksi Git:in alipuuyhdistysstrategialla (engl. subtree merge strategy). Alla sarja komentoja ajettava oman projektin työhakemistossa jolla saa $subtree_url-osoitteessa olevan projektin $subtree_dir-nimiseen alihakemistoon omassa projektissa:
git remote add -f $subtree_repo $subtree_url
git merge -s ours --no-commit $subtree_repo/master
git read-tree --prefix=$subtree_dir/ -u $subtree_repo/master
git commit -m "Merge $subtree_repo as subdirectory."
Tämän jälkeen alihakemistoa voi muokata vapaasti paikallisten tarpeiden mukaan. Muutokset toisesta projektista saa aina tarvittaessa tuotua alihakemistoon seuraavalla komennolla:
git pull -s subtree $subtree_repo master
Mahdolliset paikalliset muutokset yhdistetään tällöin hallitusti toisen projektin muutoksiin. Paikalliset muutokset voidaan vastaavalla tavalla viedä toiseen projektiin käyttämällä samaa alipuuyhdistysstrategiaa toisen projektin puolella koska alipuuyhdistysstrategia tunnistaa itse kumpi puoli on alipuu.
Hyvä puoli alipuuyhdistysstrategiassa on että se ei vaadi lisätoimia oman projektin versionhallintakäyttäjiltä tuodun moduulin suhteen, koska se on sisällytetty omaan projektiin tasavertaisesti oman koodin kanssa. Vertaa Git:in alimoduuleihin (engl. submodules) joka on toinen tapa tuoda ulkopuolisen projektin omaan projektiin, mutta vaatii lisätoimia versionhallinan käyttäjiltä (alimoduulien alustaminen).
Alipuuyhdistysstrategiasta kiinnostuneille Junio Hamanon selitys Git-postituslistalla on hyvä johdanto aiheeseen.
Yhteystiedot
Ota yhteys ja kysy Codenton palveluista! Puhelin 040-729 2733, info[at]codento.comTagit
aamiaistilaisuus agile ajankohtaista amazon arkkitehtuuri avoin lähdekoodi aws c CAP cvs ec2 eucalyptus futurologia git google hadoop hajautetut järjestelmät java kirjat konsultointi mapreduce näin meillä ohjelmistotuotanto ohjelmointi ohjelmointikielet pilvi projektit python rekrytointi s3 scala scrum skaalautuvuuden abc skaalautuvuus startup subversion suorituskyky tapahtumat tiedostojen synkronisointi tietokanta vaatimusmäärittely verkkopalvelut versionhallinta virtualisointi välimuistiArkisto
- helmikuu 2012
- tammikuu 2012
- joulukuu 2011
- marraskuu 2011
- lokakuu 2011
- huhtikuu 2011
- maaliskuu 2011
- helmikuu 2011
- tammikuu 2011
- joulukuu 2010
- marraskuu 2010
- lokakuu 2010
- syyskuu 2010
- elokuu 2010
- heinäkuu 2010
- kesäkuu 2010
- toukokuu 2010
- huhtikuu 2010
- maaliskuu 2010
- helmikuu 2010
- tammikuu 2010
- joulukuu 2009




