文档库 最新最全的文档下载
当前位置:文档库 › Linux下svn版本控制服务一

Linux下svn版本控制服务一

Linux下svn版本控制服务一
Linux下svn版本控制服务一

Linux下svn版本控制服务<一>

1、官网https://www.wendangku.net/doc/7318022480.html,,svn是apache组织下的一个项目。实验目的实现部署并实现推送下

2、安装软件

[root@vipuser200 ~]# yum -y install subversion httpd mod_dav_svn

创建文件和项目

[root@vipuser200 ~]# mkdir /svn

[root@vipuser200 ~]# cd /svn/

[root@vipuser200 svn]# svnadmin create /svn/www.vipuser.club

[root@vipuser200 svn]# svnadmin create /svn/www.vipuser1.club

查看目录下信息

[root@vipuser200 svn]# ls

www.vipuser1.club www.vipuser.club

[root@vipuser200 svn]# cd www.vipuser.club/

[root@vipuser200 www.vipuser.club]# ls

conf db format hooks locks README.txt

进入配置文件修改配置文件

[root@vipuser200 www.vipuser.club]# cd conf/

[root@vipuser200 conf]# ls

authz passwd svnserve.conf

[root@vipuser200 conf]# vim svnserve.conf #将下面几行启用

[general]

anon-access = read

auth-access = write

password-db = passwd

authz-db = authz

realm = My First Repository

添加用户信息

[root@vipuser200 conf]# vim passwd

[users]

# harry = harryssecret

# sally = sallyssecret

zlf01 = 123456

zlf02 = 123456

zlf03 = 123456

修改认证信息添加下面信息

[root@vipuser200 conf]# vim authz

Check = zlf01,zlf02 #Check组[/] #当前版本根目录zlf03 = rw #用户可读可写@Check = r #Check组可以读* = #其他人没权限启动版本库

查看帮助

[root@vipuser200 conf]# svnserve --help

方法一:

[root@vipuser200 conf]# svnserve -d -r /svn/

方法二:修改下面一行

[root@vipuser200 conf]# vim /etc/init.d/svnserve

args="--daemon --pid-file=${pidfile} $OPTIONS -d -r /svn"

[root@vipuser200 conf]# ps -aux | grep svn

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root 1370 0.0 0.0 152860 744 ? Ss 09:57 0:00 svnserve -d -r /svn/

root 1480 0.0 0.0 103244 836 pts/0 S+ 10:18 0:00 grep svn

[root@vipuser200 conf]# kill -9 1370

[root@vipuser200 conf]# service svnserve restart

Stopping svnserve: [FAILED]

Starting svnserve: [ OK ]

3、本地导入服务端

[root@vipuser200 ~]# mkdir localsvn #创建本地目录

[root@vipuser200 ~]# cd localsvn/

[root@vipuser200 localsvn]# touch 1.html 2.html #创建文件

[root@vipuser200 localsvn]# svn import /root/localsvn/ file:///svn/www.vipuser.club/ -m "v1.0"#第一次导入使用import,任何一个导入都必须添加注释

Adding /root/localsvn/1.html

Adding /root/localsvn/2.html

Committed revision 1.

客户端导入

[root@vipuser202 ~]# mkdir editwebsite

[root@vipuser202 ~]# cd editwebsite/

[root@vipuser202 editwebsite]# touch 3.html 4.html

[root@vipuser202 editwebsite]# svn import /root/editwebsite/ svn://172.27.35.200/www.vipuser.club/ -m "v2.0" #第一次导入需要import

Authentication realm: My First Repository

Password for 'root': #直接回车可以切换用户

Authentication realm: My First Repository

Password for 'zlf03': #认证文件中只有zlf03有写的权限

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

ATTENTION! Your password for authentication realm:

My First Repository

can only be stored to disk unencrypted! You are advised to configure

your system so that Subversion can store passwords encrypted, if

possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value

of the 'store-plaintext-passwords' option to either 'yes' or 'no' in

'/root/.subversion/servers'.

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

Store password unencrypted (yes/no)? no #是否存储密码为了测试填写no

Adding /root/editwebsite/3.html

Adding /root/editwebsite/4.html

Committed revision 2.

4、服务端取出

[root@vipuser200 conf]# svn checkout svn://172.27.35.200/www.vipuser.club/ downsource #checkout 取出当前downsource目录

Authentication realm: My First Repository

Password for 'root':

Authentication realm: My First Repository

Username: zlf01 #zlf01有读的权限

