我打算运行(在我的服务器上!)
svn更新
用更新更新我的 LIVE 网站。但是,我担心“C”冲突会阻止我的站点脚本运行。如何强制结帐/更新过程覆盖所有本地文件(在我的服务器上!)?
我知道一种解决方案是在单独的目录上执行此操作 - 还有其他更有效的方法吗?
我看过Force an SVN checkout command to overwrite current files
我没有 --force 选项
我打算运行(在我的服务器上!)
svn更新
用更新更新我的 LIVE 网站。但是,我担心“C”冲突会阻止我的站点脚本运行。如何强制结帐/更新过程覆盖所有本地文件(在我的服务器上!)?
我知道一种解决方案是在单独的目录上执行此操作 - 还有其他更有效的方法吗?
我看过Force an SVN checkout command to overwrite current files
我没有 --force 选项
如果你没有--force
选项,我认为你没有--accept
。svn update 有一个名为--accept
“指定自动冲突解决动作”的新选项。可能是:
postopone, mine-conflict, theirs-conflict, edit, launch, theirs-full, mine-full or base
。
安svn help update
会帮忙!
单击目录并将其还原到基础然后更新是否具有相同的效果?
您应该要求 Subversion 更新您的工作副本。如果需要合并,Subversion 会告诉你。如果没有,您将拥有最新的一切。
我认为更好的解决方案是将您的代码合并到 Subversion 中,彻底清除您的工作副本,然后从项目中检查干净。
您的存储库应该包含所有有意义的代码,而不是您的工作副本。
我可以继续进行独立于源代码控制的人工制品管理和内容交付,但据我所知,这是直接从 SVN 刷新 Web 服务器内容,其中 Web 服务器内容可能已手动更改。如果您想编写脚本,那么“单击目录”将不起作用,但这就是我使用的
svn update --accept theirs-full
我知道这是一个非常古老的问题,但我试图自己找到如何做到这一点并想出了这个:
svn status --no-ignore | grep '^\?' | sed 's/^\? //' | xargs -Ixx rm -rf xx
基本上,这会列出存储库中的所有未版本控制的文件,然后将该列表通过管道传输到强制 rm 以进行清除。这会在没有提示的情况下删除所有未版本控制的文件,因此请确保您知道自己在做什么。