Ntuziaka kacha mma maka ịtọlite SVN subversion Apache na TortoiseSVN Maka njikwa ụdị


Ọ bụrụ na ọrụ gị chọrọ ijikwa akwụkwọ, ibe weebụ, na ụdị faịlụ ndị ọzọ na-emelite oge niile, ịnwere ike iji usoro njikwa ụdị ma ọ bụrụ na ịmebeghị ya.

Tinyere ihe ndị ọzọ, nke a na-enye gị ohere (yana otu ndị nwere ike imekọ ihe ọnụ) iji soro mgbanwe ndị emere na faịlụ enyere, ma mee ka ị laghachi na ụdị nke gara aga ma ọ bụrụ na enwere nsogbu ma ọ bụ mgbe mmelite emebeghị ihe a tụrụ anya ya. .

N'ime sistemụ ngwanrọ efu, sistemụ njikwa ụdị a na-ejikarị eme ihe bụ Apache Subversion (ma ọ bụ SVN maka mkpụmkpụ). Site n'enyemaka nke mod_dav_svn (modul Apache's for Subversion), ị nwere ike ịnweta ebe nchekwa nbibi site na iji HTTP na sava weebụ.

Nke ahụ kwuru, ka anyị tụgharịa aka anyị wee wụnye ngwaọrụ ndị a na RHEL/CentOS 7, Fedora 22-24, Debian 8/7 na Ubuntu 16.04-15.04 nkesa. Maka ule anyị, anyị ga-eji sava CentOS 7 nwere IP 192.168.0.100.

N'akụkụ ndị ahịa (igwe Windows 7), anyị ga-arụnye ma jiri TortoiseSVN (nke dabere na Apache Subversion) dị ka interface na SVN.

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

Kwụpụ 1 - Wụnye na ịhazi SVN na Linux

Dịka anyị kwurula, anyị ga-adabere na Apache iji nweta ebe nchekwa SVN site na iji interface webụ. Ọ bụrụ na etinyebeghị ya, gbaa mbọ tinye ya na ndepụta ngwugwu dị ka egosiri n'okpuru:

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

N'oge echichi na CentOS 7, a ga-emepụta faịlụ nhazi Apache maka SVN dị ka /etc/httpd/conf.modules.d/10-subversion.conf. Mepee faịlụ ma tinye ngọngọ nhazi ndị a:

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

Mara: Na Debian/Ubuntu ịkwesịrị ịgbakwunye ahịrị dị n'okpuru na faịlụ /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>

Na Debian/Ubuntu, ịkwesịrị ịme ka modul dav_svn Apache:

# a2enmod dav_svn

Nkọwa ole na ole:

  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.

Kwụpụ 2 - Tinye ndị ọrụ anabatara ịnweta SVN

Anyị ga-eji htpasswd ugbu a mepụta paswọọdụ maka akaụntụ nke a ga-ahapụ ịnweta SVN. Maka naanị onye ọrụ mbụ, anyị ga-achọ nhọrọ -c.

A ga-echekwa akaụntụ ndị anabatara na okwuntughe bcrypt-ezoro ezo (-B) na /etc/httpd/subversion-auth n'ime ụzọ abụọ igodo-uru. Rịba ama na site n'ụkpụrụ nke taa, a na-ewere MD5 ma ọ bụ SHA izo ya ezo nke htpasswd na-ejighị n'aka.

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

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

Echefula ịtọ ikike na ikike ziri ezi na faịlụ nyocha:

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

Nzọụkwụ 3 - Tinye Nchekwa na Mepụta SVN Repository

Ebe ị ga na-enweta SVN site na ntanetị weebụ, ị ga-achọ ikwe ka okporo ụzọ HTTP (na nhọrọ HTTPS) site na firewall gị.

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

Site na iji --reload bugharịa nhazi firewall, a na-etinye ntọala na-adịgide adịgide ozugbo.

Mepụta ebe nchekwa SVN izizi akpọrọ tecmint:

# svnadmin create /websrv/svn/tecmint

Gbanwee onye nwe ya na onye nwe otu ka ọ bụrụ apache ugboro ugboro:

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

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

N'ikpeazụ, ị ga-achọ ịgbanwe ọnọdụ nchekwa nke /websrv/svn/tecmint (rịba ama na ị ga-emeghachi usoro a ma ọ bụrụ na ị kpebie ịmepụta ebe nchekwa ndị ọzọ ma emechaa):

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

Mara: Iwu abụọ ikpeazụ nwere ike ọ gaghị etinye ma ọ bụrụ na ị na-etinye SVN na VPS na SELinux nwere nkwarụ.

Malitegharịa Apache wee chọpụta na ebe nchekwa ahụ dị.

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

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

Wee malite ihe nchọgharị weebụ wee tụọ ya na http://192.168.0.100/svn/tecmint. Mgbe ịbanyechara nzere maka onye ọrụ bara uru nke anyị mepụtara na Nzọụkwụ 1, mmepụta kwesịrị ịdị ka:

N'ebe a, anyị etinyeghị koodu ọ bụla na ebe nchekwa anyị. Mana anyị ga-eme nke ahụ n'otu nkeji.

Kwụpụ 4 - Wụnye TortoiseSVN na Windows 7 Client

Dị ka anyị kwuru na mmalite, TortoiseSVN bụ interface enyi na enyi na Apache Subversion. Ọ bụ Software efu nyere ikike n'okpuru GPL ma enwere ike ibudata ya na https://tortoisesvn.net/downloads.html.

Họrọ architecture (32 ma ọ bụ 64-bit) nke dabara na igwe gị wee wụnye mmemme tupu ịga n'ihu.

Nzọụkwụ 5 - Tọọ ebe nchekwa SVN na igwe ahịa

N'ime usoro a, anyị ga-eji folda akpọrọ webapp n'ime Documents. Ihe nchekwa a nwere faịlụ HTML, yana nchekwa abụọ aha ya bụ scripts na ụdị nwere Javascript na faịlụ CSS (script.js na styles.css, otu n'otu) nke anyị chọrọ itinye na njikwa ụdị.

Pịa aka nri webapp wee họrọ SVN Checkout. Nke a ga-emepụta nnomi mpaghara nke ebe nchekwa dịpụrụ adịpụ (nke efu ugbu a) wee bido folda maka njikwa ụdị:

Na URL nke ebe nchekwa, pịnye http://192.168.0.100/svn/tecmint wee hụ na ndekọ ndenye ọpụpụ mpaghara ka dị otu, wee pịa OK:

Tinye aha njirimara na paswọọdụ (tụ aka na nzọụkwụ 2) wee pịa OK:

A ga-ajụ gị ma ịchọrọ ịlele akwụkwọ ndekọ aha na-adịghị efu. Kwenye na ịga n'ihu na ndenye ọpụpụ. Ozugbo ọ mechara, akara akwụkwọ ndụ akwụkwọ ndụ ga-apụta n'akụkụ aha nchekwa:

Kwụpụ 6 - Nyefee mgbanwe ma tinye faịlụ na ebe nchekwa SVN dịpụrụ adịpụ

Pịa aka nri na webapp ọzọ wee họrọ Tinye oge a. Na-esote, dee nkọwa nkọwa ka emechaa chọpụta nkwa a, wee lelee faịlụ na folda ịchọrọ ibuga na ebe nchekwa ahụ. N'ikpeazụ, pịa OK:

Dabere na nha faịlụ, nkwekọrịta ahụ ekwesịghị iwe ihe karịrị otu nkeji. Mgbe emechara, ị ga-ahụ na anyị nọ ugbu a na ntụgharị 1, nke dabara na ụdị na faịlụ ndị edepụtara na interface weebụ:

Ọ bụrụ na enwere ọtụtụ ndị na-arụ ọrụ na otu faịlụ, ị ga-achọ imelite nnomi mpaghara gị ka ị nweta ụdị kachasị ọhụrụ iji rụọ ọrụ na ya. Ị nwere ike ime nke ahụ site na ịpị aka nri na webapp wee họrọ Mmelite site na nchịkọta nhọrọ.

Ekele! Ị haziela ihe nkesa SVN nke ọma wee tinye/melite ọrụ dị mfe n'okpuru njikwa ụdị.

Nchịkọta

N'isiokwu a, anyị akọwala otu esi etinye ma hazie ihe nkesa nchekwa Apache Subversion na sava CentOS 7, yana otu esi eme mgbanwe na ebe nchekwa ahụ site na iji TortoiseSVN.

Biko mara na enwere ọtụtụ ihe na SVN na TortoiseSVN karịa ihe anyị nwere ike ikpuchi nke ọma ebe a (karịsịa otu esi alaghachi na ngbanwe ndị gara aga), yabụ ị nwere ike ịtu aka na docs gọọmentị (TortoiseSVN) maka ozi ndị ọzọ na nhazi.

Dị ka oge niile, egbula oge ime ka anyị mara ma ị nwere ajụjụ ọ bụla! Enwere onwe gị iji ụdị nkọwa dị n'okpuru ebe a iji ruo anyị oge ọ bụla.