SVN 同步与更新到 Head(子剪辑)

发布于 2024-08-20 01:46:38 字数 481 浏览 8 评论 0原文

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

有想法吗?

我有第二个问题,但我假设第一个问题的答案会阐明它。如果您好奇并且有时间阅读,我也会将其打印出来。场景如下...我已将所有文件从“生产”标签中分支出来,并开始处理我的项目。几次提交后,我检查更改的文件的历史记录,并注意到“粗体”版本(根据文档,这应该是标题)位于我的所有提交下方。就好像我所拥有的并不是头。但 head 只是该项目的最新版本,对吧?那么我错过了什么。

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

I'm fairly new to both Subversion and Subclipse and am seeing some issues that lead me to believe there is a difference between updating to head, and synchronizing. Specifically I find that when I try to revert (using the subclipse history), I often get a message saying "Cannot reverse merge a range from a path's own future history, try updating first". My synchronize should ensure that I have the 'head' version of all the files in my branch on the REPO, but doing an "Update to head" does fix the issue... so what gives? I've tried to check the SVN console to see what's changing, but it's not very verbose.

Ideas?

I have a second question, but I'm assuming the answer to the first will shed light on it. If you are curious and have time to read, I'll type it up as well. Here's the scenario... I've branched all my files from a "Production" tag, and have begun to work on my project. After a few commits, I check a changed file's history and notice that the 'bolded' version (according to documentation, this should be head) is below all my commits. It's as if what I have isn't head. But head is just the latest version of the project right? So what am I missing.

Thanks for your response and taking the time to read this!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乄_柒ぐ汐 2024-08-27 01:46:38

有一个区别。当您使用“同步”视图时,仅更新视图中的项目。使用 Subversion,文件夹还有一个修订版本,每次修改子版本时都会更改该修订版本。但是,由于这些不会出现在视图中,因此它们永远不会更新。当你做团队>时更新项目后,所有文件夹和文件都更新为单个统一修订版。我有几篇博客文章解释了这一点:

这篇文章解释了混合修订工作副本的核心 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>更新您的项目,将其全部纳入单一统一修订版。

标记

There is a difference. When you use the Synchronize view, only the items in the view are updated. With Subversion, folders also have a revision that is bumped everytime a child is modified. However, since these do not appear in the view, they never get updated. When you do Team > Update on the project, all folders and files are updated to a single uniform revision. I have a couple of blog posts that explain this:

This one explains the core SVN concept of a mixed revision working copy, and is essential to understanding this:

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

The second shows a feature in Subclipse to deal with this:

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

Since the second blog was written, most Subclipse users found they did not like this feature even though it helps with this problem. So it is now off by default in current versions. I do not think anyone uses it anymore.

The main thing is just to occasionally use Team > Update on your project to bring it all up to a single uniform revision.

Mark

尾戒 2024-08-27 01:46:38

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

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

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

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

I think your assumption that synchronizing is the same as updating to HEAD is false. If, in Subclipse parlance, "synchronize" means "commit," then it is certainly false because committing does not update your working copy. You have to explicitly update after you commit to be at HEAD.

Which brings me to your second question: I think the reason the bolded line is below other commits is because of the above reason—committing does not update. This means that you can commit a change to a file, and then look at another file and see it as being older than HEAD, because those other files have not also been brought to HEAD.

This article may help clear up this concept of mixed revisions: http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

I also encourage you to familiarize yourself with the SVN documentation, as working with plugins and extensions for Subversion always becomes easier when you understand how the underlying SVN system works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文