Password for 'zlf01':

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

ATTENTION! Your password for authentication realm:

My First Repository

can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if

possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in

'/root/.subversion/servers'.

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

Store password unencrypted (yes/no)? no

A downsource/1.html

A downsource/2.html

A downsource/3.html

A downsource/4.html

Checked out revision 2. #只有提交的时候版本号才回叠加查看

[root@vipuser200 conf]# ls

authz downsource passwd svnserve.conf

[root@vipuser200 conf]# cd downsource/

[root@vipuser200 downsource]# ls

1.html

2.html

3.html

4.html

客户端取出

[root@vipuser202 ~]# svn checkout svn://172.27.35.200/www.vipuser.club/ downsource Authentication realm: My First Repository

Password for 'zlf03':

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

ATTENTION! Your password for authentication realm:

My First Repository

can only be stored to disk unencrypted! You are advised to configure

your system so that Subversion can store passwords encrypted, if

possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value

of the 'store-plaintext-passwords' option to either 'yes' or 'no' in

'/root/.subversion/servers'.

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

Store password unencrypted (yes/no)? no

A downsource/1.html

A downsource/2.html

A downsource/3.html

A downsource/4.html

Checked out revision 2.

查看

[root@vipuser202 ~]# cd downsource/

[root@vipuser202 downsource]# ls

1.html

2.html

3.html

4.html

添加并推送

[root@vipuser202 downsource]# touch 5.html

[root@vipuser202 downsource]# svn add 5.html #添加并未推送A 5.html

[root@vipuser202 downsource]# svn commit -m "v3.0" #推送Authentication realm: My First Repository Password for 'zlf03':

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

ATTENTION! Your password for authentication realm:

My First Repository

can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in

'/root/.subversion/servers'.

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

Store password unencrypted (yes/no)? no

Adding 5.html

Transmitting file data .

Committed revision 3. #版本为3

完成!

svn版本控制工具

第1节背景及svn简介 svn是subversion 缩写,它是一个自由、开放源码、多用户的版本控制系统, 支持通过本地或远程访问数据库和文件系统存储库。Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。许多人会把版本控制系統想像成某种“时光机器”。 版本控制是管理数据变更的一种技术。对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。 SVN 不但提供了常见的比较、合并、标记、提交和分支功能,SVN 还增加了追踪移动和删除的能力。此外,它还支持非ASC Ⅱ文本和二进制数据、原子性提交、HTTP 访问等特性,当SVN 被广泛使用时,也需要有个管理工具能够更方便安全地维护SVN 的用户、组、权限、库等内容,协助普通用户更好地配置管理SVN,而无需都交由可能比较繁忙的系统管理员维护。而基于Web 的Subversion 管理工具将是一种非常适合的选择。SVN 可以支持windows 和Linux 两种操作系统,在两种操作系统上运行都具有稳定性和安全性。

SVN 在设计上包括了一个抽象的网络层,这意味着SVN 的版本库可以通过各种服务器进行访问,而允许程序员为客户端“版本库访问”的API 写出先关协议的插件,理论上讲,SVN 可以使用无限数量的网络协议,目前提供了有两种服务器运行方式:一种是Subversion Standalone Server。即svnserve,一个小型的独立服务器,另一种是基于Apache Http Server,即Web 服务器,它通过mod_dav_svn 模块,客户端使用WebDAV/DeltaV 协议进行访问。 SVN站在更高层次上对现在的安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。 SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。 SVN能在跨接Internet, Intranet, Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的

LINUX下SVN安装

环境 1. 安装Apache 2.2.14 2. 安装Subversion 1.6.6 3. 安装后的系统设置 4. Apache设置 5. svn库的配置 6. 运行SVN服务器 Created by okala at 2009-12-25 环境: Red Hat Enterprise Linux Server release 5.3 (Tikanga) httpd-2.2.14.tar.gz subversion-1.6.6.tar.gz 到官网https://www.wendangku.net/doc/7318022480.html,/ 下载当前最新的稳定版本subversion-1.6.6.tar.gz 到官网https://www.wendangku.net/doc/7318022480.html,/ 下载当前最新的稳定版本httpd-2.2.14.tar.gz 1. 安装Apache 2.2.14 用root账号执行以下命令: 引用 tar zxf httpd-2.2.14.tar.gz #解压到当前目录 引用 cd httpd-2.2.14 #进入解压后的目录 引用

