centos7.x搭建svn server

简介

Subversion(SVN) 是一个开源的版本控制系統,也就是说 Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。


SVN 的一些概念

repository(源代码库):源代码统一存放的地方

Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份

Commit(提交):当你已经修改了代码,你就需要Commit到repository

Update (更新):当你已经Checkout了一份源代码,Update一下你就可以和Repository 上的源代码同步,你手上的代码就会有最新的变更

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) —>作出自己的修改并调试成功 —> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢,SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。

如果是同一行,SVN会提示文件Confict,冲突,需要手动确认。


subversion目录说明:

db目录:就是所有版本控制的数据存放文件。

hooks目录:放置hook脚本文件的目录。

locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。

format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。

conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。

进入conf目录(该svn版本库配置文件)cd conf/

authz 文件是权限控制文件

passwd 是帐号密码文件

svnserve.conf SVN服务配置文件

#添加svn账号,并且禁止登陆
useradd-M-s/sbin/nologinsvn
[root@localhost~]#yuminstallsubversion-y
Loadedplugins:fastestmirror
base|3.6kB00:00
extras|3.4kB00:00
updates|3.4kB00:00
Loadingmirrorspeedsfromcachedhostfile
*base:mirrors.163.com
*extras:mirrors.163.com
*updates:mirrors.163.com
ResolvingDependencies
-->Runningtransactioncheck
--->Packagesubversion.x86_640:1.7.14-10.el7willbeinstalled
-->ProcessingDependency:subversion-libs(x86-64)=1.7.14-10.el7forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_wc-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_subr-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_repos-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_ra_svn-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_ra_neon-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_ra_local-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_ra-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_fs_util-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_fs_fs-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_fs_base-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_fs-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_diff-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_delta-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libsvn_client-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libneon.so.27()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libaprutil-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->ProcessingDependency:libapr-1.so.0()(64bit)forpackage:subversion-1.7.14-10.el7.x86_64
-->Runningtransactioncheck
--->Packageapr.x86_640:1.4.8-3.el7willbeinstalled
--->Packageapr-util.x86_640:1.5.2-6.el7willbeinstalled
--->Packageneon.x86_640:0.30.0-3.el7willbeinstalled
-->ProcessingDependency:libpakchois.so.0()(64bit)forpackage:neon-0.30.0-3.el7.x86_64
--->Packagesubversion-libs.x86_640:1.7.14-10.el7willbeinstalled
-->Runningtransactioncheck
--->Packagepakchois.x86_640:0.4-10.el7willbeinstalled
-->FinishedDependencyResolution

DependenciesResolved

================================================================================
PackageArchVersionRepositorySize
================================================================================
Installing:
subversionx86_641.7.14-10.el7base1.0M
Installingfordependencies:
aprx86_641.4.8-3.el7base103k
apr-utilx86_641.5.2-6.el7base92k
neonx86_640.30.0-3.el7base165k
pakchoisx86_640.4-10.el7base14k
subversion-libsx86_641.7.14-10.el7base921k

TransactionSummary
================================================================================
Install1Package(+5Dependentpackages)

Totaldownloadsize:2.3M
Installedsize:8.1M
Downloadingpackages:
(1/6):apr-util-1.5.2-6.el7.x86_64.rpm|92kB00:00
(2/6):neon-0.30.0-3.el7.x86_64.rpm|165kB00:00
(3/6):pakchois-0.4-10.el7.x86_64.rpm|14kB00:00
(4/6):subversion-1.7.14-10.el7.x86_64.rpm|1.0MB00:00
(5/6):subversion-libs-1.7.14-10.el7.x86_64.rpm|921kB00:00
(6/6):apr-1.4.8-3.el7.x86_64.rpm|103kB00:01
--------------------------------------------------------------------------------
Total1.8MB/s|2.3MB00:01
Runningtransactioncheck
Runningtransactiontest
Transactiontestsucceeded
Runningtransaction
Installing:apr-1.4.8-3.el7.x86_641/6
Installing:apr-util-1.5.2-6.el7.x86_642/6
Installing:pakchois-0.4-10.el7.x86_643/6
Installing:neon-0.30.0-3.el7.x86_644/6
Installing:subversion-libs-1.7.14-10.el7.x86_645/6
Installing:subversion-1.7.14-10.el7.x86_646/6
Verifying:neon-0.30.0-3.el7.x86_641/6
Verifying:apr-1.4.8-3.el7.x86_642/6
Verifying:subversion-1.7.14-10.el7.x86_643/6
Verifying:apr-util-1.5.2-6.el7.x86_644/6
Verifying:pakchois-0.4-10.el7.x86_645/6
Verifying:subversion-libs-1.7.14-10.el7.x86_646/6

