ertza

software librea eta euskararen arteko ertzean.


Kodean aldaketak desegitea CVS erabiliz

Gure kodea VCS baten bidez kudeatzen badugu —CVS, SVN, git, hg, …— behin baino gehiagotan aurkituko gara egoera honen aurrean: fitxategi batean aldaketak egin ditugu —edo beste edonork egin ditu— baina konturatu gara aldaketa horiek ez daudela ongi eta atzera egin nahi dugu. Aldaketak desegin daitezke? Noski, zerbaitengatik erabiltzen dugu ba halako kontrol-sistema bat!

CVSrekin suertatu zait halako egoera eta ikus dezagun nola konpon daitekeen hankasartzea:

  1. Lehenik bertsio zaharra eta berria identifikatu behar ditugu, zehazki hauen berrikuste-zenbakia (revision number) da interesatzen zaiguna. Horretarako cvs log <fitxategia> komandoa erabil dezakegu:
    $ cvs log crashreporter.ini

    Honek fitxategiak denboran zehar izan dituen egoera guztiak bistaratuko dizkigu eta interesatzen zaigun horren berrikuste-zenbakia hartuko dugu gogoan.

  2. Fitxategi zaharra identifikatuta, beharrezko elementu guztiak ditugu fitxategia leheneratzeko —nahi izanez gero fitxategi batetik bestera egon diren aldaketak aldera ditzakegu erabat ziur egoteko cvs diff komandoarekin—. Erabiliko dugun komandoa cvs update -j azken-berrikuste-zenb -j berrikuspen-zaharraren-zenb <fitxategia> izango da:
    $ cvs update -j 1.8 -j 1.7 crashreporter.ini
    RCS file: /l10n/l10n/eu/toolkit/crashreporter/crashreporter.ini,v
    retrieving revision 1.8
    retrieving revision 1.7
    Merging differences between 1.8 and 1.7 into crashreporter.ini

    Honek bi fitxategien arteko ezberdintasunak kalkulatu (diff) eta fitxategi berri batean batzen ditu (join).

  3. Falta zaigun bakarra aldaketa berriak zuhaitzean eguneratzea da. Ohiko moduan cvs commit erabiliko dugu:
    $ cvs commit -m "revert file to 1.7 status" crashreporter.ini
    Checking in crashreporter.ini;
    /l10n/l10n/eu/toolkit/crashreporter/crashreporter.ini,v  <--  crashreporter.ini
    new revision: 1.9; previous revision: 1.8
    done
Tags: ,