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:~$
jammy@node01:~/work$ echo 'store-plaintext-passwords = no' >> ~/.subversion/servers jammy@node01:~$ mkdir work jammy@node01:~$ cd 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] | वेब ब्राउज़र (केवल पढ़ने के लिए) पर भी इसे एक्सेस करना संभव है। |
![]() |
![]() |
Sponsored Link |