我需要在生产服务器上替换我的 SVN 存储库中的目录,但不确定在不破坏任何东西的情况下执行此操作的正确方法。被替换的目录是一个已经完全重构的第三方模块版本,所以为了干净地升级我需要删除旧的目录/文件并替换为新的目录和文件。当我这样做(使用 svn delete)时,工作副本被阻塞或处于阻止我提交或添加新的、未版本控制的目录到工作副本的状态。我已经尝试过 svn update、svn cleanup 以及其他 UI(TortoiseSVN 和 Cornerstone)修复快捷方式,但似乎无法让事情重新同步——即没有回滚到以前的版本或 checkout 新副本。
我认为必须删除本地工作副本和远程仓库上的目标目录,更新工作副本,将新目录添加到工作副本,然后提交到仓库;但我不确定我可能遗漏的细节或任何遗漏的步骤或细微之处。我正在升级的模块对站点应用程序非常重要,所以我需要在第一时间就做好这一点——因为这是在生产服务器上进行的——并且必须快速完成。如果有人能清楚地标出这些步骤,我将不胜感激。
最佳答案
为了使这更容易,您可以通过在目录不存在的情况下创建单个“损坏”修订的方式来执行此操作。
svn up
更新您的工作副本svn delete <directory>
摆脱当前目录svn commit -m 'Deleted old module'
svn add <directory>
添加新目录结构svn commit -m 'Added new module'
This question有关于如何使用“供应商分支”的详细信息,这可能被证明是适合您情况的更好解决方案。
关于svn - 如何在不破坏任何内容的情况下替换 SVN 存储库中的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5664666/