在MyEclipse下安装svn

可在线安装。

在线安装svn插件

菜单栏 Help– Find and Install– 按new Remote Site,

Name填 svn , URL填http://subclipse.tigris.org/update ,一直next到finished为止

菜单栏 Window– Show View– other– 选择打开SVN目录下的SVN资源库
新建– 资源库位置, URL填http://svn.javascud.org/svn/springside/trunk

 

以下转载svn说明:

Subversion是下一代版本控制系统,能替代CVS,项目主页是http://subversion.tigris.org。 
  Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。 
  它的初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。
  Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。由于目前多进行的是java的项目,故使用基于Apache下的svn的配置。

2    安装软件
    2.1    下载
        2.1.1    到apache.org上下载apache http server,注意要下载2.0.X以上的版,否则不能和当前最新的Subversion工作。
        2.1.2    到Tigris.org上下载subversion服务端程序。
        2.1.3    与下载subversion服务器端程序类似,到Tigris.org上下载Windows客户端TortoiseSVN。
    2.2    安装
        2.2.1    安装apache http server和subversion服务器端程序。
        2.2.2    安装完上述两个程序后,检查$\apache group\apache2\modules下是不是已经有了mod_dav_svn.so和mod_authz_svn.so,检查$\apache group\apache2\modules下是不是已经有了libdb42.dll。搜索$\apache group\apache2\conf\httpd.conf配置文件中的#LoadModule dav_fs_module modules/mod_dav_fs.so,把前面的注释#去掉;并检查LoadModule配置节的末尾是不是有了LoadModule dav_svn_module modules/mod_dav_svn.so和LoadModule authz_svn_module modules/mod_authz_svn.so。

y1pGU_-8C8j40cEjQHxgQmCyTjGfOZCyGtWC8TMqBMoNVFyk5iqDSJHqNlAxzHKEyTemCc-9bJJGJsQf1rZY1HKbhZ5NafZghf9 

y1pGU_-8C8j40cvgp-32E_-Kdt3F9qg4PspFMPgeAQaHHy1xlZQtTHXLcC-HkYIxuWcGNdLiNU4WrNhrCztgRE23rZINYnan0VD

2.2.3    安装客户端TortoiseSVN。客户端的安装与之前两个程序的安装在顺序上没有必然联系。如果本机并不作为源码库,只需要安装客户端就可以。

3    配置subversion
    3.1    在硬盘上建立源码库的根目录,例如E:\SVN。
    3.2    在E:\SVN之下建立一个新的目录,例如TestRepository作为我们的测试源码库。
    3.3    建立Subversion数据库,当前版本Subversion支持两种格式数据库,一种是FSFS,另外一种是BDB( Berkeley Database)。在命令行下输入svnadmin create –fs-type bdb TestRepository建立BDB格式的数据库(确保当前目录已经切换到E:\SVN\),在命令行下输入svnadmin create –fs-type fsfs TestRepository建立FSFS格式的数据库(确保当前目录已经切换到E:\SVN\)。建好数据库以后,到E:\SVN\TestRepository下看看是不是多了很多目录和文件,注意不要试图直接修改这些文件!
            或者使用TortoiseSVN图形化的完成这一步:在目录E:\SVN\repository下”右键->TortoiseSVN->Create Repository here…,然后可以选择版本库模式。
    3.4    打开$\apache group\apache2\conf\httpd.conf配置文件,在文件的末尾加入以下语句,
            <Location /svn>
            DAV svn
            SVNParentPath e:\SVN
            AuthType Basic
            AuthName “Subversion repositories”
            AuthUserFile passwd
            #AuthzSVNAccessFile svnaccessfile
            Require valid-user
            </Location>
            这里建立了一个虚拟目录http://yourServer/svn/,所有的Subversion源码仓库都在这个虚拟目录中,并且使用“passwd”文件中username/password(用户名/密码)列表访问http://yourServer/svn/。
    3.5    在命令行下切换到$\apache group\apache2,执行bin\htpasswd -c passwd <username>,这里<username>是你想要加入的用户名,比如doudou。执行这个命令成功以后就会在bin目录下建立一个passwd文件,之后如果再加入新的用户和更改已有用户的密码,执行bin\htpasswd passwd <username>即可。
            注意一定要在$\apache group\apache2下执行,这样生成的passwd文件$\apache group\apache2根目录下,而不是在bin目录下,apache默认是在$\apache group\apache2根目录下寻找passwd文件,如果你在bin目录下执行了这个命令请把生成的passwd文件剪切到$\apache group\apache2根目录下。
    3.6    配置结束,重起apache服务后,可以通过web访问资源库。

