我有一个SVN分支和一个主干。主干定期更改,而分支则不定。
每隔一段时间(假设每周一次)我想用最新的主干更新来更新分支的本地工作副本。
理想情况下,我希望以与使用最新版本的分支相同的方式执行此操作:使用Eclipse:Team-> Synchronize,以便我可以在更新之前查看所有更改。
这是否也可以使用不同的存储库(例如:trunk)? 如果没有,人们如何在更新之前审查更改?
我查看了Team-> Merge,但这似乎直接将更改更新到我的工作副本,而无法首先查看更改(预览功能令人困惑,我认为,并没有提供对于Synchronize有变化/冲突的并排的好看法。
答案 0 :(得分:6)
正确的方法是使用Merge。 Subclipse包含一个合并客户端,使这很容易做到。你是对的,它没有给你一个真正的预览,但它的工作方式从Subversion的角度来看更好。 “合并结果”视图UI与“同步”视图基本相同。它使您可以轻松地检查合并在工作副本中所做的每个更改以及它打开的Eclipse比较编辑器,这样可以在提交之前很容易地删除代码中不需要的任何更改部分。
尝试从“同步”视图执行此操作的问题是,您正在使用代码编辑器自己进行合并,而Subversion无法了解合并的内容。如果你让Subversion首先进行合并,那么它可以正确地更新所有元数据,然后你可以在提交合并结果之前将代码修改为你想要的方式。
答案 1 :(得分:0)
我将分支和主干作为单独的eclipse投射到工作区。然后使用一些合并工具,例如meld来合并它们之间的更改。合并后,您可以在Eclipse中刷新分支并将其与svn存储库同步 - 现在您可以查看所有更改。 (这是我如何做的,因为我不相信svn eclipse插件;))
答案 2 :(得分:0)
我同意它在设计上并不是非常直观,但马克是对的,你同步"将它们提交回主干时的更改:
此外,您将分支合并回存储库主干
的方式相同我建议将您在本地进行的所有更改提交给您的合并,因为您已在本地对其进行了测试。如果您只提交了一些更改,请确保存储库版本仍然有效,然后缺少更改