强制 SVN 更新/检出以覆盖本地文件

15

我计划在我的服务器上运行以下命令:

svn update

来更新我的LIVE网站。然而,我担心'C'冲突会导致我的站点脚本无法正常运行。我应该如何强制执行检出/更新过程以覆盖所有本地文件(在我的服务器上!)?

我知道一种解决方法是在另一个目录中完成此操作-有其他更有效的方法吗?

我已经查看了强制使用SVN检出命令覆盖当前文件

我没有--force选项。


请澄清:为什么您会担心冲突?您的服务器上是否有未提交到SVN的本地更改?如果是这样,您希望对这些更改进行什么操作?如果没有,"svn update"命令不应该引起任何冲突。 - ChrisH
5个回答

15

如果您没有--force选项,我认为您也没有--accept选项。 SVN更新有一个名为--accept 的新选项,用于“指定自动冲突解决操作”。 它可以是: postpone,mine-conflict,theirs-conflict,edit,launch,theirs-full,mine-full或base

svn help update将会提供帮助!


5
点击目录并将其还原到基础状态,然后更新是否会产生相同的效果?

抱歉,这个在服务器本身上。 - siliconpi

3
你应该请求Subversion更新你的工作副本。如果需要合并,Subversion会告诉你。否则,你将拥有其他所有内容的最新版本。
我认为更好的解决方案是将你的代码合并到Subversion中,彻底清除你的工作副本,然后从项目中重新检出干净的副本。
你的仓库应该包含所有有意义的代码,而不是你的工作副本。

抱歉,这个在服务器本身上。 - siliconpi

2

我可以继续谈论有关艺术品管理和与源代码控制无关的内容交付,然而据我所知,这是直接从SVN刷新Web服务器内容,其中Web服务器内容可能已经被手动修改。如果您想要编写脚本,则“点击目录”将不起作用,然而这是我使用的方法。

svn update --accept theirs-full

0

我知道这是一个非常老的问题,但我试图找到如何做到这一点,并想出了以下方法:

svn status --no-ignore | grep '^\?' | sed 's/^\? //' | xargs -Ixx rm -rf xx

基本上,这会列出您存储库中的所有未版本化文件,然后将该列表传输到强制rm以进行清除。这将删除所有未版本化的文件而不提示,因此请确保您知道自己在做什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接