Subversion yra atvirojo kodo versijų stebėjimo sistema. Ji saugo failus centrinėje saugykloje ir suteikia katalogų ar failų versijų valdymą. Kaip kūrėjas galite paimti projekto failus iš saugyklos, keisti juos ir vėl grąžinti.
Subversion taip pat turi serverio komponentą, kurį galite naudoti projektams priglobti. Jis veikia panašiai kaip paprastas failų serveris.
Kaip įdiegti Subversion
„Subversion“ įdiegti nesudėtinga. Norėdami pradėti, galite naudoti atitinkamą komandą:
# Debian, Ubuntu
sudo apt diegti subversion apache2 libapache2-mod-svn
# CentOS, Fedora, RHEL
sudo dnf diegti subversion apache2 mod_dav_svn
Atkreipkite dėmesį, kad ši komanda taip pat įdiegia „Apache2“ žiniatinklio serverį. Jei norite pasiekti Subversion saugyklą per HTTP arba WebDAV, jums reikės žiniatinklio serverio. Taip pat galite naudoti HTTPS, jums tereikia įdiegti ir sukonfigūruoti skaitmeninį sertifikatą.
Paleidę šią komandą galite patikrinti, ar subversija yra tinkamai įdiegta. Dabar turėtumėte galėti paleisti svn komandą ir galite pamatyti dabartinę versiją naudodami -- versija variantas:
Serverio konfigūracija naudojant Subversion
Jei diegimas vyko sklandžiai, dabar galite pradėti dirbti su saugyklos konfigūracija, kurią naudosite svn. Žinoma, tam turėsite sukurti naują saugyklą. Pirmiausia šakniniame kataloge sukurkite aplanką, kad patalpintumėte saugyklą:
sudo mkdir /subversion
Jei norite pasiekti saugyklą naudodami WebDAV per HTTP, turėsite suteikti Apache nuosavybės teisę į jos katalogą. Kadangi Apache naudoja www-duomenys vartotojas pagal numatytuosius nustatymus, įgalioti šį vartotoją taip:
sudo chown www-data: www-data /subversion
Dabar galite pereiti prie www-duomenys vartotoją ir pradėkite dirbti su savo saugykla. Komanda, kurią naudotumėte prisijungdami kaip www-duomenys vartotojas yra:
sudo su -s /bin/bash www-data
Dabar esate Apache vartotojas ir atlikę šį veiksmą galite sukurti Subversion saugyklą taip:
svnadmin sukurti /subversion/myrepo
Dabar turite Subversion saugyklą. Norėdami padaryti šią saugyklą šiek tiek saugesnę ir identifikuoti jos vartotojus, kitas žingsnis yra sukurti vartotoją ir nustatyti jam slaptažodį. Norėdami tai padaryti, naudokite šią komandą:
htpasswd -cmb /subversion/passwd myadmin mypass
Pagal šią komandą jūsų vartotojo vardas bus mano administratorius ir jūsų slaptažodis bus mypass. Galite pakeisti šias reikšmes į tokias, kurios tinka jūsų aplinkybėms.
Jūsų Subversion saugykla dabar paruošta naudoti. Šiame etape galite išeiti iš www-duomenys vartotojas, naudodamas išeiti komandą.
Dabar galite siųsti norimą projektą ar failą į savo repo naudodami toliau pateiktą komandą:
sudo svn importas <jūsų projekto adresas> file:///subversion/myrepo -m "Pirmas įsipareigojimas"
Ši komanda naudoja importuoti parametrą, kad perkeltumėte viską, kas yra projekto aplanke, į Subversion saugyklą. Tai darydami, turite pridėti įsipareigojimo pranešimą su -m parametras.
Prieigos metodų naudojimas Subversion
Galbūt pastebėjote, kad naudojate file:// protokolą, kad pridėtumėte projektą prie saugyklos. Tai tik vienas iš kelių tinklo protokolų, kuriuos galite naudoti norėdami pasiekti svn saugyklą. Taip pat galite naudoti WebDAV protokolą per HTTP arba HTTPS arba subversion tinkle svn protokolas.
Tiesioginė prieiga prie saugyklos
Kaip matėte, galite naudoti file:// protokolą, kad pasiektumėte vietinę saugyklą. Štai kaip galite patikrinti vietinį atpirkimą dabartiniame kataloge:
svn co failas:///subversion/myrepo
Kai patikrinate atpirkimo sandorį, svn rodo jame esančių failų sąrašą:
Prieiga naudojant WebDAV
Norėdami integruoti Subversion saugyklą su Apache, turėsite sukonfigūruoti kai kuriuos nustatymus.
Norėdami atlikti pirmąjį veiksmą, suaktyvinkite dav, dav_svn, ir dav_fs modulius naudodami šias komandas:
sudo a2enmod dav dav_fs dav_svn
Suaktyvinę reikiamus modulius, dabar galite redaguoti /etc/apache2/mods-enabled/dav_svn.conf failą. Sukurkite failą, jei jo dar nėra, ir pakeiskite jo turinį taip:
<Vieta / subversija>
DAV svn
SVNPath /subversion/myrepo
„AuthType Basic“.
AuthName "Subversion saugykla"
AuthUserFile /subversion/passwd
Reikalauti galiojantis vartotojas
</Location>
The AuthUserFile nustatymas nurodo failą, kurį sukūrėte anksčiau naudodami htpasswd. Pridėjus jį čia, prieiga prie saugyklos bus suteikta visiems faile nurodytiems vartotojams, jei jie autentifikuojasi naudodami galiojantį slaptažodį.
Sukūrę ir išsaugoję šį failą, iš naujo paleiskite Apache2 paslaugą naudodami šią komandą:
sudosystemctlperkrautiapache2.paslauga
Dabar, kai atidarote žiniatinklio naršyklę ir eikite į http://localhost/subversion/, pamatysite savo saugyklos turinį. Kai einate šiuo adresu, jis paprašys jūsų vartotojo vardo ir slaptažodžio:
Prisijunkite naudodami vartotojo vardą (pvz. mano administratorius) ir slaptažodį (mypass), kurį nustatėte anksčiau. Savo Subversion saugyklą galite pasiekti naudodami WebDAV įvedę vartotojo vardą ir slaptažodį:
Prieiga naudojant SSL ir WebDAV
The https:// protokolo konfigūracija beveik tokia pati kaip http:// protokolą, tik su keliais svarbiais skirtumais. Norėdami pateikti pavyzdį, .conf failas, kurį turite naudoti konfigūruojant, skiriasi. Taip pat turite įdiegti skaitmeninį sertifikatą. Kadangi, kaip žinote, tokia yra darbo logika SSL šifravimo metodas.
Tu gali sukurti skaitmeninį sertifikatą patys arba galite įdiegti kompetentingos institucijos išduotą. Darant prielaidą, kad įdiegėte skaitmeninį sertifikatą, ką jums reikia padaryti, yra paprasta.
Skirtumas šiame žingsnyje yra pakeitimai, kuriuos atliksite konfigūracijos faile. Toliau pateikiamas SSL ir WebDAV naudojimo konfigūracijos failo pavyzdys:
<Vieta / subversija>
DAV įjungta
SSLR reikalauja SSL
Galimybės Nė vienas
„AuthType Basic“.
AuthName "Subversion saugykla"
AuthUserFile /subversion/passwd
Reikalauti galiojantis vartotojas
</Location>
Kaip matote, skirtumas tarp https:// ir http:// protokolų nėra tiek daug, kalbant apie konfigūracijos failo pakeitimus. Atlikę šiuos pakeitimus, turėsite iš naujo paleisti apache2 paslauga. Bėk systemctl iš naujo paleiskite apache2.service tai padaryti.
Kodėl verta naudoti Subversion?
Kaip versijų stebėjimo priemonė, Subversion prisimena kiekvieną failų ir katalogų pakeitimą. Tai leidžia pasiekti senas programinės įrangos ar dokumentų, su kuriais dirbate, versijas ir rasti jų skirtumus. Taip lengviau valdyti projektus, ypač jei jūsų kūrimo komanda yra didelė arba paskirstyta.
Yra daug Linux versijų valdymo sistemų, išskyrus Subversion, kurias galbūt norėsite apsvarstyti.