SVN - Pengaturan Lingkungan

Instalasi SVN

Subversion adalah alat kontrol versi sumber terbuka yang populer. Ini open-source dan tersedia secara gratis melalui internet. Itu datang secara default dengan sebagian besar distribusi GNU / Linux, jadi mungkin sudah diinstal pada sistem Anda. Untuk memeriksa apakah sudah diinstal atau tidak gunakan perintah berikut.

[jerry@CentOS ~]$ svn --version

Jika klien Subversion tidak diinstal, maka perintah akan melaporkan kesalahan, jika tidak maka akan menampilkan versi perangkat lunak yang diinstal.

[jerry@CentOS ~]$ svn --version
-bash: svn: command not found

Jika Anda menggunakan GNU / Linux berbasis RPM, gunakan yumperintah untuk instalasi. Setelah instalasi berhasil, jalankansvn --version perintah.

[jerry@CentOS ~]$ su -
Password: 
[root@CentOS ~]# yum install subversion

[jerry@CentOS ~]$ svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03

Dan jika Anda menggunakan GNU / Linux berbasis Debian, gunakan apt perintah untuk instalasi.

[jerry@Ubuntu]$ sudo apt-get update
[sudo] password for jerry:

[jerry@Ubuntu]$ sudo apt-get install subversion

[jerry@Ubuntu]$ svn --version
svn, version 1.7.5 (r1336830)
compiled Jun 21 2013, 22:11:49

Pengaturan Apache

Kami telah melihat bagaimana menginstal klien Subversion di GNU / Linux. Mari kita lihat cara membuat repositori baru dan mengizinkan akses ke pengguna.

Di server kita harus menginstal Apache httpd modul dan svnadmin alat.

[jerry@CentOS ~]$ su -
Password: 
[root@CentOS ~]# yum install mod_dav_svn subversion

Itu mod_dav_svn paket memungkinkan akses ke repositori menggunakan HTTP, melalui server httpd Apache dan subversion paket menginstal alat svnadmin.

Subversi membaca konfigurasinya dari /etc/httpd/conf.d/subversion.confmengajukan. Setelah menambahkan konfigurasi,subversion.conf file terlihat sebagai berikut:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
   AuthType Basic
   AuthName "Authorization Realm"
   AuthUserFile /etc/svn-users
   Require valid-user
</Location>

Mari kita buat pengguna Subversion dan beri mereka akses ke repositori. htpasswd digunakan untuk membuat dan memperbarui file teks biasa yang digunakan untuk menyimpan nama pengguna dan kata sandi untuk otentikasi dasar pengguna HTTP. Opsi '-c' membuat file kata sandi , jika file kata sandi sudah ada, itu akan ditimpa. Itulah mengapa gunakan opsi '-c' hanya untuk pertama kalinya. Opsi '-m' mengaktifkan enkripsi MD5 untuk kata sandi.

Pengaturan Pengguna

Mari kita buat pengguna tom.

[root@CentOS ~]# htpasswd -cm /etc/svn-users tom
New password: 
Re-type new password: 
Adding password for user tom

Mari kita buat pengguna jerry

[root@CentOS ~]# htpasswd -m /etc/svn-users jerry
New password: 
Re-type new password: 
Adding password for user jerry
[root@CentOS ~]#

Buat direktori induk Subversion untuk menyimpan semua pekerjaan (lihat /etc/httpd/conf.d/subversion.conf ).

[root@CentOS ~]# mkdir /var/www/svn
[root@CentOS ~]# cd /var/www/svn/

Penyiapan Repositori

Buat repositori proyek bernama project_repo . Perintah svnadmin akan membuat repositori baru dan beberapa direktori lain di dalamnya untuk menyimpan metadata.

[root@CentOS svn]# svnadmin create project_repo

[root@CentOS svn]# ls -l project_repo
total 24
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 conf
drwxr-sr-x. 6 root root 4096 Aug  4 22:30 db
-r--r--r--. 1 root root    2 Aug  4 22:30 format
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 hooks
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 locks
-rw-r--r--. 1 root root  229 Aug  4 22:30 README.txt

Mari kita ubah kepemilikan pengguna dan grup dari repositori.

[root@CentOS svn]# chown -R apache.apache project_repo/

Periksa apakah SELinux diaktifkan atau tidak menggunakan alat status SELinux.

[root@CentOS svn]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Untuk server kami, SELinux diaktifkan, jadi kami harus mengubah konteks keamanan SELinux.

[root@CentOS svn]# chcon -R -t httpd_sys_content_t /var/www/svn/project_repo/

Untuk mengizinkan komit melalui HTTP, jalankan perintah berikut.

[root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t /var/www/svn/project_repo/

Restart server Apache dan kita selesai dengan konfigurasi server Apache.

[root@CentOS svn]# service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for CentOS
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
[root@CentOS svn]# service httpd status
httpd (pid  1372) is running...
[root@CentOS svn]#

Kami telah berhasil mengkonfigurasi server Apache, sekarang kami akan mengkonfigurasi repositori. Untuk menyediakan akses repositori hanya kepada pengguna asli dan untuk menggunakan file otorisasi default; tambahkan baris berikut ke file project_repo / conf / svnserve.conf .

anon-access = none
authz-db = authz

Secara konvensional, setiap proyek Subversion punya trunk, tags, dan branches direktori langsung di bawah direktori root proyek.

The trunk adalah direktori di mana semua perkembangan utama yang terjadi dan biasanya diperiksa oleh pengembang untuk bekerja pada proyek tersebut.

Direktori tags digunakan untuk menyimpan snapshot proyek yang bernama. Saat membuat rilis produksi, tim akan menandai kode yang masuk ke rilis tersebut.

Direktori cabang digunakan ketika Anda ingin mengejar jalur pengembangan yang berbeda.

Mari kita buat struktur direktori trunk, tags, dan branch di bawah repositori proyek.

[root@CentOS svn]# mkdir /tmp/svn-template
[root@CentOS svn]# mkdir /tmp/svn-template/trunk
[root@CentOS svn]# mkdir /tmp/svn-template/branches
[root@CentOS svn]# mkdir /tmp/svn-template/tags

Sekarang impor direktori dari /tmp/svn-template ke repositori.

[root@CentOS svn]# svn import -m 'Create trunk, branches, tags directory structure' /tmp/svn-template/ 
Adding         /tmp/svn-template/trunk
Adding         /tmp/svn-template/branches
Adding         /tmp/svn-template/tags
Committed revision 1.
[root@CentOS svn]#

Selesai! Kami telah berhasil membuat repositori dan mengizinkan akses keTom dan Jerry. Mulai sekarang, mereka dapat melakukan semua operasi yang didukung ke repositori.