Installed:
subversion.x86_640:1.7.14-10.el7

DependencyInstalled:
apr.x86_640:1.4.8-3.el7apr-util.x86_640:1.5.2-6.el7
neon.x86_640:0.30.0-3.el7pakchois.x86_640:0.4-10.el7
subversion-libs.x86_640:1.7.14-10.el7

Complete!

[root@localhost~]#svnserve-h
usage:svnserve[-d|-i|-t|-X][options]

Validoptions:
-d[--daemon]:daemonmode
-i[--inetd]:inetdmode
-t[--tunnel]:tunnelmode
-X[--listen-once]:listen-oncemode(usefulfordebugging)
-r[--root]ARG:rootofdirectorytoserve
-R[--read-only]:forcereadonly,overridingrepositoryconfigfile
--config-fileARG:readconfigurationfromfileARG
--listen-portARG:listenport
[mode:daemon,listen-once]
--listen-hostARG:listenhostnameorIPaddress
[mode:daemon,listen-once]
-6[--prefer-ipv6]:preferIPv6whenresolvingthelistenhostname
[IPv4ispreferredbydefault.UsingIPv4andIPv6
atthesametimeisnotsupportedindaemonmode.
Useinetdmodeortunnelmodeifyouneedthis.]
-c[--compression]ARG:compressionleveltousefornetworktransmissions
[0..nocompression,5..default,9..maximumcompression]
-M[--memory-cache-size]ARG:sizeoftheextrain-memorycacheinMBusedto
minimizeredundantoperations.
Defaultis128forthreadedand16fornon-
threadedmode.
[usedforFSFSrepositoriesonly]
--cache-txdeltasARG:enableordisablecachingofdeltasbetweenolder
revisions.
Defaultisno.
[usedforFSFSrepositoriesonly]
--cache-fulltextsARG:enableordisablecachingoffilecontents
Defaultisyes.
[usedforFSFSrepositoriesonly]
-T[--threads]:usethreadsinsteadoffork[mode:daemon]
--foreground:runinforeground(usefulfordebugging)
[mode:daemon]
--log-fileARG:svnservelogfile
--pid-fileARG:writeserverprocessIDtofileARG
[mode:daemon,listen-once]
--tunnel-userARG:tunnelusername(defaultiscurrentuid'sname)
[mode:tunnel]
-h[--help]:displaythishelp
--version:showprogramversioninformation
-q[--quiet]:noprogress(onlyerrors)tostderr

[root@localhost~]#svnserve--version
svnserve,version1.7.14(r1542130)
compiledNov202015,19:25:09

Copyright(C)2013TheApacheSoftwareFoundation.
Thissoftwareconsistsofcontributionsmadebymanypeople;seetheNOTICE
fileformoreinformation.
Subversionisopensourcesoftware,seehttp://subversion.apache.org/

Thefollowingrepositoryback-end(FS)modulesareavailable:

*fs_base:ModuleforworkingwithaBerkeleyDBrepository.
*fs_fs:Moduleforworkingwithaplainfile(FSFS)repository.

CyrusSASLauthenticationisavailable.

[root@localhost~]#whichsvn
/usr/bin/svn
[root@localhost~]#mkdir/var/svn
[root@localhost~]#cd/var/svn/
#创建版本库
[root@localhostsvn]#svnadmincreate/var/svn/svnrepos
[root@localhostsvn]#
[root@localhostsvn]#ls
svnrepos
[root@localhostsvn]#cdsvnrepos/
[root@localhostsvnrepos]#ls
confdbformathookslocksREADME.txt
[root@localhostsvnrepos]#catREADME.txt
ThisisaSubversionrepository;usethe'svnadmin'tooltoexamine
it.Donotadd,delete,ormodifyfileshereunlessyouknowhow
toavoidcorruptingtherepository.

Visithttp://subversion.apache.org/formoreinformation.
[root@localhostsvnrepos]#cdconf/
[root@localhostconf]#ls
authzpasswdsvnserve.conf
[root@localhostconf]#vimpasswd
###Thisfileisanexamplepasswordfileforsvnserve.
###Itsformatissimilartothatofsvnserve.conf.Asshowninthe
###examplebelowitcontainsonesectionlabelled[users].
###Thenameandpasswordforeachuserfollow,oneaccountperline.

[users]
#harry=harryssecret
#sally=sallyssecret

#添加admin用户
admin=123456
[root@localhostconf]#vimauthz
###Thisfileisanexampleauthorizationfileforsvnserve.
###Itsformatisidenticaltothatofmod_authz_svnauthorization
###files.
###Asshownbeloweachsectiondefinesauthorizationsforthepathand
###(optional)repositoryspecifiedbythesectionname.
###Theauthorizationsfollow.Anauthorizationlinecanreferto:
###-asingleuser,###-agroupofusersdefinedinaspecial[groups]section,###-analiasdefinedinaspecial[aliases]section,###-allauthenticatedusers,usingthe'$authenticated'token,###-onlyanonymoususers,usingthe'$anonymous'token,###-anyone,usingthe'*'wildcard.
###
###Amatchcanbeinvertedbyprefixingtherulewith'~'.Rulescan
###grantread('r')access,read-write('rw')access,ornoaccess
###('').

[aliases]
#joe=/C=XZ/ST=Dessert/L=SnakeCity/O=SnakeOil,Ltd./OU=ResearchInstitute/CN=JoeAverage

[groups]
#harry_and_sally=harry,sally
#harry_sally_and_joe=harry,sally,&joe

#[/foo/bar]
#harry=rw
#&joe=r
#*=

#[repository:/baz/fuz]
#@harry_and_sally=rw
#*=r
#
#添加新建的用户admin,并授予rw权限
[/]
admin=rw

[root@localhostconf]#catsvnserve.conf
###Thisfilecontrolstheconfigurationofthesvnservedaemon,ifyou
###useittoallowaccesstothisrepository.(Ifyouonlyallow
###accessthroughhttp:and/orfile:URLs,thenthisfileis
###irrelevant.)

###Visithttp://subversion.apache.org/formoreinformation.

[general]
###Theanon-accessandauth-accessoptionscontrolaccesstothe
###repositoryforunauthenticated(a.k.a.anonymous)usersand
###authenticatedusers,respectively.
###Validvaluesare"write","read",and"none".
###Settingthevalueto"none"prohibitsbothreadingandwriting;
###"read"allowsread-onlyaccess,and"write"allowscomplete
###read/writeaccesstotherepository.
###Thesamplesettingsbelowarethedefaultsandspecifythatanonymous
###usershaveread-onlyaccesstotherepository,whileauthenticated
###usershavereadandwriteaccesstotherepository.
#匿名用户可读
#anon-access=read
anon-access=none
#auth-access=write
###Thepassword-dboptioncontrolsthelocationofthepassword
###databasefile.Unlessyouspecifyapathstartingwitha/,###thefile'slocationisrelativetothedirectorycontaining
###thisconfigurationfile.
###IfSASLisenabled(seebelow),thisfilewillNOTbeused.
###Uncommentthelinebelowtousethedefaultpasswordfile.
#使用哪个文件作为账号文件
password-db=passwd
###Theauthz-dboptioncontrolsthelocationoftheauthorization
###rulesforpath-basedaccesscontrol.Unlessyouspecifyapath
###startingwitha/,thefile'slocationisrelativetothethe
###directorycontainingthisfile.Ifyoudon'tspecifyan
###authz-db,nopath-basedaccesscontrolisdone.
###Uncommentthelinebelowtousethedefaultauthorizationfile.
#使用哪个文件作为权限文件
authz-db=authz
###Thisoptionspecifiestheauthenticationrealmoftherepository.
###Iftworepositorieshavethesameauthenticationrealm,theyshould
###havethesamepassworddatabase,andviceversa.Thedefaultrealm
###isrepository'suuid.
#认证空间名,版本库所在目录
realm=/var/svn/svnrepos
###Theforce-username-caseoptioncausessvnservetocase-normalize
###usernamesbeforecomparingthemagainsttheauthorizationrulesinthe
###authz-dbfileconfiguredabove.Validvaluesare"upper"(toupper-
###casetheusernames),"lower"(tolowercasetheusernames),and
###"none"(tocompareusernamesas-iswithoutcaseconversion,which
###isthedefaultbehavior).
#force-username-case=none

[sasl]
###ThisoptionspecifieswhetheryouwanttousetheCyrusSASL
###libraryforauthentication.Defaultisfalse.
###ThissectionwillbeignoredifsvnserveisnotbuiltwithCyrus
###SASLsupport;tocheck,run'svnserve--version'andlookforaline
###reading'CyrusSASLauthenticationisavailable.'
#use-sasl=true
###Theseoptionsspecifythedesiredstrengthofthesecuritylayer
###thatyouwantSASLtoprovide.0meansnoencryption,1means
###integrity-checkingonly,valueslargerthan1arecorrelated
###totheeffectivekeylengthforencryption(e.g.128means128-bit
###encryption).Thevaluesbelowarethedefaults.
#min-encryption=0
#max-encryption=256

#启动svn
[root@localhostconf]#svnserve-d-r/var/svn/svnrepos/
[root@localhostconf]#ps-ef|grepsvn
root91141016:06?00:00:00svnserve-d-r/var/svn/svnrepos/
root91168214016:06pts/000:00:00grep--color=autosvn
[root@localhostconf]#netstat-ntlp
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programname
tcp000.0.0.0:36900.0.0.0:*LISTEN9114/svnserve
tcp000.0.0.0:220.0.0.0:*LISTEN1049/sshd
tcp00127.0.0.1:250.0.0.0:*LISTEN1282/master
tcp600:::3306:::*LISTEN26795/mysqld
tcp600:::8080:::*LISTEN4538/java
tcp600:::22:::*LISTEN1049/sshd
tcp600::1:25:::*LISTEN1282/master
[root@localhostconf]#cd..
[root@localhostsvnrepos]#ls
confdbformathookslocksREADME.txt
[root@localhostsvnrepos]#tree
.
├──conf
│├──authz
│├──passwd
│└──svnserve.conf
├──db
│├──current
│├──format
│├──fsfs.conf
│├──fs-type
│├──min-unpacked-rev
│├──revprops
││└──0
││└──0
│├──revs
││└──0
││└──0
│├──transactions
│├──txn-current
│├──txn-current-lock
│├──txn-protorevs
│├──uuid
│└──write-lock
├──format
├──hooks
│├──post-commit.tmpl
│├──post-lock.tmpl
│├──post-revprop-change.tmpl
│├──post-unlock.tmpl
│├──pre-commit.tmpl
│├──pre-lock.tmpl
│├──pre-revprop-change.tmpl
│├──pre-unlock.tmpl
│└──start-commit.tmpl
├──locks
│├──db.lock
│└──db-logs.lock
└──README.txt

10directories,27files

#停止SVN命令
killallsvnserve
#svn开机启动
cat/lib/systemd/system/svnserve.service
[Unit]
Description=Subversionprotocoldaemon
After=syslog.targetnetwork.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
ExecStart=/usr/bin/svnserve--daemon--pid-file=/run/svnserve/svnserve.pid$OPTIONS

[Install]
WantedBy=multi-user.target
#找到svn的service环境配置文件/etc/sysconfig/svnserve编辑配置文件
#将OPTIONS="-r/var/svn"改为svn版本库存放的目录
cat/etc/sysconfig/svnserve
#OPTIONSisusedtopasscommand-lineargumentstosvnserve.
#
#Specifytherepositorylocationin-rparameter:
OPTIONS="-r/var/svn/svnrepos"
#设置开机启动
systemctlenablesvnserve.service
systemctlstartsvnserve.service
systemctlrestartsvnserve.service

#ps-aux|grep'svn'


--------------------------------------------------------

客户端连接

windowstortoisesvn 下载

https://tortoisesvn.net/downloads.html




参考:https://yq.aliyun.com/articles/83737

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor 1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep 'Time zone'查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO="static" ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名</param> /// <returns>返回小写后缀,不带“.”</ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./kibana &
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程, ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属