Fullkominn leiðarvísir til að setja upp Apache Subversion SVN og TortoiseSVN fyrir útgáfustýringu


Ef vinnan þín krefst meðhöndlunar á skjölum, vefsíðum og öðrum gerðum skráa sem eru uppfærðar reglulega gætirðu viljað nota útgáfustýringarkerfi ef þú ert ekki að gera það nú þegar.

Meðal annars gerir þetta þér (og hópi hugsanlegra samstarfsaðila líka) kleift að fylgjast með breytingum sem gerðar eru á tiltekinni skrá og gerir þér kleift að fara aftur í fyrri útgáfu ef vandamál koma upp eða þegar uppfærsla hefur ekki skilað væntanlegum árangri .

Í vistkerfi ókeypis hugbúnaðar er mest notaða útgáfustýringarkerfið kallað Apache Subversion (eða SVN í stuttu máli). Með hjálp mod_dav_svn (eining Apache fyrir Subversion) geturðu fengið aðgang að Subversion geymslu með HTTP og vefþjóni.

Sem sagt, við skulum bretta upp ermarnar og setja upp þessi verkfæri á RHEL/CentOS 7, Fedora 22-24, Debian 8/7 og Ubuntu 16.04-15.04 netþjóna. Fyrir prófin okkar munum við nota CentOS 7 netþjón með IP 192.168.0.100.

Á biðlarahliðinni (Windows 7 vél) munum við setja upp og nota TortoiseSVN (sem er byggt á Apache Subversion) sem viðmót við SVN.

Server - CentOS 7
IP Address - 192.168.0.100
Client - Windows 7

Skref 1 - Uppsetning og stilling SVN á Linux

Eins og við nefndum nýlega munum við treysta á Apache til að fá aðgang að SVN geymslunni með því að nota vefviðmót. Ef það er ekki þegar uppsett, vertu viss um að bæta því við listann yfir pakka eins og sýnt er hér að neðan:

------------------ On CentOS / RHEL / Fedora ------------------ 
# yum update && yum install mod_dav_svn subversion httpd -y

------------------ On Debian / Ubuntu ------------------ 
# apt-get update && apt-get install libapache2-svn subversion apache2 -y 

Við uppsetningu á CentOS 7 verður Apache stillingarskrá fyrir SVN búin til sem /etc/httpd/conf.modules.d/10-subversion.conf. Opnaðu skrána og bættu við eftirfarandi stillingarblokk:

<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/httpd/subversion-auth
    Require valid-user
</Location>

Athugið: Á Debian/Ubuntu þarftu að bæta neðan línum við /etc/apache2/mods-enabled/dav_svn.conf skrána.

<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/apache2/subversion-auth
    Require valid-user
</Location>

Á Debian/Ubuntu þarftu að virkja dav_svn Apache mát:

# a2enmod dav_svn

Nokkrar skýringar:

  1. The SVNParentPath directive indicates the directory where our repositories will be later created. If this directory does not exist (which is most likely the case), create it with:
    # mkdir -p /websrv/svn
    

    It is important to note that this directory must NOT be located inside, or overlap, the DocumentRoot of a virtual host currently being served by Apache. This is a showstopper!

  2. The AuthUserFile directive indicates the file where the credentials of a valid user will be stored. If you want to allow everyone to access SVN without authentication, remove the last four lines in the Location block. If that is the case, skip Step 2 and head directly to Step 3.
  3. Although you may be tempted to restart Apache in order to apply these recent changes, don’t do it yet as we still need to create the authentication file with valid users for SVN, and the repository itself.

Skref 2 – Bættu við leyfðum notendum til að fá aðgang að SVN

Við munum nú nota htpasswd til að búa til lykilorð fyrir reikninga sem fá aðgang að SVN. Aðeins fyrir fyrsta notandann þurfum við -c valkostinn.

Leyfilegir reikningar og bcrypt-dulkóðuð lykilorð (-B) verða geymd í /etc/httpd/subversion-auth í lykilgildapörum. Athugaðu að samkvæmt stöðlum nútímans er sjálfgefna MD5 eða SHA dulkóðunin sem htpasswd notar talin óörugg.

------------------ On CentOS / RHEL / Fedora ------------------ 
# htpasswd -cB /etc/httpd/subversion-auth tecmint

------------------ On Debian / Ubuntu ------------------ 
# htpasswd -cB /etc/apache2/subversion-auth tecmint

Ekki gleyma að stilla rétt eignarhald og heimildir fyrir auðkenningarskrána:

------------------ On CentOS / RHEL / Fedora ------------------ 
# chgrp apache /etc/httpd/subversion-auth
# chmod 660 /etc/httpd/subversion-auth

------------------ On Debian / Ubuntu ------------------ 
# chgrp www-data /etc/apache2/subversion-auth
# chmod 660 /etc/apache2/subversion-auth

Skref 3 – Bættu við öryggi og búðu til SVN geymslu

Þar sem þú munt fá aðgang að SVN í gegnum vefviðmót þarftu að leyfa HTTP (og mögulega HTTPS) umferð í gegnum eldvegginn þinn.

------------------ On CentOS / RHEL / Fedora ------------------ 
# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --reload 

