Table of Contents

SVN

URL kde bezi svn server

svn://192.168.241.3/var/lib/svnrepos/embedded

Pouzivany klienti

System vyvoja

Vyvojovy branch

Vytvara sa v pripade potreby novej funkcionality a platia nasledovne pravidla:

  1. Sluzia v pripade vacsich prerabok
  2. Dorabania novej funkcionality (v pripade ze dorabka trva viac ako den, dva)
  3. Mergovanie prebieha po implementovanie novej funkcionality a aspon zakladnom otestovani konkretnej funkcionality
  4. Je dolezite dbat na to aby nova funkcionalita nepokazila uz implementovane a funkcne veci


Release branch

Vytvara sa kazdy alebo kazdy druhy mesiac a platia nasledujuce pravidla:

  1. Nedoraba sa do nich nova funkcionalita,
  2. Vzdy je podporovany jeden, posledny release. V specifickych pripadoch, ak je potrebne vykonat bugfix do stasieho release-u, je nutne odsuhlasenie veduceho teamu a zabezpecenie upravy bugu aj v najnovsom release-e.,
  3. Plati na nich ak je to potrebne, cislovanie branchov (stredne cislo buildu podla cislovanie branchov),
  4. Obsahuje len opravy chyb (sporne situacie urci veduci),
  5. Je dolezite pravidelne (denne) mergovanie do trunku, aby sa bugfix prejavil v trunku.

Organizovanie zdrojovych kodov v svn

Korenovy adresar svn repozitara sa nachadza: svn://192.168.241.3/var/lib/svnrepos/embedded

Clenenie repozitara

Repozitar sa z logickeho hladiska deli na viacero casti:


Z pohladu udrzby na:

Dopravne aplikacie

Korenovy adresar dopravnych aplikacii: svn://192.168.241.3/var/lib/svnrepos/embedded

Repozitar obsahuje aplikacie a pevne spojene kniznice aplikacnej logiky:

  1. EOnboardComputer
  2. EAppCore
  3. ESlave
  4. ETicketIssueLogic

Kniznice

Korenovy adresar kniznic: svn://192.168.241.3/var/lib/svnrepos/embedded

Adresar je podla zamerania kniznic dalej deleny na celky:

Praca s klientom kdesvn






alebo je mozne vytvorit branch pomocou kdesvn: “Subversion/General/Copy” (nad trunkom zobrazenom v pravom okne),


alebo pomocou prikazu:

svn copy svn://192.168.241.3/var/lib/svnrepos/embedded/Apps/VehicleSystem/trunk \
         svn://192.168.241.3/var/lib/svnrepos/embedded/VehicleSystem/branches/1311 \
         -m "created release 1311 from trunk"

Rucne Mergovanie - old, nove pravidla v sekcii pravidla

novsie pravidla mergovania : pravidla a poznatky z mergovania projektov

mergovanie zmien vo vetve branchu do trunku http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.merge.html

svn merge -r N:M SOURCE[@REV] [WCPATH] mergovanie zmien od verzie N po verziu M do WCPATH is the working copy path that will receive the changes. Default value is ”.”

priklad:
aktualny adresar je stiahnuty adresar trunk daneho projektu
svn merge -r 1305:1750 svn://192.168.241.3/var/lib/svnrepos/embedded/Apps/VehicleSystem/branches/1311

kde 1305 je cislo revision od ktorej zacal branche a 1750 je aktualne revizia(HEAD) - revizia po ktoru chceme mergovat

Nasledne po tomto kroku je potrebne otvorit a skontrolovat vysledok(working copy) v klientovi(kdesvn) a po vizualnej kontrole sa vysledky commitnut do SVN komit sa prevazda s poznamkou “Merged revision 1750-1750 from branch 0903” Tato poznamka je potrebna pre pripad, ked sa este opravia nejake chyby v tomto branchu, ktory uz bol mergovany.

priklad comitu z command line
svn ci -m "Merged revision 1750-1750 from branch 0903"

Informacie o historii mergeov sa daju pozriet aj z properties mergeinfo:

cd FareSystem/branches/0903
svn propget svn:mergeinfo .
/trunk:341-390

alebo:

cd FareSystem/branches/0903
svn mergeinfo svn://192.168.241.3/var/lib/svnrepos/embedded/Apps/VehicleSystem/trunk

blizsie info na: http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.branchmerge.basicmerging.mergeinfo

Undo

Ked sa niekomu podari omylom commintnut nieco co nechce a chce aby sa to v svnku vratilo do povodneho stavu. Je mozne pouzit svn merge na vratenie lokalnej kopi a potom commitnut lokalne zmeny do svn-ka. Jedine co treba je vytvorit spatny rozdiel (reverse difference). Da sa to cez specifikovanie revizie: –revision 303:302, alebo –change -303.

Dokumentacia ku SVN:

http://svnbook.red-bean.com/en/1.2/index.html

Tree conflict

potrebne v problematickom adresari pustit svn cleanup (pred tym mat nainstalovane svn: sudo apt-get install subversion)

Project 'locked' problem

V situaciach, ked kdesvn hlasi, ze woking copy, nad ktorou pracujete je locked a nepomaha cleanup, je mozne vyriesit situaciu rucnym odstranenim locknutych suborov prikazom:

find . -name 'lock' -exec rm -v {} \;