SVN使用blog收藏
新一篇: SQLite介绍 | 旧一篇: LUA几个相关网站和编程IDE
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>http://www.blogjava.net/coldtear/archive/2006/08/04/61668.html
运行 Subversion 服务器需要首先要建立一个版本库( Repository ),可以看作服务器上存放数据的数据库,有两种方法可以建立版本库:
1、 命令行方法:在命令行模式下,运行 svnadmin create f:/repository ,即可在 F 盘下创建一个版本库 repository 。
2、 界面操作方法:在 F:/repository 目录下,右键,选择 TortoiseSVN 下的“在此创建文件库”,文件库类型选择默认的“本地文件系统 (FSFS) ”,这样就会在该目录下创建一个版本库。
1、 在我们想要做版本控制的项目根目录下,右键,选择 TortoiseSVN 中的导入,
SVN使用收藏
| 旧一篇: test
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script> SVN 全称 subversion .一款优秀的版本控制软件。据说是可以代替CVS的下一代控制软件。
今天初次尝试配置使用。
1 SVN和版本控制软件CVS,VSS的比较
工作方式:
CVS (Concurrent Version System) 上一代的版本控制软件,版本控制的方式主要是
“合并--修改--提交”,也就是说当系统版本和当前用户的版本不一样的时候,服务器会
要求通过合并服务和客户端的版本,生成一个新的版本。提示用户版本冲突,用户修改了
对应版本之后,就可以进行相应的提交了。
VSS (Visual SourceSafe) 微软出的一款版本控制软件,它主要方式是通过"锁定--修改--解锁--提交"的方式进行版本控制的。也就说当一个用户修改一个版本的文件时,锁定该文 件,使其他用户不能够进行修改。只有当此用户解除锁定,并且提交文件以后,其他用户才可以进行文件的修改。
SVN 是他们的综合,就是说具有以上两种的功能。
优缺点:
CVS : 它工作方式,可以使多个用户并行工作。这样对于正在编写软件的项目团体有利。
但是版本控制某个项目下的一些核心文件比较困难,假如团队中的每个人都写文件的权限。这样往往会不小心的让核心代码被修改。
VSS : 工作方式决定它就是一个文件只能由一个用户修改。其优点可以锁定核心代码,缺点则是工作效率比较低。所以适合小团队进行开发。
SVN : 两者的综合,呵呵,取两家之长。
还有它具有自己统一的客户端,在windows环境下,通过鼠标右键就可以进行操作,易用性明显强于前面两者。
SVN的具体配置:
呵呵,SVN有自己的操作手册,需要的可以到它的官方网站去下载。
由于操作手册已经很详细了,我这里指出我自己认为比较有用的简单配置
1 安装SVN的服务端和SVN的客户端,地址
步骤略
2 创建对应的放置SVN文件文件夹,名称为svn,路径E:/svn
设置授权文件目录,这里直接创建在svn目录下,点击鼠标右键。
3 配置对应权限的配置
conf文件夹中设置
修改文件svnserve.conf 文件
#password-db = passwd
password-db = passwd
#authz-db = authz
authz-db = authz
这样设置为通过密码和授权方式进行SVN配置
修改passwd文件
#设置管理员密码
[users]
admin = admin123
修改authz文件
#设置工作组,并且授予admin组拥有管理根目录下所有读写权限
[groups]
admin = admin
[/]
@admin = rw
* = r
4 启动对应的服务
一般情况是通过命令窗口,svnserve -d -r E:/svn 这句命令进行。
这里我通过编写一个“svn服务启动.bat”进行启动。
当然也可以通过安装服务的方式,svnserve install -d -r E:/svn ,然后设置为自动启动。
5 然后可以在根目录下创建E:/svn需要的文件夹,进行权限管理了
6 项目开发eclipse插件,通过eclipse 的插件管理,找到对应的org.tigris.subversion.subclipse.core_1.2.0.jar
插件。安装插件之后通过eclipse菜单中找到“show view”
就可以进行相应的操作了。
Subversion安装记
一直都用CVS,没有什么大问题,只是觉得有些地方不大好用,比如移动文件的位置。据CVS自己的文档说,这种变动需要手工完成。不记得从哪里查得Subversion支持这种变动,便一直想试试,苦于找不到机会。趁今日有空,着手安装再试试看是否有此项功能。找到Subversion 的 book ( http://svnbook.red-bean.com/nightly/en/index.html)并下载它的1.3.2的Windows安装EXE。执行并一路Next。 安装时没有选创建桌面等快捷,所以找不到地方启动。看看book吧。
在book的A Quick Start中有一段:
$ svnadmin create /path/to/repos $ ls /path/to/repos conf/ dav/ db/ format hooks/ locks/ README.txt
我虽然用的是Windows,不过也许也是用command line也说不定。打开cmd,敲入svnadmin,果然有反应,看来是要用
command line 了。那就照book说的先建一个新的repository吧. 运行svnadmin create g:/SubRepo.
不过从上面的例子来看,它只是访问本地的repository,那remote的怎么访问呢?
看book中提到svnserver,想必要运行它。运行svnserver -d --listen-port=8080 --root=g:/后,打开TortoiseSVN,
用“file:///G:/SubRepo”的形式能访问到上面建立的repository,但用http://localhost:8080不能访问?!也许是我
的TortoiseSVN太老了(我记得是去年装的!),下一个最新的试试了。
在新的TortoiseSVN里输入http://localhost:8080也还是得到“Error * Propfind request..."的错误。到Google里
查这个错误,建议我读Server Configuration那一章,一读,发现应该使用svn://localhost:8080,如果server使用
svnserve 的话!果然改用svn://后就可以访问repository了。
接下来,赶紧import一个工程,checkout它,在IDE里把一个文件另存到一个新的子目录下,关闭工程。到TortoiseSVN里去
commit,不好,不让,说是Authorization failed.
刚才看server configuration是好像看到关于Authorization的东西在它的repository目录下,到那里去看一下吧。
在SubRepo的conf目录下,确有三个文件,这三个文件里的内容就是控制subversion的用户如何存取repository的。做相应的
调整后,TortoiseSVN果然可以进行写操作了。如果你对repository里的文件进行移动,那么单更新checkout的工程时,工程
里的文件也会做相应的移动。这正是我要的!
有空还需要看看如何让subversion服务器发出email通知相关的项目人员。
http://www.cnblogs.com/bochenlin/archive/2006/07/03/441185.aspx