linux下svn的配置及svn常用命令
Linux下SVN部署安全及权限配置,实现web同步更新
[examPro:/]
@g_vip=rw
@g_fronter=r
@g_doc=r
[examPro:/protected/modules]
@g_vip=rw
@g_fronter=
*=
[examPro:/protected]
@g_doc=
对于以上代码的配置的详细说明,可以参考本文的参考文章[1]SVN权限配置,里面介绍的比较详细,这里就不多说,有疑问的请留言或mail;
Linux下SVN部署/安全及权限配置,实现web同步更新:
本文包含以下内容:
SVN服务器安装
SVN权限管理
SVN使用SASL加密
SVN上传时同步其它目录
需求
在WEB线上版本管理的基础上,能够在代码上传之后,立刻通过WEB访问,查看修改效果;同时,保证数据的安全性;
#export LANG=zh_CN.UTF-8
export LANG=en_US.UTF-8
2.设置SVN更新时需要同步更新的目录
svn update /alidata/www/examplePro --username yoursname --password yourpwd
以上这行表明,当svn服务器版本有更新时,则同步更新到/alidata/www/examPro目录下的对应文件;yoursname 和yourpwd是你在sasl中设置的用户名和密码;(这里还是涉及到了明文存放,对此,你可以分配一个用户对svn版本库只有全局的读权限)
现在,SVN就实现了版本管理的功能,同时,同步更新的目录有利于测试人员集成测试;
开发人员需要保证的是,任何时候签入到svn库中的版本是可运行的代码。
svn的环境搭建和配置以及操作
SVN搭建和基本使用1.安装Subversion-1.7.4.msi 安装文件:在更目录(即与Subversion同目录创建一个root文件夹,用来创建和存放工厂)2.启动svn -->svnserse -d -r f:/svn/root (其中-d 是用于linux系统是属于后台运行,对于windows 无效)3.对于windows ,需要将svn 添加到windows 服务中去,即:在cmd中输入如下4.打开windows 服务,这是服务中应该就有了你创建的SVNServer 服务了,然后启动经过上述步骤:基本就配置好了svn接下来就是开发步骤了可以再cmd中输入svn help来查看一些东东1.创建工厂(由配置管理人员来做)这时候打开root 文件夹就看到多了一个OA 文件夹2.创建要开发的项目,即:项目的构建(由项目经理构建好项目的框架)3.配置权限(项目经理来配置)找到你创建的root文件夹中的工厂里面的svnserve.conf 文件,打开这样就表示开启了权限。
然后打开passwd 这个文件然后再打开authz 文件4.由项目经理把构建好的项目提交到svn的工厂当中。
这时就要安装另一个安装文件TortoiseSVN-1.7.6.22632-win32-svn-1.7.4.msi(即客户端)5.安装完成后鼠标右键出现如下两个东东,就说明安装成功。
6.找到你要上传的项目,右键导入这时就要提示输入你配置的用户名及密码7. 项目导入成功后假设如上1 和2 是两个开发人员,分别打开从svn中下载项目点击之后输入你的用户名和密码,ok------------------------------------------------------------------------------------------------------------------这时候项目就从svn上下载下来了。
Linux下SVN命令使用大全
Linux下SVN命令使用大全版本号V0.1 修订内容详细修订日期文件性质备注正在继续添加和完善...1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件、目录或符号链svn add PATH...例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有的php文件)●文件、目录或符号链到你的工作拷贝并且预定添加到版本库。
它们会在下次提交上传并添加到版本库,如果你在提交之前改变了主意,你可以使用svn revert取消预定。
●是否访问版本库否●选项--targets FILENAME--non-recursive (-N)--quiet (-q)--config-dir DIR--no-ignore--auto-props--no-auto-props--force●例子添加一个文件到工作拷贝:$ svn add foo.cA foo.c当添加一个目录,svn add缺省的行为方式是递归的:$ svn add testdirA testdirA testdir/aA testdir/bA testdir/cA testdir/d你可以只添加一个目录而不包括其内容:$ svn add --non-recursive otherdirA otherdir通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:$ svn add * --forceA foo.cA somedir/bar.cA otherdir/docs/baz.doc…3、将改动的文件提交到版本库svn commit -m ―LogMessage― [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock 开关)例如:svn commit -m ―add test file for my test― test.php简写:svn ci4、加锁/解锁svn lock -m ―LockMessage― [--force] PATH例如:svn lock -m ―lock test file― test.phpsvn unlock PATH5、更新到某个版本svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
linux下常用的svn操作
1:checkout命令:从svn版本库中取代码时可以先查看具体代码的路径,windows下右键单击Tortoise->repo_browser 可直接查看,linux下可以输入命令:svn list 版本库地址如图:Checkout时命令是:Svn checkout 版本库地址如图:注意在目前的svn版本中必须checkout一个文件夹下来,只checkout单个文件会提示失败。
如图:若想查看svn上某个具体文件,从而决定是否要checkout当前版本下来,可以执行命令:svn cat 文件在版本库上的地址。
下载好代码后可以通过执行ll –a 命令查看文件信息,可以看到在下载好的文件夹下有一个.svn 文件夹,该文件夹是用来维护工作拷贝信息的,保证拥有该文件夹的读写权限,就可以对下载的代码进行commit等一系列操作。
如图:2:commit命令:将本地的修改工作拷贝上传到svn 服务器中,保证版本库的一致具体命令是:svn commit 要上传的文件路径–m “日志信息”如图:日志信息可以为空。
注意提交时需将该文件更新,在上传,否则出错。
若当前上传的文件不是从svn上checkout下来的文件,会提示不是工作副本,无法上传。
3:import 命令:将本地代码上传到版本库中进入到需要上传代码的目录,执行命令:Svn import 想要上传到svn的路径-m “上传的日志信息”–no-ignore如图:注意上传时需添加日志选项-m ,可以为空,并且需要添加选项—no-ignore因为svn上传时会默认屏蔽掉so .o 等文件,导致上传上去的代码不完整,若上传一半出错提示某些文件无法识别,最好将该文件的父文件夹打包上传,就可以成功传上去了。
4:log 命令查看svn版本库的日志信息,具体命令是:Svn log 查看日志信息的文件名如图:5:update命令:将当前文件更新到版本库上某个具体版本文件具体命令是:Svn update –r 要更新的版本号文件路径如图:6:add 命令:往版本库中添加新的文件add 功能:向文件拷贝所在的文件夹中添加新的文件,并作出标识,是新添加的,下一步提交时将一并提交到Subversion版本库中去。
SVN搭建和使用手册
在 URL of repository 一栏中输入 svn 服务器的 checkout 地址
在新的项目里面添加一个文件然后提交,查看/www/drug/ 里面有没有添加的文 件,来证实 svn 库能够同步更新到 linux 下面那个虚拟主机的没。
三、SVN 管理命令
发展开源精神,普及 Linux 教育
SVN+APACHE 整合使用手册
一、SVN 介绍
SVN 是一个版本控制工具,Subversion 的版本库(repository),就是位于服务器端,统 一管理和储存数据的地方。
要创建一个版本库,首先要确定采用哪种数据存储方式。在 Subversion 中,版本库的 数据存储有两种方式,一种是在 Berkeley DB 数据库中存放数据;另一种是使用普通文件, 采用自定义的格式来储存,称为 FSFS。
测试域名绑定成功 4、SVN 使用
创建 svn 项目仓库
# mkdir /data/svn
创建 svn 根目录
# svnadmin create /data/svn/drug //创建项目仓库 drug
# /usr/local/svn/bin/svn import /www/drug file:///data/svn/drug -mx 教育
/houzaicun
Crazylinux 工作室
SVN 第 2 版本
SVN=/usr/local/svn/bin/svn
指定 svn 路径
WEB=/www/drug
指定 apache 虚拟主机路径
$SVN update $WEB –username www –password xywyxywy
[groups]
//这个表示群组设置
linux ubuntu下svn命令使用指南
Linux ubuntu下svn的命令使用指南Svn简介:Svn的全名是Subversion,它使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。
在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion 的客户端程序,管理着受控数据的一部分在本地的映射(称为工作副本)。
在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。
这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。
Subversion是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。
不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。
此外,它支持非ASCII文本和二进制数据,所有这一切都使Subversion不仅对传统的编程任务非常有用,同时也适于Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域.Subversion的官方网站是:/大部分的发行版都已经提供Subversion套件,ubuntu下安装subversion客户端:sudo apt-get install subversion使用SubversionSubversion一般使用两种后台服务模式:一种是其自己实现的svnserve,可以通过svn协议访问,另一种是借助mod_dav_svn模块,由Apache http服务器来实现,然后通过HTTP或HTTPS协议来访问。
1、通过svn协议访问svn协议客户端若要通过svn协议访问仓库,必须在存放仓库的机器上运行svnserve服务程序。
启动该程序后,会监听在3690端口,以响应客户端的访问工作。
2、通过HTTP协议访问版本库通过HTTP协议访问版本库是Subversion的亮点之一,这种方式具备许多svnserve服务器所没有的特性,使用上更加灵活。
Linux下多项目SVN配置方法
1. 安装SVN服务器软件2. 在home下创建svn根目录mkdir /home/svnroot3. 在/home/svnroot下创建Project1 , Project 2, Project3 三个项目文件夹,这三个文件夹要存放不同项目的SVN版本库。
4. 同样在/home/svnroot中创建CodeAuth 文件夹,该文件夹将保存passwd 和authz文件,在第6步中实现。
5. 创建项目cd /home/svnrootsvnadmin create Project1svnadmin create Project2svnadmin create Project3分别创建了三个项目的版本库,版本库目录conf中存在passwd 、authz、和svnserve.conf 文件passwd - 用于存放本svn库的用户名和密码authz - 存放本svn库的访问授权信息svnserve.conf 文件为存放本svn库的全局访问控制信息6. 将passwd 、authz文件拷贝到/home/svnroot/CodeAuth中,将三个项目下conf目录中的passwd 和authz文件删除7. 修改三个项目中conf目录下的svnserve.conf 文件,最快的办法是修改一个项目下的svnserve.conf 文件,使用它覆盖其他两个项目下的svnserve.conf 文件。
svnserve.conf 修改为[general]anon-access = none auth-access = writepassword-db = /CodeAuth/passwdauthz-db = /CodeAuth/authz 8. 修改/home/svnroot/CodeAuth下的passwd文件为[users] admin=admin0019. 修改/home/svnroot/CodeAuth下的Authz文件为[groups] admin_group=admin[Project1:/]@admin_group=rw*=[Project2:/]@admin_group=rw*=[Project3:/]@admin_group=rw*=10. 启动SVN服务svnserve -d -r /home/svnrootOK,服务器端配置完毕!。
linux搭建svn服务器的方法步骤
linux搭建svn服务器的⽅法步骤⼀:安装svnyum install -y subversion⼆:创建仓库1:创建仓库⽬录mkdir -p /var/project/test2:创建仓库svnadmin create /var/project/test创建成功后,在/var/project/test⽬录下如下⽬录:drwxr-xr-x. 2 root root 51 1⽉ 30 13:26 confdrwxr-sr-x. 6 root root 4096 1⽉ 30 13:26 db-r--r--r--. 1 root root 2 1⽉ 30 13:26 formatdrwxr-xr-x. 2 root root 4096 1⽉ 30 13:26 hooksdrwxr-xr-x. 2 root root 39 1⽉ 30 13:26 locks-rw-r--r--. 1 root root 229 1⽉ 30 13:26 README.txtconf⽬录下是svn的配置⽬录,其中包括:-rw-r--r--. 1 root root 1080 1⽉ 30 13:26 authz #权限控制-rw-r--r--. 1 root root 309 1⽉ 30 13:26 passwd #密码管理-rw-r--r--. 1 root root 3090 1⽉ 30 13:26 svnserve.conf #SVN服务进程配置三:svn配置1:权限配置(/var/project/test/conf/authz)#⽤户分组(admin->管理员,development ->开发 other->其他)[groups]admin = test1 #管理员⽤户test1development = test2,test3 #开发⽤户test2,test3other = test4,test5,test6 #其他⽤户test4,,test5,test6#权限配置[/]@admin = rw #管理员读写权限@development = rw #开发读写权限@other = r #其他读权限test7 = rw #test7⽤户读写权限2:密码配置(/var/project/test/conf/passwd)#密码配置,格式为⽤户名=密码,密码为明⽂[users]test1 = test1test2 = test2test3 = test3test4 = test4test5 = test5test6 = test6test7 = test73:SVN服务进程配置(/var/project/test/conf/svnserve.conf)[general]anon-access = none #匿名⽤户⽆权访问auth-access = write #认证⽤户可读写password-db = passwd #指定⽤户认证密码⽂件authz-db = authz #指定权限配置⽂件四:启动svn服务(默认端⼝号3690)复制代码代码如下:svnserve -d -r /var/project #-d 服务后台运⾏ -r 指定⼯作⽬录,/var/project表⽰指定⼯作⽬录,注意不能指定仓库名地址(/var/project/test)指定端⼝启动svnsvnserve -d -r /var/project --listen-port 3691五:关闭防⽕墙,或开启指定端⼝号1:关闭防⽕墙systemctl stop firewalld2:开启指定防⽕墙#开启3690端⼝firewall-cmd --zone=public --add-port=3690/tcp --permanent#刷新配置firewall-cmd --reload六:客户端连接并上传⽂件windows上连接svn1:新建⼀个⽬录,右击选择svn 检出2:在版本库上填写linux的svn地址 svn://ip:3690/仓库名 (这⾥的仓库名不是/var/project/test⽽是/test)2:填写⽤户名密码这时候我们可以看到此⽬录下⽣成了⼀个.svn⽂件,说明我们已经连接上了linux上的svn服务器3:上传⽂件现在我们新建⼀个test.txt⽂件,在⾥⾯随便填⼀些信息(1)右击选择add然后选择test.txt⽂件,点击确定,这时候我们会看到test.txt⽂件上会多了⼀个加号(2):上传右击选择提交填写备注选择要上传的⽂件后点击确定这时候我们可以看到test.txt⽂件上的加号会变成绿⾊的对号,表⽰上传成功但是这时候我们发现我们在/var/project/test⽬录下根本就没有找到我们上传的⽂件,这是为什么呢?难道我们没有上传成功,这是由于把⽂件上传到SVN版本库后,上传的⽂件不再以⽂件原来的格式存储,⽽是被svn以它⾃定义的格式压缩成版本库数据,存放在版本库中,svn服务器版本库有两种格式,⼀种为FSFS,⼀种为BDB这时候我们就需要在linux中实现检出4:检出svn checkout svn://192.168.11.201/test /data/test #svn://192.168.11.201/test表⽰需要检出的仓库地址 /data/test表⽰需要检出到哪个⽬录下这是我们可以在/data/test⽬录下看到我们之前在客户端上传的⽂件,但是现在问题⼜来了,我们在客户端上传⽂件之后,不可能每次都在服务器进⾏检出操作吧,那么如何进⾏⾃动检出呢?5:⾃动检出配置在/var/project/test/hooks⽬录下新建⼀个post-commit⽂件,post-commit⽂件添加内容为:#!/bin/shREPOS="$1" #仓库REV="$2" #版本号export.UTF-8 #编码SVN=/usr/bin/svn #svn地址WEB=/data/test #要更新的项⽬⽬录$SVN update $WEB --username test1 --password test1 #--username test1表⽰设置⽤户名 --password test1表⽰设置密码将post-commit设置为可执⾏chmod +x /var/project/test/hooks/post-commit到此⾃动检出配置完成,不过注意,第⼀次的时候需要⼿动检出,之后就不需要了,到此linux搭建svn服务器完成以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
svn linux下常用命令
在Linux下使用Subversion(SVN)进行版本控制,你可以使用以下常用命令:1. `svn checkout`:从服务器上检出(checkout)一个目录,作为你本地的副本。
语法为`svn checkout path`,其中`path`是服务器的目录路径。
例如:`svn checkout svn://192.168.1.1/pro/domain`。
2. `svn update`:将本地的目录更新到最新的版本。
如果在提交的时候提示过期的话,是因为冲突,需要先`update`,修改文件,然后清除`svn resolved`,最后再提交`commit`。
例如:`svn update test.php`。
3. `svn add`:将新的文件添加到版本库。
语法为`svn add filename`,其中`filename`是要添加的文件名。
例如:`svn add test.cpp`。
4. `svn commit`:将修改的内容提交到版本库。
语法为`svn commit -m "注释"`,其中`-m "注释"`是提交的注释信息。
例如:`svn commit -m "注释" test.cpp`。
5. `svn lock`:给文件加锁,防止其他用户修改。
语法为`svn lock -m "注释" path`,其中`path`是要锁定的文件路径,`-m "注释"`是锁定的注释信息。
例如:`svn lock -m "注释" test.cpp`。
6. `svn unlock`:解锁文件,允许其他用户修改。
语法为`svn unlock path`,其中`path`是要解锁的文件路径。
例如:`svn unlock test.cpp`。
7. `svn status`:查看文件或者目录状态。
可以查看正常状态(例如`svn status path`)和详细状态(例如`svn status -v path`)这些是Linux 下使用Subversion 的常用命令,可以根据实际情况选择适合的命令来操作。
RedHat Linux下搭建SVN服务器完全手册
系统环境RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum一,安装必须的软件包.yum install subversion (SVN服务器)mysql-server (用于codestriker)httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)sendmail (用于配置用户提交代码后发邮件提醒)wget gcc-c++ make unzip perl* (必备软件包)ntsysv vim-enhanced (可选)二,基本的SVN服务器配置1,新建一个目录用于存储SVN所有文件# mkdir /home/svn2,新建一个版本仓库# svnadmin create /home/svn/project3,初始化版本仓库中的目录# mkdir project project/server project/client project/test (建立临时目录)# svn import project/ file:///home/svn/project -m "初始化SVN目录"# rm -rf project (删除临时建立的目录)4,添加用户要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:[users]# harry = harryssecret# sally = sallyssecretpm = pm_pwserver_group = server_pwclient_group = client_pwtest_group = test_pw5,修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略,以下是参考:[groups]project_p = pmproject_s = server_groupproject_c = client_groupproject_t = test_group[project:/]@project_p = rw* =[project:/server]@project_p = rw@project_s = rw* =[project:/client]@project_p = rw@project_c = rw* =[project:/doc]@project_p = rw@project_s = rw@project_c = rw@project_t = rw* =以上信息表示,只有pm有根目录的读写权,server_group能访问server 目录,client_group能访问client目录,所有人都可以访问doc目录.6,修改svnserve.conf文件,让用户和策略配置升效.svnserve.conf内容如下:[general]anon-access = noneauth-access = writepassword-db = /home/svn/project/conf/passwdauthz-db = /home/svn/project/conf/authz7,启动服务器# svnserve -d -r /home/svn8,测试服务器# svn co svn://192.168.60.10/projectAuthentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: server_groupPassword for 'server_group':svn: Authorization failed ( server_group没用根目录的访问权)# svn co svn://192.168.60.10/projectAuthentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: pmPassword for 'pm':A project/testA project/serverA project/clientChecked out revision 1. ( 测试提取成功)# cd project/server# vim main.c# svn add main.c# svn commit main.c -m "测试一下我的C程序,看什么看,不行啊??"Adding main.cTransmitting file data .Committed revision 2. ( 测试提交成功)三,配置SVN服务器的HTTP支持1,转换SVN服务器的密码由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。
linux下搭建SVN
linux下搭建SVN查看系统下有没有安装过⽼版本的svn:rpm -qa subversion,如果没安装过则什么都不显⽰如果有⽼版本先运⾏⼀下yum -y remove subversion,删除⽼版本。
第⼀步:通过yum命令安装svnserve,命令:yum -y install subversion此命令会全⾃动安装svn服务器相关服务和依赖,安装完成会⾃动停⽌命令运⾏若需查看svn安装位置,可以⽤命令:rpm -ql subversion第⼆步:创建版本库⽬录(此仅为⽬录,为后⾯创建版本库提供存放位置,subversion默认是把/var/svn作为数据根⽬录的,开机启动默认也是从这⾥):mkdir /var/svn/svnrepos第三步:创建svn版本库在第⼆步建⽴的路径基础上,创建版本库:svnadmin create /var/svn/test(test为⽬录(项⽬或版本库)名称,后⾯checkout项⽬时会⽤到。
)创建成功后,进⼊test⽬录下,可以看见如下⽂件信息:cd /var/svn/testconf:是这个仓库配置⽂件(仓库⽤户访问账户,权限)format:是⼀个⽂本⽂件,⾥边只放了⼀个整数,表⽰当前⽂件库配置的版本号hooks:放置hook脚步⽂件的⽬录locks:⽤来放置subversion的db锁⽂件和db_logs锁⽂件的⽬录,⽤来追踪存取⽂件库的客户端第四步:配置修改进⼊conf,conf⽬录下,⼀共存放三份重要的配置⽂件,如下:authz:负责账号权限的管理,控制账号是否读写权限passwd:负责账号和密码的⽤户名单管理svnserve.conf:svn服务器配置⽂件修改svnserve.conf:vim svnserve.conf原始⽂件内容,都被注释掉的,我们只需要去掉指定内容前注释即可,如下:[general]anon-access = none #控制⾮鉴权⽤户访问版本库的权限auth-access = write #控制鉴权⽤户访问版本库的权限password-db = passwd #指定⽤户名⼝令⽂件名,即访问时要输⽤户名和密码realm = test #指定版本库的认证域,即在登录时提⽰的认证域名称,改成⾃⼰的版本库修改authz⽂件信息:vim authz在⽂件内容的末尾,添加如下:rw表⽰赋予此账号可读写的权限,r为读,w为写,注意[/]中的斜杠,这⾥如果斜杠反了,authz-db = authz ⼀直会提⽰“认证失败”第⼀种⽅式:单个添加:# 按账号分权限[test/]admin = rwtest = r第⼆种⽅式(后⾯采⽤此⽅式配置):⽤户分组,再设权限[groups]# 按⽤户组分权限admin = admin,admin1 # admin为⽤户组,等号之后的为⽤户test = test1, test2 # test为⽤户组,等号之后的为⽤户[/] # 表⽰svn仓库⽬录(/var/svn/test),test: 对应前⾯配置的realm = test@admin = rw # 表⽰admin组对仓库(/var/svn/test)⽬录有读写权限,r为读,w为写@test = r # 表⽰test组的⽤户对对仓库(/var/svn/test)⽬录只有读的权限[/test1] # 表⽰test1⽬录(/var/svn/test/test1)@test = rw # 表⽰test组对test1⽬录有读写权限* =备注:版本库的⽬录格式如下:[<版本库>:/项⽬/⽬录]@<⽤户组名> = 权限<⽤户名> = 权限其中[]內容有許多写法:[/],表⽰根⽬录及其⼀下的路径,根⽬录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表⽰对全部版本设置的权限[test:/],表⽰对版本库test设置权限;[test:/svnadmin],表⽰对版本库test中的svnadmin项⽬设置权限;[test:/svnadmin/second],表⽰对版本库test中的svnadmin项⽬的⽬录设置权限;权限的主体可以是⽤户组,⽤户或者*,⽤户组在前⾯要以@开头,*表⽰全部⽤户权限分为:r ,w, rw和null ,null空表⽰没有任何权限。
linux下安装svn详解
前言SVN服务器有2种运行方式:独立服务器和借助apache。
2种方式各有利弊,独立SVN服务器不结合Apache安装使用,连接独立SVN服务器也不用HTTP协议。
这是比较快捷的SVN服务器配置方法。
本次安装时使用的是独立用品方式。
SVN存储版本数据也有2种方式:BDB和FSFS。
因为BDB方式在服务器中断时,有可能锁住数据所以还是FSFS方式更安全一点,我安装时也使用的是FSFS方式。
一下载工具1. subversion-1.6.17.tar.gz2. subversion-deps-1.6.17.tar.gz这两个包可以直接到CSDN去下载,版本要一样,都是必须下载的,否则单独下载第一个包编译时就会提示缺少模块。
这两个包下载解压后会解压到同一个目录下,不需要特别指定。
二解压安装1. 解压两个包:在此之前,我已经创建了一个用户svnadmin专门用来安装管理svn的,就解压在/home/svnadmin/目录下tar -xzvf subversion-1.6.17.tar.gztar -xzvf subversion-deps-1.6.17.tar.gz2. 编译安装./configure --prefix=/home/svnadmin/subversion --without-berkeley-db //prefix指定安装的目录,without-berkeley-db表明不使用berkeley数据库//在这一步有可能不成功,是因为有一些依赖的软件没装,具体见下面“遇到的问题”makemake install//也许要sudo,看情况3. 查看是否安装成功/home/svnadmin/subversion/bin/svnserve --version//如果出现SVN的版本则证明安装成功三添加环境变量可以在/etc/profile中添加,这是全局的。
其实最好是专门添加一个svnadmin 用户,在~/.bashrc中添加即可:exprot PATH=$PATH:/home/svnadmin/subversion/bin四建立仓库1. 创建目录mkdir -p /home/svnadmin/svndata/repos1加上参数P,是如果没有父目录则自动创建注意: /home/svnadmin/svndata在这里将是所有仓库的根目录,repos1是其中的一个仓库。
svn常用命令
svn常⽤命令命令的使⽤1、检出3、添加新⽂件svn add ⽂件名注:告诉SVN服务器要添加⽂件了,还要⽤svn commint -m真实的上传上去!例⼦:svn add test.php <-添加test.phpsvn commit -m “添加我的测试⽤test.php“test.phpsvn add *.php <-添加当前⽬录下所有的php⽂件svn commit -m “添加我的测试⽤全部php⽂件“*.php4、提交svn commit -m “提交备注信息⽂本“ [-N] [--no-unlock] ⽂件名svn ci -m “提交备注信息⽂本“ [-N] [--no-unlock] ⽂件名必须带上-m参数,参数可以为空,但是必须写上-m例⼦:svn commit -m “提交当前⽬录下的全部在版本控制下的⽂件“ *<-注意这个*表⽰全部⽂件svn commit -m “提交我的测试⽤test.php“test.phpsvn commit -m “提交我的测试⽤test.php“-N --no-unlock test.php<-保持锁就⽤–no-unlock开关svn ci -m “提交当前⽬录下的全部在版本控制下的⽂件“ *<-注意这个*表⽰全部⽂件svn ci -m “提交我的测试⽤test.php“test.phpsvn ci -m “提交我的测试⽤test.php“-N --no-unlock test.php<-保持锁就⽤–no-unlock开关5、更新⽂件svn updatesvn update -r 修正版本 ⽂件名svn update ⽂件名例⼦:svn update <-后⾯没有⽬录,默认将当前⽬录以及⼦⽬录下的所有⽂件都更新到最新版本svn update -r 200test.cpp <-将版本库中的⽂件 test.cpp还原到修正版本(revision)200 svnupdate test.php<-更新与版本库同步。
SVN服务器搭建和配置
SVN服务器搭建和配置一、SVN服务器搭建1、安装Subversion(2)安装Subversion将subversion-1.2.3.tar.gz和zlib-1.2.3.tar.gz文件上传至服务器,在命令行窗口执行以下命令:# tar zxvf zlib-1.2.3.tar.gz# cd zlib-1.2.3# ./configure# make# make install# tar zxvf subversion-1.2.3.tar.gz# cd subversion-1.2.3# ./configure --with-zlib=/usr/local/zlib-1.2.3# make# make install上述步骤完成后,Subversion已经成功安装到服务器上。
2、搭建Subversion服务器(1)创建版本库创建一个名为repos的版本库,使用以下命令:# svnadmin create /data/svn/repos上述命令会生成以下文件夹:/data/svn/repos/ archivesconf db hooks locks README.txt(2)配置svnserve.conf[general]anon-access = noneauth-access = writepassword-db = passwdrealm = My First Repository(3)配置passwd文件vi /data/svn/repos/conf/passwd,输入以下内容:[users]username = password(4)启动svnserve使用以下命令启动svnserve:# svnserve -d -r /data/svn/repos此时,Subversion服务器已经搭建完成,可以使用它进行版本控制了。
二、SVN服务器配置1、Apache + SVN(1)配置ApacheApache的安装及配置不在本文讨论范围内,读者可以参照我们其他文章。
linux环境svn使用方法
linux环境svn使用方法摘要:1.SVN简介与安装2.配置SVN客户端3.创建与克隆仓库4.提交与更新代码5.合并与解决冲突6.团队协作与权限管理7.常见问题与解决方法8.实战案例分享正文:一、SVN简介与安装1.SVN(Subversion)是一个开源的版本控制系统,用于管理分布式团队之间的源代码。
2.安装SVN:在Linux环境下,可以通过软件包管理器(如apt、yum 等)安装SVN。
二、配置SVN客户端1.设置SVN代理:在客户端机器上配置SVN代理,以便访问远程仓库。
2.配置SVN用户名和密码:在客户端机器上设置SVN用户名和密码,以备后续使用。
三、创建与克隆仓库1.创建本地仓库:在本地机器上创建一个新的SVN仓库。
2.克隆远程仓库:通过SVN客户端克隆远程仓库到本地机器。
四、提交与更新代码1.提交代码:将本地仓库的修改提交到远程仓库。
2.更新代码:从远程仓库拉取最新代码到本地仓库。
五、合并与解决冲突1.合并代码:将不同团队成员的修改合并到同一个分支。
2.解决冲突:在合并过程中遇到冲突时,学会使用SVN的冲突解决机制。
六、团队协作与权限管理1.创建分支:为不同团队成员创建单独的分支,以便并行开发。
2.权限管理:通过SVN对仓库和分支进行权限控制,保障团队协作的安全性。
七、常见问题与解决方法1.无法连接远程仓库:检查网络连接、SVN服务器配置等问题。
2.代码冲突:使用SVN的冲突解决机制,或切换到其他分支进行开发。
八、实战案例分享1.以实际项目为例,分享SVN在团队协作中的具体应用。
2.介绍SVN在不同场景下的优势和劣势。
通过以上步骤,您可以更好地在Linux环境下使用SVN进行版本控制和团队协作。
Linux部署SVN详解(含备份与还原)
Linux部署SVN详解1安装操作系统安装系统采用CentOS-6.2/Database Server2安装配置apache与SVN1)数据包安装顺序:(安装包在CentOS-6.2盘的Packages目录下均可找到)a)apr-1.3.9-3.el6_1.2.i686.rpmb)apr-util-1.3.9-3.el6_0.1.i686.rpmc)httpd-2.2.15-15.el6.centos.i686.rpm依赖文件:httpd-tools-2.2.15-15.el6.centos.i686.rpm与apr-util-ldap-1.3.9-3.el6_0.1.i686.rpmd)sqlite-3.6.20-1.el6.i686.rpme)subversion-1.6.11-2.el6_1.4.i686.rpm依赖文件:neon-0.29.3-1.2.el6.i686.rpmneon依赖文件:pakchois-0.4-3.2.el6.i686.rpm与libproxy-0.3.0-2.el6.i686.rpm安装libproxy命令:三个包同时安装rpm -ivh libproxy-0.3.0-2.el6.i686.rpm libproxy-bin-0.3.0-2.el6.i686.rpm libproxy-python-0.3.0-2.el6.i686.rpmf)mod_dav_svn-1.6.11-2.el6_1.4.i686.rpm安装后将生成文件:/etc/httpd/conf.d/subversion.conf2)修改apache(即httpd)配置文件#vi /etc/httpd/conf/httpd.conf执行上述命令后,对文件进行以下修改:ServerName localhost:80localhost表示自己的IP地址(找到上面一行并做类似修改后保存退出)#service httpd start#chkconfig httpd on文件修改完成后,启动http服务并使用chkconfig命令设置开机自启动。
svn的常用命令
svn的常用命令
SVN(Subversion)是一个开源的版本控制工具,它可以帮助开发者管理代码的历史版本,协同开发,协调多人开发时的代码变更,防止代码冲突等问题。
下面是SVN的常用命令:
1. svn checkout:从SVN服务器上下载一个版本库到本地电脑。
2. svn update:更新本地版本库到最新版本。
3. svn commit:将本地修改推送到远程服务器。
4. svn add:将新文件添加到版本库中。
5. svn delete:删除文件或文件夹。
6. svn status:查看当前目录下所有文件和子目录的状态。
7. svn log:查看版本库的历史记录。
8. svn diff:比较本地文件和服务器上的文件的差异。
9. svn merge:将不同分支上的代码进行合并。
10. svn revert:撤销本地修改,恢复到之前的版本。
以上是SVN的常用命令,掌握这些命令可以帮助开发者更好地使用SVN进行版本控制,提高代码管理的效率。
- 1 -。
linux下svn的配置及svn常用命令
linux下svn的配置及svn常用命令SVN是Subversion的简称,是一个开放源代码的版本控制系统,svn服务器有两种运行方式:独立服务器和借助apache运行。
右图是一个svn的工作流程,它可以很方便用户的代码编写。
1.首先安装SVN:”sudo apt-get install subversion”.查看svn的版本和确定是否安装成功:”svnserve –version”.2.创建svn仓库:“svnadmin create msm”,其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件.接下来就需要设置版本仓库的权限了。
这里说明一下:版本库之间是独立的。
(下图为msm的目录)3.增加用户修改conf文件夹下的authz文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出对各用户的授权。
包括只读r,读写rw。
没有列出的用户,则不允许访问。
还可以对用户分组,列子如下用户组格式:[groups]<用户组名>=<用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:[<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>,其中,方框号内部分可以有多种写法:/,表示根目录(仓储目录)及以下。
根目录是svnserve启动时指定的,我们指定/opt/svndata。
这样,/就是表示对全部版本库设置权限。
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
下图是我增加的用户组:(注意:等号后留有空格)增加后:4.修改用户密码添加用户后就要为用户设置密码了,打开conf/passwd文件:输入格式为,[users]<用户1> = <密码1> 如: admin = admin<用户2> = <密码2> 如: username2 = password2…...左边是我的添加:5.启动svn对用户权限、密码的控制需要启动SVN对用户权限、密码的控制,不然的话你就只能读而不能写了。
linux svn客户端安装及使用
测试是否已经可以在用户目录下使用svn:
svn help 如果出现命令列表,则表示已经链接成功。
5. 使用chmod命令,使 list checkout commit这三个命令脚本有执行权限:
chmod 777 list checkout commit
cp list checkout commit /usr/bin
# svn up 更新本地工作目录
D)删除库上一个文件夹(demo) 进入DemoProject/src/目录
# svn up 更新本地工作目录
# svn del demo 删除demo文件夹
# commit demo 将删除提交到库
3、 本地与库之间的操作
A) 查看库上目录结构(查看DemoProject目录结构)
# svn st
如果你的 hello.cpp修改后还没有提交,则使用svn st会在第一列显示hello.cpp的状态为M,表示项目已经修改但没有提交到库。
B) 查看svn命令的帮助
# svn help update 查看update命令的帮助.
C) 提交时冲突(没有更新本地工作目录而修改文件导致冲突)处理:
B) 提交修改过的整个文件夹到库(修改了文件夹include
# svn up
# commit include
# svn up
C) 新增一个文件夹到库(DemoProject/lib)
进入DemoProject目录:
# svn mkdir lib 创建lib包
# commit lib 提交到库
D)checkout下来库的老版本
首先查看你需要checkout下来的DemoProject老版本,然后再checkout下来:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SVN是Subversion的简称,是一个开放源代码的版本控制系统,svn服务器有两种运行方式:独立服务器和借助apache运行。
右图是一个svn的工作流程,它可以很方便用户的代码编写。
1.首先安装SVN:”sudo apt-get install subversion”.查看svn的版本和确定是否安装成功:”svnserve –version”.2.创建svn仓库:“svnadmin create msm”,其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件.接下来就需要设置版本仓库的权限了。
这里说明一下:版本库之间是独立的。
(下图为msm的目录)3.增加用户修改conf文件夹下的authz文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出对各用户的授权。
包括只读r,读写rw。
没有列出的用户,则不允许访问。
还可以对用户分组,列子如下用户组格式:[groups]<用户组名>=<用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:[<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>,其中,方框号内部分可以有多种写法:/,表示根目录(仓储目录)及以下。
根目录是svnserve启动时指定的,我们指定/opt/svndata。
这样,/就是表示对全部版本库设置权限。
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
下图是我增加的用户组:(注意:等号后留有空格)增加后:4.修改用户密码添加用户后就要为用户设置密码了,打开conf/passwd文件:输入格式为,[users]<用户1> = <密码1> 如: admin = admin<用户2> = <密码2> 如: username2 = password2…...左边是我的添加:5.启动svn对用户权限、密码的控制需要启动SVN对用户权限、密码的控制,不然的话你就只能读而不能写了。
需要修改svnserve.conf文件,我们只要取消下面几条前面的#号注释就好了:(注意,不要留有空格)anon-access = readauth-access = writepassword-db = passwdauthz-db = authz如:重启svn服务输入:”svnserve -d -r /usr/bin” -d表示以后太服务方式执行,-r就表示root,后面是我的svn根目录出现如下错误解决办法,要先把svnserve进程干掉。
找到服务对应进程编号,命令为:“ps -e|grep svnserve”,使用kill命令,之后再使用启动命令,如图:6. 给svn仓库空间中的DB目录分配写入权限(不然不能写入文件):“sudo chmod 777 -R 仓库目录”;然后在浏览器中输入:“http://localhost/svn/msm”,可以查看msm目录下面是svn的标准目录结构PS.svn的常用命令:1.修改监听端口:svn监听默认为3960,如修改为9999:‘“svnserve --listen-port 9999 -d -r /usr/bin” 变量含义简单介绍:/home/svn :SVN安装目录new_project:要创建的仓储名称192.85.1.2/xabeschrm中的“xabeschrm” :目标仓储名称/trunk/0-Src/xabeschrm/WebRoot 中的“xabeschrm”:项目名称1.将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.85.1.2/xabeschrm/trunk/0-Src/xabeschrm/WebRoot简写:svn co2.往仓储中添加新的文件svn add file (这里恐怕后面要添加目录吧!)例如:svn add test.jsp(添加test.jsp)svn add *.jsp(添加当前目录下所有的php文件)3.将改动的文件提交到仓储svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)例如:svn commit -m “add test file for my test“ test.jsp简写:svn ci4.加锁/解锁svn lock -m “LockMessage“ [--force] PATH例如:svn lock -m “lock test file“ test.jspsvn unlock PATH5.更新到某个版本svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 158 test.jsp(将仓储中的文件test.jsp还原到版本158)svn update test.jsp (更新,于仓储同步。
如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)简写:svn up6.查看文件或者目录状态1)svn status path(目录下的文件和子目录的状态,正常状态不显示)【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到仓储;K:被锁定】2) svn status -v path(显示文件和子目录状态)第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st7.删除文件svn delete path -m “delete test fle“例如:svn delete svn://192.85.1.2/xabeschrm/trunk/0-Src/xabeschrm/WebRoot/test.jsp -m “delete test file”或者直接svn delete test.jsp 然后再svn ci -m ‘delete test file‘,推荐使用这种简写:svn (del, remove, rm)8.查看日志svn log path例如:svn log test.jsp 显示这个文件的所有修改记录,及其版本号的变化9.查看文件详细信息svn info path例如:svn info test.jsp10.比较差异svn diff path(将修改的文件与基础版本比较)例如:svn diff test.jspsvn diff -r m:n path(对版本m和版本n比较差异)例如:svn diff -r 158:201 test.jsp简写:svn di11.将两个版本之间的差异合并到当前文件svn merge -r m:n path例如:svn merge -r 158:205 test.jsp(将版本158与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)12.SVN 帮助svn helpsvn help ci13.仓储下的文件和目录列表svn list path显示path目录下的所有属于仓储的文件和目录简写:svn ls14.创建纳入版本控制下的新目录svn mkdir: 创建纳入版本控制下的新目录。
用法1)mkdir PATH…2)mkdir URL…创建版本控制的目录。
1)每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。
2)每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。
15.恢复本地修改svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。
revert用法: revert PATH…注意: 本子命令不会存取网络,并且会解除冲突的状况。
但是它不会恢复被删除的目录16.代码库URL变更svn switch (sw): 更新工作副本至不同的URL。
用法:1)switch URL [PATH]2)switch –relocate FROM TO [PATH...]1)更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。
这是将工作副本对应到同一仓库中某个分支或者标记的方法。
2)改写工作副本的URL元数据,以反映单纯的URL上的改变。
当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。
17.解决冲突svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: resolved PATH…注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让PATH 可以再次提交。
18.输出指定文件或URL的内容。
svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)19.创建仓储svnadmin create /home/svn/new_project注意,各个子仓储的上层目录需要自己手动创建。
20. 开启仓储svnserve -d -r /home/svn/new_project (也可以直接使用“svnserve -d -r /home/svn” 启动SVN服务,默认开启SVN目录所有仓储)。