|
阅读:1309回复:12
Subversion试用:)
前几天在和0000先生谈论到大型项目开发得项目管理方式得时候,提到了subversion,一致认为在现在的大中型软件开发中,团队合作是项目成功最重要的因素之一,尤其是使用.Net和Java EE这些强大的面向对象的语言开发程序,必然会多次分层,基于组件的共享等等,所以SCM就更重要了。Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。它的初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。。。
Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。下面我讲解的是基于Apache Http Server的Subversion,这样做几个好处:A.能使用WebDAV协议。B.能使用浏览器作为客户端工具浏览源码仓库。C.可以很容易的支持到SSPI(Windows域认证)和LADP,这些都是Apache本身就支持的。D.能得到比较完善的Apache安全认证系统,比如SSL加密连接。 <!--未完成--> [ 2005-10-26 11:48:07 lijiannan_1981 修改 ] |
|
|
|
1C#
发布于:2005-10-26 13:36
Re:Subversion试用:)
你们开个工作间作开发好了,!!哈
|
|
|
|
2C#
发布于:2005-10-28 22:58
Re:Subversion试用:)
嘿嘿~`0000先生臨睡前最後一帖~水之~~
對了,今天那個 i++, i--的問題回頭找你說~~ |
|
|
|
4C#
发布于:2005-10-29 16:12
Re:Subversion试用:)
楼上是何方高人~~?神秘莫测~~说下理由先~ |
|
|
|
5C#
发布于:2005-10-29 16:43
Re:Subversion试用:)
你个变态
这还要说理由 没有它,软件工程就无法实现,就无法凝聚广大程序员的力量。它在软件工程中的作用实在是无可比拟的。 |
|
|
6C#
发布于:2005-10-29 16:54
Re:Subversion试用:)
不作无谓的争执.稍稍仔细一点看楼主的帖就知道我为什么要问理由了~ |
|
|
|
7C#
发布于:2005-10-29 17:10
Re:Subversion试用:)
具体配置如下:
(1):建立版本仓库:建议使用fsfs数据库,BDB是一种轻量级的数据库,而且在checkout的过程中可能出现问题; (2):利用GUI工具将待导入的项目导入到版本库中,主意一定要起个项目名; (3):权限配置:这里得多说几句svn运作得核心是权限控制,在大得软件公司,虽然是分工合作,但是,每个程序员是不能看到其他人所属模块下得东西的,每个人只能check out自己模块下的程序代码,对于公共库除外: 基本文件如下: <Location /svn> //指明档案库的根目录; DAV svn //动态加载 SVNPath d:\svn //路径 AuthType Basic AuthName "Subversion repositories" AuthUserFile D:/passwd //用户名和密码文件 AuthzSVNAccessFile D:/svnaccessfile //权限文件的路径 <LimitExcept PROPFIND OPTIONS REPORT> /* Require valid-user *在这里设置受限制的访问方式 </LimitExcept> */ </Location> 这是加载在apache/httpd.conf中的文件,当然你在做这一切前要加载了apache所要调用的 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 本文是在讲SVN而不是APACHE的配置,所以就不详细说了:)具体参见http://apache.org (4)下面说下上面说到passwd和svnaccessfile两个文件, 当用户通过http方式访问的时候,svn首先会对当时的http请求发出拦截,同时激活passwd文件,通过用户名/密码的验证方式确定用户是否可以登陆服务,passwd文件生成格式如下:bin\htpasswd -c passwd xxx ...... 在进行用户名和密码的验证成功后,SVN继续拦截,进行权限检查,同时加载svnaccessfile文件 eg svnaccessfile: [svn:/] leener = rw [svn:/web-project1.0] leener = rw 0000 = r [svn:/web-project1.0/src] leener = r 0000 = rw [svn:/web-project1.0/src/java] leener = 0000 = rw r,w就是用户所拥有的权限,在上文中,借用了一下0000先生大的名字:) 这样不通的用户就有了不通权限 以上就是基本配置. 等周一俺再写ssl的配置问题 |
|
|
|
8C#
发布于:2005-10-29 17:13
Re:Subversion试用:)
btw:
那个花儿姑娘,cvs不好用,我有亲身体验,配置麻烦,虽然和eclipse集成,我们在开发中使用这些诸如svn,junit,ant的目的就是为了简化开发,而cvs呢? SVN初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。 在CVS中,每个文件修订版号是不同的。这是因为CVS基于RCS。每一个文件在文件库都有对应的RCS文件,而文件库的结构,大致上就是依照目录结构展开。 [ 2005-10-29 17:17:20 lijiannan_1981 修改 ] |
|
|
|
9C#
发布于:2005-10-29 17:14
Re:Subversion试用:)
哈哈~~阅~ |
|
|
|
10C#
发布于:2005-11-03 00:40
Re:Subversion试用:)
我们现在开发用的是CVS,配置上没有觉得有什么困难。客户端就直接用Eclipse的,或者直接cvs commond。感觉Eclipse的客户端很好用特别是同步,不过概念上有一点混淆。不过针对文件的存储结构对于java这样文件名与类名相关的语言来讲就有点麻烦了,不过还好。
不知道Subversion和Eclipse的配合的如何? |
|
|
11C#
发布于:2005-11-03 09:06
Re:Subversion试用:)
to Aph:eclipse对于subversion有一个插件,具体配合得如何米有感觉,俺现在一直是在用TortoiseSVN,感觉还凑合 |
|
|
|
12C#
发布于:2005-11-03 18:26
Re:Subversion试用:)
偶用eclipse的svn插件~~挺好用的~ |
|
|