./configure --prefix=/local/svnroot/apache2 --enable-so --enable-mods-shared=all --enable-dav=share --enable-dav-fs --with-ldap --enable-ldap --enable-authnz-ldap --enable-authn-alias #定义安装的目标路径(可据自己需要修改),使能LDAP 引用 make #编译 引用 make install #安装 引用 /local/svnroot/apache2/bin/apachectl start #启动Apache 用IE访问以下网址,http://hostIP/,如果提示It works!,则Apache安装成功。 然后就可以先停止Apache了: 引用 /local/svnroot/apache2/bin/apachectl stop #停止Apache 2. 安装Subversion 1.6.6 用root账号执行以下命令: 引用 tar zxf subversion-1.6.6.tar.gz #解压到当前目录 引用 cd subversion-1.6.6

linux下搭建svn服务器(doc 8页)

linux下搭建svn服务器(doc 8页)

Linux下搭建SVN服务器环境(svnserve方式) 环境:redhat5(apr.apr-util.zlib.subversion的压缩文件都是放在/usr/linuxsvn目录下,下面的解压命令tar zvxf解压出来的文件就直接是放在这个目录下,文件名跟压缩文件的名字是一样的) 一、安装apr、apr-util跟zlib 1、下载apr、apr-util与zlib apr-1.3.3.tar.gz apr-util-1.3.4.tar.gz zlib-1.2.3.tar.gz openssl-0.9.8k.tar.gz httpd-2.2.9.tar.bz2 libxml2-2.7.3.tar.gz 2、解压 tar zvxf apr-1.3.3.tar.gz

打开浏览器输入http://服务器ip 如果出现 It Works! Apache安装成功 如果出现这个错误Invalid command 'AuthDigestProvider', perhaps misspelled or defined by a module not included in the server configuration /usr/local/apache2/conf/extra/httpd-dav.conf 提示这个文件31行有问题,那么你就 Vi /usr/local/apache2/conf/extra/httpd-dav.conf 找到31行,把这个注释掉# AuthDigestProvider file 这样就ok了! cd openssl-0.9.8k ./config --prefix=/usr/local/ssl/ make make install cd libxml2-2.7.3 vi INSTALL ./configure --help ./configure make make install cd openssl-0.9.8k ./config ./config -t

SVN使用手册(最全版)

SVN环境搭建及使用手册 一、SVN介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。 二、SVN安装包介绍(安装包存放在服务器上D:\安装包\SVN) 服务端:SVN服务端安装包是VisualSVN-Server-3.6.0-x64.msi。 客户端:客户端软件主要包括下列3个文件 1. TortoiseSVN-1.8.8.25755-x64-svn-1.8.10.msi ----SVN客户端安装包 2. LanguagePack_1.9.5.27581-x64-zh_CN.msi ----SVN客户端语言包 3. AnkhSvn-2.5.12471.17.msi -----SVN针对Visual Studio的插件 三、搭建SVN服务端详细说明 第一步:搭建SVN团队项目、在服务器上打开已安装的SVN服务端、新建一个项目文件夹、创建完成后、右键项目复制项目URL 具体如下图

第二步:创建SVN用户、及设置密码、如下图 第三步:SVN服务端创建项目完成及创建用户后、使用SVN客户端将程序代码等文件提交上去、选中需要提交的程序文件、并填写正确SVN服务端项目的URL地址、

四、在日常开发中使用SVN的常用操作主要有:签出程序、文件合并、代码文件撤销、版本回滚、及历史版本控制等 说明:使用SVN版本控制,必须遵循4个原则。 1.新建文件前获取最新的程序代码、新建文件后先提交文件、再进行详细开发或编辑。 2.尽量避免多人同时处理同一个文件(svn毕竟不是那么优秀、无法智能将代码成功合并)。 3.项目成员提交程序前、必须获取最新的程序、编译且没问题、再进行提交操作。 4.提交代码必须选择解决方案进行代码提交、请勿选择其中某项目进行提交。 (1)签出最新程序:选择解决方案右键--》Update Solution to Latest Version, 如下图 (2)代码文件合并:如svn上的文件与本地文件产生冲突、则会在Pending Changes 中高亮显示、双击文件打开双方文件差异、合并完成后、点击Commit进行合并后文件提交。如下图

SVN命令使用手册

SVN命令使用手册修改版本记录 M:修改A:添加D:删除