Með því að endurhlaða uppsetningu eldveggsins með --endurhlaða, eru varanlegu stillingarnar teknar strax í gildi.

Búðu til upphafs SVN geymslu sem heitir tecmint:

# svnadmin create /websrv/svn/tecmint

Breyttu eiganda og hópeiganda í apache endurkvæmt:

------------------ On CentOS / RHEL / Fedora ------------------ 
# chown -R apache:apache /websrv/svn/tecmint

------------------ On Debian / Ubuntu ------------------ 
# chown -R www-data:www-data /websrv/svn/tecmint

Að lokum þarftu að breyta öryggissamhenginu /websrv/svn/tecmint (athugið að þú verður að endurtaka þetta skref ef þú ákveður að búa til aðrar geymslur síðar):

------------------ On CentOS / RHEL / Fedora ------------------ 
# chcon -R -t httpd_sys_content_t /websrv/svn/tecmint/
# chcon -R -t httpd_sys_rw_content_t /websrv/svn/tecmint/

Athugið: Síðustu tvær skipanirnar eiga ekki við ef þú ert að setja upp SVN á VPS með SELinux óvirkt.

Endurræstu Apache og staðfestu að geymslan sé tiltæk.

------------------ On CentOS / RHEL / Fedora ------------------ 
# systemctl restart httpd

------------------ On Debian / Ubuntu ------------------ 
# systemctl restart apache2

Ræstu síðan vafra og beindu honum á http://192.168.0.100/svn/tecmint. Eftir að hafa slegið inn skilríki fyrir gilda notanda sem við bjuggum til í skrefi 1 ætti úttakið að vera svipað og:

Á þessum tímapunkti höfum við ekki bætt neinum kóða við geymsluna okkar. En við gerum það eftir eina mínútu.

Skref 4 - Settu upp TortoiseSVN í Windows 7 viðskiptavininum

Eins og við nefndum í innganginum er TortoiseSVN notendavænt viðmót fyrir Apache Subversion. Það er ókeypis hugbúnaður með leyfi samkvæmt GPL og hægt er að hlaða honum niður frá https://tortoisesvn.net/downloads.html.

Veldu arkitektúr (32 eða 64 bita) sem samsvarar vélinni þinni og settu upp forritið áður en þú heldur áfram.

Skref 5 - Settu upp SVN geymslu á viðskiptavinavél

Í þessu skrefi munum við nota möppu sem heitir webapp inni í skjölum. Þessi mappa inniheldur HTML skrá og tvær möppur sem heita forskriftir og stílar með Javascript og CSS skrá (script.js og styles.css, í sömu röð) sem við viljum bæta við útgáfustýringu.

Hægri smelltu á webapp og veldu SVN Checkout. Þetta mun búa til staðbundið afrit af ytri geymslunni (sem er tóm í augnablikinu) og frumstilla möppuna fyrir útgáfustýringu:

Í vefslóð geymslunnar skaltu slá inn http://192.168.0.100/svn/tecmint og ganga úr skugga um að staðbundin greiðsluskrá sé sú sama, smelltu síðan á OK:

Sláðu inn notandanafn og lykilorð (sjá skref 2) og smelltu á OK:

Þú verður spurður hvort þú viljir borga þig inn í möppu sem ekki er tóm. Staðfestu til að halda áfram með útskráningu. Þegar því er lokið mun grænt gátmerki birtast við hliðina á möppunni:

Skref 6 - Framkvæmdu breytingar og sendu skrár í fjarlæga SVN geymslu

Hægrismelltu aftur á webapp og veldu Commit að þessu sinni. Næst skaltu skrifa lýsandi athugasemd til að bera kennsl á þessa skuldbindingu síðar og athuga skrárnar og möppurnar sem þú vilt dreifa á geymsluna. Að lokum, smelltu á OK:

Það fer eftir stærð skráa, skuldbindingin ætti ekki að taka meira en eina mínútu. Þegar því er lokið muntu sjá að við erum núna í útgáfu 1, sem passar við útgáfuna og skrárnar sem eru skráðar í vefviðmótinu:

Ef það eru nokkrir sem vinna við sömu skrárnar, þá viltu uppfæra staðbundna afritið þitt til að hafa nýjustu útgáfuna tiltæka til að vinna á. Þú getur gert það með því að hægrismella á webapp og velja Uppfæra í samhengisvalmyndinni.

Til hamingju! Þú hefur sett upp SVN netþjón og framkvæmt/uppfært einfalt verkefni undir útgáfustýringu.

Samantekt

Í þessari grein höfum við útskýrt hvernig á að setja upp og stilla Apache Subversion geymsluþjón á CentOS 7 netþjóni og hvernig á að framkalla breytingar á þeirri geymslu með TortoiseSVN.

Vinsamlegast athugaðu að það er miklu meira við SVN og TortoiseSVN en það sem við getum fjallað um hér (sérstaklega hvernig á að fara aftur í fyrri útgáfur), svo þú gætir viljað vísa til opinberu skjala (TortoiseSVN) fyrir frekari upplýsingar og stillingartilvik.

Eins og alltaf, ekki hika við að láta okkur vita ef þú hefur einhverjar spurningar! Ekki hika við að nota athugasemdareyðublaðið hér að neðan til að ná í okkur hvenær sem er.