4    安全配置Subversion
    4.1    首先解释3.4种配置信息的用途。
        4.1.1    <Location /svn>
                     说明我们所有的代码仓库在/svn这个虚拟目录下
         4.1.2    DAV svn
                    说明Apache会使用svn这个module来解析这个虚拟目录
        4.1.3    SVNParentPath e:\SVN
                    说明所有的代码仓库都在本地硬盘的e:\SVN下
        4.1.4    AuthType Basic
                    使用最基本的认证校验,用户名/密码
        4.1.5 AuthName “Subversion repositories”
                    说明在认证对话框弹出的时候,对话框的标题显示,你可以把它修改成你想要的任何提示信息,比如:AuthName “Warning”等等
        4.1.6    AuthUserFile passwd
                    说明我们使用的access list文件的名字,在上一讲中我们建立的文件名字是passwd,所以这里是passwd。如果你建立的文件名字是其他的,这里要作相应的改动
        4.1.7    AuthzSVNAccessFile
                    说明svn自己控制的access list文件,这个文件很重要,可以丰富svn的安全配置,在下面会讲到
        4.1.8    Require valid-user
                    说明只有输入正确的用户名/密码才能访问
    4.2    对代码仓库进行更细致的控制
             如果你对于代码仓库里面某些目录还有更细致的访问控制,只用passwd就没办法啦,这个时候我们就需要AuthzSVNAccessFile文件了,去掉#AuthzSVNAccessFile svnaccessfile这一行前面的注释。Apache首先会使用passwd校验用户名和密码,然后会认证信息传给Subversion的AuthzSVNAccessFile模块,由这个模块作更进一步的权限控制。
             首先我们来新建一个文件svnaccessfile,内容如下:
                 [groups]
                developers = user1,user2,user3,user4
                docs = user5,user6,user7
                #to allow everyone read access
                [/]
                * = r
                #allow all developers complete access
                @developers = rw
                #give the doc people write access to the docs folder
                [/project/trunk/doc]
                @docs = rw
            首先我们定义了两个group,一个是developer,代表开发组,另外一个是docs,代表文档撰写组,然后
                [/]
                * = r
            意思是对于所有的用户开放可读的权限。注意这里的[/],表示是对根目录下的所有代码仓库赋予权限。接着是
                @developers = rw
                [/project/trunk/doc]
                @docs=rw
            这里再说说SVNParentPath,配置了SVNParentPath,以后每次在根目录下面加入新的repository就不需要再重新配置Subversion和Apache了,自动获取了根目录的配置信息,很方便。然而这也引发了另外一个问题,当你在浏览器地址栏里输入http://youserver/svn/的时候,服务器会报错,提示你没有权限访问访问这个url,我们想要的效果是浏览到这个url时能够把根目录下的所有的repository列出来。完成这个工作需要写点代码了,使用的工具可以是很多,这里使用php。
    4.3    使用php使得可以通过web访问代码库
        4.3.1    首先去某网站下载php。
        4.3.2    将下载的php压缩文件解压,文件夹改名为php复制到你想放置的目录路径下,注意目录名不能有空格,否则apache会找不到相关的module,比如D:/php-4.3.10RC1-Win32。
        4.3.3    打开刚才解压的PHP目录,你会发现有一个叫做”php.ini-dist”的文件,这就是PHP的配置文件了,你需要把它改名成”php.ini”,然后复制到系统目录windows(2K应该是winnt)下。打开这个配置文件,把; cgi.force_redirect = 1改成 cgi.force_redirect = 0,这样做是强迫不运行在cgi模式下,我们希望php工作在Apache的module模式下。
        4.3.4    PHP安装目录下的”php4ts.dll”必须要复制到windows系统的system32目录下。
        4.4.5    dlls和extensions目录里的所有文件拷到system32里。
        4.4.6    打开Apache的配置文件http.conf,在module配置节末尾加上LoadModule php4_module D:/php-4.3.10RC1-Win32/sapi/php4apache2.dll和AddType application/x-httpd-php .php .php3 .php4
        4.4.7    如果下载得到是php5的话,仍然做与上面类比作操作,应该也很容易吧~~
        4.4.8    用文本编辑器编写一个php文件,保存为svn_index.php,内容如下:
                    <html>
                     <head>
                    <title>Subversion Repositories</title> 
                    </head>
                    <body>
                    <h2>Subversion Repositories</h2>
                    <p>
                    <?php
                        $svnparentpath = “e:/svn”;
                        $svnparenturl = “/svn”;
                        $dh = opendir( $svnparentpath );
                        if( $dh ) {
                            while( $dir = readdir( $dh ) ) {
                                $svndir = $svnparentpath . “/” . $dir;
                                $svndbdir = $svndir . “/db”;
                                $svnfstypefile = $svndbdir . “/fs-type”;
                                if( is_dir( $svndir ) && is_dir( $svndbdir ) ) {
                                    echo “<a href=\”" . $svnparenturl . “/” .
                                            $dir . “\”>” . $dir . “</a>\n”;
                                    if( file_exists( $svnfstypefile ) ) {
                                        $handle = fopen (“$svnfstypefile”, “r”);
                                        $buffer = fgets($handle, 4096);
                                        fclose( $handle );
                                        $buffer = chop( $buffer );
                                        if( strcmp( $buffer, “fsfs” )==0 ) {
                                            echo ” (FSFS) <br />\n”;
                                        } else {
                                            echo ” (BDB) <br />\n”;
                                        }
                                    } else {
                                        echo ” (BDB) <br />\n”;
                                    }
                                }
                            }
                            closedir( $dh );
                        }
                    ?>
                    </p>
                    </body>
                    </html>
                    上述php文件中svnparentpath = “e:/svn”;需要注意,你的subversion的代码仓库的根目录可能并不在e:/svn,请修改和你自己设置一样的路径。更改Apache的配置文件http.conf文件,把#LoadModule rewrite_module modules/mod_rewrite.so前面的注释去掉。然后在文件末尾加上如下几句:
                    RewriteEngine on
                    RewriteRule ^/svn$ /svn_index.php [PT]                    
                    RewriteRule ^/svn/$ /svn_index.php [PT]                    
                    RewriteRule ^/svn/index.html$ /svn_index.php [PT]

5    在MyEclipse中使用svn
    5.1    引入相关的plugins和features
            在$MyEclipse\eclipse\plugins\下应有org.tigris.subversion.javahl.win32_1.2.2.jar, org.tigris.subversion.subclipse.core_1.2.2.jar, org.tigris.subversion.subclipse.doc_1.2.0.jar, org.tigris.subversion.subclipse.mylar_1.0.1.jar, org.tigris.subversion.subclipse.ui_1.2.2.jar。
            在$MyEclipse\eclipse\features\下应有org.tigris.subversion.subclipse.mylar_1.0.1, org.tigris.subversion.subclipse_1.2.2。
    5.2    重起MyEclipse。在windows->preferences->team中应该可以看到SVN了。这时就可以使用SVN的相关功能了。

posted @ 2010-03-10 09:42  superGG  阅读(1768)  评论(0编辑  收藏  举报