Linux 如果没有人承诺,为什么我需要更新?

Linux 如果没有人承诺,为什么我需要更新?,linux,svn,version-control,Linux,Svn,Version Control,我最近开始在命令行上使用Subversion。我犯了好几次罪,还摆弄着忽略列表之类的东西 今天我来提交更多的更改。SVN要求我在提交之前执行更新 这很奇怪,因为没有其他人犯过这样的错误。我知道这是事实。因此我不想更新,因为根据定义,如果我的工作副本是“正确的”,那么任何更改都会使它“不正确” 据我所知,“更新”是将其他人提交的更改(自上次更新或签出后发生的更改)与本地工作副本合并的过程 所以我的问题是,如果自从我上次提交以来没有人碰过存储库,为什么我不能在没有第一次更新的情况下再次提交? 我的同

我最近开始在命令行上使用Subversion。我犯了好几次罪,还摆弄着忽略列表之类的东西

今天我来提交更多的更改。SVN要求我在提交之前执行更新

这很奇怪,因为没有其他人犯过这样的错误。我知道这是事实。因此我不想更新,因为根据定义,如果我的工作副本是“正确的”,那么任何更改都会使它“不正确”

据我所知,“更新”是将其他人提交的更改(自上次更新或签出后发生的更改)与本地工作副本合并的过程

所以我的问题是,如果自从我上次提交以来没有人碰过存储库,为什么我不能在没有第一次更新的情况下再次提交?

我的同事建议我可能在没有告诉SVN的情况下删除了一个文件或目录。但同样:这些是我的更改,它们发生在最后一次提交之后。当然,对我的工作副本的任何更改都应该取代之前的任何和所有提交

作为后续问题:如何确定自上次更新以来服务器上哪些文件已更改,而不进行实际更新?我尝试了
svn diff
,它列出了我在结束时执行的一系列更改。这并不是很有帮助

当我运行svn up时,它只是说:

Updating '.':
At revision 4.

因此,在我看来,这证明了更新是不必要的。

我将回答您关于如何检查服务器上更改了哪些文件的后续问题:

svn status --show-updates
或者简而言之:

svn st -u

至于主要的问题,我打赌你们正在处理混合修订工作副本或属性更新(或smth)。如果您能够重现场景并提供详细信息,这将非常有帮助。

使用
svn status
查看发生了什么变化。为什么服务器会将您的工作副本识别为“正确”?集中式版本控制的目的不是让服务器充当真相的来源吗?@Z4 tier当然。但不幸的是,服务器在撒谎。这是我关心的。@Barmar谢谢你。这至少是后续的问题。我猜你的回购协议中的某些内容被修改了,因此它与服务器不同步,更新会使它们恢复同步。无论属性发生什么变化或“smth”,它们都会发生在本地。因此,我的问题归结为:为什么本地更改会导致强制更新?不确定“混合修订工作副本”是什么意思,但没有分叉,我只是在几天前创建了回购协议。我无法重现问题,因为我不知道是什么导致了它。