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

Posted

技术标签:

【中文标题】强制 SVN 更新/签出覆盖本地文件【英文标题】:Force SVN update / checkout to overwrite local files 【发布时间】:2011-08-16 11:55:05 【问题描述】:

我打算运行(在我的服务器上!

svn 更新

用更新更新我的 LIVE 网站。但是,我担心“C”冲突会阻止我的站点脚本运行。如何强制签出/更新过程覆盖所有本地文件(在我的服务器上!)?

我知道一种解决方案是在单独的目录上执行此操作 - 还有什么更有效的方法吗?

我看过Force an SVN checkout command to overwrite current files

我没有 --force 选项

【问题讨论】:

请澄清:您为什么会担心冲突?您的服务器上是否有未提交给 SVN 的本地更改?如果是这样,您希望这些更改发生什么变化?如果没有,“svn update”命令不应该引起任何冲突。 【参考方案1】:

我可以继续进行独立于源代码控制的人工制品管理和内容交付,但据我了解,这是直接从 SVN 刷新 Web 服务器内容,其中 Web 服务器内容可能已手动更改。如果您想编写此脚本,则“单击目录”将不起作用,但这就是我使用的

svn update --accept theirs-full

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

svn help update 会有所帮助!

【讨论】:

【参考方案4】:

您应该要求 Subversion 更新您的工作副本。如果需要合并,Subversion 会告诉你。如果没有,您将拥有最新的一切。

我认为更好的解决方案是将您的代码合并到 Subversion 中,彻底清除您的工作副本,然后从项目中检查出来。

您的存储库应该包含所有有意义的代码,而不是您的工作副本。

【讨论】:

对不起,这是在服务器本身上【参考方案5】:

单击目录并将其还原为基础然后更新是否具有相同的效果?

【讨论】:

对不起,这是在服务器本身上

以上是关于强制 SVN 更新/签出覆盖本地文件的主要内容,如果未能解决你的问题,请参考以下文章

SVN更新代码的时候会覆盖本地文件吗?

无法通过 file:// 签出本地 svn 存储库

svn,在更新时,如何实现覆盖原有的文件,而不是在文件中多了几道杠,和很多重复代码

svn的一些基本的操作!!!

svnupdate会把代码直接覆盖吗

SVN 我刚刚用SVN覆盖更新了我本地的代码,悲催的是,我有一些新写的代码忘记提交了,直接被覆盖了!!!!