Lopullinen opas Apache Subversion SVN: n ja TortoiseSVN: n määrittämiseen versionhallintaa varten


Jos työsi vaatii asiakirjojen, verkkosivujen ja muun tyyppisten tiedostojen käsittelyä, joita päivitetään säännöllisesti, kannattaa ehkä käyttää versionhallintamekanismia, jos et vielä tee sitä.

Tämä antaa sinun (ja myös potentiaalisten yhteistyökumppaneiden ryhmälle) seurata annettuun tiedostoon tehtyjä muutoksia ja palata edelliseen versioon, jos ilmenee ongelma tai kun päivitys ei ole tuottanut odotettua tulosta .

Vapaiden ohjelmistojen ekosysteemissä yleisimmin käytettyä versionhallintajärjestelmää kutsutaan Apache Subversioniksi (tai lyhyeksi SVN: ksi). Mod_dav_svn (Apache's Subversion -moduuli) avulla voit käyttää Subversion-arkistoa HTTP: n ja verkkopalvelimen avulla.

Kierretään hihat ylös ja asennetaan nämä työkalut RHEL/CentOS 7-, Fedora 22-24-, Debian 8/7- ja Ubuntu 16.04-15.04 -palvelimiin. Testeissämme käytämme CentOS 7 -palvelinta, jonka IP-osoite on 192.168.0.100.

Asiakkaan puolella (Windows 7-kone) asennamme ja käytämme TortoiseSVN: ää (joka perustuu Apache Subversioniin) SVN: n käyttöliittymänä.

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

Vaihe 1 - SVN: n asentaminen ja määrittäminen Linuxiin

Kuten juuri mainitsimme, luotamme Apacheen päästäksesi SVN-arkistoon web-käyttöliittymän avulla. Jos sitä ei ole vielä asennettu, muista lisätä se alla olevaan pakettiluetteloon:

------------------ 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 

CentOS 7: n asennuksen aikana SVN: lle luodaan Apache-määritystiedosto nimellä /etc/httpd/conf.modules.d/10-subversion.conf. Avaa tiedosto ja lisää seuraava kokoonpanolohko:

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

Huomaa: Debian/Ubuntussa sinun on lisättävä alla olevat rivit tiedostoon /etc/apache2/mods-enabled/dav_svn.conf .

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

Debian/Ubuntussa sinun on otettava käyttöön dav_svn Apache -moduuli:

# a2enmod dav_svn

Pari selvennystä:

  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.

Vaihe 2 - Lisää sallittuja käyttäjiä käyttämään SVN: ää

Käytämme nyt htpasswd: tä luodaksemme salasanan tileille, joilla on pääsy SVN: ään. Vain ensimmäiselle käyttäjälle tarvitsemme vaihtoehdon -c .

Sallitut tilit ja bcrypt-salatut salasanat ( -B ) tallennetaan hakemistoon/etc/httpd/subversion-auth avainarvopareina. Huomaa, että nykypäivän standardien mukaan oletusarvoista MD5- tai SHA-salausta, jota htpasswd käyttää, pidetään epävarmana.

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

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

Älä unohda asettaa oikeaa omistajuutta ja käyttöoikeuksia todennustiedostolle:

------------------ 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

Vaihe 3 - Lisää suojaus ja luo SVN-arkisto

Koska käytät SVN: ää verkkoliitännän kautta, sinun on sallittava HTTP (ja valinnaisesti HTTPS) liikenne palomuurisi kautta.

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

Lataamalla palomuurimääritykset uudelleen koodilla --reload , pysyvät asetukset tulevat voimaan välittömästi.

Luo alkuperäinen SVN-arkisto nimeltä tecmint:

# svnadmin create /websrv/svn/tecmint

Vaihda omistaja ja ryhmän omistaja apache-rekursiivisesti:

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

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

Lopuksi sinun on muutettava /websrv/svn/tecmint -tietojen suojauskonteksti (huomaa, että sinun on toistettava tämä vaihe, jos päätät luoda muita arkistoja myöhemmin):

------------------ 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/

Huomaa: Viimeiset kaksi komentoa eivät välttämättä päde, jos asennat SVN: n VPS: ään, jonka SELinux on poistettu käytöstä.

Käynnistä Apache uudelleen ja varmista, että arkisto on käytettävissä.

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

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

Käynnistä sitten verkkoselain ja osoita se kohtaan http://192.168.0.100/svn/tecmint . Kun olet syöttänyt vaiheessa 1 luomamme kelvollisen käyttäjän tunnistetiedot, lähdön tulisi olla samanlainen kuin:

Tässä vaiheessa emme ole lisänneet koodia arkistoon. Mutta teemme sen hetkessä.

Vaihe 4 - Asenna TortoiseSVN Windows 7 -asiakasohjelmaan

Kuten johdannossa mainitsimme, TortoiseSVN on käyttäjäystävällinen käyttöliittymä Apache Subversioniin. Se on ilmainen ohjelmisto, jolla on GPL-lisenssi ja joka voidaan ladata osoitteesta https://tortoisesvn.net/downloads.html.

Valitse tietokoneellesi sopiva arkkitehtuuri (32 tai 64-bittinen) ja asenna ohjelma ennen jatkamista.

Vaihe 5 - Asenna SVN-arkisto asiakaskoneeseen

Tässä vaiheessa käytämme dokumenttien sisällä kansiota nimeltä webapp . Tämä kansio sisältää HTML-tiedoston ja kaksi kansiota nimeltä skriptejä ja tyylejä Javascript- ja CSS-tiedostoilla (vastaavasti script.js ja styles.css), jotka haluamme lisätä versionhallintaan.

Napsauta hiiren kakkospainikkeella verkkosovellusta ja valitse SVN Checkout. Tämä luo paikallisen kopion etätietovarastosta (joka on tällä hetkellä tyhjä) ja alustaa kansion versionhallintaa varten:

Kirjoita arkiston URL-osoitteeseen http://192.168.0.100/svn/tecmint ja varmista, että paikallinen kassan hakemisto pysyy samana, ja napsauta sitten OK:

Kirjoita käyttäjänimi ja salasana (katso vaihe 2) ja napsauta OK:

Sinulta kysytään, haluatko kirjautua ulos tyhjään hakemistoon. Vahvista jatkaaksesi kassalla. Kun se on valmis, kansion nimen viereen tulee vihreä valintamerkki:

Vaihe 6 - Suorita muutokset ja asenna tiedostot SVN: n etätietovarastoon

Napsauta hiiren kakkospainikkeella webapp ja valitse Sitoudu tällä kertaa. Kirjoita seuraavaksi kuvaava kommentti tämän sitoutumisen tunnistamiseksi myöhemmin ja tarkista tiedostot ja kansiot, jotka haluat ottaa käyttöön arkistoon. Napsauta lopuksi OK:

Tiedostojen koosta riippuen sitoutuminen ei saa kestää yli minuutin. Kun se on valmis, huomaat, että olemme nyt versiossa 1, joka vastaa versiota ja tiedostoja, jotka on lueteltu verkkokäyttöliittymässä:

Jos samoilla tiedostoilla työskentelee useita henkilöitä, sinun on päivitettävä paikallinen kopio, jotta uusin versio on käytettävissä. Voit tehdä sen napsauttamalla hiiren kakkospainikkeella webapp ja valitsemalla pikavalikosta Päivitä.

Onnittelut! Olet asentanut SVN-palvelimen onnistuneesti ja sitoutunut/päivittänyt yksinkertaisen projektin versionhallinnan alla.

Yhteenveto

Tässä artikkelissa olemme selittäneet, miten Apache Subversion -tietovarastopalvelin asennetaan ja määritetään CentOS 7 -palvelimelle ja miten siihen tehdään muutoksia TortoiseSVN: n avulla.

Huomaa, että SVN: ssä ja TortoiseSVN: ssä on paljon muuta kuin mitä voimme tässä riittävästi käsitellä (erityisesti miten palata edellisiin versioihin), joten saatat haluta viitata virallisiin asiakirjoihin (TortoiseSVN) saadaksesi lisätietoja ja määritystapauksia.

Kuten aina, älä epäröi ilmoittaa meille, jos sinulla on kysyttävää! Voit käyttää meitä milloin tahansa alla olevalla kommenttilomakkeella.