是否可以设置 subversion,当有人向存储库提交更新时,所有签出的工作副本都会自动更新?
先感谢您
答案1
不,如果你设法拼凑出一个解决方案,我认为使用它的每个人都会对你不满。强制svn update
合并用户在其工作副本中修改的任何文件。如果他们不注意,这种合并可能会出现严重错误并丢失所有更改。在 SVN 和大多数其他常用的版本控制系统中,用户必须明确请求获取其他人完成的工作,这是设计使然。这样,一个人就不会中断自己的工作流程,试图让自己的更改与其他人(可能不完整)的工作一起编译和运行,直到他们准备好并准备好花时间正确地完成合并。像 Mercurial 或 git(或 Fossil 或 Bazaar 或 veracity 或...)这样的 DVCS 将允许您在不合并的情况下拉入更改(并且尚未在工作副本中看到它们),在这些系统上,自动推送更改可能是有意义的,但 SVN 将拉取与更新结合在一起,因此,尤其是在 SVN 中,这种自动更新不是一个好主意。
我要指出的是,具有“锁定、编辑、解锁”模式的版本控制系统实际上可以很好地与自动更新系统配合使用。例如,ClearCase 就是这样工作的。但现代系统几乎总是“复制、编辑、合并”,因此不适合自动更新系统,因为多个人可以处理同一个文件。
现在,也许您希望特定的只读工作副本自动更新,例如在构建服务器或其他地方。这些副本非常适合 SVN 中的钩子脚本,甚至更适合类 Unix 系统中的 cron 作业或 Windows 上的计划任务。
答案2
没有。没有任何东西可以跟踪所有工作副本。如果您知道所有工作副本在哪里,您可以编写一个钩子来更新所有 WC。但没有通用方法。