工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.51099.com 注册 | 登陆

svn

SVN是一个版本控制软件,类似CVS,但是SVN的的有点是开源的,而且SVN的版本控制能力比CVS还要强多。

下载:http://subversion.tigris.org

当前稳定版本 http://subversion.tigris.org/downloads/subversion-1.4.6.tar.bz2

安装
tar -zxvf ...
./configure;make;make install

需要安装
http://apache.mirror.phpchina.com/apr/apr-1.2.12.tar.gz
http://apache.mirror.phpchina.com/apr/apr-util-1.2.12.tar.gz

svnserve -d
svnserve -d -r /etc/svn/pro_name //以独立方式启动


建立版本库
svnadmin create pro_name
//存储类型
--fs-type fsfs
--fs-type bdb
配置
修改pro_name/conf/svnserve.conf
anon-access = read
auth-access = write
password-db = passwd

用户密码文件
pro_name/conf/passwd

权限控制
conf/authz

导入
svn import /www/web file:///etc/svn/pro_name
查看
svn list file:///etc/svn/

checkout
svn co file:///etc/svn /www/web
hooks/post-commit
svn update /www/web

客户端安装
http://tortoisesvn.tigris.org
http://tortoisesvn.net/downloads
下载 http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi?download
setup安装即可
中文语言包 http://www.subversion.org.cn/index.php?option=com_weblinks&catid=63&Itemid=99


FAQ
Q:configure: WARNING: APR not found
需安装apr and apr-util

Q:does not appear to be a URL


Subversion控制中文目录的访问权限

方法很简单,就是将权限控制文件(authz)的格式转换为UTF-8格式,
svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制,应该使用无BOM的utf-8格式

将权限文件改成UTF-8格式的办法:使用UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。

关于UTF-8的问题如下:
1 svn不支持微软格式的UTF-8文件,不支持unicode,仅支持标准UTF-8,就是头部有一个 FF FE的文件
2 用微软自带的“记事本”编辑出来的任何unicode格式文件,svn均不认识
3 只要使用了svn 支持的标准UTF-8文件,svn 就可以很好地实现对中文的支持,包括中文用户名、中文目录、中文组名

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

中文手册 http://svndoc.iusesvn.com/

导入 svn import -m --force-log /www/web/test file:///etc/svn/test

checkout svn co file:///etc/svn/test /www/web/test

修改后 svn update /patch
自动更新
vi post-commit
#!/bin/sh
svn update /www/web/test

 

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

1条记录访客评论

仓库中版本的备份及还原形式主要有两种:
方式一:直接备份仓库整个文件夹(全部版本),重装svn程序后直接还原过去。

方式二:通过svn命令行备份和还原指定版本号的数据
    全备份:使用svnadmin hotcopy或svnsync来做,例:
svnadmin hotcopy path/to/repository path/to/backup --clean-logs

    增量备份:使用svnadmin dump的--incremental选项来实现
svnadmin dump 版本库路径及名称 --revision 上次导出的版本号:到本次要导出到的版本号 --incremental > 导出的命名

    还原版本:svnadmin load 要恢复的版本库路径及名称 < 导出的命名

svnadmin hotcopy path/to/repository path/to/backup --clean-logs

一个技巧:

如果你有一个较大的Subsersion版本库而你又想用最少的空间来将它备份下来,用这个命令(请将/repo替换成你的版本库路径)吧:

svnadmin dump --deltas /repo |bzip2 |tee dump.bz2 | md5sum >dump.md5

分步解释:
最重要的一步是 -deltas,将消耗更多的CPU资源,但拥有更有效的差异存储办法。

bzip2压缩方案比gzip慢,但换来的更好的压缩率。
更有趣的是,tee方法将压缩的数据流转向到文件dump.bz2,同时将其输出到标准输出,后者有转向给了MD5摘要计算工具。

要恢复这个版本库,检查校验值(md5sum创建的),创建一个空的版本库,恢复备份:

md5sum -c dump.md5 <dump.bz2
svnadmin create newrepo
bzcat dump.bz2 | svnadmin load newrepo

请享受压缩后用MD5校验的备份吧,最后别忘记将dump.md5和dump.bz2存储到真正安全的地方!

Post by admin on 2009, March 16, 10:37 AM 引用此文发表评论 #1


发表评论

评论内容 (必填):