转自:http://blog.csdn.net/kupepoem/article/details/8139908
软件环境:win7系统
我以前管理文档文件都是复制、备份、粘贴的方式,如果文档这方面的工作比较少还好,如果多了就感觉比较费时间。有时我的某一个文档有好几个备份,自己都搞晕了。所以要找一个工具来管理,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找到一下几句:
注意:如果在myeclipse的svn无法登录用户提交,那就把 anon-access = read改成write。使用匿名读写
[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服务或者创建一个svnservice服务(下面会讲到如何创建svnservice服务)
(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
桌面单击右键,选择SVN Checkout...菜单
设置svn目录和check out目录
导出后,看看导出目录吧!
这样就可以修改文件内容,然后再SVN commit了。我们就可以在这个目录上进行工作。
6、文件导出(不能commit,只是把文件导出)
在桌面单击右键,选择TortoiseSVN,再选择子菜单"Export..."
填写svn目录和导出目录
点击ok
7、安装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"就是我们创建服务时使用的名字。
8、SVN多项目管理
建议每个项目建一个库
在server端,新建一个目录用来存放所有的仓库。比如F:\svntest。然后在这个目录下建立每个项目独立
svnadmin create F:\svntest\repository1 --fs-type fsfs
svnadmin create F:\svntest\repository2 --fs-type fsfs
使用 svnserve -d -r F:\svntest\repository1启动。这样你的项目的url是:
svn://IP(本地可为localhost)/repository1
使用 svnserve -d -r F:\svntest\repository2 启动。这样你的项目的url是:
svn://IP(本地客位localhost)/repository2
使用仓库浏览器查看导入的效果:
在桌面单击右键
输入URL:
看看我们仓库的样子吧,哈哈!