您的位置:软件测试 > 开源软件测试 > 开源配置管理工具 > SVN
Subversion 简介
作者:网络转载 发布时间:[ 2012/12/4 17:20:31 ] 推荐标签:

合并

如果您已进行了更改,其他开发人员也进行了更改,那么您必须手动合并文件。对于绝大多数简单更改,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 中,您完全有可能在不毁掉存储库的情况下手动删除错误提交的文件。

结束语

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

上一页1234下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd