linux创建svn仓库
- 格式:docx
- 大小:113.51 KB
- 文档页数:3
linux下搭建SVN服务器完全手册ubuntu14.0 + 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/serverproject/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支持的格式。
linuxvcs用法Linux VCS (Version Control System) 是一种用于追踪和管理软件代码的工具。
它可以记录文件的历史版本,帮助多人协同开发,解决代码的冲突,并提供备份和恢复功能。
下面将详细介绍Linux VCS的用法。
1.安装和配置Linux VCS 有多个选择,如Git、SVN、Mercurial等。
在使用之前,需要安装和配置所需的VCS工具。
以Git为例,可以运行以下命令进行安装:```sudo apt-get updatesudo apt-get install git``````git config --global "Your Name"```2.创建和克隆仓库仓库是存放代码的地方,可以是本地的文件夹,也可以是远程的Git 服务器。
要创建一个新的仓库,可以使用`git init`命令:```git init```要克隆一个已存在的仓库,可以使用`git clone`命令,并提供仓库的URL:```git clone <repository_url>```3.添加和提交文件可以使用`git add`命令将文件添加到代码库中:```git add <file>`````````4.分支管理分支是可以同时进行多个任务和版本开发的实体。
可以使用`git branch`命令创建新分支:```git branch <branch_name>```可以使用`git checkout`命令切换到指定分支:```git checkout <branch_name>```还可以使用`git merge`命令将一个分支合并到另一个分支:```git merge <branch_name>```5.远程仓库操作可以使用`git remote`命令与远程仓库进行交互。
例如,可以使用`git remote add`命令添加远程仓库:```git remote add origin <repository_url>```可以使用`git push`命令将本地分支推送到远程仓库:```git push origin <branch_name>```可以使用`git pull`命令从远程仓库拉取最新的代码:```git pull origin <branch_name>```6.版本回滚如果需要回滚到先前的代码版本,可以使用`git log`命令查看提交记录,并找到要回滚的版本号。
linux vcs用法
Linux VCS(Version Control System,版本控制系统)有很多
不同的用法。
下面是一些常见的用法:
1. 创建代码仓库:使用VCS创建一个新的代码仓库,以便多
个开发者可以在其中协同工作。
常见的Linux VCS包括Git和Subversion(SVN)。
2. 提交代码更改:将代码更改提交到VCS中以进行版本控制。
这样可以跟踪代码更改的历史记录,并且可以在需要时轻松恢复旧的版本。
3. 分支管理:使用VCS创建和管理分支,以便在不同的开发
任务或功能开发之间进行切换。
这使得多人协同工作更加容易,并且可以同时进行不同的功能开发。
4. 合并代码:将不同分支的代码合并到一起,以创建一个统一的代码基线。
这通常在完成某个功能或修复时,将分支中的更改合并到主分支中进行操作。
5. 回滚更改:如果发现代码中有问题,可以使用VCS回滚到
之前的版本。
这对于修复错误或恢复到稳定版本非常有用。
6. 辅助工作流程:许多VCS工具提供附加功能,如代码审查、持续集成和构建自动化。
这些功能可以通过插件或脚本与
VCS集成,从而改进开发流程。
总而言之,Linux VCS是开发者进行版本控制和团队协作的重要工具。
它能够跟踪代码更改的历史记录,并提供方便的方法来管理代码库、分支和代码更改。
无论是个人项目还是大型团队项目,使用VCS都能够提高开发效率和代码质量。
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服务器所没有的特性,使用上更加灵活。
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,服务器端配置完毕!。
CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)在CentOS linux下安装SVN,我们可以进行以下步骤:第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发工具”里)和Web服务器(Apache)。
我用的是CentOS 6.4版本,只需要安装DVD1这个iso文件即可。
这个DVD文件中有我们下面用到的许多配置文件和模块文件,像mod_dav_svn等文件,都不需要用yum 命令进行额外下载安装(光盘中的文件的版本都是进行严格匹配的)。
第一次启动CentOS时,你就可以运行命令svn --version,查看是否提示SVN版本信息。
[root@svn ~]# svn --versionsvn,版本1.6.11 (r934486)编译于 Jun 232012,00:44:03版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 / 站点。
此产品包含由 CollabNet(/) 开发的软件。
可使用以下的版本库访问模块:* ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。
-处理“http”方案-处理“https”方案* ra_svn : 使用 svn 网络协议访问版本库的模块。
-使用 Cyrus SASL 认证-处理“svn”方案* ra_local : 访问本地磁盘的版本库模块。
- 处理“file”方案【准备工作】1.关闭防火墙、做好网络配置。
此时,我们要关闭防火墙,执行命令service iptables stop。
同时执行命令setup,选择“网络配置”,去掉DHCP,设置192.168.2.20(客户端也在192.168.2.x同一个网段内),子网掩码255.255.255.0。
如何在Linux终端中进行版本控制在Linux终端中进行版本控制版本控制是软件开发过程中重要的一环,它可以帮助开发者管理源代码的变化记录、协作开发以及回滚到之前的版本等操作。
在Linux终端中,有几种常用的版本控制工具,包括Git和SVN。
本文将向你介绍如何在Linux终端中使用这些工具进行版本控制。
一、Git版本控制Git是一种分布式版本控制系统,广泛应用于软件开发中。
以下是在Linux终端中使用Git进行版本控制的步骤:1. 安装Git在Linux终端中,可以通过包管理工具进行Git的安装。
例如,在Debian/Ubuntu系统中,可以使用以下命令进行安装:```sudo apt-get install git```2. 创建版本库在你的项目目录下,使用以下命令初始化一个Git版本库:```git init3. 添加文件将需要进行版本控制的文件拷贝到Git版本库中:```git add 文件名```4. 提交更改使用以下命令提交你的更改到版本库:```git commit -m "提交说明"```5. 查看版本记录通过以下命令查看版本记录:```git log```6. 回滚版本如果需要回滚到之前的版本,可以使用以下命令:git reset --hard 版本号```二、SVN版本控制除了Git,SVN(Subversion)也是一种常见的版本控制系统。
以下是在Linux终端中使用SVN进行版本控制的步骤:1. 安装SVN在Linux终端中,可以使用包管理工具安装SVN。
例如,在Debian/Ubuntu系统中,可以使用以下命令进行安装:```sudo apt-get install subversion```2. 创建版本库在项目目录下,使用以下命令创建SVN版本库:```svnadmin create 仓库名称```3. 导入项目将项目导入版本库:svn import 项目目录仓库URL```4. 检出项目使用以下命令将项目从版本库中检出到本地工作目录:```svn checkout 仓库URL```5. 添加文件将需要进行版本控制的文件添加到SVN:```svn add 文件名```6. 提交更改使用以下命令提交更改到版本库:```svn commit -m "提交说明"```7. 更新代码如果其他开发者对代码进行了更改,你可以使用以下命令更新本地代码:```svn update```8. 回滚版本如果需要回滚到之前的版本,可以使用以下命令:```svn revert 文件名```总结本文介绍了在Linux终端中使用Git和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服务器完成以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
在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 的常用命令,可以根据实际情况选择适合的命令来操作。
[root@localhost repos]# pwd
/svndata/repos
[root@localhost repos]# svnadmin create mark 创建仓库
[root@localhost conf]# vim /svndata/repos/mark/conf/svnserve.conf 修改仓库配置文件anon-access = none(匿名用户不能访问)
auth-access = write (认证用户可写)
authz-db = /svndata/reposadmin/authz (认证数据库文件)
password-db = /svndata/reposadmin/passwd (密码数据库文件)
修改认证数据库文件,添加仓库的目录SRC,BUILD和DOC,并指定用户的权限:
[root@localhost reposadmin]# vim /svndata/reposadmin/authz
[mark:/SRC](仓库下的SRC目录)
summer.xia = rw (summer.xia 读和写)
mark.zhai = rw
@grp_normal = r (其他人读的权限)
[mark:/BUILD]
summer.xia = rw
mark.zhai = rw
@grp_normal = r
[mark:/DOC]
summer.xia = rw
mark.zhai = rw
@grp_normal = r
电脑桌面上,新建一个文件夹mark,进入mark文件夹后,右键SVN checkout,指定仓库路径(URL of repostitory):svn://172.18.1.111/mark,点击OK后,会弹出用户名和密码,这里是超级用户和密码(密码数据库文件中有):
把svn.rar包解压到mark文件(SRC,BUILD和DOC),然后右键SVN Commit,在Recent messages 中注明commit的原因以及版本号,然后全选path下面的文件:
以上完成,若没有出现异常,可以登录到:svn://172.18.1.111上查看:。