久闻版本控制软件的大名,但是一直不了解版本控制软件的杰出之处。原来建过github账号但是当网盘来使,用过TortoiseSVN是因为sae部署博客的需要。现在需要团队协作完成任务了,认真研究了一下svn。下面是入门指南,最后有svn相关的链接。
为什么需要使用版本控制软件?
多人协作一起写代码的时候,需要相互共享代码。使用SVN通常是指定一台机器为服务端,建立一个代码仓库。每个组里的成员在完成了自己的代码以后,向服务端提交(commit),服务端更新文件,但是不会把旧的文件删除,而是通过某种方式保存下来,其他机子能够通过服务端同步到最新的代码。同时每一次提交,都会产生一个新的版本号,客户端可以向服务端申请旧版本的代码。同时SVN可以对用户设定权限,让每个人都能够合理访问代码库。这样就实现了版本控制。
入门指南
这篇文章更像一个小结。如果你从来没有接触过版本控制软件,推荐先在自己的机子上装一个VisualSVN和TortoiseSVN尝试一下,有一个感性的认识,能加快学习。如何使用VisualSVN和TortoiseSVN,在文章结尾的链接处会给出。
基本概念
1
2
3
4
|
checkout 客户端命令:从服务端申请某个版本的project到本地 add 客户端命令:当本地添加了新的文件或目录的时候,向服务端发信息,告知服务端 commit 客户端命令:将修改提交给服务端,服务端生成新版本的project import 服务端命令:导入一个文件夹到代码库中(svn会复制,原文件夹不受影响) |
1
|
还有更多命令,可以google。不过入门先了解这些就够了 |
windows下工具
做服务端可以用VisualSVN,比较方便,图形化界面控制,支持https访问。缺点好像在linux无法访问,我的尝试是这样的。
客户端推荐使用TortoiseSVN,集成在鼠标右键,很方便。
windows下用subversion没有试过,想了解的话,博文最底部的链接里有相应内容。
linux下工具
直接使用subversion。SVN是轻量级的服务器,支持svn://或者svn+ssh://访问。不支持http://,https://,file:///访问。不过SVN可以和apache整合,以提供支持。
ubuntu下
1
|
sudo apt-get install subversion |
可以直接安装。
linux下Subversion使用
1
|
svnadmin create path 在 path 处建立一个代码仓库 |
这个代码仓库对应的配置文件在 path/conf/svnserve.conf
里面几个模块
1
2
3
4
5
6
7
8
9
|
anon-access 非控监权用户的权限 anon-access = none 代表无 read 代表只读 write 代表可读写 auth-access 控监权用户的权限 同上 password-db 用户信息储存的文件 password-db=passwd 表示用户信息储存在与svnserve.conf同目录的passwd文件中 配置默认是passwd文件 authz-db 权限配置文件 realm 认证域 |
相关配置文件格式
用户名口令文件。也就是上面的passwd文件
1
|
username = password |
权限配置文件。authz-db
1
2
3
4
5
6
7
8
|
[groups] <用户组>=<用户列表> 用户列表允许有用户组,引用用户组前加前缀@ [版本库:路径] <用户名>=<权限> <用户组>=<权限> * = <权限> 表示对所有用户 权限取值 '' 'r' 'rw' 分别表示 无权限,只读,读写 (不带引号) |
更多链接
个人独立博客 http://nanshu.sinaapp.com http://1.nanshu.sinaapp.com/?p=111
图解VisualSVN的配置和使用 http://www.jb51.net/article/17365.htm
SVN入门及配置使用(一览) http://www.uml.org.cn/pzgl/200910239.asp
三分钟完成Subversion(SVN)服务器的配置(进入linux)http://love-love-l.blog.163.com/blog/static/21078304200892483258971/
svnserve配置文件详析http://blog.csdn.net/thinkerabc/article/details/1831025
svn命令在linux下的使用http://www.php-oa.com/2008/03/12/svnminglingzailinuxxiadeshiyong.html