`
sanyecao2314
  • 浏览: 130726 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

SVN配置

 
阅读更多

软件下载

服务器和客户端安装

1、软件下载

下载Subversion服务器程序。

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

【注意】如果之前已经安装了Tortoise SVN客户端,必须选择与之配套的SVN服务端版本,否则会出现各种问题,可以从Tortoise SVN的"About"菜单中看到与之对应的Subversion版本!

下载Subversion的Windows客户端TortoiseSVN及简体中文语言安装包【根据个人爱好而定】

http://tortoisesvn.net/downloads

2、服务器和客户端安装

服务器安装,直接运行安装程序,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。

安装TortoiseSVN,同样直接运行安装程序,按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关。

重启完毕后安装简体中文语言包, 然后在随便一个目录右击, 就会发现多出了一些SVN相关菜单, 选择其中的TortoiseSVN, 再选择子菜单"Settings", 设置Language为"中文(简体)"。

3、建立版本库(Repository)

运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:

svnadmin create D:\svn\repository

就会在目录D:\svn\repository下创建一个版本库。

如果在命令行中不识别svnserver命令,可以查看系统环境变量path中有无subversion/bin的条目,没有就手动加上。

也可以使用TortoiseSVN图形化界面完成这一步:

在目录D:\svn\repository下"右键->TortoiseSVN->Create repository here",然后可以选择版本库模式,这里使用默认fsfs方式即可,然后就创建了一系列目录和文件。

4、配置用户和权限

     打开D:\svn\repository, 你会发现已经多了一些目录和文件, 打开conf子目录, 打开svnserve.conf文件, 这里行前凡是有#的都等于是被注释忽略了, 你可以把#去掉让那一行生效, 或者自己新添加行. 里面的英文注释已经详细说明了各种设置的含义, 最后你设置[general]小节中行前没有#号的内容为:

anon-access = none

auth-access = write

password-db = passwd

含义是:

未验证用户无任何权限 (如果把none修改为read就是给予读权限)

已验证用户给予写权限 (当然也能读)

密码数据存放到passwd文件中

【注意】anon-access = none这条必须显示写出来,否则会有一个默认权限,别人可能不用登陆就能看到你的项目!

     然后打开同目录的passwd文件来设置帐户:

同样, 设置[users]小节中行前没有#号的内容, 例如:

admin = zhang

含义是:

用户admin的密码为zhang

     该目录下还有一个authz的文件,用来针对不同的目录给用户分配不同的权限。

5、运行独立服务器

安装subversion的bin目录有svnservice.exe。

在dos控制台状态下直接输入svnservice -d -r D:\svn\repository,(最后一个参数是刚才设置的版本库的位置),此时console处于阻塞状态,让它一直开着就行,关闭它就意味着关闭了svnservice的服务了。

建议你到控制面板-管理工具-服务中找到SVNService, 右击选择"属性", 再将其启动类型设置为"自动",这样每次开机自动启动服务,不用手动启动了。如果没有这项服务的话,在命令行输入sc create svnserver binPath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svn\repository" DisplayName= "subversion" depend= Tcpip start= auto

【注意】“=”前没有空格,之后必须有一个空格!

6、初始化导入

打开"我的电脑", 在你需要进行版本控制的目录上右击, 选择TortoiseSVN, 再选择子菜单"Import...", 设置"文件库url"为svn://localhost 点确定后就会提示文件正在导入.

需要注意的是,这里是svn文件库与svn服务是同一台计算机的情况, 所以可用localhost, 其它机器如果要访问svn服务, 应该用svn://svn服务器的IP地址, 例如svn://192.168.1.125

7、基本客户端操作

没安装TortoiseSVN的计算机先安装它。

创建一个准备用来存放版本控制工程的目录, 例如d:\project, 然后在"我的电脑"中右击这个目录, 选择"SVN取出...", 设置"文件库url"为svn://svn服务器的IP地址, 接下来会问你用户名和帐号, 你就填写前面搭建服务器端所设置的用户admin密码zhang

点确定后就会提示文件正在取出到d:\project

至此, SVN客户端配置完成, 你会看到d:\project及其下面的文件都被标记了绿色对勾

简单日常使用:

要取得工程的当前的最新版本, 右击d:\project, 选择"SVN update"

你更改工程后, 要将你的修改更新到SVN, 右击d:\project, 选择"SVN commit" ,谨慎的话请先更新到SVN最新版本后再提交。

创建服务

sc create svnserver binPath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svn\energy" DisplayName= "energy_subversion" depend= Tcpip start= auto

sc create svnserver binPath= "服务全名--service -r 资源库位置" DisplayName= "服务名" depend= 协议 start= 自动

 

 

 

 

如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。

 

本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。

 

本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。

 

1,软件下载

 

下载Subversion服务器程序。

 

到官方网站的下载二进制安装文件,来到二进制包下载部分,找到 Windows NT, 2000, XP and 2003部分,然后选择" this same directory ",这样我们可以看到许多下载的内容,目前可以下载 svn-1.4.6-setup.exe 。

 

下载Subversion的Windows客户端TortoiseSVN。

 

TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。

 

官方网站是TortoiseSVN ,下载方式和前面的svn服务器类似,在Download页面的我们可以选择下载的版本,目前的最高稳定版本的安装文件为TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi。同时在此下载页的下面有语言包下载。

 

2,服务器和客户端安装

 

服务器安装,直接运行svn-1.4.6-setup.exe ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。安装TortoiseSVN,同样直接运行TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。

 

3,建立版本库(Repository)

 

运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:

 

(点击“开始”-“运行”,在里面输入如下命令) svnadmin create F:\svn_repository_server

 

就会在目录F:\svn_repository_server下创建一个版本库。我们也可以使用TortoiseSVN图形化的完成这一步:

 

在目录F:\svn_repository_server下"右键->TortoiseSVN->Create Repository here...“(安装了中文包的话,就是"右键->TortoiseSVN->在此创建版本库"), 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。

 

4,配置用户和权限

 

来到F:\svn_repository_server\conf目录,修改svnserve.conf:

 

[general]

 

# password-db = passwd

 

改为:

 

[general]

 

password-db = passwd然后修改同目录的passwd文件,去掉下面三行的注释:

 

#[users]

 

# harry = harryssecret

 

# sally = sallyssecret

 

最后变成:#等号左边是用户,右边是密码

 

[users]xudayu=xudayu

 

5,运行独立服务器

 

在任意目录下运行:

 

svnserve -d -r F:\svn_repository_server我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。每次都要手动启动,还不能关闭窗口,很麻烦,所以我们将其创建为windows系统服务。 第一方法:打开一个DOS命令窗口,执行如下命令: sc create svnserve binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root F:\svn_repository_server" displayname= "Subversion Repository" depend= Tcpip start= auto 其中:sc是windows自带的服务配置程序,参数binPath表示svnserve可执行文件的安装路径,由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成\",--service参数表示以windows服务的形式运行,--root指明svn repository的位置,service参数与root参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。displayname表示在windows服务列表中显示的名字, depend =Tcpip 表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。若要卸载svn服务,则执行 sc delete svnserve 即可。第二种方法:到http://www.lw-works.com/svnservice网站下载Svnservice Monitor,然后安装。接下来的设置就是选择版本库的路径,填写主机和端口。然后点击apply就行了。

 

6,初始化导入

 

来到我们想要导入的项目根目录,F:\workspace\eclipse\struts2:

 

右键->TortoiseSVN->Import... (安装了中文包的就是:右键->TortoiseSVN->导入)

 

URL of repository(版本库URL)输入“svn://localhost/struts2/demo”

 

ok这时候需要输入用户名和密码,我的自然就是xudayu,xudayu了。

 

完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22/struts2/demo”。

 

 

 

如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。 

本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。 

本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。

1,软件下载

下载Subversion服务器程序。

到官方网站的下载二进制安装文件,来到二进制包下载部分,找到 Windows NT, 2000, XP and 2003部分,然后选择" this same directory ",这样我们可以看到许多下载的内容,目前可以下载 svn-1.4.6-setup.exe 。

下载Subversion的Windows客户端TortoiseSVN。

TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。 

官方网站是TortoiseSVN ,下载方式和前面的svn服务器类似,在Download页面的我们可以选择下载的版本,目前的最高稳定版本的安装文件为TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi。同时在此下载页的下面有语言包下载。

2,服务器和客户端安装

服务器安装,直接运行svn-1.4.6-setup.exe ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。

安装TortoiseSVN,同样直接运行TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。

 

3,建立版本库(Repository)

运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:

(点击“开始”-“运行”,在里面输入如下命令) 

svnadmin create F:\svn_repository_server

就会在目录F:\svn_repository_server下创建一个版本库。

 

我们也可以使用TortoiseSVN图形化的完成这一步: 

在目录F:\svn_repository_server下"右键->TortoiseSVN->Create Repository here...“(安装了中文包的话,就是"右键->TortoiseSVN->在此创建版本库"), 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。

 

4,配置用户和权限

来到F:\svn_repository_server\conf目录,修改svnserve.conf: 

[general] 

# password-db = passwd 

改为: 

[general] 

password-db = passwd

 

然后修改同目录的passwd文件,去掉下面三行的注释: 

#[users] 

# harry = harryssecret 

# sally = sallyssecret 

最后变成:

#等号左边是用户,右边是密码

[users]

xudayu=xudayu

 

5,运行独立服务器

在任意目录下运行:

 

svnserve -d -r F:\svn_repository_server

 

我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。

 

每次都要手动启动,还不能关闭窗口,很麻烦,所以我们将其创建为windows系统服务。 

第一方法:

打开一个DOS命令窗口,执行如下命令:

 

sc create svnserve binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root

F:\svn_repository_server" displayname= "Subversion Repository" depend= Tcpip start= auto   

 

其中:

sc是windows自带的服务配置程序,

参数binPath表示svnserve可执行文件的安装路径,由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成\",

--service参数表示以windows服务的形式运行,

--root指明svn repository的位置,

service参数与root参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。

displayname表示在windows服务列表中显示的名字, depend =Tcpip 表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。

 

若要卸载svn服务,则执行 sc delete svnserve 即可。

 

第二种方法:

到[url]http://www.lw-works.com/svnservice[/url]网站下载Svnservice Monitor,然后安装。接下来的设置就是选择版本库的路径,填写主机和端口。然后点击apply就行了。

 

 

6,初始化导入

来到我们想要导入的项目根目录,F:\workspace\eclipse\struts2:

 

右键->TortoiseSVN->Import... (安装了中文包的就是:右键->TortoiseSVN->导入)

URL of repository(版本库URL)输入“svn://localhost/struts2/demo” 

ok

这时候需要输入用户名和密码,我的自然就是xudayu,xudayu了。

 

完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。

需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22/struts2/demo”。

 

7,eclipse使用svn导入工程

我的eclipse是3.3.1.1,首先的工作是要安装svn,我们到官网[url]http://subversion.tigris.org/[/url]去下载svn的eclipse插件。点击左下角的“Subversion and IDEs”中的eclipse。

 

这里最新的版本是1.2.4,支持Eclipse 3.2/Callisto and 3.3/Europa。可以网络安装,也可以自己下载压缩包安装。我选择的下载压缩包Zipped downloads: [url]http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240[/url],比网络安装的要快。

 

然后打开eclipse:

 

 

选择第二项,下一步;

 

 

选择“New Archived Site”,然后在对话框里选择刚才下载的zip包。如果你要是用网络安装,那么就选择"New Remote Site",然后输入名字和svn插件的地址。就在刚才上面那个zip包下载地址的上面。

 

 

接下来就是Finish,回出现一个插件选择安装的对话框。(因为我安装过了,所以没有截图)我们选择它,这时候它报出一个错误,说需要Mylyn2.0及以上版本的支持。我的eclipse3.3.1.1没带这个,所以要安装,同样我选择下载zip包安装,在[url]http://www.eclipse.org/mylyn/downloads/[/url]选择3.3支持。然后安装方法与svn插件相同。不过要先装我们刚才下载的Mylyn,再装svn。

 

然后会重启eclipse

 

 

选择svn检出,下一步

 

 

 

一般的,如果是第一次,需要你创建一个新的资源位置,因为我已经创建了,所以图中有两个资源url:

 

 

填入我们上面(将文件导入资源库时)填写的url,svn://localhost/struts2/demo,下一步:

 

 

选择url,next:

 

 

默认,next:

 

 

默认,finish

 

 

完成后我们就看见了如下图的样子。(有个小红叉叉,不知道为什么,不过不影响使用。另外,如果你是按照上面的做的,下面图里的工程名称应该是struts2[struts2/demo]。我这个是因为自己改了资源路径,^_^)

 

 

好了,svn建资源库,导入资源,eclipse的svn检出就完成了。我也是第一次弄,不好别扔砖头哈。

本文出自 “我的技术Blog” 博客,转载请与作者联系!

 

 

 

Elliotte Rusty Harold 介绍了 Subversion —— 一种开放源码、多用户版本控制系统,支持非 ASCII 文本和二进制数据。通过 Elliotte 的介绍,您可看到如何在 Eclipse 中配置 Subversion 支持(通过 Subclipse 插件)、检出一个项目、与您的存储库同步,随后执行一些常用的操作,如合并、修补、比较和删除。

版本控制之于程序员,就好比安全网之于高空秋千表演者。知道安全网就在那里,万一自己摔落它能够提供保护,高空秋千表演者才能放心大胆地在空中飞跃。同样,版本控制使您有能力去冒以往想都不敢想的风险。如果哪儿出了错,您总是可以使自己的代码回复到一个已知的、工作正常的版本。您可以在不触及主干的分支中进行试验,而不会影响到其他小组成员。在已经发布的产品的较老版本中发现 bug 时,您可以轻松检出特定版本,以确认、修订,并生成该 bug 的修补程序。如果没有版本控制,您必须极为慎之又慎,缓慢地推进,总而言之,生产力会更低。

 

Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion 不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。

 

本文介绍了使用 Subversion 追踪项目的基础知识,以使您在编写代码时能够承受更多的风险、享受更多的乐趣。

 

版本控制简史

 

当我还是一名刚刚毕业的学生时,我第一次在国家太阳观察站(National SSolar Observatory)接触到了如今版本控制系统的鼻祖 —— SCCS。今天,已经出现了数不胜数的版本控制系统,而 SCCS 也早已被更强大的产品所取代,如 Visual SourceSafe、BitKeeper、Perforce 和开源 CVS(参见 参考资料 部分)。

 

在开放源码程序员间,CVS 已成为一种事实上的 标准。Codehaus、Sourceforge、Savannah 和 Java? 社区的 java.net 等站点中驻留的免费 CVS 使得为开源项目建设存储库更为简单。以 CVS 为中心,已发展起一个大型的附件市场,包括 TortoiseCVS、ViewCVS 和 Fisheye 等工具。

 

与其他版本控制系统相比,CVS 最令人称道的地方就是其非锁定 存储库,这使多个开发人员能够同时检出同一个文件。CVS 在提交时解决冲突问题,这就避免了冲突成为发展的瓶颈。CVS 第二个出色的特性就是它是一种网络存储库。处于许多不同系统上的程序员可以通过公共的 Internet 访问相同的存储库。

 

逐渐失去优势的 CVS

 

CVS 在过去的十年中,为社区提供了优质的服务,但它陈旧的劣势开始体现出来。首先,它实际上仅能处理 ASCII 文件。Unicode 文件会令 CVS 严重混乱。此外,CVS 存储库更改起来极为困难。CVS 没有任何关于 “移动” 操作的概念。它只能注意到,一个文件在一处被删除了,而在一个新位置创建了另外一个文件。由于它不会连接两个操作,因此也很容易使文件历史轨迹丢失。设置 CVS 存储库时,您必须非常谨慎地为每个文件选择准确的位置,因为在设置之后,您几乎就要一直使用这个位置了。

 

CVS 已经不再适合现代开发,这一点越来越明显。特别是 CVS 只能满足老式 C 程序员的 ASCII 需求,而对 Web 开发人员和其他非传统用户来说,CVS 实际上根本不起作用。在您开始考虑存储整个 Web 站点时,在 CVS 中,将文件从一个目录移动到另外一个目录是关键考虑事项。因此,在几年前,许多核心 CVS 开发人员认为,已经到了利用他们多年来使用 CVS 时学到的经验和教训、从头开始创建新一代开放源码存储库的时机。在 2004 年年初,他们的努力结出了丰硕的果实,那就是 Subversion 1.0。

 

Subversion 的支持与采纳

 

程序员(特别是那些依赖版本控制的程序员)是一个非常谨慎的群体,Subversion 着实用了很长一段时间,才得到他们的广泛接受。很少有程序员愿意冲在易于流血的最前沿,即便是他们已经因为 CVS 受了伤。甚至是在 Subersion 变得可靠之后,仍然用了好几年的时间,所有第三方编辑器、IDE 和文档规范才相继跟进。而 Subversion 依然在不断改进,BBEdit 和 Eclipse 等第三方工具现在已经有了足够好的 Subversion 支持。逐渐地,新项目也纷纷选择 Subversion 满足其版本控制需求,而老项目正在向 Subversion 移植。最近,Apache Software Foundation 已移植到 Subversion。已实现移植的项目包括 Xerces XML 解析器、Apache HTTP Server 和 Spamassassin。

 

 

 

 

 

 

回页首

 

通过 IDE 使用 Subversion

 

您可通过命令行使用 Subversion,但若将其与您的 IDE 集成更为便捷。IntelliJ IDEA 5.0 及后续版本均包含对 Subversion 的内置支持。NetBeans 还不支持 Subversion,但相关工作已经在开展,未来版本中将提供支持。对于 Eclipse,您需要安装 Subclipse 插件。本文使用 Eclipse 作为 IDE。

 

Subclipse 的安装与其他 Eclipse 插件类似:

 

在 Eclipse 中,选择 Help Software Updates | Find and Install...。

 

在向导的第一个面板中,单击 Search for new features to install 单选按钮,并单击 Next。

 

在向导的第二个面板中,单击 New Remote Site。输入 Subclipse 作为名称,输入 http://subclipse.tigris.org/update_1.0.x 作为 URL。然后单击 Finish。 

 

这将启动另外一个小的向导。下一个对话框应为您提供一个可安装的特性 —— Subclipse。选中它并单击 Next。

 

接受许可协议,完成安装。

 

程序包目前未经过数字签名,但只要您是按照第三步的 URL 下载的,就是安全的。

 

        

Subversion 快捷方式

如果您目前常常使用 Subversion,您可能希望将其添加到 Eclipse 的 New、Open Perspective 和 Show View 菜单中。为此,选择 Window/Customize Perspective... 并在 Shortcut 分类列表中选中 SVN。这将使您可在目前可看到 CVS 的所有菜单中访问 Subversion。

 

安装程序包后,您必须重新启动 Eclipse,随后才能使用 Subversion。完成之后,您就可以与如今使用 CVS 大体相同的方式使用 Subversion 了,只有为数不多的区别。

 

检出项目

 

设置一个新的 Subversion 存储库,特别是网络存储库相对来说较为复杂。但若您正在连接一个现有项目,第一次检出文件就相当轻松。在 File 菜单中选择 New/Other...。这些步骤将为您打开如 图 1 所示的对话框:

 

 

图 1. 通过 Subversion 启动一个新项目

 

接下来,打开 SVN 文件夹,选择 Select Checkout Projects from SVN,并单击 Next 以显示如图 2 所示的对话框:

 

 

图 2. Select/Create Location

 

第一次从存储库检出时,您需要选择 Create a new repository location 并单击 Next。这将为您打开如图 3 所示的对话框:

 

 

图 3. 为存储库键入 URL

 

您在这里提供存储库的 URL。这只是一个普通的 http URL,如 http://svn.apache.org/repos/asf/xerces/java/。这一次单击 Next 时,Eclipse 连接到存储库,并查找可检出的文件夹。通常有三个文件夹:branches、tags 和 trunk,如图 4 所示。Branches 文件夹用于试验。Tags 通常标识较老的、已发布的软件版本。而大多数时候,您都希望在主分支上工作(CVS 称之为 HEAD),因此选择 trunk 并单击 Next。

 

 

图 4. 选择要检出的修订版

 

您现在有两个选择:Check out as a Project configured using the New Project Wizard 或 Check out as a project in the workspace,如图 5 所示。您可按自己的需要任意选择,您可能希望为项目命名,因为默认名称为 “trunk”。最后,单击 Finish。

 

 

图 5. 检出项目的两种方法

 

Eclipse 现在从您选择的分支、主干或标记中下载所有源文件。如果您选择的是 Check out as a project in the workspace,则必须完成 Eclipse 的 New Project 向导,以设置编译器级别、项目布局和其他选项。如果您未使用 New Project 向导,则需要手动设置构建路径和其他选项,就像您在自己的文件系统的一个目录中创建了一个项目那样。确实,您所做的与那极为相似。所有文件都是本地存储的。对于构建、运行和调试这样的普通操作,Eclipse 不关心文件是否已为版本控制检出。

 

 

 

 

 

 

回页首

 

验证设置

 

此时,最好进行一次快速、明智的检查,确保您已正确地设置了构建路径。如果没有明显的问题,并且能够运行单元测试,那么即可放心地继续下去了。

 

如果存在问题,检查项目属性,以确保正确地设置了源路径和类路径。使之差一非常常见,无论是多一还是少一。因此,最终 Eclipse 会认为您的类的名称类似于 src.org.apache.xerces.parsers.SAXParser 或 apache.xerces.parsers.SAXParser,而不是 org.apache.xerces.parsers.SAXParser。在多文件夹项目中,Eclilpse 也常常会错误地将一个数据文件夹标记为源文件夹或遗漏了一个源文件夹。如果发生了以上任何一种小故障,您都必须修复错误,然后才能基础。

 

        

多文件提交

Subversion 可在一个原子操作中提交数个文件(与之形成对比,CVS 将每一个分开的文件视为一次独立提交)。为此,只需在 Package Explorer 中选择您想提交的所有文件(按住 ctrl 键或 Command 键,然后依次单击所需文件),然后在上下文菜单中选择 Team/Commit... 即可。如果您随后需要取消更改或将存储库回复到特定更改之前的状态,这种方法非常有用。

 

要检查错误,选择 Project | Properties,然后找到 Java Build Path。您可在 source 选项卡中修订任何向导做错的地方。您可能还要添加另外一个项目需要的 JAR 归档,Eclpse 在检出时不会注意到此归档。您还可在 library 选项卡的 Java Build Path 中添加此归档。

 

请做好心理准备,您可能要在这里花上一点时间。Eclipse 很少会在第一次就让一切正确无误,每个项目组织其文件和库的方式又总会有所不同。

 

与存储库同步

 

接下来您就可以照常编辑文件了。作出您希望的任何更改。运行单元测试。优化代码。更正注释中的拼写错误。完成部分工作后,使用上下文菜单并选择 Team/Commit...。您将看到图 6 所示的对话框,要求您输入提交注释:

 

 

图 6. Subclipse 的提交对话框

 

同样,若其他人更改了您希望应用于您的副本的存储库,只要在 Package Explorer 中选中文件,并从上下文菜单中选择 Team/Update 即可。这会以主副本替换您的副本。

 

 

 

 

 

 

回页首

 

合并

 

如果您已进行了更改,其他开发人员也进行了更改,那么您就必须手动合并文件。对于绝大多数简单更改,Subversion 可推断出需要进行怎样的处理,无需人工干预。但对于较大、较为复杂、存在冲突的更改,您可能需要参与进来,手动合并更改。

 

Subclipse 在这里可提供一些帮助,但实际上我发现,在一个独立的窗口或选项卡中直接实现一个临时文件副本,通过存储库更新本地副本以覆盖我的更改,然后通过临时副本重新输入更改,这样做往往更容易。若存储库中的更改与我做出的更改相比较少,我就会从存储库实现临时副本,并通过它进行提交,而不是更新。随后我会重新应用那些更改。这听上去非常复杂,但事实通常并非如此,它的发生几率几乎与您希望的一样低。即便是您出了错,忘记重新应用更改或是错误地应用了更改,总是可以找到所有更改的完整历史(包括您覆盖的那些更改)供您参考。实际上您从未彻底丢失任何东西。

 

如果您不确定已更改了哪些文件,同步视图可以为您显示这些文件。您还可打开标签修饰(label decoration)来查看上次提交/更新后哪些文件发生过更改。选择 Help | Preferences,然后再选择 General/Appearance/Label Decorations。然后选中 SVN 复选框。(实际上该复选框在默认情况下就是选中的。)

 

 

 

 

 

 

回页首

 

修补

 

如果您不具备正在使用的存储库的提交权限,就需要制作一个修补程序,然后将其发送给维护人员。只要选中您希望比较的文件,然后从上下文菜单中选择 Team/Create Patch... 即可。您可以随自己的方便将修补程序保存到文件或剪贴板中。随后可通过电子邮件将其发送给维护人员,或者在 bug 报告中附上该修补程序。修补程序本身采用的格式与 CVS 所使用的 diff 格式相同。

 

应用他人发送给您的修补程序就没那么复杂了,只要选中您想修补的文件或项目。从上下文菜单中选择 Team/Apply Patch... ,然后平台上惯用的 open file 对话框选择修补程序文件即可。

 

 

 

 

 

 

回页首

 

比较

 

如果您已作出了一些更改,并且希望看看您的副本与存储库中的版本有怎样的差别,只需在上下文菜单中选择 Compare/Latest From Repository 即可。这实际上与 CVS 中比较功能的工作方式完全相同。图 7 显示了比较功能的工作情况:

 

 

图 7. 在 Subclipse 中比较两个文件

 

 

 

 

 

 

回页首

 

删除

 

删除文件也很轻松。只要在 Eclipse 的程序包管理器中删除文件,然后提交父文件夹即可。删除目录要略微复杂一点。您可以选择一个目录并删除它。目录中的所有文件将会立即被删除。但在您删除后,目录本身及其所有子目录又会立即出现在原来的位置。要真正地删除一个文件夹,您需要选中 “已删除” 的文件夹并提交它。同一规则也适用于将一个文件从一个位置移动到另外一个位置的情况。

 

        

小心!

Apache 项目将源代码提交到了不属于自己、现在也无法删除的 Subversion 存储库中,使自己陷入麻烦。Apache 可以隐藏代码,但如果您知道到哪儿去看,您会发现这些代码就在那儿。拥有源代码的人可能是恶意的,也有可能向 Apache 的 ISP 发送一条 DMCA 下线通知,从而使 Apache 脱离 Internet。Apache 惟一的防御措施就是彻底删除其存储库。

 

在您删除了一个文件或一个文件夹之后,依然可以通过存储库使其还原,即便是已经提交了删除。一旦您将任何内容放进存储库,那么就永远不会真正、永久地失去它,这有时候会产生问题。例如,假设您发现有人意外的检入了其整个主目录,包括其 Quicken 数据文件和所有来自其爱人的情书归档。您很希望能够彻底消除 这些被误提交的文件,这样就不会有其他人得到这些文件。尽管这是一个非同寻常的操作(无论如何,版本控制系统的目的就在于永远地保留每一个文件的每个修订版),但有时也是必要的。令人沮丧的是,Subversion 漏掉了这个重要的特性。

 

由于没有彻底消除的命令,所以我在为外部可见的存储库使用 Subversion 时非常不安。CVS 也没有这样的命令,但在 CVS 中,您完全有可能在不毁掉存储库的情况下手动删除错误提交的文件。

 

 

sc create svnservice binPath= "D:\Program Files\VisualSVN Server\bin\svnserve.exe --service -r D:\repository" DisplayName= "subversion" depend= Tcpip start= auto

 

 

 

回页首

 

结束语

 

对于内部存储库,Subversion 提供了远超过 CVS 的改进。如果添加了某种类型的彻底消除功能,它也应同样适于外部存储库。尽管像 Eclipse 这样的工具对 Subversion 的第三方支持还不像 CVS 支持那样普遍,但形势正在迅速地发生变化。Subversion 会成为新项目的默认源代码存储库。尚无源代码控制的现有项目应尽快检入 Subversion。而已有 CVS 存储库的现有项目可能仍在观望,希望等到他们所依赖的全部工具均全面支持 Subversion 后再进行切换。但这些项目最终也会移植到 Subversion。Subversion 中的改进如此显著,令人难以忽略。未来必将属于 Subversion。

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics