一,安装要的软件
wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz
svn的官方网址是http://subversion.tigris.org
上面二个压缩文件解压后会放到同一个文件下,不要另建文件夹
二,安装独立svn
1,解压安装
到这儿就安装好了。安装独立svn,它也考虑到将来有可能会和apache结合,所以安装的时候,它把和apache结合要用到的模块都放到/usr/lib/httpd/modules,部分提示如下
Libraries have been installed in:
/usr/lib/httpd/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
2,查看svn信息
[root@BlackGhost bin]# /usr/local/svn/bin/svnserve –version
svnserve, version 1.6.1 (r37116)
compiled Jul 7 2010, 23:06:21
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
3,将svn的bin目录加到环境变量中去
[root@BlackGhost /]# PATH=$PATH:/usr/local/svn/bin
[root@BlackGhost /]# export PATH
[root@BlackGhost /]# svn
svn svnadmin svnlook svnsync
svn2abs svndumpfilter svnserve svnversion
三,建立仓库,配置svn
1,建个svn的根目录,因为项目不只一个
[zhangy@BlackGhost ~]$ mkdir -p /home/zhangy/www #-p的意思是说如果没有父目录建之
2,建个仓库
[zhangy@BlackGhost ~]$ mkdir -p /home/zhangy/www/repos
[zhangy@BlackGhost www]$ svnadmin create /home/zhangy/www/repos/
3,导入数据
[zhangy@BlackGhost ~]$ svn import ./svntest file:///home/zhangy/www/repos -m “Initial repository test”
Adding svntest/test.php
Committed revision 1.
4,修改svnserve.conf
[root@BlackGhost conf]# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
5,目录控制文件authz
[root@BlackGhost conf]# vi authz
[groups]
admin= zhangy
[repos:/]
@admin = rw
* = r
6,修改用户密码文件passwd
[root@BlackGhost conf]# vi passwd
[users]
zhangy = *****
四,启动和简单测试
1,启动svn
[root@BlackGhost www]# svnserve -d -r /home/zhangy/www
在这里特别的要注意,/home/zhangy/www是仓库的根目录,不要和[repos:/]目录重叠了。如果重叠是会提示你以下错误
[zhangy@BlackGhost checkout]$ svn co svn://127.0.0.1/
svn: Authorization failed
2,测试svn
a),checkout
[zhangy@BlackGhost checkout]$ svn co svn://127.0.0.1/repos
Authentication realm: <svn://127.0.0.1:3690> 3d0c32b1-3841-4518-b6b1-dcdb6c7ed716
Password for ‘zhangy’:
———————————————————————–
ATTENTION! Your password for authentication realm:
<svn://127.0.0.1:3690> 3d0c32b1-3841-4518-b6b1-dcdb6c7ed716
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
‘/home/zhangy/.subversion/servers’.
———————————————————————–
Store password unencrypted (yes/no)? yes
A repos/test.php
Checked out revision 1.
checkout的时候会出现Store password unencrypted,解决办法
vi /home/zhangy/.subversion/servers
找到以下内容,注释去掉并改成yes就行了
# store-plaintext-passwords = no
b),add 和submit
[zhangy@BlackGhost repos]$ svn add aaa.php
A aaa.php
[zhangy@BlackGhost repos]$ svn commit aaa.php -m “ok”
Adding aaa.php
Transmitting file data .
Committed revision 2.
1、将文件checkout到本地目录
2、往版本库中添加新的文件
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、加锁/解锁
5、更新到某个版本
6、查看文件或者目录状态
7、删除文件
8、查看日志
9、查看文件详细信息
10、比较差异
11、将两个版本之间的差异合并到当前文件
12、SVN 帮助
——————————————————————————
以上是常用命令,下面写几个不经常用的
——————————————————————————
13、版本库下的文件和目录列表
14、创建纳入版本控制下的新目录
15、恢复本地修改
16、代码库URL变更
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将
服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的
方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动
(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用
这个命令更新工作副本与仓库的对应关系。
17、解决冲突
18、输出指定文件或URL的内容。
svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。