SVN命令使用 一、常用命令 1.Svnadmin create创建库 svnadmin create path 在windows版本上: D:\>svnadmin create test2 D:\> 通过dir来列出目录中文件,已经包含test2,如图1所示: 图1 说明此时已经成功建立 2.Svn import导入项目 svn import project_path svn_lib_path -m “comment” 举例: 假设有一个工程名称unismg,代码的文件目录是unicom; A、我们在D盘新建目录unismg,在此目录下新建三个文件目录,如图2所示: 图2

trunk中存放的是项目主线;branches中存放源码分支;tags存放在开发过程中做的标签。 B、我们将代码unicom放到d:\unismg\trunk\中 C、执行命令D:\>svn import d:\unismg file:///d:/test2/unismg -m "initial import unismg" 结果如图3所示: 图3 这样我们就将工程代码导入svn库中管理。此时删除D:\>unismg目录也没有关系,因为你的源代码已经在SVN库中管理了。 有人会有疑问,为什么我到test2目录中去找*.c文件怎么一个没有找到啊,是的SVN 管理代码,并不是简单的保存文件,而是利用bdb管理的,所以你看不到源码存在。 之后你可以使用后续的命令来工作了。 多说一句,关于svn_lib_path的几种形式: file:///直接版本访问(本地磁盘) http://通过配置subversion的Apache服务器的WebDAV协议 https://与http://相似,只不过增加了ssh协议 Svn://通过svnserver服务自定义的协议 Svn+ssh://与svn://相似,但是通过SSH协议封装 比如,联通在信网关在30.251linux服务器上,使用的是svnserver服务自定义的协议,那么,导入工程代码时应采用的命令是: svn import $path/proj/unismg svn://192.168.30.251:3482-m "initial import unismg" 3.Svn co: 将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 举例: svn co svn://192.168.30.251:3482/trunk/unicom 下面信息就是从库中下载的代码信息。

UNIX LINUX开发环境使用SVN方法探讨

Unix&Linux开发环境使用SVN方法探讨一、 DAS现有的工作模式: 二、使用SVN的工作方式

三、DAS开发环境 DAS系统的开发环境种类多,常用到有Solaris、AIX、HP-UX、Redhat等,SVN命令行支持所有的开发平台,可以通过SVN命令快速执行操作。也可以通过JAVA的方式,运行在Eclipse或者第三方图形工具。 SVN支持平台列表 四、SVN客户端常用命令简介: 1、检出 svn co http://路径(目录或文件的全路径)[本地目录全路径] --username用户名--password密码svn co svn://路径(目录或文件的全路径)[本地目录全路径] --username用户名--password密码 svn checkout http://路径(目录或文件的全路径)[本地目录全路径] --username用户名 svn checkout svn://路径(目录或文件的全路径)[本地目录全路径] --username用户名 注:如果不带--password参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。 其中username与password前是两个短线,不是一个。 不指定本地目录全路径,则检出到当前目录下。 例子: svn co svn://192.168.0.3/测试工具/home/testtools--username wzhnsc svn co http://192.168.0.3/test/testapp --username wzhnsc svn checkout svn://192.168.0.3/测试工具/home/testtools--username wzhnsc svn checkouthttp://192.168.0.3/test/testapp --username wzhnsc 2、导出(导出一个干净的不带.svn文件夹的目录树) svn export[-r版本号] http://路径(目录或文件的全路径) [本地目录全路径] --username用户名 svn export[-r版本号] svn://路径(目录或文件的全路径) [本地目录全路径] --username用户名 svn export本地检出的(即带有.svn文件夹的)目录全路径要导出的本地目录全路径注:第一种从版本库导出干净工作目录树的形式是指定URL, 如果指定了修订版本号,会导出相应的版本, 如果没有指定修订版本,则会导出最新的,导出到指定位置。 如果省略本地目录全路径,URL的最后一部分会作为本地目录的名字。

利用SVN对软件项目进行版本控制管理_闫晗

