Ubuntu 22.04
Sponsored Link

Subversion : HTTP के माध्यम से रिपॉजिटरी तक पहुंच2023/09/25

 
[svnserve] चलाए बिना, HTTP के माध्यम से रिपॉजिटरी तक पहुंच।
यह सेटिंग उस मामले के लिए प्रभावी नहीं है जिसे आप [svn://] या [file://] के माध्यम से एक्सेस करते हैं।
[1]
[2]
SSL/TLS को Apache2 पर कॉन्फ़िगर करें, यहां देखें। (इस सेटिंग के लिए वैकल्पिक)
[3] आवश्यक पैकेज स्थापित करें।
root@dlp:~#
apt -y install libapache2-mod-svn
[4] Apache2 कॉन्फ़िगर करें।
उदाहरण के लिए, HTTP एक्सेस को [/var/svn/repos/project] रिपॉजिटरी पर सेट करें।
root@dlp:~#
vi /etc/apache2/conf-available/subversion.conf
# नया निर्माण

<Location /project>
    DAV svn
    AuthType Basic
    AuthName "DAV SVN"
    AuthUserFile /var/svn/.svnpasswd
    Require valid-user
    SVNPath /var/svn/repos/project
</Location> 

root@dlp:~#
a2enmod dav_svn

root@dlp:~#
a2enconf subversion

root@dlp:~#
chown -R www-data. /var/svn/repos/project

root@dlp:~#
systemctl restart apache2

# उपयोगकर्ता जोड़ें

root@dlp:~#
htpasswd -c /var/svn/.svnpasswd ubuntu

New password:
Re-type new password:
Adding password for user ubuntu
[5] यदि एक्सेस अनुमति भी सेट है, तो अनुसरण की तरह कॉन्फ़िगर करें।
root@dlp:~#
vi /var/svn/repos/project/conf/authzsvn.conf
# नया निर्माण
# समूह सेट करें

[groups]
developer = ubuntu,debian
operator = jammy
# हर कोई रूट डायरेक्टरी तक पहुंच [पढ़ सकता है]

[/]
* = r
# केवल [developer] समूह ही [trunk] निर्देशिका के अंतर्गत [पढ़/लिख सकता है]

[project:/trunk]
@developer = rw
# केवल [operator] समूह ही [branches] निर्देशिका के अंतर्गत [पढ़/लिख सकता है]

[project:/branches]
@operator = rw
# केवल [operator] समूह ही [tags] निर्देशिका के अंतर्गत [पढ़/लिख सकता है]

[project:/tags]
@operator = rw
root@dlp:~#
vi /etc/apache2/conf-available/subversion.conf
<Location /project>
    DAV svn
    AuthType Basic
    AuthName "DAV SVN"
    AuthUserFile /var/svn/.svnpasswd
    Require valid-user
    SVNPath /var/svn/repos/project
    # पंक्ति जोड़ें
    AuthzSVNAccessFile /var/svn/repos/project/conf/authzsvn.conf
</Location> 

root@dlp:~#
systemctl reload apache2

[6] किसी भी होस्ट से HTTP/HTTPS के माध्यम से एक्सेस करने के लिए सेटिंग्स सत्यापित करें।
jammy@node01:~$
svn --username ubuntu list https://dlp.srv.world/project

Authentication realm: <https://dlp.srv.world:443> DAV SVN
Password for 'ubuntu': ********

branches/
tags/
trunk/

jammy@node01:~$
echo 'store-plaintext-passwords = no' >> ~/.subversion/servers

jammy@node01:~$
mkdir work

jammy@node01:~$
cd work
jammy@node01:~/work$
svn --username ubuntu co https://dlp.srv.world/project

Authentication realm: <https://dlp.srv.world:443> DAV SVN
Password for 'ubuntu': ********

A    project/branches
A    project/tags
A    project/trunk
A    project/trunk/index.html
Checked out revision 4.

jammy@node01:~/work$
cd project/trunk
# रिपॉजिटरी के अंतर्गत किसी भी फाइल को बनाने या संपादित करने के बाद,
# [jammy] उपयोगकर्ता के साथ [commit] करने का प्रयास करें

jammy@node01:~/work/project/trunk$
echo index.html >> index.html

jammy@node01:~/work/project/trunk$
svn --username jammy ci index.html -m "update by jammy"

Authentication realm: <https://dlp.srv.world:443> DAV SVN
Password for 'jammy': ********

Sending        index.html
Transmitting file data .svn: E195023: Commit failed (details follow):
svn: E195023: Changing file '/home/jammy/work/project/trunk/index.html' is forbidden by the server
svn: E175013: While preparing '/home/jammy/work/project/trunk/index.html' for commit
svn: E175013: Access to '/project/!svn/txr/4-4/trunk/index.html' forbidden
# सेटिंग्स के रूप में सामान्यतः अस्वीकृत

# [cimmit] [debian] उपयोगकर्ता के साथ

jammy@node01:~/work/project/trunk$
svn --username debian ci index.html -m "update by debian"

Authentication realm: <https://dlp.srv.world:443> DAV SVN
Password for 'debian': ********

Sending        index.html
Transmitting file data .done
Committing transaction...
Committed revision 5.
# सेटिंग्स के रूप में सामान्य रूप से किया गया
[7] वेब ब्राउज़र (केवल पढ़ने के लिए) पर भी इसे एक्सेस करना संभव है।
मिलान सामग्री