5

我有一个 SVN 分支和一个主干。主干定期更改,而分支则没有。

时不时地(假设每周一次)我想用主干的最新更改更新分支的本地工作副本。

理想情况下,我希望以与使用最新版本的分支相同的方式执行此操作:使用 Eclipse:Team->Synchronize,因此我可以在更新之前查看所有更改。

这是否也可以使用不同的存储库(例如:主干)?如果没有,人们如何在更新之前查看更改?

我查看了 Team->Merge,但这似乎直接将更改更新到我的工作副本,而无法先查看更改(我认为预览功能令人困惑,并且不提供良好的并行-Synchronize 具有的更改/冲突的侧面视图)。

4

3 回答 3

6

正确的方法是使用 Merge。Subclipse 包含一个合并客户端,可以轻松完成此操作。你是对的,它没有给你一个真正的预览,但从 Subversion 的角度来看,它的工作方式更好。Merge Results 视图 UI 与 Synchronize 视图基本相同。它使您可以轻松地检查合并在您的工作副本中所做的每一个更改,并且它打开的 Eclipse 比较编辑器可以很容易地在您提交之前删除您不希望在代码中的任何更改部分。

尝试从 Synchronize 视图执行此操作的问题是,您正在使用代码编辑器自己进行合并,而 Subversion 不知道合并了什么。如果您让 Subversion 首先进行合并,那么它可以正确更新其所有元数据,并且您可以在提交合并结果之前将代码修复为您想要的方式。

于 2011-09-22T20:37:43.163 回答
0

我会将分支和主干作为单独的 Eclipse 项目检出到工作区中。然后使用一些合并工具,例如meld来合并它们之间的变化。合并后,您可以在 Eclipse 中刷新分支并将其与 svn 存储库同步 - 现在您可以查看所有更改。(我就是这样做的,因为我不相信 svn eclipse 插件;))

于 2011-09-22T16:10:20.667 回答
0

我同意它在设计上并不是很直观,但马克是对的,你在将它们提交回主干时“同步”你的更改:

  • 首先确保您的本地分支与您的存储库分支完全同步(无更改)
  • 团队->合并...您的本地分支副本与存储库主干
  • 您现在拥有该合并的本地版本
  • 您可以在本地编辑此版本,确保测试正常工作并且没有编译器错误
  • 最后,您将本地合并分支版本与存储库分支同步并提交所有已进行的更改

此外,与将分支合并回存储库主干的方式相同

  • 确保您的分支的所有更改都提交到存储库分支
  • 切换到主干团队->切换...
  • 将您的主干与您的分支团队合并->合并...(选项卡“重新集成”)
  • 您现在有一个本地版本的合并,您可以编辑更改并查看它们,确保您现在有一个工作版本
  • 将本地主干(合并版本)与存储库主干同步
  • 提交您希望出现在主干中的所有更改

我建议将您在本地所做的所有更改提交到合并中,因为您已经在本地进行了测试。如果您只提交了一些更改,请确保存储库版本仍在工作,然后缺少更改

于 2017-03-18T20:57:44.350 回答