TECHNOLOGY TREND [摘要]在中小规模软件项目的开发过程中,通常由多人分工、共同完成,这就涉及到大量的源代码和文档。即使在沟通充分情况下,多 人维护同一份源代码也会出现混乱情况,如何对这些源代码和文档进行有效版本管理,并进行最终整合,是软件项目能否成功的关键之一。[关键词]版本控制;SVN VisualSVN ;Server ;TortoiseSVN 利用SVN 对软件项目进行版本控制管理 闫晗 (天津港信息技术发展有限公司,天津市 300000) 在中小规模软件项目的开发过程中,通常由多人分工、共同完成,这就涉及到大量的源代码和文档。即使在沟通充分的情况下,多人维护同一份源代码也会出现混乱的情况,如何对这些源代码和文档进行有效的版本管理,并进行最终整合,是软件项目能否成功的关键之一!本文简要介绍一套Windows 操作系统下利用免费、开源软件构建的高效、可靠的SVN 版本管理系统及其日常备份方法。 1SVN 简介SVN (Subversion )是一种版本管理系统,其前身是CVS (Con-currentVersions System ),它是根据CVS 的功能为基础来设计的,它除包括了CVS 的大多数特点外,还有一些新的功能:文件目录可以方便的改名、基于数据库的版本库、操作速度提升、权限管理更完善等。 SVN 通过对不同项目建立各自独立的版本库进行管理,每个版本库很像一个基于数据库的文件服务器,可以记录每一次文件和目录的修改内容,这使得用户可以取得文件以前的版本,检查所做的任何更改。SVN 采用HTTP 方式访问版本库,从而使用户可以在不同的电脑上获得(CheckOut )项目文件,经修改后再提交(Import )到SVN 服务器。另外,SVN 允许多个用户对同一份文件进行修改,当提交(Im-port )到SVN 服务器时会自动对该文件的不同用户版本进行融合(Merge )。当融合过程中有冲突(Conflict )发生时,SVN 会给出提示信息,用户可以借助SVN 的文档比较功能来解决冲突。 借助SVN 的版本管理,所有开发人员的项目文件都可被同步更新,因而开发工作可能变得非常顺利。文章所介绍的SVN 版本管理系统主要用到VisualSVN Server 和TortoiseSVN 这两个软件,VisualSVN Server 是一款图形化的SVN 服务器软件,提供Subversion 、Apache 服务器(提供HTTP 服务)和用户及权限管理等功能;TortoiseSVN 作为一款SVN 客户端软件,通过将功能项目嵌入到资源管理器的右键菜单,并借助其强大的图形化操作方式为用户提供方便快捷的SVN 服务。读者可以在https://www.wendangku.net/doc/7318022480.html, 和https://www.wendangku.net/doc/7318022480.html,/免费下载到这两个软件的最新版本。 2SVN 系统配置和使用2.1服务器端 在服务器安装端VisualSVN Server 的过程中,需要填写一个HTTP 服务端口号,如要采用安全连接,可勾选“Use secure connec-tion(https://)”选项,其他部分采用默认设置即可。 VisualSVN Server 中主要包括版本库(Repositories )、用户( Users )和组(Groups )三部分,通过各自上下文菜单可以新建版本库、用户和组。通过版本库的上下文菜单“Properties ”可以设置其访问用户和权限,同时其HTTP 访问地址也可通过右键菜单“CopyUrlto Clipboard ”拷贝至剪贴板,例如:http://192.168.0.55:8888/svn/a-jsys/。至此,一个新版本库建立完成,非常高效、便捷! 2.2客户端 安装过程无需太多配置,安装完成并需要重新启动后,资源管理器的右键菜单会增加多个TortoiseSVN 项目。 接下来向SVN 服务器中导入项目,项目结构可以按照“项目源码”、“项目文档”等进行分类以方便管理。在项目文件夹上点击右键并选择“Import ”菜单,在弹出的对话框中的“URLofrepository ”中填入刚才拷贝的URL 地址并点击OK ,在填入用户名和密码后,即可开始将项目导入SVN 服务器。 在导入完成后,还需要对刚才导入的项目通过右键上下文菜单“SVNCheckout ”检出,以后在该文件夹中对文件所进行的新增、修改、删除等操作都将被SVN 记录。 被纳入SVN 管理的文件夹和文件图标会根据不同状态发生改变,常见的有:“绿色√”表示没有被本地修改过;“红色!”表示被本地修改过;“黄色!”表示和服务器上版本存在冲突且无法自动融合;“蓝色?”表示该文件或文件夹为新增,不受版本控制,可以在提交对话框中选择是否提交到SVN 服务器。 在检出后的项目文件夹上点击右键,我们会发现新增了许多Tor-toiseSVN 菜单项,下面对常用的几个菜单进行介绍: SVNUpdate-更新,使本地项目文件与SVN 服务器进行同步。 SVNCommit-提交,提交本地修改后的项目文件至SVN 服务器,以便其他项目成员进行同步更新。 Revert-还原,可以将指定文件或文件夹还原至服务器最新版本。Show Diff-显示不同,该功能十分有用,主要用于本地版本与服务器版本存在冲突时进行对比。 通过以上的简单操作,我们已经构建起一套完整的SVN 版本控制系统,完全可以胜任中小规模软件开发的版本控制管理。SVN 服务器中存储着各个项目的版本库数据,因此也要做好这些数据的日常备份。 3SVN 服务器备份 VisualSVNServer 在数据备份方面提供了一条svnadmin 命令,借助批处理程序并结合Windows 系统的“任务计划”功能对版本库数据进行备份。 备份过程主要涉及到2个文件:backup.bat 和backupcmd.bat 1)backup.bat 文件作为主程序,其主要内容为:@echooff setSVN_HOME="C:\Program Files\VisualSVNServer"setSVN_ROOT=E:\Repositories setBACKUP_SVN_ROOT=E:\svnrootbak setBACKUP_DIRECTORY=%BACKUP_SVN_ROOT %\%date ~0,10%、 ifexist%BACKUP_DIRECTORY %gotocheck mkdir%BACKUP_DIRECTORY % for/r%SVN_ROOT %%%Iin(.)do@ifexist"%%I\conf\svnserve conf"call%BACKUP_SVN_ROOT %\backupcmd.bat"%%~fI"%%~nI end 2)backupcmd.bat 文件作为副程序被backup.bat 调用,其内容 为: @%SVN_HOME%\bin\svnadmin hotcopy%1%BACKUP_DI-RECTORY %\%2 本例中,在SVN 服务器分区E 下建立文件夹svnrootbak ,并将上 述三个文件拷贝至该文件夹下,通过Windows 的任务计划功能设定在每天特定时间执行backup.bat ,即可实现无人职守的版本库备份。 在中小规模软件项目的开发过程中,为了进行有效的协同开发而进行版本控制是一个基本要求。近两年,基于开源的SVN 构建的版本控制系统逐渐成为对软件项目开发进行版本控制的首选。但版本控制不只局限于软件开发领域,在档案管理、信息管理等领域也可得到应用。 应用科技 59

