Cara menginstal server subversi


8

Saya ingin menginstal server Subversion di mesin Ubuntu saya.
Paket apa yang saya butuhkan? Bagaimana cara membuat repositori dan menetapkan pengguna baru?


Tergantung pada kebutuhan Anda, Anda mungkin lebih baik dengan SCM yang didistribusikan seperti Bazaar (bzr), yang mudah dipelajari berasal dari Subversion, tetapi itu tidak membutuhkan server yang berjalan. Ini bagus jika Anda bekerja sendirian dan hanya perlu beberapa log dan jaring pengaman. Dan saya hanya perlu menyebutkan git, yang merupakan alat paling kuat di luar sana, imho.
Martin Ueding

sudo apt-get install subversion
AMIC MING

Jawaban:


10

Ada banyak konfigurasi untuk svn, berikut beberapa instruksi singkat untuk mendapatkan repositori dasar svn yang tersedia melalui http.

  1. Instal paket yang diperlukan: apt-get install subversion apache2 libapache2-svn
  2. Buat Struktur Direktori: mkdir -p /var/svn/repos/
  3. Buat Repositori:
    • cd /var/svn/repos/
    • svnadmin create --fs-type fsfs <your-repository>
  4. Sekarang Buat Proyek-Struckture Anda untuk mengimpor di repositori:
    • mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches
  5. Impor Proyek ke Repositori:
    • svn import /tmp/myproject file:///var/svn/repos/<your-repository> -m "initial import"
  6. Jadikan ini dapat diakses melalui http:
    • cd /etc/apache2/sites-available
    • touch subversion.conf
    • vim subversion.conf

Sekarang edit file kosong dengan konfigurasi ini:

NameVirtualHost *:80

<VirtualHost *:80>   
  <Location /svn>
      ErrorDocument 404 default
      DAV svn
      SVNParentPath /var/svn/repos
      SVNListParentPath off
      Require valid-user
      AuthType Basic
      AuthName "subversion access"
      AuthUserFile /var/svn/.htpasswd
      AuthzSVNAccessFile /var/svn/authz 
  </Location>
</VirtualHost>
  • aktifkan modul dav_svn untuk apache: a2enmod dav_svn
  • aktifkan modul authz_svn untuk apache: a2enmod authz_svn
  • aktifkan konfigurasi VHost: a2ensite subversion.conf
  • sekarang restart server web: /etc/init.d/apache2 restart
  • Buat htpasswd: htpasswd -c /var/svn/.htpasswd user
  • Buat file kontrol akses untuk repositori: touch /var/svn/authz
  • edit file authz yang kosong: vim /var/svn/authz
  • Berikan hak baca / tulis kepada pengguna:

[repositori Anda: /]

pengguna = rw

Mari kita coba checkout repo melalui http: svn checkout http://your-server/svn/your-repository


1
Saya tidak bisa melakukan edit sebagai perubahan yang terlalu kecil, tapi bisa Anda memperbaiki baris terakhir untuk mengatakan checkoutsebagai lawan ceckout?
nanofarad

saya tidak dapat menemukan paket ini libapache2-svn. Kesalahan: #Informasi status negara ... Selesai E: Tidak dapat menemukan paket libapache2-svn Sistem: ubuntu 12.04 32bit (semua repositori diaktifkan)
shantanu

2
Anda juga perlu mengaktifkan modul authz_svn, jika tidak, Anda akan mendapatkannya Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration. Anda dapat menggunakan perintah a2enmod authz_svnuntuk melakukan ini.
mrswadge

2

Mulailah membaca manual . Saat ini saya melakukan hal yang sama.

Setelah menyiapkan repositori svnadmin create /path/to/repo, Anda dapat menggunakan svnserve --root /path/to/repountuk membuat repositori tersedia di svn://yourhost/. Buka port TCP 3690 jika perlu.

Dimungkinkan untuk menggunakan SVN melalui HTTP, tetapi saya belum membaca bagian itu: o


2

Anda akan membutuhkan subversionpaket itu.

sudo apt-get update
sudo apt-get install subversion

Paket ini berisi klien, alat untuk membuat repositori Subversion dan server.




0

Untuk menginstal subversi, buka terminal dan jalankan perintah berikut:

sudo apt-get install subversion libapache2-svn

Kami akan membuat repositori subversi di / svn, meskipun Anda harus memilih lokasi yang memiliki jumlah ruang yang baik.

sudo svnadmin create /svn

Ubah pemilik repositori ini menjadi pengguna Apache.

sudo chown -R www-data:www-data /svn

Buat repositori subversi dasar untuk digunakan nanti (untuk Produksi / QA / Pengujian / Menyatakan ../ dll.)

sudo mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches

Impor direktori tersebut ke dalam repositori kami

sudo svn import /tmp/myproject file:///svn -m "initial import"

Selanjutnya kita perlu mengedit file konfigurasi untuk modul webdav subversi. Anda dapat menggunakan editor lain jika mau.

sudo gedit /etc/apache2/mods-enabled/dav_svn.conf

Elemen Lokasi dalam file konfigurasi menentukan direktori root tempat subversi dapat diakses, misalnya: http://www.server.com/svn

<Location /svn>

Garis DAV perlu dihapus komentar untuk mengaktifkan modul dav

# Uncomment this to enable the repository,
DAV svn

Baris SVNPath harus disetel ke tempat yang sama dengan tempat Anda membuat repositori dengan perintah svnadmin.

# Set this to the path to your repository
SVNPath /svn

Bagian selanjutnya akan memungkinkan Anda mengaktifkan otentikasi. Ini hanya otentikasi dasar, jadi jangan menganggapnya sangat aman. File kata sandi akan ditemukan di tempat pengaturan AuthUserFile mengaturnya ke ... mungkin lebih baik membiarkannya di default.

# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd

Untuk membuat pengguna menggunakan repositori, perintah berikut:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd <username>

Perhatikan bahwa Anda hanya harus menggunakan opsi -c pada saat PERTAMA saat Anda membuat pengguna. Setelah itu Anda hanya ingin menggunakan opsi -m, yang menentukan enkripsi kata sandi MD5, tetapi tidak membuat ulang file.

Contoh:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd geek
New password:
Re-type new password:
Adding password for user geek

Mulai ulang apache dengan menjalankan perintah berikut:

sudo /etc/init.d/apache2 restart

Terima kasih: http://www.howtogeek.com/howto/ubuntu/install-subversion-with-web-access-on-ubuntu/

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.