【发布时间】:2021-04-28 20:47:27
【问题描述】:
我最近开始在命令行上使用 Subversion。我犯了几次,并摆弄了忽略列表等。
今天我来提交更多更改。 SVN 要求我在提交之前执行更新。
这很奇怪,因为没有其他人承诺过。我知道这是一个事实。因此我不想更新,因为根据定义,如果我的工作副本是“正确的”,那么任何更改都会使其“不正确”。
据我了解,“更新”是将其他人已提交的更改(自您上次更新或签出后发生的更改)与您的本地工作合并的过程复制。
所以我的问题是,如果自从我上次提交后没有人接触过存储库,为什么我不能在不先更新的情况下再次提交?
我的同事建议我可能在没有告诉 SVN 的情况下删除了文件或目录。但同样:这些是 我的 更改,它们发生在最后一次提交之后。当然,对我的工作副本的任何更改都应该取代任何和所有之前的提交?
作为后续问题:如何确定自上次更新以来服务器上哪些文件发生了更改,而实际上没有更新?我尝试了svn diff,它列出了我最后执行的一系列更改。这真的不是很有帮助。
当我运行svn up 时,它只是说:
Updating '.':
At revision 4.
由此证明,在我看来,更新是不必要的。
【问题讨论】:
-
使用
svn status看看发生了什么变化。 -
为什么服务器会将您的工作副本识别为“正确”?集中式版本控制的重点不是让服务器充当事实来源吗?
-
@Z4-tier 当然可以。但不幸的是,服务器在撒谎。这就是我的担心。
-
@Barmar 谢谢。至少,这是后续问题的处理。
-
我的猜测是您的 repo 中的某些内容已被修改,因此它与服务器不同步,更新会使它们恢复同步。
标签: linux svn version-control