linux-SVN的介绍及使用方法

一、Linux-SVN的介绍及使用方法 1. SVN简介 SVN 是subversion简称,是一个开源的版本控制系统。我们在解bug过程中主要用于对解决某个bug而引起代码变动的情况(俗称patch)的提交,系统集成组在某一时间会取出SVN中一定阶段内提交的patch进行集成,从而更新系统的版本。 linux系统中安装svn,主要使用命令apt-get install subversion 2. SVN使用 2.1 从SVN服务器拷贝svn目录 命令:$ svn co http://255.255.255.255(IP地址)/svn/ 可先登录http://255.255.255.255/svn,输入用户名和密码(需在管理员处开通相应上传下载权限) ①svn add命令 用于将patch提交至本地版本库(加入版本控制),还未提交至远程服务器,不会更改远程(http://255.255.255.255/svn/)上的内容。另外,svn revert是撤销此次添加(这里不常用)。 $ svn add 007_fix_name_issue_000000.patch 该命令执行后,终端显示情况如下: ②svn commit命令 将本地版本中添加的文件上传到远程服务器上,更新服务器上的内容。 $ svn commit 007_fix_name_issue_000000.patch -m "fix name issue (as an example)" 其中-m 表示-message,“”中的内容表示该patch具体修改问题的描述信息,描述信息必不可少!有助于后续patch提交与否的验证。 该命令执行后,终端显示情况如下:

linux下svn管理员手册

1.安装apr tar xvfz apr-0.9.17.tar.gz ./configure 2.安装apr-util tar xvfz apr-util-0.9.15.tar.gz ./configure --with-apr=/usr/local/apr/ 3.安装subversion-1.5.3 ./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/ --with-apr-util=/us r/local/apr-util/ 4.创建库文件所在的目录 mkdir /export/svncheck/ 创建版本库 mkdir /export/svncheck/版本库名 /usr/local/svn/bin/svnadmin create /export/svncheck/版本库名 5.启动SVN /usr/local/svn/bin/svnserve -d -r /export/svncheck/ 配置用户和权限 创建项目库同时也会建立自己的权限配置文件,权限配置目录: /export/svncheck/版本库名/conf/ 1. 修改svnserve.conf: # auth-access = write # password-db = passwd 改为:(将#和空格去掉) auth-access = write //通过验证的用户才能有读写的权限 password-db = passwd //验证用户所使用的文件passwd 2. 添加用户 修改同目录的passwd文件 [users] admin = 123456 //以名值的方式存储用户名和密码“用户名 = 密码” 3. 设置访问权限 修改同目录下的authz文件来设置访问权限 在[groups]下创建用户组例如这里是: [groups] Admin=admin Developer=developer1,developer2 以上便创建了两个用户组,分别是admin和developer和其相应的组的成员。 设置访问路径 [/] *=r @admin=rw

