创建仓库:
svnadmin create /path/to/repository
修改一下配置:
vi /path/to/repository/conf/svnserve.conf
如果不是开源项目的话可能需要配置禁止匿名访问:
[general]
anon-access = none
auth-access = write
password-db = passwd
设定用户密码:
vi /path/to/repository/conf/passwd
假设创建一个密码是123456的用户laowang
[users]
laowang = 123456
注意:这个密码只用于演示,它的强度无疑是很糟糕的。
此外,还可以设定基于路径的authz认证方式,读者请自己看配置文件,这里就不多说了。
subversion有很多运行方式,比如说搭配apache使用,不过它本身也可以单独作为服务存在:
svn -d -r /path/to/repository
在客户端可以使用svn import的方法来创建项目(也可以用svn mkdir的方式来创建项目,就不多说了):
mkdir -p /path/to/project/trunk
mkdir -p /path/to/project/branches
mkdir -p /path/to/project/tags
svn import /path/to/project svn://server/project
其中,trunk,branches,tags目录并不是必须的,但多数人习惯这样,所以最好不要标新立异。
接下来就可以checkout了:
svn co svn://server/project/trunk project
开发时常用的命令很简单,基本就是更新svn up,提交svn ci之类的。
在项目开发初期,可以仅仅使用trunk来管理代码,不过一旦项目发展起来,开发时就不应该直接操作trunk了,此时应该使用branches来管理代码,比如可以使用下面的命令建立一个名为1.x的branches:
svn copy svn://server/project/trunk svn://server/project/branches/1.x
开发工作都在branches中完成,一旦完成了编码,就可以把代码合并到trunk中去:
先要查查branches是什么时候创建的:
svn log --stop-on-copy svn://server/project/branches/1.x
假设查到的版本号是123, 然后进入到trunk工作拷贝中,执行:
svn merge -r 123:HEAD svn://server/project/branches/1.x
最后提交即可:
svn commit
这还不算完,此时应该在tags里发布这个新版本(比如说版本号是1.0):
svn copy svn://server/project/trunk svn://server/project/tags/1.0
为了记牢一点,再唠叨一下trunk,branches,tags的用途:
trunk:仅保存最新的稳定代码,代码的改变尽可能通过branches来merge,而不要手动commit代码。
branches:用来管理代码的日常开发,可以手动commit代码。
tags:仅保存各个版本的代码快照,比如类似版本:1.0,1.1,1.2等等。
不同人针对同样的文件提交修改的时候,subversion会尽可能的自动合并修改,不过有的时候无法还得手动来解决冲突,有以下几种方式:
1:放弃自己的修改,转而使用服务器端的代码版本:
svn revert file.php
svn update file.php
2:使用自己的代码版本覆盖服务端的修改:
cp file.php.mine file.php
svn resolved file.php
3:手动处理<<<<<<<和>>>>>>>标识出来的冲突代码:
svn resolved file.php
有一些文件和项目本身掺杂在一起,但不适合作为版本控制的保护对象,这时应该忽略它们,比如说Smarty的模板编译目录templates_c:
svn propedit svn:ignore /path/to/templates_c
使用subversion的自动属性功能可以节省很多精力,比如说想让不同系统的用户在得到php文件的时候使用适合自己的行结束符,可以这样:
vi ~/.subversion/config
[miscellany]
enable-auto-props = yes
[auto-props]
*.php = svn:eol-style=native
注意:如果你使用的是windows操作系统,配置文件config的路径是:%APPDATA%\Subversion\config
subversion有很多钩子脚本,可以方便维护工作,其路径位于:
cd /path/to/repository/hooks
里面有很多现成的模板,比如pre-commit,post-commit,我们可以用它来实现很多效果:
比如说我们想保证所有的svn ci操作都要编写适当的日志信息,可以这样:
cp pre-commit.tmpl pre-commit
这样就够了,钩子模板缺省的内容就实现了这个效果,具体的实现内容可以参考钩子本身代码。
post-commit文件也可以有很多用途,比如说我们可以利用它来自动更新线上代码,大概的代码如下:
/usr/bin/svn update /path/to/work/copy
最后说说svn+ssh的连接方式,本文的例子基本都是使用单纯的svn连接方式,不过svn+ssh可以使用系统本身的账户作为验证方式,并且传输过程是加密的,所以更方便,更安全。
svnadmin create /path/to/repository
groupadd subversion
usermod -G subversion laowang
chgrp -R subversion /path/to/repository
chmod -R 770 /path/to/repository
进行了如上的准备工作后,就可以启动服务了:
svn -t -r /path/to/repository
然后在客户端设置配置文件:
vi ~/.subversion/config
[tunnels]
# ssh = $SVN_SSH ssh
缺省情况下,这里使用了一个名为SVN_SSH的环境变量,所以你需要设定一下它:
export SVN_SSH="/usr/bin/ssh [-p port ...]"
注意:如果是windows的花,可以使用putty中的 plink,并在环境变量中设定SVN_SSH。
设定好了之后,就可以使用svn+ssh的方式了:
svn+ssh://server/path/to/repository/...
注意,使用svn+ssh连接的时候,后面是完整的物理路径,这和单纯使用svn连接时是不一样的。
好了,subversion常用的功能基本都介绍了一遍,时不时拿出来看两眼,应该就不会忘记了。
给SVN设置代理的方法!
在C:\Documents and Settings\Administrator\Application Data\Subversion的server配置文件下找到[global]节点
然后添加
http-proxy-host = 172.100.1.28 代理ip
http-proxy-port = 8080 代理端口
http-proxy-username = haoxw svn用户名
http-proxy-password = haoxw12 svn密码
分享到:
相关推荐
**SVN SubVersion**,全称为Subversion,是一款开源的版本控制系统,被广泛应用于软件开发领域,用以管理和跟踪项目中的文件和目录变更。Subversion的设计理念是为团队协作提供一个可靠的版本化文件存储系统,使得...
基于SUSE Linux Enterprise Server 11.3整理好的Linux版SVN工具subversion,版本1.8.11。安装后可以将虚拟机映射到win上直接使用。
Subversion(SVN)是一个开源的版本控制系统,用于管理对软件项目源代码的更改。它在软件开发领域中广泛使用,特别是在多人协作的环境中,帮助团队成员协同工作,跟踪文件的修改历史,以及解决合并冲突等问题。...
SVN(Subversion)是一种广泛使用的版本控制系统,用于管理和跟踪文件和目录的变更。它允许多人协同工作在同一个项目上,同时保持代码的历史记录,确保团队成员之间的一致性和协调性。Subversion的核心设计思想是将...
Setup-Subversion-1.7.5; SVNService; TortoiseSVN-1.7.12.24070-win32-svn-1.7.9; LanguagePack_1.7.12.24070-win32-zh_CN;
【SVN配置管理subversion服务器端和客户端操作】 SVN(Subversion)是一种版本控制系统,用于管理和跟踪项目源代码和其他文件的更改。本教程将详细解释如何配置SVN服务器端和客户端,包括库的搭建、文件操作以及...
Subversion(简称SVN)就是这样一款广泛应用的集中式版本控制系统。本文将详细介绍如何在Ubuntu操作系统上安装并配置Subversion,以实现有效的代码管理。 首先,我们来了解"svn_subversion"这个主题。"svn"代表...
SVNSubversion以及Subversion的详尽资料,word及PDF文档,和3个不同版本的安装文件,svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。欢迎大家...
### Subversion (SVN) 深入浅出解析 #### 一、Subversion 的诞生背景与发展历程 Subversion(简称 SVN),作为一种先进的版本控制系统,它的出现是对早期版本控制系统CVS(Concurrent Versions System)的一次重大...
Subversion 命令行客户端:svn svn选项 svn子命令 svnadmin svnadmin选项 svnadmin子命令 svnlook svnlook选项 svnlook子命令 svnsync svnsync选项 svnsync子命令 svnserve svnserve选项 svnversion mod_dav_...
Subversion(SVN)是一种广泛使用的版本控制系统,用于管理和跟踪文件和目录的变更。它允许多人协同工作,并在代码修改、合并和版本控制方面提供强大的功能。Subversion服务端是整个系统的核心,负责存储和管理项目...
本人亲测win7 xp 可用如有问题可联系我qq1173456265
Subversion(简称svn)是流行的版本控制系统,用于管理源代码版本。Jenkins SVN 插件是将这两者结合的关键,它使得 Jenkins 能够与 Subversion 进行交互,例如拉取代码、跟踪代码变更以及触发构建。 **Jenkins SVN ...
总结,安装`subversion-1.6.18`涉及了Linux环境的软件管理、源码编译、服务器配置以及版本控制的基本概念。虽然这里介绍的是一个较老的版本,但基本流程对于安装其他版本的Subversion也是适用的。在实际操作中,建议...
Subversion,简称svn,是一种广泛使用的版本控制系统,旨在取代CVS(Concurrent Versions System)。它是一个免费、开源的软件,可以管理任何类型的文件,特别适合于管理程序源代码。Subversion的设计目标是提供与...
svn (subversion)使用记录 (1): 安装subversion 直接使用软件管理工具即可 也可以自己编译源码安装,到subversion.apache.org去自己下载编译即可 (2): 创建 svn 仓库
SVN Books Subversion 1.8 Subversion 是一款开源的版本控制系统,它允许开发者跟踪和管理代码的变化。Subversion 1.8 是 Subversion 系列中的一个重要版本,它提供了许多新的特性和改进。 什么是 Subversion? ...
Subversion(简称svn)是一种广泛使用的版本控制系统,它在IT行业中扮演着至关重要的角色,特别是在软件开发领域。Subversion的设计目标是替代CVS( Concurrent Versions System),为用户提供更高效、安全且易于...
rapidsvn安装所需的全部资源包,可离线安装(gtk2和openssl的rpm包只上传了centos7版本) apr-1.5.2.tar.gz apr-util-1.5.4.tar.bz2 neon-0.29.6.tar.gz(可选,neon是subversion解析web http协议的包,视subversion...
《Myeclipse SVN插件Subversion详解》 在软件开发过程中,版本控制工具的重要性不言而喻,Subversion(简称SVN)就是其中的一款杰出代表。对于Myeclipse这款强大的Java集成开发环境(IDE),集成SVN插件是提升团队...