SVN服务器创建及使用--以文档文件的管理示例
来源: http://blog.csdn.net/kupe87826/article/details/8139908
参考: http://wenku.baidu.com/view/ed3e3435ee06eff9aef807ff.html
http://blog.csdn.net/bluesmile979/article/details/3719511
http://www.subversion.org.cn/?viewnews-5
http://www.cnblogs.com/chinafine/articles/1825892.html
我以前管理文档文件都是复制、备份、粘贴的方式,如果文档这方面的工作比较少还好,如果多了就感觉比较费时间。有时我的某一个文档有好几个备份,自己都搞晕了。所以要找一个工具来管理,SVN是首选。
1、SNV简要介绍
svn( subversion)是近年来崛起的 版本管理工具,是 cvs的接班人。目前,绝大多数 开源软件都使用svn作为代码版本管理软件。
运行方式
svn服务器有2种运行方式:独立服务器和借助 apache。2种方式各有利弊,用户自行选择。
存储数据
svn存储版本数据也有2种方式: BDB(一种 事务安全型表类型)和FSFS(一种不需要数据库的 存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
2、我的选择
我因为是单机的,基本就是自己管理自己的文档,所以,运行方式选择对立服务器方式,存储数据采用FSFS(一种不需要数据库的 存储系统)方式。
3、文件下载与安装
svn服务器下载:我下载的是WANdisco Subversion 1.7.6,感觉这个版本比较好,有个win32svn版本用了有些问题,说找不到dll什么的,很奇怪的。建议WANdisco Subversion这个版本
下载链接: http://www.wandisco.com/ubersvn/download?quicktabs_os=windows#windows
客户端:TortoiseSVN就行,网上找下就ok。我版本是TortoiseSVN 1.6.5
把服务器和客户端都装上吧。
4、服务器基本设置
(1)创建SVN储存库(repository1)
运行CMD
cd D:\Program Files\WANdisco\Subversion
svnadmin create F:\svntest\repository1 --fs-type fsfs
(别忘了存储方式:FSFS一种不需要数据库的 存储系统)。)
这样会在F:\svntest\repository1,产生一些文件。conf目录是存储权限相关文件的目录;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;
(2)配置SVN服务器
打开F:\svntest\repository1\conf目录,打开svnserve.conf找到一下几句:
[general]
# password-db = passwd
# anon-access = read
# auth-access = write
去之每行开头的#,并把read改为none,其中第二行是指定身份验证的文件名,即passwd文件. anon-access = none 意思是匿名用户不能访问,必须要有用户名和密码。(注意:问题就出在这,一定要注意格式去掉注释后要顶格不能有空)
同样打开passwd文件,将
# [users]
# harry = harryssecret
# sally = sallyssecret
格式为“用户名 = 密码”,如可插入一行:admin = admin222,即为系统添加一个用户名为admin,密码为admin222的用户
(3)运行SVN服务器
运行CMD
cd D:\Program Files\WANdisco\Subversion
svnserve --daemon --root F:\svntest\repository1
服务启动,--daemon可简写为-d,--root可简写为-r,可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务(注意:这是临时打开的服务,命令执行后不能关闭窗口)
(4)初始化导入
打开"我的电脑",在你需要进行版本控制的目录上右击,选择TortoiseSVN,再选择子菜单"Import..."
设置"文件库url"为svn://localhost//svntest/repository1
点确定后就会提示文件正在导入。
需要注意的是,这里是svn文件库与svn服务是同一台计算机的情况,所以可用localhost,其它机器如果要访问svn服务,应该用svn://svn服务器的IP地址,例如svn://192.168.1.125//svntest/repository1。(这个我还正没试过,大家可以试试,哈哈!)
5、文件check out
在桌面单击右键,选择TortoiseSVN,再选择子菜单"Export..."
填写svn目录和导出目录
点击ok
6、安装svnservice
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
创建服务:
运行cmd
输入:sc create svnservice binpath= "D:\Program Files\WANdisco\Subversion\svnserve.exe --service -r F:\svntest\repository1" displayname= "SVNService" depend= Tcpip start=auto
删除服务:
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
7、SVN多项目管理
建议每个项目建一个库
在server端,新建一个目录用来存放所有的仓库。比如F:\svntest。然后在这个目录下建立每个项目独立
svnadmin create "F:\svntest\repository1"
svnadmin create "F:\svntest\repository2"
使用 svnserve -d -r "F:\svntest\repository1" 启动。这样你的项目的url是:
svn://IP(本地可为localhost)/repository1
使用 svnserve -d -r "F:\svntest\repository2" 启动。这样你的项目的url是:
svn://IP(本地客位localhost)/repository2