svn常用命令详解

一.SVN导出(check out 和export的区别) 1.check out跟check in对应,export跟import对应; 2.check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关 联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。 3.export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行 Update和Commit操作。导出文件夹下没有.svn目录。 二.linux下svn命令大全 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“[-N][--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage“[--force] PATH 例如:svn lock -m “lock test file“test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svn status -v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改

项目管理版本控制SVN实践教程

针对原文做了两个修改,见文中【修改】部分,不然不能正确配置服务器,并且添加了一些注释(flywen 2010-9-28) 原文出处: https://www.wendangku.net/doc/7318022480.html,/ttzhang/archive/2008/11/03/1325102.html https://www.wendangku.net/doc/7318022480.html,/ttzhang/archive/2008/11/04/1325940.html 文章版权归原作者Forrest Zhang所有。 一、VisualSVN Server的配置和使用方法【服务器端】 1.1 VisualSVN Server的安装 最新版本是1.6.1,你可以在这里下载: https://www.wendangku.net/doc/7318022480.html,/files/VisualSVN-Server-1.6.1.msi VisualSVN Server,最新更新版本是1.6.2,你可以在这里下载: https://www.wendangku.net/doc/7318022480.html,/files/VisualSVN-Server-1.6.2.msi VisualSVN Server Documentation下载: https://www.wendangku.net/doc/7318022480.html,/server/doc/VisualSVN-Server.pdf 下载后,运行VisualSVN-Serv er-1.6.1.msi程序,点击Next,下面的截图顺序即为安装步骤: 图1:

图2: 注意:Server Port那里,默认端口有80/81/8080三个;如果最后面的CheckBox被选中,则表示使用安全连接【https协议】,这是的端口只有433/8433二个可用。Location 是服务器端的安装位置,Repositories是代码仓库,这里保留一份总的代码,别人的需要从中check out代码,修改后再commit回这个仓库 图3:

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和空,空表示没有任何权限。 下图是我增加的用户组:(注意:等号后留有空格) 增加后:

常用linux svn命令

linux下svn客户端常用命令: 1.svnadmin create path创建一个新的版本库,(path为你想创建版本库的目录路径,如创建版本库目录为cellsms:svnadmin create /home/c7mon/svn/cellsms)。 2.svn mkdir URL 创建目录,向版本库新添加一个目录,(立即提交,所以需要日志信息):如新增trunk目录:svn mkdir file:///home/c7mon/svn/cellsms/trunk -m "此目录的说明信息"。 svn mkdir newdir在工作拷贝下新建一个目录,如新增hello目录,即在工作拷贝(svn checkout数据的目录下):svn mkdir hello。 3.svn import URL向版本库导入数据,需要日志信息。如导入当前目录下wwm目录到版本库trunk目录中:svn import file:///home/c7mon/svn/cellsms/trunk/wwm -m "日志说明信息" 4.svn checkout URL导出一个工作拷贝,cd到你要存放导出数据的目录,如导出wwm 目录:svn checkout file:///home/c7mon/svn/cellsms/trunk/wwm,或svn checkout svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/wwm。svn://方式需要用户名和密码,(svn co为svn checkout简写)。 5.svn commit 提交工作拷贝的修改到版本库中,如对wwm下的文件进行修改后提交:svn commit -m "",""可以为空,最好加上日志说明。svn ci 为其简写。 6.svn add file/dir新添加的文件或目录,此处dir为linux命令mkdir在工作拷贝下创建的目录,不是svn mkdir命令创建的目录,所以需要svn add预订添加。svn add需要在工作拷贝下执行,如在4中svn co出的工作拷贝目录wwm下新添加了hehe.c:svn add hehe.c。然后执行svn commit提交到版本库。 7.svn copy URL URL完全的服务器端拷贝,通常用在分支和标签。如wwm项目完成后发布版本wwm_1.0: svn copy file:///home/c7mon/svn/cellsms/trunk/wwm file:///home/c7mon/svn/cellsms/trunk/tags/wwm_1.0 -m "it's the wwm_1.0 for anhui" 。或svn copy svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/wwm svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/tags/wwm_1.0 -m "it's the wwm_1.0 for anhui"。(tags目录需提前在版本库中建好。) 如果wwm_1.0版本出现BUG,可以拷贝tags目录下的wwm_1.0到建好的branches目录下,然后svn co 出branches下的wwm_1.0进行修改。这样trunk目录下的wwm可以继续进行开发,而不会与branches下1.0版本的修改产生冲突。当branches下的wwm_1.0版本修复bug后,可以使用svn merge命令,将修改的部分合并到trunk下的wwm工程中。 8.svn list URL 显示path目录下的所有属于版本库的文件和目录(简写svn ls) 如列出cellsms下目录信息:svn list svn://192.168.3.33/home/c7mon/svn/cellsms

SVN版本控制系统中文版资料

版本控制系统(集中模式) (1) 版本控制系统指南 (5) 软件发行版本指南 (21) 版本控制系统(集中模式) 库与工作桌面的比较 工作桌面: 开发人员可以在本地修改维护源代码和版本控制系统中的文档。 库: 源代码的存储和修改记录集中在服务器上的版本控制系统中。 TortoiseSVN(小乌龟系统)介绍 1.文件描述 2.Windows资源管理器扩展。

版本控制系统核心操作 1.(检测) 2.(提交) 3.(更新) 4.(导入) 5.(导出) (检测)介绍 1.从库和存储在本地的版本控制系统中获取一个工作副本。 2.一次性操作 3.检测工作副本来源 4.本步骤应是第一步操作。

in sync(同步)

(提交)介绍 1.同步本地文件夹和库中的文件。 2.本地文件修改包括:文档和源代码的修改、删除和添加操作。 (提交)注意事项 1.应该一次性提交概念、功能和任务文件。 2.应该要确保提交的文件可以被成功编译。 3.将更改日志加入体骄傲信息中。

版本控制系统指南 1.工作区的所有文件夹和文件的图标都应该有一个标志来表明他们在资源管理器中的地位。 2.'.svn'文件夹保存版本信息。 版本控制系统修订编号 1.修订数字不仅表示本地工作区中的版本号也表示存储库的版本号。 2."HEAD"表示最新版本。 修改日志消息 修改版本跟踪: 1.修订版本号 2.作者 3.版本信息 4.修改的文件

(更新)介绍 1.从资源库中的修改更新到本地工作副本 2.同步存储库工作区;在同步时应该注意可能会发生冲突,版本控制系统可能会提示限制。

linux下svn升级

linux下svn升级 环境: 操作系统:RHEL 5.4 x86_64 SVN版本:1.4.2->1.8.8 一、检查安装包 我采用的是目前当前网站发布的版本:subversion-1.8.8 首先,需要安装预先安装六个组件,你的subversion才能正常工作。 apr-util、 apr、pcre、scons 、serf、sqlite-amalgamation -本文假定apahce已经安装! -系统在默认情况下,是已经有apr-util及apr这两个包的,只不过他们的版本较低,只支持subversion 1.4 因此,具体可以看看: # rpm -qa | grep apr apr-util-1.2.7-7.el5_3.2 apr-util-1.2.7-7.el5_3.2 apr-1.2.7-11.el5_3.1 xorg-x11-drv-dynapro-1.1.0-2 apr-1.2.7-11.el5_3.1 而subversion要求较高的版本,为此,我们需要删除系统自带的apr,apr-util 这两个包,强行删掉! # rpm -e --allmatches apr-util error: Failed dependencies: libaprutil-1.so.0()(64bit) is needed by (installed) subversion-1.4.2-4.el5_3.1.x86_64 libaprutil-1.so.0()(64bit) is needed by (installed) httpd-2.2.3-31.el5.centos.x86_64 libaprutil-1.so.0 is needed by (installed) subversion-1.4.2-4.el5_3.1.i386 # rpm -e --allmatches apr-util --nodeps # rpm -e --allmatches apr --nodeps .

Linux下SVN命令使用大全

Linux下SVN命令使用大全 版本号V0.1 修订内容 详细修订日期文件性质 备注正在继续添加和完善... 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件、目录或符号链 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.c A foo.c 当添加一个目录,svn add缺省的行为方式是递归的: $ svn add testdir A testdir

A testdir/a A testdir/b A testdir/c A testdir/d 你可以只添加一个目录而不包括其内容: $ svn add --non-recursive otherdir A otherdir 通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:$ svn add * --force A foo.c A somedir/bar.c A 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 ci 4、加锁/解锁 svn lock -m ―LockMessage― [--force] PATH 例如:svn lock -m ―lock test file― test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php (更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)

相关文档