0

我们有一个提交钩子,每次提交完成时都会在远程工作副本上运行“svn update”。用户希望看到已提交的更改立即反映在此远程副本中。

用户对在整个工作副本上运行 'svn update' 的性能非常不满意,所以我被要求更改挂钩以使用 'svnlook changed' 来查找更新的文件,然后只使用 'svn update' 那些更新的文件。

这种方法的性能得到了非常积极的认可,但这使工作副本处于奇怪/损坏的状态 - 工作副本获得了更新,但认为它具有从存储库中提取的单例更新文件的本地未版本化副本。

我一直试图了解单例更新和整个存储库更新之间的区别,以找出发生这种情况的原因。以这种方式进行更新对我来说似乎不是一个好习惯,特别是考虑到这些问题,但我对 SVN 幕后发生的事情知之甚少,无法阐明原因,特别是 'svn update' 和 'svn update FILE 之间的区别'。

从 SVN 的角度来看,在存储库上运行“svn update”与在文件上运行有什么不同?

这是一个不好的做法吗?基于父目录的更新会是“足够好”的做法吗?

否则,我应该如何在每个文件的基础上进行 SVN 更新以避免这种不一致的工作副本问题?

4

1 回答 1

0

我建议更新父目录而不仅仅是文件。在调用更新之前还要对目录执行svn cleanup ,这应该有助于解决损坏的结帐问题。

于 2010-07-23T00:41:55.927 回答