Sistem za upravljanje z izvedbami

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje
  • rcs
  • cvs
  • subversion (svn)


Vsebina

Osnovni pojmi

Program je sestavljen iz večih datotek katere imajo lastne verzije.

Izvedba (revision)
verzija posamezne datoteke
Izdaja (release)
verzija programskega sistema
Skladišče (repository)
prostor kjer hranimo vse izvedbe (in s tem tudi vse izdaje)

Glavne funkcije

  • vzdrževanje repozitorija
v skladišču mora biti red, da vemo kdo je spreminjal kaj, kaj je zadnja verzija itd...
  • vstavljanje izvedb/izdaj iz repozitorija
  • jemanje izvedb/izdaj iz repozitorija
  • hramba zgodovine sprememb
  • nadzor nad dostopom
sistem mora omogočati selektiven nadzor glede nad dostopom posameznih delov repozitorija glede na uporabnika
  • nadzor in upravljanje z izdajami
  • minimizacija porabe diska

Primer razvoja

Drevo izvedb:

  stranska veja                                              ,-->  2.2.1.2  -> (BRANCH)
                                   (RELEASE/TAG)            /
->  1.1  ->  1.2  ->  1.3  ->  1.4  --izdaja-->  2.1  ->  2.2  ->   glavna veja (TRUNK)
                       |
               |     branch
               |       |`---  1.3.1.1  ->  1.3.1.2  ->  1.3.1.3  ->  (BRANCH)
  stranske veje|       |                         \
   (branch-i)  | branch iz 1.3 (ponovno)          `-->  1.3.1.2.1.1  ->  1.3.1.2.1.2  -> (BRANCH)
               |       |
               |        `---  1.3.2.1  ->  1.3.2.2  ->  (BRANCH)

Sistem RCS samodejno povečuje številko izvedbe. Ko se odločimo da izdamo novo izdajo, sistem poveča številko izdaje. Če od določene verzije v zgodovini želimo uvajati spremembe naredimo branch.

Npr:

1.1
osnovni hello world
1.2
dodano čakanje na pritisk tipke return
1.3
dodan klicaj na konec izpisa

Stranske veje

Razlogi za ustvarjanje novih stranskih vej

  • Popravek stare izvedbe/izdaje.
v primeru ko popravljamo staro kodo in ne moremo stranki vsiliti najnovejše verzije, naredimo vejo pri izvedbi ki v stari izdaji popravi bug
--[]---  ...  --[]
   \
    `-[]
  • Posebna funkcionalnost na željo kupca.
ko želi kupec posebno funkcionalnost vsaki zadnji izvedbi vedno dodajamo isto spremembo v nov branch
---[]---[]
    \    \
     `-[] `-[]


  • Vzporedni (prototipni) razvoj
vsa koda se ohrani v repozitoriju
glavna veja se nadaljuje kot kopija izbranega prototipa
     ,--[]--[]--[]
    /
    |,--[]--[]--[]-,
    /               \
---[]                `-[]----
    \
    |`--[]--[]--[]
    \
     `--[]--[]--[]


  • Konfliktni razvoj
nastane, ko dva programerja želita spreminjati isto datoteko
da drugi programer ne čaka da prvi programer odklene datoteko lahko naredi svojo vejo
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja