【发布时间】:2012-05-25 21:55:22
【问题描述】:
我正在使用 eclipse,Subversion (SVN) 是我的新版本控制。
到目前为止,我曾经使用Concurrent Versions System (CVS) 作为我的版本控制,并且在部署操作之后,我曾经在eclipse 中使用Tag as Version 标记我的项目,如下所示:
团队 --> '标记为版本..' --> 版本-X-Y-Z
我现在如何使用SVN?
【问题讨论】:
我正在使用 eclipse,Subversion (SVN) 是我的新版本控制。
到目前为止,我曾经使用Concurrent Versions System (CVS) 作为我的版本控制,并且在部署操作之后,我曾经在eclipse 中使用Tag as Version 标记我的项目,如下所示:
团队 --> '标记为版本..' --> 版本-X-Y-Z
我现在如何使用SVN?
【问题讨论】:
要标记,使用Eclipse 和SubClipse:
选择团队、分支/标签,然后单击“选择”按钮并深入到相应的项目,然后单击“标签”目录,并深入到您的最后一个标签名称或您计划创建的任何类似名称.
完整的 URL 被复制到 bar 中,然后您可以对其进行编辑,将最右边的标记名称部分更改为任何新的标记名称。
点击next,从HEAD中选择(HEAD指的是你在上一页已经建立的repo路径,所以实际上可能是一个分支的负责人)。
输入类似'tagging <appName> Release <for reason> version x.y.z'的评论
完成 -
您可以在此之前或之后,从页面右下角的下拉菜单中打开 Eclipse 'SVN Console',查看生成的最新 SVN 命令及其结果。
【讨论】:
Subversion 中的标记和分支与 CVS 不同。在 Subversion 中,“创建标签”意味着将修订版(通常是 HEAD,但也可以是其他修订版)复制到“标签”目录中的新目录。这就是为什么当您转到 Team->Branch/Tag... 时,Eclipse 会要求您提供要复制到的 URL。
查看this page 了解有关 Subversion 中标记的更详细说明。
为了帮助您了解如何以“SVN 方式”完成工作,我建议您先从命令行练习 Subversion 的使用,然后再在 Eclipse 上进行尝试。或者,如果没有,至少在 Eclipse 中打开一个 SVN 控制台以查看它运行的命令——您会看到标记操作确实是 svn copy。
【讨论】:
SVN 中的每次签入都会创建一个新的修订号。 SVN 修订号应该与您的标签相同。记住生产版本的 SVN 修订号。
【讨论】:
通常,SVN有三个根目录,
在 SVN 服务器中,对于每个项目,您都具有与上述相同的目录结构。
“主干”是您保存不断开发的代码库的地方。
'tags' 用于您指定的相同目的。即用于版本控制。
“分支”用于功能开发/个人开发等。
一个例子, 假设我正在开发一个数据库同步应用程序,它将作为 Pilot 版本、Moonshine 版本、Kilimanjaro 版本、Great 版本等发布。
我从“主干”开始并继续我的开发,比如说 2 个月,那时我已准备好发布试点版本。..
然后我创建一个“主干”的“标签”,我可以将其命名为“试点标签”,它将发布给客户。
现在我的下一个版本“Moonshine release”的主要功能开发将在“trunk”中继续。如果他们是我的“试点版本”中的任何即时错误修复或显示停止者,这些将在“试点标签”中完成并立即发布给客户。..
但是,由于上述修复不在我的“主干”代码中,因此稍后(在发布 Moonshine 版本之前)我会将在“试点标签”中所做的修改“合并”回“主干”。
这里可能会发生冲突,因为在“Pilot tag”(用于前面提到的错误修复)和“trunk”(用于新版本的功能修改/开发)中都可能修改了相同的代码行。在这种情况下,您必须仔细检查冲突、编辑任何此类冲突并接受更改。
TortoiseSVN 是使用 SVN 的主要客户端工具。它将功能直接嵌入到您的 Windows 右键菜单中,以实现上述所有功能,如提交、更新、合并、分支(即标记或分支)等。
对于冲突解决,我个人更喜欢“Beyond Compare”,这是您必须购买的第三方应用程序。您可以设置 TortoiseSVN 来调用 Beyond Compare 作为解决冲突的应用程序,它比 TortoiseSVN 工具中内置的冲突编辑器要好得多且用户友好。
【讨论】:
您需要安装 Eclipse Subversion 插件,例如 subclipse 或 Subversive。这将提供与 CVS 相同的功能。
例如,here is the documentation 关于如何使用 Subversive 进行标记。
【讨论】:
Subversive 插件。问题是它不像CVS 程序。当我点击 Team --> Branch/Tag.. 然后我需要输入存储库 URL,你有什么例子吗?