【问题标题】:Why is trunk updating to branch's head revision?为什么主干更新为分支的头部修订?
【发布时间】:2018-10-01 06:19:24
【问题描述】:

我正在使用乌龟 svn。

当我更新 svn 主干目录时,它会更新到 svn 分支的头版本。

有人知道为什么会这样吗?

【问题讨论】:

  • 请对整个存储库进行 svn 登录。哪个版本是最新的?是主干中的提交还是分支中的提交?
  • Yeti:分支显示了整个 repo 的最新提交。主干的头部修订早于分支头部的修订。
  • Yeti:我检查了主干,它没有分支更改.. 那么为什么 svn 客户端说“在修订时完成:XXX”,其中 XXX 是分支头之后的修订号我在卡车上执行更新?

标签: svn tortoisesvn branch svn-trunk


【解决方案1】:

当您更新工作副本时,它会更新到 HEAD 修订版,除非您指定特定修订版。

svn update

svn update 将存储库中的更改带入您的工作副本。如果没有给出修订,它会将您的工作副本与 HEAD 修订一起更新。

由于修订号适用于整个存储库,因此在更新主干时看到最新修订是否完全正常。

Global Revision Numbers

与大多数版本控制系统不同,Subversion 的修订号适用于整个存储库树,而不是单个文件。每个修订号选择一整棵树,即在某些提交更改后存储库的特定状态。另一种思考方式是,修订 N 代表第 N 次提交后存储库文件系统的状态。

【讨论】:

  • 在我的例子中,主干的头部修订是 738,分支的头部修订是 740。当我更新卡车的工作目录时,svn 说“在修订时完成:740”;但是,它还没有更新到修订版 740,它已经更新到树干的头部修订版(即 738),这是它应该做的。你是说卡车应该更新到 740 版?
  • @user1164199 您的主干和分支没有 HEAD 修订版。但是您的存储库可以。正如我所写:当您在没有任何选项的情况下进行更新时,svn update 将更新到存储库的最新修订版,即存储库的 HEAD 修订版。
  • 雪人:我还是很困惑。如果我更新主干的工作目录,它会更新到主干的最新版本,而不是存储库的头版本。就我而言,主干的最新版本是 738(这不是存储库的 HEAD 版本)。然而,tortoisesvn 说“Completed At revision: 740”,这是存储库的 HEAD 版本。此外,当我更新一个分支时,它会更新为该分支的最新版本(可能是也可能不是存储库的 HEAD 版本)。
  • Yeti:好的,我通读了 svn-book.pdf。我只需要接受更新将显示它已更新到 repo 的最新版本,即使我可能只更新了 repo 的特定部分。感谢您的帮助。
  • @user1164199 没问题。我知道 svn 一开始可能会让人困惑。如果您的问题得到了回答,请善待并标记我的回答为已接受。
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多