SVN同步vs更新到头(subclipse)

ger*_*esi 22 subclipse svn repository revert

我对Subversion和Subclipse都很陌生,并且看到一些问题让我相信更新头部和同步之间存在差异.具体来说,我发现当我尝试恢复(使用subclipse历史记录)时,我经常会收到一条消息,说"无法从路径自己的未来历史中反转合并范围,请先尝试更新".我的同步应该确保我在REPO的分支中拥有所有文件的"head"版本,但是执行"Update to head"确实解决了问题...那么是什么给出了?我试图检查SVN控制台,看看有什么变化,但它不是很冗长.

想法?

我有第二个问题,但我假设第一个问题的答案将会阐明它.如果你很好奇并有时间阅读,我也会打字.这是场景......我从"生产"标签中分支了所有文件,并开始处理我的项目.在几次提交之后,我检查一个已更改文件的历史记录,并注意到"粗体"版本(根据文档,这应该是头部)低于我的所有提交.就好像我拥有的​​不是头脑.但是头部只是该项目的最新版本吗?所以我错过了什么.

感谢您的回复,并花时间阅读本文!

Mar*_*ard 28

它们是有区别的.使用"同步"视图时,仅更新视图中的项目.使用Subversion时,每次修改子项时,文件夹都会有一个版本.但是,由于这些不会出现在视图中,因此它们永远不会更新.在项目上执行Team> Update时,所有文件夹和文件都将更新为单个统一修订版.我有一些博客文章可以解释这个:

这个解释了混合修订工作副本的核心SVN概念,对于理解这一点至关重要:

http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

第二个显示Subclipse中的一个功能来处理这个问题:

http://markphip.blogspot.com/2006/12/subclipse-synchronize-feature-show-out.html

自第二篇博客编写以来,大多数Subclipse用户发现他们不喜欢这个功能,即使它有助于解决这个问题.所以现在它在当前版本中默认关闭.我认为不再有人使用它了.

最重要的是偶尔在项目中使用Team> Update来实现统一修订.

标记


Mic*_*ner 2

我认为您认为同步与更新到 HEAD 相同的假设是错误的。如果用 Subclipse 的说法,“同步”意味着“提交”,那么它肯定是错误的,因为提交不会更新您的工作副本。在您承诺处于 HEAD 位置后,您必须显式更新。

这让我想到了你的第二个问题:我认为粗体线位于其他提交下方的原因是由于上述原因 - 提交不会更新。这意味着您可以提交对一个文件的更改,然后查看另一个文件并发现它比 HEAD 更旧,因为那些其他文件还没有被带到 HEAD。

本文可能有助于澄清混合修订的概念:http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

我还鼓励您熟悉SVN 文档,因为当您了解底层 SVN 系统的工作原理时,使用 Subversion 的插件和扩展总是会变得更加容易。